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, ®ardless 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¶te 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