diff options
-rw-r--r-- | configurationdialog.cpp | 77 | ||||
-rw-r--r-- | configurationdialog.h | 4 | ||||
-rw-r--r-- | smglobals.cpp | 9 | ||||
-rw-r--r-- | smglobals.h | 4 |
4 files changed, 93 insertions, 1 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp index 38370be..0654ea7 100644 --- a/configurationdialog.cpp +++ b/configurationdialog.cpp @@ -37,6 +37,7 @@ #include <QStandardItemModel> #include <QStandardItem> #include <QDesktopWidget> +#include <QInputDialog> #include "configurationdialog.h" #include "programconfigurator.h" @@ -165,7 +166,7 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S clearWizardLayout->addWidget(mClearNewMovieWizard); clearWizardBox->setLayout(clearWizardLayout); - //misc - assemble + //misc - assemble miscLayout->addWidget(hoverBox); miscLayout->addWidget(archiveBox); miscLayout->addWidget(autoRefreshBox); @@ -243,6 +244,32 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S QWidget *movieWidget = new QWidget; QVBoxLayout *movieWidgetLayout = new QVBoxLayout; movieWidgetLayout->addWidget(movieBox); + QGroupBox *reasonBox = new QGroupBox(tr("Reencode reasons")); + QLabel *rbl1 = new QLabel(tr("Reasons")); + mReasonsBox = new QComboBox; + QStringList reasons = SmGlobals::instance()->reencReasons(); + mReasonsBox->addItems(reasons); + QPushButton *editRBtn = new QPushButton(tr("Edit...")); + connect(editRBtn, SIGNAL(clicked()), this, SLOT(editReason())); + QPushButton *newRBtn = new QPushButton(tr("Add...")); + connect(newRBtn, SIGNAL(clicked()), this, SLOT(addReason())); + QPushButton *delRBtn = new QPushButton(tr("Delete...")); + connect(delRBtn, SIGNAL(clicked()), this, SLOT(delReason())); + QVBoxLayout *reasonL = new QVBoxLayout; + QHBoxLayout *reasonCBL = new QHBoxLayout; + reasonCBL->addWidget(rbl1); + reasonCBL->addWidget(mReasonsBox); + reasonCBL->setStretch(1, 3); + QHBoxLayout *reasonBL = new QHBoxLayout; + reasonBL->addStretch(); + reasonBL->addWidget(newRBtn); + reasonBL->addWidget(editRBtn); + reasonBL->addWidget(delRBtn); + reasonL->addLayout(reasonCBL); + reasonL->addLayout(reasonBL); + reasonBox->setLayout(reasonL); + movieWidgetLayout->addWidget(reasonBox); + movieWidgetLayout->addStretch(); movieWidget->setLayout(movieWidgetLayout); mTab->addTab(movieWidget, tr("Movies")); @@ -654,6 +681,54 @@ void ConfigurationDialog::randomGradientChanged(int state){ mPVBgColor->setEnabled(state == Qt::Unchecked); } +void ConfigurationDialog::editReason(){ + QString curReason = mReasonsBox->currentText(); + if(curReason.isEmpty()){ + return; + } + QString newReason = QInputDialog::getText(this, tr("Edit reason..."), tr("Reason"), QLineEdit::Normal, curReason); + if(!newReason.isEmpty()){ + QStringList r = SmGlobals::instance()->reencReasons(); + r.removeAll(curReason); + r.append(newReason); + SmGlobals::instance()->setReencReasons(r); + r = SmGlobals::instance()->reencReasons(); + mReasonsBox->clear(); + mReasonsBox->addItems(r); + mReasonsBox->setCurrentText(newReason); + } +} + +void ConfigurationDialog::addReason(){ + QString newReason = QInputDialog::getText(this, tr("Add reason..."), tr("Reason")); + if(!newReason.isEmpty()){ + QStringList r = SmGlobals::instance()->reencReasons(); + if(r.contains(newReason)){ + mReasonsBox->setCurrentText(newReason); + return; + } + r.append(newReason); + SmGlobals::instance()->setReencReasons(r); + mReasonsBox->clear(); + r = SmGlobals::instance()->reencReasons(); + mReasonsBox->addItems(r); + mReasonsBox->setCurrentText(newReason); + } +} + +void ConfigurationDialog::delReason(){ + QString curReason = mReasonsBox->currentText(); + QStringList r = SmGlobals::instance()->reencReasons(); + r.removeAll(curReason); + SmGlobals::instance()->setReencReasons(r); + r = SmGlobals::instance()->reencReasons(); + mReasonsBox->clear(); + mReasonsBox->addItems(r); + if(!r.isEmpty()){ + mReasonsBox->setCurrentIndex(0); + } +} + void ConfigurationDialog::setColor(QWidget *label){ QLabel *curLabel = qobject_cast<QLabel*>(label); if(!curLabel){ diff --git a/configurationdialog.h b/configurationdialog.h index 0f8c211..cedc142 100644 --- a/configurationdialog.h +++ b/configurationdialog.h @@ -38,6 +38,9 @@ class ConfigurationDialog : public SmDialog { void chooseColor(QWidget *label); void alternateColorsChanged(int); void randomGradientChanged(int); + void editReason(); + void addReason(); + void delReason(); private: void readSettings(); @@ -73,6 +76,7 @@ class ConfigurationDialog : public SmDialog { QComboBox *mIconForMeta; QComboBox *mInfoBox; QComboBox *mMapBox; + QComboBox *mReasonsBox; QCheckBox *mHoverPics; QCheckBox *mAutoAddCovers; QCheckBox *mIconizeCovers; diff --git a/smglobals.cpp b/smglobals.cpp index 5c56855..23047d1 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -163,8 +163,17 @@ SmGlobals::SmGlobals() : mPictureViewer(0), mArchiveController(0){ mFiletypeMap.insert(FT_BACKCOVER, tr("Back Cover")); mFiletypeMap.insert(FT_GENERALCOVER, tr("General Cover")); mFiletypeMap.insert(FT_ORIGIN, tr("Origin")); + QSettings s; + mReencReasons = s.value("ui/reasons").toStringList(); } void SmGlobals::registerWidget(const QString &name, QWidget *w){ mWidgets.insert(name, w); } + +void SmGlobals::setReencReasons(const QStringList reasons){ + mReencReasons = reasons; + qSort(mReencReasons); + QSettings s; + s.setValue("ui/reasons", mReencReasons); +} diff --git a/smglobals.h b/smglobals.h index a674203..7cc332f 100644 --- a/smglobals.h +++ b/smglobals.h @@ -11,6 +11,7 @@ #include <QObject> #include <QHash> #include <QSize> +#include <QStringList> class QAbstractItemModel; class PictureViewer2; @@ -43,6 +44,8 @@ class SmGlobals : public QObject { QHash<int, QString> filetypeMap() const { return mFiletypeMap; } QHash<QString, QWidget*> registeredWidgets() { return mWidgets; } void registerWidget(const QString &name, QWidget *w); + QStringList reencReasons() const { return mReencReasons; } + void setReencReasons(const QStringList reasons); private: SmGlobals(); @@ -57,6 +60,7 @@ class SmGlobals : public QObject { ArchiveController *mArchiveController; QHash<int, QString> mFiletypeMap; QHash<QString, QWidget*> mWidgets; + QStringList mReencReasons; }; #endif |