diff options
author | Arno <am@disconnect.de> | 2012-09-08 12:38:31 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-09-08 12:38:31 +0200 |
commit | 7cab312d14f79136b8c40507e24523ca5b6dc1e7 (patch) | |
tree | 7bd6659120277cca6352dda300e84cd460ead1ef | |
parent | c90f920ebc2dd3386d4f84df3ad25480fbaf616b (diff) | |
download | SheMov-7cab312d14f79136b8c40507e24523ca5b6dc1e7.tar.gz SheMov-7cab312d14f79136b8c40507e24523ca5b6dc1e7.tar.bz2 SheMov-7cab312d14f79136b8c40507e24523ca5b6dc1e7.zip |
Archive selected pictures
Added convenience function to archive selected pictures. Selected pics
in the FileManager will automagically be added to NewPicsDialog.
-rw-r--r-- | newpicsdialog.cpp | 23 | ||||
-rw-r--r-- | newpicsdialog.h | 5 | ||||
-rw-r--r-- | shemov.cpp | 26 | ||||
-rw-r--r-- | shemov.h | 4 |
4 files changed, 47 insertions, 11 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index 2138a19..822065a 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -26,6 +26,15 @@ #include "mappingtreemodel.h" NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { + setupDlg(); +} + +NewPicsDialog::NewPicsDialog(const QStringList &files, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ + setupDlg(); + addFiles(files); +} + +void NewPicsDialog::setupDlg(){ //setup database mDb = QSqlDatabase::database("treedb"); mAddFileQ = new QSqlQuery(mDb); @@ -44,7 +53,7 @@ NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(paren mFilesV->setAlternatingRowColors(true); mFilesV->setColumnHidden(2, true); mAddFiles = new QPushButton(tr("Select...")); - connect(mAddFiles, SIGNAL(clicked()), this, SLOT(addFiles())); + connect(mAddFiles, SIGNAL(clicked()), this, SLOT(selectFiles())); mRemoveFiles = new QPushButton(tr("Remove")); connect(mRemoveFiles, SIGNAL(clicked()), this, SLOT(removeFiles())); QHBoxLayout *fileButtonLayout = new QHBoxLayout; @@ -81,15 +90,21 @@ NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(paren setLayout(mainLayout); } -void NewPicsDialog::addFiles(){ +void NewPicsDialog::selectFiles(){ QSettings s; QString startDir = s.value("paths/lastpicopendir", QDir::homePath()).toString(); QStringList files = QFileDialog::getOpenFileNames(this, tr("Select pictures"), startDir); + if(!files.isEmpty()){ + addFiles(files); + QFileInfo fi(files.first()); + s.setValue("paths/lastpicopendir", fi.absolutePath()); + } +} + +void NewPicsDialog::addFiles(const QStringList &files){ if(files.isEmpty()){ return; } - QFileInfo fi(files.first()); - s.setValue("paths/lastpicopendir", fi.absolutePath()); mFilesV->setSortingEnabled(false); foreach(QString f, files){ mFilesModel->addFile(f); diff --git a/newpicsdialog.h b/newpicsdialog.h index 4401650..17e012e 100644 --- a/newpicsdialog.h +++ b/newpicsdialog.h @@ -30,13 +30,16 @@ class NewPicsDialog : public QDialog { Q_OBJECT public: explicit NewPicsDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); + explicit NewPicsDialog(const QStringList &files, QWidget *parent = 0, Qt::WindowFlags f = 0); public slots: - void addFiles(); + void selectFiles(); void removeFiles(); void accept(); private: + void setupDlg(); + void addFiles(const QStringList &files); QTabWidget *mTab; QWidget *mFilesWidget; MappingEditWidget *mMappingEditWidget; @@ -339,8 +339,10 @@ void SheMov::createActions(){ connect(mPlaySelectedFSA, SIGNAL(triggered()), mFSWidget, SLOT(playSelected())); mNewMovieWizardA = new QAction(tr("Archive movie..."), this); connect(mNewMovieWizardA, SIGNAL(triggered()), this, SLOT(newMovieWizard())); - mArchiveSelectedA = new QAction(tr("Archive selected..."), this); - connect(mArchiveSelectedA, SIGNAL(triggered()), this, SLOT(newMovieWizardWithFiles())); + mArchiveSelectedMovsA = new QAction(tr("Archive selected movies..."), this); + connect(mArchiveSelectedMovsA, SIGNAL(triggered()), this, SLOT(newMovieWizardWithFiles())); + mArchiveSelectedPicsA = new QAction(tr("Archive selected pics..."), this); + connect(mArchiveSelectedPicsA, SIGNAL(triggered()), this, SLOT(newPicsDialogWithFiles())); mConsistencyA = new QAction(tr("Check consisteny..."), this); connect(mConsistencyA, SIGNAL(triggered()), this, SLOT(checkConsistency())); mAnalyzerA = new QAction(QIcon(":/higheels.png"), tr("Analyze Db..."), this); @@ -693,10 +695,11 @@ void SheMov::createMenus(){ fileMenu->addAction(mPlaySelectedFSA); fileMenu->addSeparator(); fileMenu->addAction(mNewMovieWizardA); + fileMenu->addAction(mNewPicsA); + fileMenu->addSeparator(); fileMenu->addAction(mConsistencyA); fileMenu->addAction(mAnalyzerA); fileMenu->addAction(mMappingEditorA); - fileMenu->addAction(mNewPicsA); fileMenu->addSeparator(); fileMenu->addAction(mQuitA); menuBar()->addMenu(fileMenu); @@ -825,8 +828,8 @@ void SheMov::createMenus(){ mFSWidget->fileView()->addAction(mMarkA); mFSWidget->fileView()->addAction(createSeparator()); - mFSWidget->fileView()->addAction(mNewPicsA); - mFSWidget->fileView()->addAction(mArchiveSelectedA); + mFSWidget->fileView()->addAction(mArchiveSelectedPicsA); + mFSWidget->fileView()->addAction(mArchiveSelectedMovsA); //ArchiveTreeView context menu mATree->seriesWidget()->seriesTree()->addAction(mNewSeriesA); @@ -1109,3 +1112,16 @@ void SheMov::newPicsDialog(){ NewPicsDialog npd(this); npd.exec(); } + +void SheMov::newPicsDialogWithFiles(){ + QModelIndexList selected = mFSWidget->fileView()->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + QStringList files; + foreach(QModelIndex idx, selected){ + files << idx.data(QFileSystemModel::FilePathRole).toString(); + } + NewPicsDialog npd(files, this); + npd.exec(); +} @@ -56,6 +56,7 @@ class SheMov : public QMainWindow { void editMappings(QString table); void mappingEditor(); void newPicsDialog(); + void newPicsDialogWithFiles(); signals: void configChanged(); @@ -105,7 +106,8 @@ class SheMov : public QMainWindow { QAction *mPlaySelectedAVA; QAction *mOpenWithMenuFSA; QAction *mOpenWithMenuAVA; - QAction *mArchiveSelectedA; + QAction *mArchiveSelectedMovsA; + QAction *mArchiveSelectedPicsA; QAction *mConsistencyA; QAction *mAnalyzerA; QAction *mMappingEditorA; |