diff options
Diffstat (limited to 'newpicsdialog.cpp')
-rw-r--r-- | newpicsdialog.cpp | 47 |
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()); |