summaryrefslogtreecommitdiffstats
path: root/fswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fswidget.cpp')
-rw-r--r--fswidget.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index 75ecd28..c3753b1 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -160,6 +160,7 @@ void FSWidget::setupWidget(){
mProxy->setSourceModel(mModel);
mFileView->setModel(mProxy);
mFileView->sortByColumn(0, Qt::AscendingOrder);
+ connect(mFileView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FSWidget::calculateSelectionChanged);
mFileView->addActions(QList<QAction*>() << playSelectedA << playRepeatMA << mPlayWithA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << unpackA << previewA << selectFilterA << unselectAllA);
@@ -564,3 +565,20 @@ void FSWidget::selectFilter(){
}
}
+
+void FSWidget::calculateSelectionChanged(){
+ QModelIndexList selected = mFileView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ emit selectionChanged(0, 0, 0);
+ return;
+ }
+ int count = 0;
+ qint64 duration = 0;
+ qint64 size = 0;
+ for(const QModelIndex &idx : selected){
+ ++count;
+ duration += idx.data(DurationRole).toLongLong();
+ size += idx.data(SizeRole).toLongLong();
+ }
+ emit selectionChanged(count, size, duration);
+}