diff options
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; |