From 27177a6d4cd3f2be4dcefbb5d3ff72f35550cf78 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Mon, 30 Aug 2010 09:03:28 +0200 Subject: [PATCH] Added default configuration file generating --- data/mdictionary.defaults | 14 ------- trunk/src/base/backbone/ConfigGenerator.cpp | 16 +++++++- trunk/src/base/backbone/ConfigGenerator.h | 15 ++++++-- trunk/src/base/backbone/backbone.cpp | 54 ++++++--------------------- trunk/src/base/backbone/backbone.h | 9 ++--- trunk/src/base/base.pro | 5 +-- trunk/src/base/xslt2.qrc | 3 ++ 7 files changed, 44 insertions(+), 72 deletions(-) delete mode 100644 data/mdictionary.defaults diff --git a/data/mdictionary.defaults b/data/mdictionary.defaults deleted file mode 100644 index ca7c907..0000000 --- a/data/mdictionary.defaults +++ /dev/null @@ -1,14 +0,0 @@ -[%General] -plugin_path=/usr/lib/mdictionary -history_size=10 -search_limit=15 - -[dictionary_0] -type=xdxf -path=/usr/lib/mdictionary/eng-us.xdxf -_default_=true - -[dictionary_1] -type=xdxf -path=/usr/lib/mdictionary/eng-thai.xdxf -_default_=true diff --git a/trunk/src/base/backbone/ConfigGenerator.cpp b/trunk/src/base/backbone/ConfigGenerator.cpp index 0c36b9b..049d757 100644 --- a/trunk/src/base/backbone/ConfigGenerator.cpp +++ b/trunk/src/base/backbone/ConfigGenerator.cpp @@ -28,11 +28,23 @@ #include "ConfigGenerator.h" bool ConfigGenerator::generateCss(QString file) { + return generateFile(":/xsl/style.css", file); +} + + + +bool ConfigGenerator::generateDefaultConfig(QString file) { + return generateFile(":/config/mdictionary.config", file); +} + + + +bool ConfigGenerator::generateFile(QString source, QString file) { QFile _file(file); if(_file.exists()) return true; - QFile cssFile(":/xsl/style.css"); - if(cssFile.copy(file)) { + QFile srcFile(source); + if(srcFile.copy(file)) { _file.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::WriteGroup | QFile::ReadOther); return true; diff --git a/trunk/src/base/backbone/ConfigGenerator.h b/trunk/src/base/backbone/ConfigGenerator.h index 1b43115..9ae26c8 100644 --- a/trunk/src/base/backbone/ConfigGenerator.h +++ b/trunk/src/base/backbone/ConfigGenerator.h @@ -30,12 +30,10 @@ #include #include +#include /*! ConfigGenerator generatesconfiguration files (with default values), if given file dosent exists. - -For now only css is generateed in this way, but iam planign to refactor all -configuration files to work that way. */ class ConfigGenerator { @@ -46,6 +44,17 @@ public: return true; if file dosent exists but cannot be generated returns false */ bool generateCss(QString file); + + + /*! Generates default configuration files + \param file file to be generated + \return if file was generated - returns true; if file alredy exists + return true; if file dosent exists but cannot be generated returns false + */ + bool generateDefaultConfig(QString file); + +private: + bool generateFile(QString source, QString file); }; #endif // CONFIGGENERATOR_H diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index a458852..d7ca916 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -71,34 +71,22 @@ public: void Backbone::init() { + _dictNum = 0; _dir = QDir::homePath() + "/.mdictionary/"; if(!_configPath.size()) _configPath = _dir + "mdictionary.config"; - if(!_defaultConfigPath.size()) - _defaultConfigPath = _dir + "mdictionary.defaults"; if(!_pluginPath.size()) _pluginPath = "/usr/lib/mdictionary"; - _historyLen = 10; - _searchLimit = 15; //Install default config files ConfigGenerator confGen; confGen.generateCss(_dir + "style.css"); + confGen.generateDefaultConfig(_configPath); - - - loadPrefs(_defaultConfigPath); - - // Default configuration are stored in separate config file and we dont want - // to update it - _defaultPluginPath = _pluginPath; - _defaultHistoryLen = _historyLen; - _defaultSearchLimit = _searchLimit; loadPrefs(_configPath); loadPlugins(); - loadDicts(_defaultConfigPath, true); loadDicts(_configPath); connect(&_resultWatcher, SIGNAL(finished()), this, SLOT(translationReady())); @@ -114,8 +102,7 @@ void Backbone::init() { QThreadPool::globalInstance()->setMaxThreadCount( QThreadPool::globalInstance()->maxThreadCount()+1); - _history = new History(5, this); - _dictNum = 0; + _history = new History(_historyLen, this); } @@ -127,7 +114,6 @@ Backbone::Backbone(QString pluginPath, QString configPath, bool dry, _pluginPath = pluginPath; _configPath = configPath; - _defaultConfigPath = configPath; dryRun = false; if(dry) dryRun = true; @@ -157,6 +143,7 @@ Backbone::~Backbone() Backbone::Backbone(const Backbone &b) :QObject(b.parent()) { + init(); _dicts = QHash (b._dicts); _plugins = QList (b._plugins); _result = QHash (b._result); @@ -264,6 +251,8 @@ void Backbone::addDictionary(CommonDictInterface *dict, bool active) { SIGNAL(notify(Notify::NotifyType,QString))); } + + void Backbone::removeDictionary(CommonDictInterface *dict) { _dicts.remove(dict); delete dict; @@ -311,6 +300,9 @@ void Backbone::translationReady() { } } + + + QStringList Backbone::getFilesFromDir(QString dir, QStringList nameFilter) { QDir plug(QDir::toNativeSeparators(dir)); if(!plug.exists()) { @@ -341,7 +333,6 @@ void Backbone::loadPlugins() { Q_EMIT notify(Notify::Error, QString("%1 plugin cannot be loaded: %2.") .arg(file).arg(loader.errorString())); - qDebug()<< file << " " << loader.errorString(); continue; } QObject *pl = loader.instance(); @@ -404,17 +395,7 @@ void Backbone::savePrefs(QSettings *set) { -void Backbone::saveDefaultPrefs(QSettings *set) { - if(dryRun) - return; - set->setValue("general/plugin_path", _defaultPluginPath); - set->setValue("general/history_size", _defaultHistoryLen); - set->setValue("general/search_limit", _defaultSearchLimit); -} - - - -void Backbone::loadDicts(QString fileName, bool _default) { +void Backbone::loadDicts(QString fileName) { if(dryRun) return; @@ -453,9 +434,6 @@ void Backbone::loadDicts(QString fileName, bool _default) { } bool active = set.value("active",1).toBool(); - if(_default) - plugSet->setValue("_default_", "true"); - set.endGroup(); addInternalDictionary(plug->getNew(plugSet), active); } @@ -480,22 +458,12 @@ void Backbone::dictUpdated() { QSettings set(file.filePath(), QSettings::IniFormat); set.clear(); - QFileInfo defFile(QDir::toNativeSeparators(_defaultConfigPath)); - QDir defConfDir(defFile.dir()); - if(!defConfDir.exists()) - defConfDir.mkpath(defFile.dir().path()); - QSettings defSet(defFile.filePath(), QSettings::IniFormat); - defSet.clear(); savePrefs(&set); - saveDefaultPrefs(&defSet); foreach(CommonDictInterface* dict, _dicts.keys()){ if(!dict || !dict->settings()) continue; - if(!dict->settings()->keys().contains("_default_")) - saveState(&set, dict->settings(), _dicts[dict], dict->hash()); - else - saveState(&defSet, dict->settings(), _dicts[dict], dict->hash()); + saveState(&set, dict->settings(), _dicts[dict], dict->hash()); } } diff --git a/trunk/src/base/backbone/backbone.h b/trunk/src/base/backbone/backbone.h index cf44ae6..55b3ebb 100644 --- a/trunk/src/base/backbone/backbone.h +++ b/trunk/src/base/backbone/backbone.h @@ -303,12 +303,10 @@ private: QFutureWatcher _htmlResultWatcher; - QString _pluginPath, _defaultPluginPath; + QString _pluginPath; QString _configPath; - QString _defaultConfigPath; QString _dir; - int _defaultSearchLimit; - int _historyLen, _defaultHistoryLen; + int _historyLen; bool dryRun; // mainly for testing - when true then doesn't bother configs etc bool stopped; // true when user stops searching/fetching @@ -323,12 +321,11 @@ private: QStringList getFilesFromDir(QString dir, QStringList nameFilter); void loadPlugins(); //< locate and load plugins void loadPrefs(QString fileName); - void loadDicts(QString fileName, bool _default=false); + void loadDicts(QString fileName); void saveState(QSettings*, Settings*, bool, uint); void addInternalDictionary(CommonDictInterface*, bool); void savePrefs(QSettings*); - void saveDefaultPrefs(QSettings*); CommonDictInterface* plugin(QString type); // search for given type plugin QList activeDicts(); diff --git a/trunk/src/base/base.pro b/trunk/src/base/base.pro index b43f9e0..aec27f2 100644 --- a/trunk/src/base/base.pro +++ b/trunk/src/base/base.pro @@ -73,10 +73,7 @@ unix { # MAKE INSTALL INSTALLS += target \ desktop \ - icon64 \ - configs - configs.path = ~/.mdictionary - configs.files += ../../../data/mdictionary.defaults + icon64 target.path = $$BINDIR maemo5 { desktop.path = $$DATADIR/applications/hildon diff --git a/trunk/src/base/xslt2.qrc b/trunk/src/base/xslt2.qrc index 818243c..243b9b6 100644 --- a/trunk/src/base/xslt2.qrc +++ b/trunk/src/base/xslt2.qrc @@ -3,4 +3,7 @@ xsl.xsl style.css + + mdictionary.config + -- 1.7.9.5