summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-10-01 06:08:32 +0200
committerArno <arno@disconnect.de>2016-10-01 06:08:32 +0200
commitb56947a5ec754019feb7ff37868f8c8eb6c39146 (patch)
tree45635e6dce4b88ac0975ad87ab08d305943bc140
parentb4e40837f016849910851aa3cf688e2c4382e7cd (diff)
downloadSheMov-b56947a5ec754019feb7ff37868f8c8eb6c39146.tar.gz
SheMov-b56947a5ec754019feb7ff37868f8c8eb6c39146.tar.bz2
SheMov-b56947a5ec754019feb7ff37868f8c8eb6c39146.zip
Configure reencode reasons
Next: make it available in new movies dialog.
-rw-r--r--configurationdialog.cpp77
-rw-r--r--configurationdialog.h4
-rw-r--r--smglobals.cpp9
-rw-r--r--smglobals.h4
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