summaryrefslogtreecommitdiffstats
path: root/newpicsdialog.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2015-04-08 12:54:41 +0200
committerArno <am@disconnect.de>2015-04-08 12:54:41 +0200
commit8c0070a69df9337dee81d4a9d645dd9726564681 (patch)
tree03f9a525780bdf26ae880042b8e13eaed7e5f2e5 /newpicsdialog.cpp
parent2f7b2582010bac5f24c6f57ea54b89aa46df2faa (diff)
downloadSheMov-8c0070a69df9337dee81d4a9d645dd9726564681.tar.gz
SheMov-8c0070a69df9337dee81d4a9d645dd9726564681.tar.bz2
SheMov-8c0070a69df9337dee81d4a9d645dd9726564681.zip
Implement presets for NewPicsDialog
A set of attributes can now be saved and loaded in NewPicsDialog.
Diffstat (limited to 'newpicsdialog.cpp')
-rw-r--r--newpicsdialog.cpp47
1 files changed, 44 insertions, 3 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp
index 44277a3..fbadb53 100644
--- a/newpicsdialog.cpp
+++ b/newpicsdialog.cpp
@@ -16,6 +16,8 @@
#include <QApplication>
#include <QMoveEvent>
#include <QLabel>
+#include <QMenu>
+#include <QAction>
#include "newpicsdialog.h"
#include "smtreeitem.h"
@@ -26,6 +28,8 @@
#include "smglobals.h"
NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) {
+ qRegisterMetaType<MappingData>("MappingData");
+ qRegisterMetaTypeStreamOperators<MappingData>("MappingData");
setupDlg();
}
@@ -60,15 +64,28 @@ void NewPicsDialog::setupDlg(){
//mapping widget
mMappingEditWidget = new MappingEditWidget;
+ //presets
+ mPresetMenu = new QMenu(this);
+ mPresets = new QPushButton(tr("Presets"));
+ QAction *posA = new QAction(tr("Save pos"), this);
+ connect(posA, SIGNAL(triggered()), this, SLOT(savePos()));
+ mPresetMenu->addAction(posA);
+ mPresetMenu->addSeparator();
+ QAction *loadPresetA = new QAction(tr("Load preset"), this);
+ connect(loadPresetA, SIGNAL(triggered()), this, SLOT(loadPreset()));
+ mPresetMenu->addAction(loadPresetA);
+ QAction *savePresetA = new QAction(tr("Save preset"), this);
+ connect(savePresetA, SIGNAL(triggered()), this, SLOT(savePreset()));
+ mPresetMenu->addAction(savePresetA);
+ mPresets->setMenu(mPresetMenu);
+
//dialog buttons
- mSavePos = new QPushButton(tr("Save Pos"));
- connect(mSavePos, SIGNAL(clicked()), this, SLOT(savePos()));
mOk = new QPushButton(tr("Ok"));
connect(mOk, SIGNAL(clicked()), this, SLOT(accept()));
mCancel = new QPushButton(tr("Cancel"));
connect(mCancel, SIGNAL(clicked()), this, SLOT(reject()));
QHBoxLayout *dlgButtonLayout = new QHBoxLayout;
- dlgButtonLayout->addWidget(mSavePos);
+ dlgButtonLayout->addWidget(mPresets);
dlgButtonLayout->addWidget(mPosL);
dlgButtonLayout->addStretch();
dlgButtonLayout->addWidget(mCancel);
@@ -89,6 +106,7 @@ void NewPicsDialog::setupDlg(){
QSettings s;
QPoint p = s.value("ui/newpicsdialogpos", QPoint(0,0)).toPoint();
move(p);
+ loadPreset();
}
void NewPicsDialog::selectFiles(){
@@ -205,6 +223,29 @@ void NewPicsDialog::savePos(){
s.setValue("ui/newpicsdialogpos", curPos);
}
+void NewPicsDialog::loadPreset() const {
+ QSettings s;
+ QByteArray val = s.value("ui/newpicsdialogpreset").toByteArray();
+ QDataStream out(&val, QIODevice::ReadOnly);
+ MappingData md;
+ while(!out.atEnd()){
+ out >> md;
+ mMappingEditWidget->model()->addItem(md);
+ }
+ mMappingEditWidget->expandAllResults();
+}
+
+void NewPicsDialog::savePreset(){
+ const QList<MappingData> mappingData = mMappingEditWidget->model()->mappingData();
+ QByteArray saveVal;
+ QDataStream in(&saveVal, QIODevice::WriteOnly);
+ foreach(MappingData md, mappingData){
+ in << md;
+ }
+ QSettings s;
+ s.setValue("ui/newpicsdialogpreset", saveVal);
+}
+
void NewPicsDialog::moveEvent(QMoveEvent *e){
const QPoint pos = e->pos();
const QString posStr = QString("(%1x%2)").arg(pos.x()).arg(pos.y());