added more file layout settings

This commit is contained in:
Martchus 2015-11-25 22:09:57 +01:00
parent b72b54e9bd
commit 22f6d112c5
3 changed files with 43 additions and 6 deletions

View File

@ -108,9 +108,15 @@ bool &mergeMultipleSuccessiveId3v2Tags()
}
// file layout
TagPosition &preferredTagPosition()
bool &forceRewrite()
{
static TagPosition v = TagPosition::BeforeData;
static bool v = true;
return v;
}
ElementPosition &preferredTagPosition()
{
static ElementPosition v = ElementPosition::BeforeData;
return v;
}
@ -120,6 +126,18 @@ bool &forceTagPosition()
return v;
}
ElementPosition &preferredIndexPosition()
{
static ElementPosition v = ElementPosition::BeforeData;
return v;
}
bool &forceIndexPosition()
{
static bool v = true;
return v;
}
size_t &minPadding()
{
static size_t v = 0;
@ -295,15 +313,25 @@ void restore()
mergeMultipleSuccessiveId3v2Tags() = settings.value(QStringLiteral("mergemultiplesuccessivetags"), true).toBool();
settings.endGroup();
settings.beginGroup(QStringLiteral("filelayout"));
forceRewrite() = settings.value(QStringLiteral("forcerewrite"), true).toBool();
switch(settings.value(QStringLiteral("tagpos")).toInt()) {
case 0:
preferredTagPosition() = TagPosition::BeforeData;
preferredTagPosition() = ElementPosition::BeforeData;
break;
case 1:
preferredTagPosition() = TagPosition::AfterData;
preferredTagPosition() = ElementPosition::AfterData;
break;
}
forceTagPosition() = settings.value(QStringLiteral("forcetagpos"), true).toBool();
switch(settings.value(QStringLiteral("indexpos")).toInt()) {
case 0:
preferredIndexPosition() = ElementPosition::BeforeData;
break;
case 1:
preferredIndexPosition() = ElementPosition::AfterData;
break;
}
forceIndexPosition() = settings.value(QStringLiteral("forceindexpos"), true).toBool();
minPadding() = settings.value(QStringLiteral("minpad"), 0).toInt();
maxPadding() = settings.value(QStringLiteral("maxpad"), 0).toInt();
preferredPadding() = settings.value(QStringLiteral("prefpad"), 0).toInt();
@ -363,8 +391,11 @@ void save()
settings.setValue(QStringLiteral("mergemultiplesuccessivetags"), mergeMultipleSuccessiveId3v2Tags());
settings.endGroup();
settings.beginGroup(QStringLiteral("filelayout"));
settings.setValue(QStringLiteral("forcerewrite"), forceRewrite());
settings.setValue(QStringLiteral("tagpos"), static_cast<int>(preferredTagPosition()));
settings.setValue(QStringLiteral("forcetagpos"), forceTagPosition());
settings.setValue(QStringLiteral("indexpos"), static_cast<int>(preferredIndexPosition()));
settings.setValue(QStringLiteral("forceindexpos"), forceIndexPosition());
settings.setValue(QStringLiteral("minpad"), QVariant::fromValue(minPadding()));
settings.setValue(QStringLiteral("maxpad"), QVariant::fromValue(maxPadding()));
settings.setValue(QStringLiteral("prefpad"), QVariant::fromValue(preferredPadding()));

View File

@ -12,7 +12,7 @@ QT_FORWARD_DECLARE_CLASS(QString)
namespace Media {
enum class TagUsage;
enum class TagPosition;
enum class ElementPosition;
}
namespace Settings {
@ -66,8 +66,11 @@ bool &keepVersionOfExistingId3v2Tag();
bool &mergeMultipleSuccessiveId3v2Tags();
// file layout
Media::TagPosition &preferredTagPosition();
bool &forceRewrite();
Media::ElementPosition &preferredTagPosition();
bool &forceTagPosition();
Media::ElementPosition &preferredIndexPosition();
bool &forceIndexPosition();
size_t &minPadding();
size_t &maxPadding();
size_t &preferredPadding();

View File

@ -994,8 +994,11 @@ bool MainWindow::startSaving()
// remove current path from file watcher
m_fileWatcher->removePath(m_currentPath);
// use current configuration
m_fileInfo.setForceRewrite(Settings::forceRewrite());
m_fileInfo.setTagPosition(Settings::preferredTagPosition());
m_fileInfo.setForceTagPosition(Settings::forceTagPosition());
m_fileInfo.setIndexPosition(Settings::preferredIndexPosition());
m_fileInfo.setForceIndexPosition(Settings::forceIndexPosition());
m_fileInfo.setMinPadding(Settings::minPadding());
m_fileInfo.setMaxPadding(Settings::maxPadding());
m_fileInfo.setPreferredPadding(Settings::preferredPadding());