summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 189cf80..ead82ea 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -32,12 +32,22 @@
#include <QFile>
#include <QTemporaryFile>
#include <QMessageBox>
+#include <QCheckBox>
+#include <QRadioButton>
+#include <QGroupBox>
+#include <QSpinBox>
+#include <QPushButton>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QGridLayout>
#include "pictureviewer2.h"
#include "picfilesmodel.h"
#include "pictureswidget.h"
#include "smglobals.h"
#include "mappingtreemodel.h"
+#include "mappingtreewidget.h"
#include "smtreeitem.h"
#include "configurationdialog.h"
#include "newpicsdialog.h"
@@ -483,6 +493,11 @@ void PictureViewer2::doControl(QGraphicsItem *item){
}
}
+void PictureViewer2::doSlide(){
+ PictureViewerSlideDlg dlg(this);
+ dlg.exec();
+}
+
void PictureViewer2::wheelEvent(QWheelEvent *event){
int steps = event->delta() / 8 / 15;
if(steps < 0){
@@ -888,6 +903,93 @@ QString PictureViewer2::constructWindowTitle() const {
return retval;
}
+PictureViewerSlideDlg::PictureViewerSlideDlg(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){
+ mResultCountTempl = QString(tr("Sliding over %1 pics"));
+ QGroupBox *slideGb = new QGroupBox(tr("Slide"));
+ mSlideAll = new QRadioButton(tr("Slide all"));
+ connect(mSlideAll, SIGNAL(toggled(bool)), this, SLOT(slideAllToggled(bool)));
+ mRecent = new QRadioButton(tr("Slide recent"));
+ connect(mRecent, SIGNAL(toggled(bool)), this, SLOT(recentToggled(bool)));
+ mSelection = new QRadioButton(tr("Slide selection"));
+ connect(mSelection, SIGNAL(toggled(bool)), this, SLOT(slideSelectionToggled(bool)));
+ mNoSlide = new QRadioButton(tr("Stop slide"));
+ connect(mNoSlide, SIGNAL(toggled(bool)), this, SLOT(noSlideToggled(bool)));
+ QVBoxLayout *slideL = new QVBoxLayout;
+ slideL->addWidget(mSlideAll);
+ slideL->addWidget(mRecent);
+ slideL->addWidget(mSelection);
+ slideL->addWidget(mNoSlide);
+ slideGb->setLayout(slideL);
+ QGroupBox *miscGb = new QGroupBox(tr("Misc."));
+ mResultCount = new QLabel(mResultCountTempl.arg("0"));
+ mRecentDays = new QSpinBox;
+ mRecentDays->setMinimum(1);
+ mRecentDays->setPrefix(tr("Slide last "));
+ mRecentDays->setSuffix(tr(" days"));
+ mShuffle = new QCheckBox(tr("Shuffle"));
+ QVBoxLayout *miscL = new QVBoxLayout;
+ miscL->addWidget(mResultCount);
+ miscL->addWidget(mRecentDays);
+ miscL->addWidget(mShuffle);
+ miscGb->setLayout(miscL);
+ mMappingEditWidget = new MappingEditWidget;
+ QGroupBox *selectionGb = new QGroupBox(tr("Selection"));
+ QVBoxLayout *selectionL = new QVBoxLayout;
+ selectionL->addWidget(mMappingEditWidget);
+ selectionGb->setLayout(selectionL);
+ mOk = new QPushButton(tr("Ok"));
+ connect(mOk, SIGNAL(clicked()), this, SLOT(accept()));
+ mCancel = new QPushButton(tr("Cancel"));
+ connect(mCancel, SIGNAL(clicked()), this, SLOT(reject()));
+ mCalcResultCount = new QPushButton(tr("Calc..."));
+ QHBoxLayout *buttonL = new QHBoxLayout;
+ buttonL->addWidget(mCalcResultCount);
+ buttonL->addStretch();
+ buttonL->addWidget(mOk);
+ buttonL->addWidget(mCancel);
+
+ QGridLayout *mainL = new QGridLayout;
+ mainL->addWidget(slideGb, 0, 0);
+ mainL->addWidget(miscGb, 0, 1);
+ mainL->addWidget(selectionGb, 1, 0, 1, 2);
+ mainL->addLayout(buttonL, 2, 0, 1, 2);
+ setLayout(mainL);
+
+ mNoSlide->setChecked(true);
+}
+
+void PictureViewerSlideDlg::slideAllToggled(bool checked){
+ if(checked){
+ mRecentDays->setEnabled(false);
+ mMappingEditWidget->setEnabled(false);
+ mSlideResult = SlideAll;
+ }
+}
+
+void PictureViewerSlideDlg::slideSelectionToggled(bool checked){
+ if(checked){
+ mRecentDays->setEnabled(false);
+ mMappingEditWidget->setEnabled(true);
+ mSlideResult = SlideSelection;
+ }
+}
+
+void PictureViewerSlideDlg::recentToggled(bool checked){
+ if(checked){
+ mRecentDays->setEnabled(true);
+ mMappingEditWidget->setEnabled(false);
+ mSlideResult = SlideRecent;
+ }
+}
+
+void PictureViewerSlideDlg::noSlideToggled(bool checked){
+ if(checked){
+ mRecentDays->setEnabled(false);
+ mMappingEditWidget->setEnabled(false);
+ mSlideResult = NoSlide;
+ }
+}
+
PictureViewer2Item::PictureViewer2Item(const PicData &data, const int numSelected, const QSize &picSize, QGraphicsItem *parent) : QGraphicsItem(parent), mDoc(0){
QStringList textList;
//prevent QStaticText from wrapping filesnames with spaces