updated file layout settings page

This commit is contained in:
Martchus 2015-11-26 19:25:59 +01:00
parent 0dae49bd03
commit 2b1621fd0f
3 changed files with 103 additions and 25 deletions

View File

@ -2,13 +2,11 @@
<ui version="4.0">
<class>QtGui::FileLayoutPage</class>
<widget class="QWidget" name="QtGui::FileLayoutPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>325</width>
<height>311</height>
</rect>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
@ -17,6 +15,13 @@
<string notr="true">QGroupBox { font-weight: bold };</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="forceRewriteCheckBox">
<property name="text">
<string>force rewrite when applying changes</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
@ -133,23 +138,30 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QRadioButton" name="beforeDataRadioButton">
<widget class="QRadioButton" name="tagPosBeforeDataRadioButton">
<property name="text">
<string>befo&amp;re (media) data / at the beginning of the file</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="afterDataRadioButton">
<widget class="QRadioButton" name="tagPosAfterDataRadioButton">
<property name="text">
<string>after (&amp;media) data / at the end of the file</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="forcePositionCheckBox">
<widget class="QRadioButton" name="tagPosKeepRadioButton">
<property name="text">
<string>Use preferred position event if putting the tags at
<string>keep &amp;previous position</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="tagPosForceCheckBox">
<property name="text">
<string>Use preferred position even if putting the tags at
another position would prevent rewriting the entire file</string>
</property>
</widget>
@ -160,6 +172,44 @@ another position would prevent rewriting the entire file</string>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="indexPositionGroupBox">
<property name="title">
<string>Index position</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QRadioButton" name="indexPosBeforeDataRadioButton">
<property name="text">
<string>befo&amp;re (media) data / at the beginning of the file</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="indexPosAfterDataRadioButton">
<property name="text">
<string>after (&amp;media) data / at the end of the file</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="indexPosKeepRadioButton">
<property name="text">
<string>keep &amp;previous position</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="indexPosForceCheckBox">
<property name="text">
<string>Use preferred position even if putting the tags at
another position would prevent rewriting the entire file</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="NotificationLabel" name="preferredTagPosLabel" native="true"/>
</item>

View File

@ -470,18 +470,29 @@ QString FileLayoutPage::displayName() const
bool FileLayoutPage::apply()
{
if(hasBeenShown()) {
Settings::forceRewrite() = ui()->forceRewriteCheckBox->isChecked();
if(ui()->minPaddingSpinBox->value() > ui()->maxPaddingSpinBox->value()) {
return false;
}
Settings::maxPadding() = static_cast<size_t>(ui()->maxPaddingSpinBox->value());
Settings::minPadding() = static_cast<size_t>(ui()->minPaddingSpinBox->value());
Settings::preferredPadding() = static_cast<size_t>(ui()->preferredPaddingSpinBox->value());
if(ui()->beforeDataRadioButton->isChecked()) {
preferredTagPosition() = TagPosition::BeforeData;
} else if(ui()->afterDataRadioButton->isChecked()) {
preferredTagPosition() = TagPosition::AfterData;
if(ui()->tagPosBeforeDataRadioButton->isChecked()) {
preferredTagPosition() = ElementPosition::BeforeData;
} else if(ui()->tagPosAfterDataRadioButton->isChecked()) {
preferredTagPosition() = ElementPosition::AfterData;
} else if(ui()->tagPosKeepRadioButton->isChecked()) {
preferredTagPosition() = ElementPosition::Keep;
}
forceTagPosition() = ui()->forcePositionCheckBox->isChecked();
forceTagPosition() = ui()->tagPosForceCheckBox->isChecked();
if(ui()->indexPosBeforeDataRadioButton->isChecked()) {
preferredIndexPosition() = ElementPosition::BeforeData;
} else if(ui()->indexPosAfterDataRadioButton->isChecked()) {
preferredIndexPosition() = ElementPosition::AfterData;
} else if(ui()->indexPosKeepRadioButton->isChecked()) {
preferredIndexPosition() = ElementPosition::Keep;
}
forceIndexPosition() = ui()->indexPosForceCheckBox->isChecked();
}
return true;
}
@ -489,18 +500,34 @@ bool FileLayoutPage::apply()
void FileLayoutPage::reset()
{
if(hasBeenShown()) {
ui()->forceRewriteCheckBox->setChecked(Settings::forceRewrite());
ui()->maxPaddingSpinBox->setValue(static_cast<int>(Settings::maxPadding()));
ui()->minPaddingSpinBox->setValue(static_cast<int>(Settings::minPadding()));
ui()->preferredPaddingSpinBox->setValue(static_cast<int>(Settings::preferredPadding()));
switch(preferredTagPosition()) {
case TagPosition::BeforeData:
ui()->beforeDataRadioButton->setChecked(true);
case ElementPosition::BeforeData:
ui()->tagPosBeforeDataRadioButton->setChecked(true);
break;
case TagPosition::AfterData:
ui()->afterDataRadioButton->setChecked(true);
case ElementPosition::AfterData:
ui()->tagPosAfterDataRadioButton->setChecked(true);
break;
case ElementPosition::Keep:
ui()->tagPosKeepRadioButton->setChecked(true);
break;
}
ui()->forcePositionCheckBox->setChecked(forceTagPosition());
ui()->tagPosForceCheckBox->setChecked(forceTagPosition());
switch(preferredIndexPosition()) {
case ElementPosition::BeforeData:
ui()->indexPosBeforeDataRadioButton->setChecked(true);
break;
case ElementPosition::AfterData:
ui()->indexPosAfterDataRadioButton->setChecked(true);
break;
case ElementPosition::Keep:
ui()->indexPosKeepRadioButton->setChecked(true);
break;
}
ui()->indexPosForceCheckBox->setChecked(forceIndexPosition());
}
}
@ -533,12 +560,12 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
category->assignPages(QList<Dialogs::OptionPage *>()
<< new TagProcessingGeneralOptionPage <<
new Id3v1OptionPage << new Id3v2OptionPage << new FileLayoutPage);
category->setIcon(QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/tag.png")));
category->setIcon(QIcon::fromTheme(QStringLiteral("tag"), QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/tag.png"))));
categories << category;
category = new Dialogs::OptionCategory(this);
category->setDisplayName(tr("Editor"));
category->setIcon(QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/key-enter.png")));
category->setIcon(QIcon::fromTheme(QStringLiteral("document-edit"), QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/key-enter.png"))));
category->assignPages(QList<Dialogs::OptionPage *>()
<< new EditorGeneralOptionPage << new EditorTempOptionPage(this) << new EditorFieldsOptionPage
<< new InfoOptionPage << new EditorAutoCorrectionOptionPage);
@ -546,7 +573,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
category = new Dialogs::OptionCategory(this);
category->setDisplayName(tr("File browser"));
category->setIcon(QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/system-file-manager.png")));
category->setIcon(QIcon::fromTheme(QStringLiteral("view-list-tree"), QIcon(QStringLiteral(":/tageditor/icons/hicolor/32x32/settingscategories/system-file-manager.png"))));
category->assignPages(QList<Dialogs::OptionPage *>() << new FileBrowserGeneralOptionPage);
categories << category;
categoryModel()->setCategories(categories);

View File

@ -99,7 +99,8 @@ FORMS += \
gui/infooptionpage.ui \
gui/entertargetdialog.ui \
gui/attachmentsedit.ui \
gui/editortempoptionpage.ui
gui/editortempoptionpage.ui \
gui/filelayout.ui
RESOURCES += resources/icons.qrc \
resources/scripts.qrc