diff options
-rw-r--r-- | fswidget.cpp | 18 | ||||
-rw-r--r-- | fswidget.h | 2 | ||||
-rw-r--r-- | shemov.cpp | 5 |
3 files changed, 25 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); +} @@ -43,9 +43,11 @@ class FSWidget : public QWidget { void preview(); void playSelected(int count, QString player); void selectFilter(); + void calculateSelectionChanged(); signals: void message(QString msg); + void selectionChanged(int count, qint64 size, qint64 duration); private: void setupWidget(); @@ -65,6 +65,11 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla mFileWidget = new FSWidget; mTab->addTab(mFileWidget, tr("FS")); connect(mFileWidget, &FSWidget::message, this, &SheMov::statusbarMessage); + connect(mFileWidget, &FSWidget::selectionChanged, [=](int count, qint64 size, qint64 duration) { + updateSelectedCount(count); + setSize(size); + setDuration(duration, false); + }); //experimental splash.showMessage(tr("Creating Movie archive..."), Qt::AlignHCenter, Qt::yellow); |