summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-09-08 12:38:31 +0200
committerArno <am@disconnect.de>2012-09-08 12:38:31 +0200
commit7cab312d14f79136b8c40507e24523ca5b6dc1e7 (patch)
tree7bd6659120277cca6352dda300e84cd460ead1ef
parentc90f920ebc2dd3386d4f84df3ad25480fbaf616b (diff)
downloadSheMov-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.cpp23
-rw-r--r--newpicsdialog.h5
-rw-r--r--shemov.cpp26
-rw-r--r--shemov.h4
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;
diff --git a/shemov.cpp b/shemov.cpp
index f9859be..130bd66 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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();
+}
diff --git a/shemov.h b/shemov.h
index 33fd743..f20cc77 100644
--- a/shemov.h
+++ b/shemov.h
@@ -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;