From b6a636cf8a75de2d74be7a80f0c4111f742d7488 Mon Sep 17 00:00:00 2001 From: Martchus Date: Mon, 4 Apr 2016 14:51:14 +0200 Subject: [PATCH] use new settings dialog API --- gui/editorautocorrectionoptionpage.ui | 2 +- gui/editordbqueryoptionpage.ui | 13 +- gui/editorfieldsoptionpage.ui | 2 +- gui/editorgeneraloptionpage.ui | 18 ++- gui/editortempoptionpage.ui | 2 +- gui/filebrowsergeneraloptionpage.ui | 2 +- gui/filelayout.ui | 12 +- gui/id3v1optionpage.ui | 16 ++- gui/id3v2optionpage.ui | 4 +- gui/infooptionpage.ui | 2 +- gui/settingsdialog.cpp | 113 +++++---------- gui/settingsdialog.h | 196 +++----------------------- gui/tagprocessinggeneraloptionpage.ui | 22 ++- 13 files changed, 121 insertions(+), 283 deletions(-) diff --git a/gui/editorautocorrectionoptionpage.ui b/gui/editorautocorrectionoptionpage.ui index 708619c..e8c9f9f 100644 --- a/gui/editorautocorrectionoptionpage.ui +++ b/gui/editorautocorrectionoptionpage.ui @@ -11,7 +11,7 @@ - General options page + Auto correction QGroupBox { font-weight: bold }; diff --git a/gui/editordbqueryoptionpage.ui b/gui/editordbqueryoptionpage.ui index 1aba7b1..1559757 100644 --- a/gui/editordbqueryoptionpage.ui +++ b/gui/editordbqueryoptionpage.ui @@ -2,8 +2,16 @@ QtGui::EditorDbQueryOptionsPage + + + 0 + 0 + 222 + 74 + + - General options page + MusicBrainz QGroupBox { font-weight: bold }; @@ -48,7 +56,4 @@ - - - diff --git a/gui/editorfieldsoptionpage.ui b/gui/editorfieldsoptionpage.ui index 48b7aea..c614d02 100644 --- a/gui/editorfieldsoptionpage.ui +++ b/gui/editorfieldsoptionpage.ui @@ -11,7 +11,7 @@ - Form + Fields diff --git a/gui/editorgeneraloptionpage.ui b/gui/editorgeneraloptionpage.ui index 9f2a990..54da5ab 100644 --- a/gui/editorgeneraloptionpage.ui +++ b/gui/editorgeneraloptionpage.ui @@ -2,8 +2,16 @@ QtGui::EditorGeneralOptionPage + + + 0 + 0 + 468 + 374 + + - General options page + General QGroupBox { font-weight: bold }; @@ -28,7 +36,7 @@ - Yes, but only if both files are in the same directory + Yes, but only if both files are in the sa&me directory usageButtonGroup @@ -38,7 +46,7 @@ - Yes, regardless where the files are stored + Yes, &regardless where the files are stored usageButtonGroup @@ -57,14 +65,14 @@ - Use one editor for tags with the same target + Use one editor for ta&gs with the same target - Use always separate editors + Use always se&parate editors diff --git a/gui/editortempoptionpage.ui b/gui/editortempoptionpage.ui index 095b322..5c6e4b8 100644 --- a/gui/editortempoptionpage.ui +++ b/gui/editortempoptionpage.ui @@ -11,7 +11,7 @@ - Form + Temp files diff --git a/gui/filebrowsergeneraloptionpage.ui b/gui/filebrowsergeneraloptionpage.ui index 160f08e..fab3d44 100644 --- a/gui/filebrowsergeneraloptionpage.ui +++ b/gui/filebrowsergeneraloptionpage.ui @@ -11,7 +11,7 @@ - General options page + General QGroupBox { font-weight: bold }; diff --git a/gui/filelayout.ui b/gui/filelayout.ui index b78420d..e5adae7 100644 --- a/gui/filelayout.ui +++ b/gui/filelayout.ui @@ -2,6 +2,14 @@ QtGui::FileLayoutPage + + + 0 + 0 + 315 + 544 + + 0 @@ -9,7 +17,7 @@ - Form + File layout QGroupBox { font-weight: bold }; @@ -181,7 +189,7 @@ another position would prevent rewriting the entire file - befo&re (media) data / at the beginning of the file + before (media) data / at the be&ginning of the file diff --git a/gui/id3v1optionpage.ui b/gui/id3v1optionpage.ui index 01fa87a..ec66457 100644 --- a/gui/id3v1optionpage.ui +++ b/gui/id3v1optionpage.ui @@ -2,8 +2,16 @@ QtGui::Id3v1OptionPage + + + 0 + 0 + 357 + 168 + + - ID3v1 options page + ID3v1 QGroupBox { font-weight: bold }; @@ -18,7 +26,7 @@ - Always create an ID3v1 tag + Always &create an ID3v1 tag usageButtonGroup @@ -28,7 +36,7 @@ - Keep and update existing ID3v1 tag (but don't create a new one) + Kee&p and update existing ID3v1 tag (but don't create a new one) usageButtonGroup @@ -38,7 +46,7 @@ - Remove existing ID3v1 tag + &Remove existing ID3v1 tag usageButtonGroup diff --git a/gui/id3v2optionpage.ui b/gui/id3v2optionpage.ui index 2a01724..3d3b282 100644 --- a/gui/id3v2optionpage.ui +++ b/gui/id3v2optionpage.ui @@ -11,7 +11,7 @@ - ID3v2 options page + ID3v2 QGroupBox { font-weight: bold }; @@ -150,7 +150,7 @@ - + diff --git a/gui/infooptionpage.ui b/gui/infooptionpage.ui index 94f77bb..c93a663 100644 --- a/gui/infooptionpage.ui +++ b/gui/infooptionpage.ui @@ -11,7 +11,7 @@ - Info options page + File info QGroupBox { font-weight: bold }; diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp index 1150c3a..bb4a397 100644 --- a/gui/settingsdialog.cpp +++ b/gui/settingsdialog.cpp @@ -9,6 +9,7 @@ #include #include +#include #include @@ -22,17 +23,13 @@ using namespace Media; namespace QtGui { // FileBrowserGeneralOptionPage -FileBrowserGeneralOptionPage::FileBrowserGeneralOptionPage() +FileBrowserGeneralOptionPage::FileBrowserGeneralOptionPage(QWidget *parentWidget) : + FileBrowserGeneralOptionPageBase(parentWidget) {} FileBrowserGeneralOptionPage::~FileBrowserGeneralOptionPage() {} -QString FileBrowserGeneralOptionPage::displayName() const -{ - return QApplication::translate("QtGui::FileBrowserGeneralOptionPage", "General"); -} - bool FileBrowserGeneralOptionPage::apply() { if(hasBeenShown()) { @@ -51,17 +48,13 @@ void FileBrowserGeneralOptionPage::reset() } // EditorGeneralOptionPage -EditorGeneralOptionPage::EditorGeneralOptionPage() +EditorGeneralOptionPage::EditorGeneralOptionPage(QWidget *parentWidget) : + EditorGeneralOptionPageBase(parentWidget) {} EditorGeneralOptionPage::~EditorGeneralOptionPage() {} -QString EditorGeneralOptionPage::displayName() const -{ - return QApplication::translate("QtGui::EditorGeneralOptionPage", "General"); -} - bool EditorGeneralOptionPage::apply() { if(hasBeenShown()) { @@ -114,17 +107,12 @@ void EditorGeneralOptionPage::reset() // EditorTempOptionPage EditorTempOptionPage::EditorTempOptionPage(QWidget *parentWindow) : - UiFileBasedOptionPage(parentWindow) + EditorTempOptionPageBase(parentWindow) {} EditorTempOptionPage::~EditorTempOptionPage() {} -QString EditorTempOptionPage::displayName() const -{ - return QApplication::translate("QtGui::EditorTempOptionPage", "Temp files"); -} - bool EditorTempOptionPage::apply() { if(hasBeenShown()) { @@ -142,7 +130,7 @@ void EditorTempOptionPage::reset() QWidget *EditorTempOptionPage::setupWidget() { - auto *widget = UiFileBasedOptionPage::setupWidget(); + auto *widget = EditorTempOptionPageBase::setupWidget(); QObject::connect(ui()->selectPushButton, &QPushButton::clicked, std::bind(&EditorTempOptionPage::showDirectorySelection, this)); ui()->notificationLabel->setText(QApplication::tr("Currently this directory must be on the same partition as the files you want to edit.")); ui()->notificationLabel->setNotificationType(NotificationType::Information); @@ -162,18 +150,13 @@ void EditorTempOptionPage::showDirectorySelection() } // EditorFieldsOptionPage -EditorFieldsOptionPage::EditorFieldsOptionPage() : +EditorFieldsOptionPage::EditorFieldsOptionPage(QWidget *parentWidget) : m_model(nullptr) {} EditorFieldsOptionPage::~EditorFieldsOptionPage() {} -QString EditorFieldsOptionPage::displayName() const -{ - return QApplication::translate("QtGui::EditorFieldsOptionPage", "Fields"); -} - bool EditorFieldsOptionPage::apply() { if(hasBeenShown() && m_model) { @@ -191,7 +174,7 @@ void EditorFieldsOptionPage::reset() QWidget *EditorFieldsOptionPage::setupWidget() { - auto *w = UiFileBasedOptionPage::setupWidget(); + auto *w = EditorFieldsOptionPageBase::setupWidget(); if(!m_model) { m_model = new KnownFieldModel(w); } @@ -200,18 +183,14 @@ QWidget *EditorFieldsOptionPage::setupWidget() } // EditorAutoCorrectionOptionPage -EditorAutoCorrectionOptionPage::EditorAutoCorrectionOptionPage() : +EditorAutoCorrectionOptionPage::EditorAutoCorrectionOptionPage(QWidget *parentWidget) : + EditorAutoCorrectionOptionPageBase(parentWidget), m_model(nullptr) {} EditorAutoCorrectionOptionPage::~EditorAutoCorrectionOptionPage() {} -QString EditorAutoCorrectionOptionPage::displayName() const -{ - return QApplication::translate("QtGui::EditorAutoCorrectionOptionPage", "Auto correction/completion"); -} - bool EditorAutoCorrectionOptionPage::apply() { if(hasBeenShown()) { @@ -241,7 +220,7 @@ void EditorAutoCorrectionOptionPage::reset() QWidget *EditorAutoCorrectionOptionPage::setupWidget() { - auto *w = UiFileBasedOptionPage::setupWidget(); + auto *w = EditorAutoCorrectionOptionPageBase::setupWidget(); if(!m_model) { m_model = new KnownFieldModel(w); } @@ -250,17 +229,13 @@ QWidget *EditorAutoCorrectionOptionPage::setupWidget() } // EditorDbQueryOptionsPage -EditorDbQueryOptionsPage::EditorDbQueryOptionsPage() +EditorDbQueryOptionsPage::EditorDbQueryOptionsPage(QWidget *parentWidget) : + EditorDbQueryOptionsPageBase(parentWidget) {} EditorDbQueryOptionsPage::~EditorDbQueryOptionsPage() {} -QString EditorDbQueryOptionsPage::displayName() const -{ - return QApplication::translate("QtGui::EditorDbQueryOptionsPage", "Database queries"); -} - bool EditorDbQueryOptionsPage::apply() { if(hasBeenShown()) { @@ -279,17 +254,13 @@ void EditorDbQueryOptionsPage::reset() } // InfoOptionPage -InfoOptionPage::InfoOptionPage() +InfoOptionPage::InfoOptionPage(QWidget *parentWidget) : + InfoOptionPageBase(parentWidget) {} InfoOptionPage::~InfoOptionPage() {} -QString InfoOptionPage::displayName() const -{ - return QApplication::translate("QtGui::InfoOptionPage", "Info"); -} - bool InfoOptionPage::apply() { if(hasBeenShown()) { @@ -306,17 +277,13 @@ void InfoOptionPage::reset() } // TagProcessingGeneralOptionPage -TagProcessingGeneralOptionPage::TagProcessingGeneralOptionPage() +TagProcessingGeneralOptionPage::TagProcessingGeneralOptionPage(QWidget *parentWidget) : + TagProcessingGeneralOptionPageBase(parentWidget) {} TagProcessingGeneralOptionPage::~TagProcessingGeneralOptionPage() {} -QString TagProcessingGeneralOptionPage::displayName() const -{ - return QApplication::translate("QtGui::TagProcessingGeneralOptionPage", "General"); -} - bool TagProcessingGeneralOptionPage::apply() { if(hasBeenShown()) { @@ -375,17 +342,13 @@ void TagProcessingGeneralOptionPage::reset() } // Id3v1OptionPage -Id3v1OptionPage::Id3v1OptionPage() +Id3v1OptionPage::Id3v1OptionPage(QWidget *parentWidget) : + Id3v1OptionPageBase(parentWidget) {} Id3v1OptionPage::~Id3v1OptionPage() {} -QString Id3v1OptionPage::displayName() const -{ - return QApplication::translate("QtGui::Id3v1OptionPage", "ID3v1"); -} - bool Id3v1OptionPage::apply() { if(hasBeenShown()) { @@ -418,17 +381,13 @@ void Id3v1OptionPage::reset() } // Id3v2OptionPage -Id3v2OptionPage::Id3v2OptionPage() +Id3v2OptionPage::Id3v2OptionPage(QWidget *parentWidget) : + Id3v2OptionPageBase(parentWidget) {} Id3v2OptionPage::~Id3v2OptionPage() {} -QString Id3v2OptionPage::displayName() const -{ - return QApplication::translate("QtGui::Id3v2OptionPage", "ID3v2"); -} - bool Id3v2OptionPage::apply() { if(hasBeenShown()) { @@ -487,26 +446,28 @@ void Id3v2OptionPage::reset() } // FileLayoutPage -FileLayoutPage::FileLayoutPage() +FileLayoutPage::FileLayoutPage(QWidget *parentWidget) : + FileLayoutPageBase(parentWidget) {} FileLayoutPage::~FileLayoutPage() {} -QString FileLayoutPage::displayName() const -{ - return QApplication::translate("QtGui::FileLayoutPage", "File layout"); -} - bool FileLayoutPage::apply() { + // error handling + errors().clear(); + bool ok = true; + if(hasBeenShown()) { Settings::forceRewrite() = ui()->forceRewriteCheckBox->isChecked(); if(ui()->minPaddingSpinBox->value() > ui()->maxPaddingSpinBox->value()) { - return false; + errors() << QCoreApplication::translate("QtGui::FileLayoutPage", "Minimum padding must be less or equal than maximum padding."); + ok = false; + } else { + Settings::maxPadding() = static_cast(ui()->maxPaddingSpinBox->value()); + Settings::minPadding() = static_cast(ui()->minPaddingSpinBox->value()); } - Settings::maxPadding() = static_cast(ui()->maxPaddingSpinBox->value()); - Settings::minPadding() = static_cast(ui()->minPaddingSpinBox->value()); Settings::preferredPadding() = static_cast(ui()->preferredPaddingSpinBox->value()); if(ui()->tagPosBeforeDataRadioButton->isChecked()) { preferredTagPosition() = ElementPosition::BeforeData; @@ -525,7 +486,7 @@ bool FileLayoutPage::apply() } forceIndexPosition() = ui()->indexPosForceCheckBox->isChecked(); } - return true; + return ok; } void FileLayoutPage::reset() @@ -564,7 +525,7 @@ void FileLayoutPage::reset() QWidget *FileLayoutPage::setupWidget() { - auto *widget = Dialogs::UiFileBasedOptionPage::setupWidget(); + auto *widget = FileLayoutPageBase::setupWidget(); ui()->preferredTagPosLabel->setNotificationType(NotificationType::Warning); ui()->preferredTagPosLabel->setText(QApplication::translate("QtGui::FileLayoutPage", "These options might be ignored if not supported by either the format or the implementation.")); QObject::connect(ui()->minPaddingSpinBox, static_cast(&QSpinBox::valueChanged), ui()->maxPaddingSpinBox, &QSpinBox::setMinimum); @@ -607,6 +568,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) : category->setIcon(QIcon::fromTheme(QStringLiteral("view-list-tree"), QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/system-file-manager.png")))); category->assignPages(QList() << new FileBrowserGeneralOptionPage); categories << category; + + categories << Dialogs::qtOptionCategory(this); + categoryModel()->setCategories(categories); setMinimumSize(800, 450); @@ -616,5 +580,4 @@ SettingsDialog::SettingsDialog(QWidget *parent) : SettingsDialog::~SettingsDialog() {} - } diff --git a/gui/settingsdialog.h b/gui/settingsdialog.h index cc85c8d..44ec46c 100644 --- a/gui/settingsdialog.h +++ b/gui/settingsdialog.h @@ -24,197 +24,36 @@ class KnownFieldModel; namespace QtGui { -// FileBrowserGeneralOptionPage -namespace Ui { -class FileBrowserGeneralOptionPage; -} +DECLARE_UI_FILE_BASED_OPTION_PAGE(FileBrowserGeneralOptionPage) -class FileBrowserGeneralOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit FileBrowserGeneralOptionPage(); - ~FileBrowserGeneralOptionPage(); +DECLARE_UI_FILE_BASED_OPTION_PAGE(EditorGeneralOptionPage) - QString displayName() const; - bool apply(); - void reset(); -}; - -// EditorGeneralOptionPage -namespace Ui { -class EditorGeneralOptionPage; -} - -class EditorGeneralOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit EditorGeneralOptionPage(); - ~EditorGeneralOptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -}; - -// EditorTempOptionPage -namespace Ui { -class EditorTempOptionPage; -} - -class EditorTempOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit EditorTempOptionPage(QWidget *parentWindow); - ~EditorTempOptionPage(); - - QString displayName() const; - bool apply(); - void reset(); - -protected: - QWidget *setupWidget(); - -private: +BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(EditorTempOptionPage) + DECLARE_SETUP_WIDGETS void showDirectorySelection(); -}; +END_DECLARE_OPTION_PAGE -// EditorFieldsOptionPage -namespace Ui { -class EditorFieldsOptionPage; -} - -class EditorFieldsOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit EditorFieldsOptionPage(); - ~EditorFieldsOptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -private: - QWidget *setupWidget(); +BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(EditorFieldsOptionPage) + DECLARE_SETUP_WIDGETS Settings::KnownFieldModel *m_model; -}; +END_DECLARE_OPTION_PAGE -// EditorAutoCorrectionOptionPage -namespace Ui { -class EditorAutoCorrectionOptionPage; -} - -class EditorAutoCorrectionOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit EditorAutoCorrectionOptionPage(); - ~EditorAutoCorrectionOptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -private: - QWidget *setupWidget(); +BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(EditorAutoCorrectionOptionPage) + DECLARE_SETUP_WIDGETS Settings::KnownFieldModel *m_model; -}; +END_DECLARE_OPTION_PAGE -// EditorDbQueryOptionPage -namespace Ui { -class EditorDbQueryOptionsPage; -} +DECLARE_UI_FILE_BASED_OPTION_PAGE(EditorDbQueryOptionsPage) -class EditorDbQueryOptionsPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit EditorDbQueryOptionsPage(); - ~EditorDbQueryOptionsPage(); +DECLARE_UI_FILE_BASED_OPTION_PAGE(InfoOptionPage) - QString displayName() const; - bool apply(); - void reset(); -}; +DECLARE_UI_FILE_BASED_OPTION_PAGE(TagProcessingGeneralOptionPage) -// EditorInfoOptionPage -namespace Ui { -class InfoOptionPage; -} +DECLARE_UI_FILE_BASED_OPTION_PAGE(Id3v1OptionPage) -class InfoOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit InfoOptionPage(); - ~InfoOptionPage(); +DECLARE_UI_FILE_BASED_OPTION_PAGE(Id3v2OptionPage) - QString displayName() const; - bool apply(); - void reset(); -}; - - -// TagProcessingGeneralOptionPage -namespace Ui { -class TagProcessingGeneralOptionPage; -} - -class TagProcessingGeneralOptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit TagProcessingGeneralOptionPage(); - ~TagProcessingGeneralOptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -}; - -// Id3v1OptionPage -namespace Ui { -class Id3v1OptionPage; -} - -class Id3v1OptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit Id3v1OptionPage(); - ~Id3v1OptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -}; - -// Id3v2OptionPage -namespace Ui { -class Id3v2OptionPage; -} - -class Id3v2OptionPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit Id3v2OptionPage(); - ~Id3v2OptionPage(); - - QString displayName() const; - bool apply(); - void reset(); -}; - -// FileLayoutPage -namespace Ui { -class FileLayoutPage; -} - -class FileLayoutPage : public Dialogs::UiFileBasedOptionPage -{ -public: - explicit FileLayoutPage(); - ~FileLayoutPage(); - - QString displayName() const; - bool apply(); - void reset(); - -private: - QWidget *setupWidget(); -}; +DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_SETUP(FileLayoutPage) class SettingsDialog : public Dialogs::SettingsDialog { @@ -222,7 +61,6 @@ class SettingsDialog : public Dialogs::SettingsDialog public: explicit SettingsDialog(QWidget *parent = nullptr); ~SettingsDialog(); - }; } diff --git a/gui/tagprocessinggeneraloptionpage.ui b/gui/tagprocessinggeneraloptionpage.ui index 235414c..c56f421 100644 --- a/gui/tagprocessinggeneraloptionpage.ui +++ b/gui/tagprocessinggeneraloptionpage.ui @@ -2,8 +2,16 @@ QtGui::TagProcessingGeneralOptionPage + + + 0 + 0 + 361 + 398 + + - General options page + General QGroupBox { font-weight: bold }; @@ -18,7 +26,7 @@ - no preference (most appropriate encoding will be used) + &no preference (most appropriate encoding will be used) preferredTextEncodingButtonGroup @@ -28,7 +36,7 @@ - ISO 8859-1/Latin-1 + ISO &8859-1/Latin-1 preferredTextEncodingButtonGroup @@ -48,7 +56,7 @@ - UTF-16 Little Endian + UTF-&16 Little Endian preferredTextEncodingButtonGroup @@ -58,7 +66,7 @@ - UTF-16 Big Endian + UTF-1&6 Big Endian @@ -74,7 +82,7 @@ - Ignore them but keep them when saving + Ignore &them but keep them when saving unsupportedButtonGroup @@ -84,7 +92,7 @@ - Discard them when saving + Dis&card them when saving unsupportedButtonGroup