summaryrefslogtreecommitdiffstats
path: root/newmoviewizard.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-10-03 11:51:29 +0200
committerArno <am@disconnect.de>2010-10-03 11:51:29 +0200
commit0861ec020923ff8a1549f6c4a3f5437ce62573b5 (patch)
tree9c60034f8077a00b5c97b0effaf0d9785a11a871 /newmoviewizard.cpp
parent3c86ae36f5048929ed43e1d49060d45e927953e8 (diff)
downloadSheMov-0861ec020923ff8a1549f6c4a3f5437ce62573b5.tar.gz
SheMov-0861ec020923ff8a1549f6c4a3f5437ce62573b5.tar.bz2
SheMov-0861ec020923ff8a1549f6c4a3f5437ce62573b5.zip
Implemented "Archive selected" action
New context menu entry in FSWidget: archive selected. The selected files will be inserted into the MovieInfoPage when archiving a movie.
Diffstat (limited to 'newmoviewizard.cpp')
-rw-r--r--newmoviewizard.cpp69
1 files changed, 45 insertions, 24 deletions
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp
index 5325c1c..00893fb 100644
--- a/newmoviewizard.cpp
+++ b/newmoviewizard.cpp
@@ -33,9 +33,12 @@
#include "helper.h"
NewMovieWizard::NewMovieWizard(QWidget *parent) : QWizard(parent){
- addPage(new MovieInfoPage);
- addPage(new MovieMappingPage("actors"));
- addPage(new MovieMappingPage("genres"));
+ mInfoPage = new MovieInfoPage;
+ mActorPage = new MovieMappingPage("actors");
+ mGenrePage = new MovieMappingPage("genres");
+ addPage(mInfoPage);
+ addPage(mActorPage);
+ addPage(mGenrePage);
setOption(QWizard::IndependentPages, true);
}
@@ -118,6 +121,10 @@ void NewMovieWizard::accept(){
}
MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){
+ setupGui();
+}
+
+void MovieInfoPage::setupGui(){
setTitle(tr("Collect files for movie"));
setSubTitle(tr("Select files by clicking the \"Add files...\" button. After adding files select one by one and set the appropriate file type. The series no is the number the movie has in the series: 14 in case of e.g. rogue adventures 14. The part number only has to be set if the movie is split in several parts."));
setPixmap(QWizard::LogoPixmap, QPixmap(":/shemov.png"));
@@ -232,37 +239,51 @@ void MovieInfoPage::initializePage(){
mOnDvd->setChecked(false);
}
-void MovieInfoPage::addFiles(){
- QSettings s;
- QString startDir = s.value("paths/selecteddir", QDir::homePath()).toString();
- QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files"), startDir);
- if(files.isEmpty()){
- return;
- }
- foreach(QString f, files){
- QFileInfo fi(f);
- if(fi.exists()){
- QList<QVariant> itemData;
- QModelIndex parent = QModelIndex();
- itemData << fi.fileName() << fi.size() << QVariant() << QVariant() << fi.absoluteFilePath();
- QString mimeType = Helper::mimeType(fi.absoluteFilePath());
- if(mimeType.startsWith("video")){
- itemData[WizardTreeModel::FileType] = WizardTreeModel::Movie;
- parent = mFileModel->find("Movie files");
+void MovieInfoPage::addFile(const QString &file){
+ QFileInfo fi(file);
+ if(fi.exists()){
+ QList<QVariant> itemData;
+ QModelIndex parent = QModelIndex();
+ itemData << fi.fileName() << fi.size() << QVariant() << QVariant() << fi.absoluteFilePath();
+ QString mimeType = Helper::mimeType(fi.absoluteFilePath());
+ if(mimeType.startsWith("video")){
+ itemData[WizardTreeModel::FileType] = WizardTreeModel::Movie;
+ parent = mFileModel->find("Movie files");
+ }else{
+ QString baseName = fi.completeBaseName();
+ QRegExp reFront = QRegExp("front");
+ reFront.setCaseSensitivity(Qt::CaseInsensitive);
+ QRegExp reBack = QRegExp("back");
+ reBack.setCaseSensitivity(Qt::CaseInsensitive);
+ if(baseName.endsWith('f') || (reFront.indexIn(baseName) != -1)){
+ itemData[WizardTreeModel::FileType] = WizardTreeModel::FrontCover;
+ }else if(baseName.endsWith('b') || (reBack.indexIn(baseName) != -1)){
+ itemData[WizardTreeModel::FileType] = WizardTreeModel::BackCover;
}else{
itemData[WizardTreeModel::FileType] = WizardTreeModel::GeneralCover;
- parent = mFileModel->find("Cover files");
- }
- if(parent.isValid()){
- mFileModel->addRow(itemData, parent);
}
+ parent = mFileModel->find("Cover files");
+ }
+ if(parent.isValid()){
+ mFileModel->addRow(itemData, parent);
}
}
mFileView->expandAll();
mFileView->resizeColumnToContents(0);
mFileView->resizeColumnToContents(1);
mFileView->resizeColumnToContents(2);
+}
+void MovieInfoPage::addFiles(){
+ QSettings s;
+ QString startDir = s.value("paths/selecteddir", QDir::homePath()).toString();
+ QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files"), startDir);
+ if(files.isEmpty()){
+ return;
+ }
+ foreach(QString f, files){
+ addFile(f);
+ }
}
void MovieInfoPage::removeFile(){