summaryrefslogtreecommitdiffstats
path: root/fswidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-03-31 18:23:30 +0200
committerArno <arno@disconnect.de>2018-03-31 18:23:30 +0200
commit3ef1fdee3a8f698cea243c86f4747a4060eb1763 (patch)
tree516883fe5410cb9f7a94a2ce8cc88f16a4ec46b1 /fswidget.cpp
parent8691fe4f1cae523bc2fdd64d3e90326f92fcb9d6 (diff)
downloadSheMov-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.cpp37
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;