tageditor/application/settings.h

146 lines
2.9 KiB
C
Raw Normal View History

2015-04-22 19:33:53 +02:00
#ifndef SETTINGS_H
#define SETTINGS_H
2016-10-24 20:15:10 +02:00
#include "./targetlevelmodel.h"
#include "./knownfieldmodel.h"
2015-04-22 19:33:53 +02:00
#include <c++utilities/conversion/types.h>
#include <tagparser/abstractcontainer.h>
2015-04-22 19:33:53 +02:00
#include <tagparser/tagvalue.h>
#include <tagparser/settings.h>
2016-10-24 20:15:10 +02:00
#include <tagparser/tag.h>
2015-04-22 19:33:53 +02:00
2016-10-24 20:15:10 +02:00
#include <qtutilities/settingsdialog/qtsettings.h>
2015-04-22 19:33:53 +02:00
2016-10-24 20:15:10 +02:00
#include <QString>
#include <QByteArray>
2016-08-14 22:49:47 +02:00
2015-04-22 19:33:53 +02:00
namespace Settings {
enum class ActionEnabled
{
Ask,
Yes,
No
};
enum class AdoptFields
{
Never,
WithinDirectory,
Always
};
2016-10-24 20:15:10 +02:00
2015-04-22 19:33:53 +02:00
enum class MultipleTagHandling
{
SingleEditorPerTarget,
SeparateEditors
};
2016-10-24 20:15:10 +02:00
struct AutoCompletition
{
AutoCompletition();
bool insertTitleFromFilename = false;
bool trimWhitespaces = true;
bool formatNames = false;
bool fixUmlauts = false;
KnownFieldModel fields;
};
struct Editor
{
Editor();
AdoptFields adoptFields = AdoptFields::Never;
bool saveAndShowNextOnEnter = false;
bool askBeforeDeleting = true;
MultipleTagHandling multipleTagHandling = MultipleTagHandling::SingleEditorPerTarget;
bool hideTagSelectionComboBox = false;
bool forceFullParse = false;
#ifndef TAGEDITOR_NO_WEBVIEW
2016-10-24 20:15:10 +02:00
bool noWebView = false;
#endif
2016-10-24 20:15:10 +02:00
bool hideCoverButtons = false;
AutoCompletition autoCompletition;
KnownFieldModel fields;
TargetLevelModel defaultTargets;
};
2015-04-22 19:33:53 +02:00
enum class UnsupportedFieldHandling
{
Ignore,
Discard
};
2016-08-14 22:49:47 +02:00
2016-10-24 20:15:10 +02:00
struct FileBrowser
{
bool hideBackupFiles = true;
bool readOnly = true;
};
struct FileLayout
{
bool forceRewrite = true;
2018-03-06 23:10:13 +01:00
TagParser::ElementPosition preferredTagPosition = TagParser::ElementPosition::BeforeData;
2016-10-24 20:15:10 +02:00
bool forceTagPosition = true;
2018-03-06 23:10:13 +01:00
TagParser::ElementPosition preferredIndexPosition = TagParser::ElementPosition::BeforeData;
2016-10-24 20:15:10 +02:00
bool forceIndexPosition = true;
std::size_t minPadding = 0;
std::size_t maxPadding = 0;
std::size_t preferredPadding = 0;
};
struct TagProcessing
{
2018-03-06 23:10:13 +01:00
TagParser::TagTextEncoding preferredEncoding = TagParser::TagTextEncoding::Utf8;
2016-10-24 20:15:10 +02:00
UnsupportedFieldHandling unsupportedFieldHandling = UnsupportedFieldHandling::Ignore;
bool autoTagManagement = true;
TagParser::TagCreationSettings creationSettings;
2016-10-24 20:15:10 +02:00
FileLayout fileLayout;
};
struct MainWindow
{
QByteArray geometry;
QByteArray state;
QString currentFileBrowserDirectory;
bool layoutLocked = false;
};
struct DbQuery
{
DbQuery();
bool widgetShown = false;
bool override = false;
KnownFieldModel fields;
QString musicBrainzUrl;
QString coverArtArchiveUrl;
QString lyricsWikiaUrl;
};
struct RenamingUtility
{
int scriptSource = 0;
QString externalScript;
QString editorScript;
};
struct Settings
{
Editor editor;
FileBrowser fileBrowser;
TagProcessing tagPocessing;
MainWindow mainWindow;
DbQuery dbQuery;
RenamingUtility renamingUtility;
Dialogs::QtSettings qt;
};
Settings &values();
2015-04-22 19:33:53 +02:00
void restore();
void save();
}
#endif // SETTINGS_H