68 setIcon(
pixmap.copy((
pixmap.width() - minSide) / 2, (
pixmap.height() - minSide) / 2, minSide, minSide)
121 QStandardItemModel *model =
new QStandardItemModel(
this);
122 model->setColumnCount(ColumnCount);
124 QLocale locale = this->locale();
125 const QString &dateFormat = locale.dateTimeFormat(QLocale::ShortFormat);
127 QStandardItem *nameCol =
new QStandardItem(info.name);
128 nameCol->setData(info.path, valueRole);
130 new CheckedIconItem(info.thumbnail,
ui->treeDirectories->iconSize()),
132 new DataSortedItem(locale.formattedDataSize(info.size), info.size),
133 new DataSortedItem(info.dateTime.toString(dateFormat), info.dateTime.toMSecsSinceEpoch())
137 model->setHorizontalHeaderItem(ColumnCheck,
138 new QStandardItem(i18nc(
"Header title for preview thumbnail",
"Preview")));
139 model->setHorizontalHeaderItem(ColumnName,
140 new QStandardItem(i18nc(
"Header title for directory name column",
"Name")));
141 model->setHorizontalHeaderItem(ColumnSize,
142 new QStandardItem(i18nc(
"Header title for size of directory column",
"Size")));
143 model->setHorizontalHeaderItem(ColumnDate,
144 new QStandardItem(i18nc(
"Header title for last modified date/time column",
"Last Modified")));
146 QAbstractItemModel *oldModel =
ui->treeDirectories->model();
147 QItemSelectionModel *oldSelectionModel =
ui->treeDirectories->selectionModel();
148 ui->treeDirectories->setModel(model);
149 if (oldModel !=
nullptr)
150 oldModel->deleteLater();
151 if (oldSelectionModel !=
nullptr)
152 oldSelectionModel->deleteLater();
155 ui->stackedWidget->setCurrentIndex(PageSelection);
157 for(
int col = 0; col < (ColumnCount - 1); ++col) {
158 ui->treeDirectories->resizeColumnToContents(col);
159 const int colWidth =
ui->treeDirectories->columnWidth(col);
160 ui->treeDirectories->setColumnWidth(col, colWidth + defaultColumnMargin);
163 connect(
ui->treeDirectories->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
169 QAbstractItemModel *model =
ui->treeDirectories->model();
170 for (
const QModelIndex &index : selected.indexes())
171 model->setData(index.sibling(index.row(), ColumnCheck), Qt::Checked, Qt::CheckStateRole);
172 for (
const QModelIndex &index : deselected.indexes())
173 model->setData(index.sibling(index.row(), ColumnCheck), Qt::Unchecked, Qt::CheckStateRole);
175 cleanUpButton->setEnabled(!
ui->treeDirectories->selectionModel()->selectedIndexes().isEmpty());
189 const QModelIndexList &indexes =
ui->treeDirectories->selectionModel()->selectedRows(ColumnSize);
190 qulonglong totalSize = 0;
191 QAbstractItemModel *model =
ui->treeDirectories->model();
192 for (
const QModelIndex &index : indexes)
193 totalSize += model->data(index, valueRole).toULongLong();
194 ui->labelSpace->setText(locale().formattedDataSize(totalSize));
195 ui->buttonSelectAll->setText(indexes.size() != model->rowCount() ? i18n(
"Select All") : i18n(
"Select None"));
210 const QModelIndexList &selectedIndexes =
ui->treeDirectories->selectionModel()->selectedRows(ColumnCheck);
211 QAbstractItemModel *model =
ui->treeDirectories->model();
212 int rowCount = model->rowCount();
213 bool selectAll = selectedIndexes.size() != rowCount;
215 ui->treeDirectories->selectAll();
217 ui->treeDirectories->clearSelection();
223 const QString confirmation(i18n(
"The selected recordings will be deleted"
224 " and you will not be able to export a timelapse for them again"
225 " (the already exported timelapses will be preserved though)."
226 "\nDo you wish to continue?"));
227 if (QMessageBox::question(
this, windowTitle(), confirmation) != QMessageBox::Yes)
231 const QModelIndexList &indexes =
ui->treeDirectories->selectionModel()->selectedRows(ColumnName);
232 QAbstractItemModel *model =
ui->treeDirectories->model();
233 for (
const QModelIndex &index : indexes)
234 directories.append(model->data(index, valueRole).toString());
236 ui->labelProgress->setText(i18nc(
"Label title, Snapshot directory deleting is in progress",
"Cleaning up..."));
237 ui->stackedWidget->setCurrentIndex(PageProgress);