diff options
author | Arno <arno@disconnect.de> | 2018-03-31 18:23:30 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-03-31 18:23:30 +0200 |
commit | 3ef1fdee3a8f698cea243c86f4747a4060eb1763 (patch) | |
tree | 516883fe5410cb9f7a94a2ce8cc88f16a4ec46b1 /fswidget.cpp | |
parent | 8691fe4f1cae523bc2fdd64d3e90326f92fcb9d6 (diff) | |
download | SheMov-3ef1fdee3a8f698cea243c86f4747a4060eb1763.tar.gz SheMov-3ef1fdee3a8f698cea243c86f4747a4060eb1763.tar.bz2 SheMov-3ef1fdee3a8f698cea243c86f4747a4060eb1763.zip |
Implement archive movies for FSWidget
Mimic the old behavior, but make the Wizard local to FSWidget. It's only
called from there, so no need to make it global.
Diffstat (limited to 'fswidget.cpp')
-rw-r--r-- | fswidget.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/fswidget.cpp b/fswidget.cpp index fb78a1f..92be9ae 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -19,8 +19,11 @@ #include "fswidget.h" #include "helper.h" +#include "newmoviewizard.h" FSWidget::FSWidget(QWidget *parent) : QWidget(parent) { + mMovieWizard = new NewMovieWizard(this); + mMovieWizard->setMinimumWidth(1024); setPalette(qApp->palette()); setupWidget(); } @@ -43,6 +46,10 @@ void FSWidget::setupWidget(){ connect(refreshA, &QAction::triggered, this, &FSWidget::refresh); toolbar->addSeparator(); toolbar->addAction(refreshA); + QAction *archiveMovieA = new QAction(QIcon(":/huge_bra.png"), tr("Archive movies..."), this); + connect(archiveMovieA, &QAction::triggered, this, &FSWidget::archiveMovie); + connect(mMovieWizard, &NewMovieWizard::accepted, this, &FSWidget::refresh); + toolbar->addAction(archiveMovieA); QIcon plusIcon = Helper::icon(QColor(255,85,255), '+'); QIcon minusIcon = Helper::icon(QColor(255,85,255), '-'); @@ -104,7 +111,7 @@ void FSWidget::setupWidget(){ mProxy->setSourceModel(mModel); mFileView->setModel(mProxy); - addActions(QList<QAction*>() << backA << forwardA << Helper::createSeparator(this) << refreshA); + addActions(QList<QAction*>() << backA << forwardA << Helper::createSeparator(this) << refreshA << archiveMovieA); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topWL); @@ -203,7 +210,6 @@ void FSWidget::gatherData(const QString &curDir){ QBrush blackBrush(Qt::black); QBrush greenBrush(Qt::darkGreen); QBrush blueBrush(Qt::darkBlue); - QBrush currentBrush = blackBrush; //setup database QSqlDatabase db = QSqlDatabase::database("treedb"); @@ -219,6 +225,7 @@ void FSWidget::gatherData(const QString &curDir){ QDirIterator it(curDir, QDir::Files); mFileView->setUpdatesEnabled(false); while(it.hasNext()){ + QBrush currentBrush = blackBrush; QFileInfo fi = it.next(); ++fileCount; QMimeType mimeType = mimedb.mimeTypeForFile(fi); @@ -272,6 +279,7 @@ void FSWidget::gatherData(const QString &curDir){ items << item; } items[0]->setText(fi.fileName()); + items[0]->setData(fi.absoluteFilePath(), FullPathRole); if(mimeName.startsWith("video")){ items[0]->setIcon(videoIcon); }else if(mimeName.startsWith("image")){ @@ -297,6 +305,31 @@ void FSWidget::gatherData(const QString &curDir){ emit message(msg); } +void FSWidget::archiveMovie(){ + QModelIndexList selected = mFileView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + mMovieWizard->restart(); + mMovieWizard->infoPage()->setCurrentDir(mDirCB->currentText()); + for(const QModelIndex &idx : selected){ + QString path = idx.data(FullPathRole).toString(); + mMovieWizard->infoPage()->addFile(path); + mMovieWizard->infoPage()->guessOld(path); + } + QSettings s; + bool autoAddCovers = s.value("ui/autoaddcovers", false).toBool(); + QString coverPath = s.value("paths/coverpath").toString(); + if(autoAddCovers && !coverPath.isEmpty()){ + QDir coverDir(coverPath); + for(const QFileInfo &fi : coverDir.entryInfoList(QDir::Files)){ + mMovieWizard->infoPage()->addFile(fi.absoluteFilePath()); + } + } + mMovieWizard->infoPage()->selectFirst(); + mMovieWizard->show(); +} + void FSWidget::advanceDir(int by){ int dirCount = mDirCB->count(); int nextIdx = mDirCB->currentIndex() + by; |