From 25502d903e91fc76915e9182cf6558d5afe80c98 Mon Sep 17 00:00:00 2001 From: Rafael Date: Tue, 26 Apr 2016 14:59:14 +0200 Subject: [PATCH] Picture Settings added --- ExportDialog.ui | 7 +- OptionsDialog.cpp | 93 ++++++++++++++++++++++- OptionsDialog.h | 10 +++ OptionsDialog.ui | 188 +++++++++++++++++++++++++++++++++++++++++++++- PictureDialog.cpp | 1 + 5 files changed, 294 insertions(+), 5 deletions(-) diff --git a/ExportDialog.ui b/ExportDialog.ui index f8c0ada..5203583 100755 --- a/ExportDialog.ui +++ b/ExportDialog.ui @@ -39,7 +39,7 @@ - Format + Export Format @@ -62,7 +62,7 @@ - Resolution + Export Size @@ -90,6 +90,9 @@ + + false + Custom Size: diff --git a/OptionsDialog.cpp b/OptionsDialog.cpp index dcb943d..1292641 100755 --- a/OptionsDialog.cpp +++ b/OptionsDialog.cpp @@ -20,6 +20,8 @@ #include "ui_OptionsDialog.h" #include "AppEnv.h" #include "config.h" +#include +#include #include #include #include @@ -34,13 +36,27 @@ OptionsDialog::OptionsDialog(ProfileDatabase *profileDB, QWidget *parent) : { ui->setupUi(this); ui->tabWidget->setCurrentIndex(0); + + QRect desktopResolution = QApplication::desktop()->screenGeometry(); + int desktopSizeWidth = desktopResolution.width(); + int desktopSizeHeight = desktopResolution.height(); + defExportSize = QSize(960, 536); + cusExportSize = defExportSize; + defaultQuality = 100; + customQuality = 100; contentMode = 0; settings = new QSettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); + percentString = ui->labPicQuality->text(); + ui->labPicQuality->setText(percentString.arg(QString::number(defaultQuality))); + ui->rbPicDesktopRes->setText(ui->rbPicDesktopRes->text().arg(QString::number(desktopSizeWidth), QString::number(desktopSizeHeight))); + ui->rbPicDefaultRes->setText(ui->rbPicDefaultRes->text().arg(QString::number(defExportSize.width()), QString::number(defExportSize.height()))); + setupTreeWidget(); setupLanguageBox(); setupRadioButtons(); setupDefaultProfile(); + setupPictureSettings(); } OptionsDialog::~OptionsDialog() @@ -85,7 +101,7 @@ void OptionsDialog::setupLanguageBox() if (langList.length() > 0) { QString cbSysStr = tr("%1 (%2 if available)", "System like PC System = %1, System Language like Deutsch = %2").arg(tr("System", - "System like PC System"), QLocale::languageToString(QLocale(langList.at(0)).language())); + "System like PC System"), QLocale::languageToString(QLocale(langList.at(0)).language())); ui->cbLanguage->addItem(cbSysStr, "System"); } @@ -198,6 +214,25 @@ void OptionsDialog::applySettings() #endif settings->endGroup(); + settings->beginGroup("Pictures"); + if (ui->cbPicCustomQuality->isChecked()) + { + settings->setValue("CustomQuality", ui->hsPicQuality->value()); + } + settings->setValue("CustomQualityEnabled", ui->cbPicCustomQuality->isChecked()); + QString sizeMode = "Default"; + if (ui->rbPicDesktopRes->isChecked()) + { + sizeMode = "Desktop"; + } + else if (ui->rbPicCustomRes->isChecked()) + { + sizeMode = "Custom"; + settings->setValue("CustomSize", QSize(ui->sbPicExportWidth->value(), ui->sbPicExportHeight->value())); + } + settings->setValue("ExportSizeMode", sizeMode); + settings->endGroup(); + #if QT_VERSION >= 0x050000 emit settingsApplied(newContentMode, ui->cbLanguage->currentData().toString()); #else @@ -241,3 +276,59 @@ void OptionsDialog::commitProfiles(QStringList profiles) } } } + +void OptionsDialog::on_rbPicCustomRes_toggled(bool checked) +{ + ui->labPicCustomRes->setEnabled(checked); + ui->sbPicExportWidth->setEnabled(checked); + ui->sbPicExportHeight->setEnabled(checked); + ui->labPicXDescription->setEnabled(checked); +} + +void OptionsDialog::on_cbPicCustomQuality_toggled(bool checked) +{ + ui->hsPicQuality->setEnabled(checked); + ui->labPicQuality->setEnabled(checked); + ui->labPicQualityDescription->setEnabled(checked); +} + +void OptionsDialog::on_hsPicQuality_valueChanged(int value) +{ + customQuality = value; + ui->labPicQuality->setText(percentString.arg(QString::number(value))); +} + +void OptionsDialog::setupPictureSettings() +{ + settings->beginGroup("Pictures"); + + // Quality Settings + customQuality = settings->value("CustomQuality", defaultQuality).toInt(); + if (customQuality < 1 || customQuality > 100) + { + customQuality = 100; + } + ui->hsPicQuality->setValue(customQuality); + ui->cbPicCustomQuality->setChecked(settings->value("CustomQualityEnabled", false).toBool()); + + // Size Settings + cusExportSize = settings->value("CustomSize", defExportSize).toSize(); + ui->sbPicExportWidth->setValue(cusExportSize.width()); + ui->sbPicExportHeight->setValue(cusExportSize.height()); + + QString sizeMode = settings->value("ExportSizeMode", "Default").toString(); + if (sizeMode == "Desktop") + { + ui->rbPicDesktopRes->setChecked(true); + } + else if (sizeMode == "Custom") + { + ui->rbPicCustomRes->setChecked(true); + } + else + { + ui->rbPicDefaultRes->setChecked(true); + } + + settings->endGroup(); +} diff --git a/OptionsDialog.h b/OptionsDialog.h index ea9d101..1a2cedc 100755 --- a/OptionsDialog.h +++ b/OptionsDialog.h @@ -19,6 +19,7 @@ #ifndef OPTIONSDIALOG_H #define OPTIONSDIALOG_H +#include #include #include #include @@ -40,6 +41,9 @@ public: private slots: void on_cmdOK_clicked(); + void on_rbPicCustomRes_toggled(bool checked); + void on_cbPicCustomQuality_toggled(bool checked); + void on_hsPicQuality_valueChanged(int value); signals: void settingsApplied(int contentMode, QString language); @@ -50,12 +54,18 @@ private: QList playerItems; QString currentLanguage; QString defaultProfile; + QString percentString; QSettings *settings; int contentMode; + int customQuality; + int defaultQuality; + QSize defExportSize; + QSize cusExportSize; void setupTreeWidget(); void setupLanguageBox(); void setupRadioButtons(); void setupDefaultProfile(); + void setupPictureSettings(); void applySettings(); }; diff --git a/OptionsDialog.ui b/OptionsDialog.ui index 9b7487d..a1bff67 100755 --- a/OptionsDialog.ui +++ b/OptionsDialog.ui @@ -6,8 +6,8 @@ 0 0 - 400 - 350 + 435 + 375 @@ -87,6 +87,190 @@ + + + Pictures + + + + + + Export Size + + + + + + Default Size: %1x%2 + + + true + + + + + + + Desktop Size: %1x%2 + + + + + + + Custom Size + + + + + + + + + false + + + Custom Size: + + + + + + + false + + + 1 + + + 3840 + + + 960 + + + + + + + false + + + x + + + + + + + false + + + 1 + + + 2160 + + + 536 + + + + + + + Qt::Horizontal + + + + 0 + 0 + + + + + + + + + + + + + Export Quality + + + + + + Enable Custom Quality + + + + + + + + + false + + + Quality: + + + + + + + false + + + 1 + + + 100 + + + 100 + + + Qt::Horizontal + + + + + + + false + + + %1% + + + true + + + + + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + Players diff --git a/PictureDialog.cpp b/PictureDialog.cpp index 52ee906..f94cb0d 100755 --- a/PictureDialog.cpp +++ b/PictureDialog.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include