- Reorganized settings management

- Added localisation UI
- Added Greek localisation
- Message text refactoring


FossilOrigin-Name: 05f2cac387c4a3863197f794c68421f7e04fb28e
This commit is contained in:
kostas
2012-10-08 11:28:08 +00:00
parent d40b70d737
commit 0ed31413ca
11 changed files with 2713 additions and 147 deletions

View File

@@ -14,11 +14,14 @@ namespace Ui {
#define FUEL_SETTING_FOSSIL_PATH "FossilPath"
#define FUEL_SETTING_COMMIT_MSG "CommitMsgHistory"
#define FUEL_SETTING_FILE_DBLCLICK "FileDblClickAction"
#define FUEL_SETTING_GDIFF_CMD "gdiff-command"
#define FUEL_SETTING_GMERGE_CMD "gmerge-command"
#define FUEL_SETTING_IGNORE_GLOB "ignore-glob"
#define FUEL_SETTING_CRNL_GLOB "crnl-glob"
#define FUEL_SETTING_REMOTE_URL "remote-url"
#define FUEL_SETTING_LANGUAGE "Language"
#define FOSSIL_SETTING_GDIFF_CMD "gdiff-command"
#define FOSSIL_SETTING_GMERGE_CMD "gmerge-command"
#define FOSSIL_SETTING_IGNORE_GLOB "ignore-glob"
#define FOSSIL_SETTING_CRNL_GLOB "crnl-glob"
#define FOSSIL_SETTING_REMOTE_URL "remote-url"
enum FileDblClickAction
{
@@ -34,27 +37,38 @@ struct Settings
{
enum SettingType
{
TYPE_INTERNAL,
TYPE_FOSSIL_GLOBAL,
TYPE_FOSSIL_LOCAL,
TYPE_FOSSIL_COMMAND
};
Setting(QVariant value=QVariant(), SettingType type=TYPE_INTERNAL) : Value(value), Type(type)
Setting(QVariant value, SettingType type) : Value(value), Type(type)
{}
QVariant Value;
SettingType Type;
};
typedef QMap<QString, Setting> mappings_t;
Settings(bool portableMode = false);
~Settings();
void ApplyEnvironment();
typedef QMap<QString, Setting> mappings_t;
// App configuration access
class QSettings * GetStore() { return store; }
bool HasValue(const QString &name) const; // store->contains(FUEL_SETTING_FOSSIL_PATH)
const QVariant GetValue(const QString &name); // settings.store->value
void SetValue(const QString &name, const QVariant &value); // settings.store->value
// Fossil configuration access
QVariant & GetFossilValue(const QString &name);
void SetFossilValue(const QString &name, const QVariant &value);
mappings_t & GetMappings() { return Mappings; }
private:
mappings_t Mappings;
class QSettings *store;
QTranslator translator;
};
@@ -78,7 +92,22 @@ private slots:
private:
static QString SelectExe(QWidget *parent, const QString &description);
QString LangIdToName(const QString &id);
QString LangNameToId(const QString &name);
void CreateLangMap();
struct LangMap
{
LangMap(const QString &_id, const QString &_name)
: id(_id), name(_name)
{
}
QString id;
QString name;
};
QList<LangMap> langMap;
Ui::SettingsDialog *ui;
Settings *settings;
};