summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--newpicsdialog.cpp6
-rw-r--r--newpicsdialog.h5
-rw-r--r--pictureviewer2.cpp12
-rw-r--r--pictureviewer2.h4
-rw-r--r--shemov.cpp12
-rw-r--r--shemov.h2
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 {
diff --git a/shemov.cpp b/shemov.cpp
index 817c808..155b37d 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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();
diff --git a/shemov.h b/shemov.h
index d1a4ee2..96d0de1 100644
--- a/shemov.h
+++ b/shemov.h
@@ -183,6 +183,8 @@ class SheMov : public QMainWindow {
QAction *mPVSlideA;
QAction *mPVShuffleA;
QAction *mPVCopyToA;
+ QAction *mPVShowNPDialogA;
+ QAction *mPVAddToNPA;
QActionGroup *mPicActionGroup;
//EndActions