diff options
author | Arno <am@disconnect.de> | 2012-11-16 16:43:50 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-11-16 16:43:50 +0100 |
commit | ba9c314b4ba68b2da1d6c59accbcb9cf1aa5f897 (patch) | |
tree | b28c4ee1d91a27b8eb11da29395fa3d42dad5ceb | |
parent | 7a56ffb6f1afc5ed09459230d47621fa4a1963b6 (diff) | |
download | SheMov-ba9c314b4ba68b2da1d6c59accbcb9cf1aa5f897.tar.gz SheMov-ba9c314b4ba68b2da1d6c59accbcb9cf1aa5f897.tar.bz2 SheMov-ba9c314b4ba68b2da1d6c59accbcb9cf1aa5f897.zip |
Usability: Make archiving pics easier
To make archiving pictures from different sources easier, add a
NewPicsDialog to PictureViewer. Add shortcuts to show the dialog and
adding pics to it. After adding all pics with the same mappping, just
click OK and add them to the archive.
Shortcuts:
Meta+s: Show NewPicsDialog
Meta+a: Add current pic
-rw-r--r-- | newpicsdialog.cpp | 6 | ||||
-rw-r--r-- | newpicsdialog.h | 5 | ||||
-rw-r--r-- | pictureviewer2.cpp | 12 | ||||
-rw-r--r-- | pictureviewer2.h | 4 | ||||
-rw-r--r-- | shemov.cpp | 12 | ||||
-rw-r--r-- | shemov.h | 2 |
6 files changed, 39 insertions, 2 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index 272bf2d..c0bf76e 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -167,6 +167,7 @@ void NewPicsDialog::accept(){ Helper::moveToArchive(d.fullPath, d.md5sum); } mDb.commit(); + mFilesModel->clear(); return QDialog::accept(); } @@ -321,6 +322,11 @@ QList<FileData> NewPicFilesModel::validFiles() const { return retval; } +void NewPicFilesModel::clear(){ + SmTreeItem *newRoot = new SmTreeItem(NumFields); + setRoot(newRoot); +} + bool NewPicFilesModel::haveMd5(const QString &md5) const { mMd5Query->bindValue(":md5", md5); mMd5Query->exec(); diff --git a/newpicsdialog.h b/newpicsdialog.h index 17e012e..110f4fc 100644 --- a/newpicsdialog.h +++ b/newpicsdialog.h @@ -35,11 +35,11 @@ class NewPicsDialog : public QDialog { public slots: void selectFiles(); void removeFiles(); + void addFiles(const QStringList &files); void accept(); private: void setupDlg(); - void addFiles(const QStringList &files); QTabWidget *mTab; QWidget *mFilesWidget; MappingEditWidget *mMappingEditWidget; @@ -74,6 +74,9 @@ class NewPicFilesModel : public SmTreeModel { void removeFile(const QModelIndex &idx); QList<FileData> validFiles() const; + public slots: + void clear(); + private: bool haveMd5(const QString &md5) const; QSqlDatabase mDb; diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 9aba348..f385abc 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -35,6 +35,7 @@ #include "mappingtreemodel.h" #include "smtreeitem.h" #include "configurationdialog.h" +#include "newpicsdialog.h" #include "helper.h" PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mDefaultFile(":/picgone.png"), mFnItem(0), mMappingItem(0) { @@ -56,9 +57,10 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) mSlideTimer = new QTimer(this); connect(mSlideTimer, SIGNAL(timeout()), this, SLOT(next())); - //models + //models + dialogs mMappingTreeModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree")); mPicFilesModel = static_cast<PicFilesModel*>(SmGlobals::instance()->model("PicFiles")); + mNewPicsDlg = new NewPicsDialog(this); //setup gui mScene = new QGraphicsScene(this); @@ -236,6 +238,14 @@ void PictureViewer2::copyCurrent(){ } } +void PictureViewer2::showNewPicsDialog(){ + mNewPicsDlg->show(); +} + +void PictureViewer2::addToNewPics(){ + mNewPicsDlg->addFiles(QStringList() << mCurPicData.at(PicFilesModel::FullPath).toString()); +} + void PictureViewer2::wheelEvent(QWheelEvent *event){ int steps = event->delta() / 8 / 15; if(steps < 0){ diff --git a/pictureviewer2.h b/pictureviewer2.h index 9d5c1c5..631f5f8 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -26,6 +26,7 @@ class QGraphicsItem; class SmTreeItem; class MappingTreeModel; class PicFilesModel; +class NewPicsDialog; typedef QList<QVariant> PicData; typedef QList<QList<QVariant> > PicDataList; @@ -51,6 +52,8 @@ class PictureViewer2 : public QGraphicsView { void shuffle(); void initActions(); void copyCurrent(); + void showNewPicsDialog(); + void addToNewPics(); protected: virtual void wheelEvent(QWheelEvent *event); @@ -90,6 +93,7 @@ class PictureViewer2 : public QGraphicsView { MappingTreeModel *mMappingTreeModel; PicFilesModel *mPicFilesModel; PicData mCurPicData; + NewPicsDialog *mNewPicsDlg; }; class PictureViewer2Item : public QGraphicsItem { @@ -198,6 +198,8 @@ void SheMov::tabChanged(int newTab){ mPicActionGroup->setEnabled(newTab == 2); mFilterFavoritesA->setEnabled(newTab == 1); mPVSelectAllA->disconnect(); + mPVShowNPDialogA->setEnabled(newTab == 0); + mPVAddToNPA->setEnabled(newTab == 0); switch(newTab){ case 0: connect(mPVSelectAllA, SIGNAL(triggered()), mFSWidget, SLOT(selectAllPV())); @@ -699,6 +701,16 @@ void SheMov::createActions(){ connect(mPVCopyToA, SIGNAL(triggered()), picViewer, SLOT(copyCurrent())); picViewer->addAction(mPVCopyToA); + // NewPicsDialog actions + mPVShowNPDialogA = new QAction(tr("Show new pics dialog..."), this); + mPVShowNPDialogA->setShortcut(tr("Meta+s")); + connect(mPVShowNPDialogA, SIGNAL(triggered()), picViewer, SLOT(showNewPicsDialog())); + picViewer->addAction(mPVShowNPDialogA); + mPVAddToNPA = new QAction(tr("Add to new pics dialog"), this); + mPVAddToNPA->setShortcut(tr("Meta+a")); + connect(mPVAddToNPA, SIGNAL(triggered()), picViewer, SLOT(addToNewPics())); + picViewer->addAction(mPVAddToNPA); + // assign actions to PictureViewer2 members, so they can be toggled from within picViewer->initActions(); @@ -183,6 +183,8 @@ class SheMov : public QMainWindow { QAction *mPVSlideA; QAction *mPVShuffleA; QAction *mPVCopyToA; + QAction *mPVShowNPDialogA; + QAction *mPVAddToNPA; QActionGroup *mPicActionGroup; //EndActions |