From 2a29456f45b74902229dd29d0f43a7867bbfd20f Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 25 Apr 2017 22:55:59 +0800 Subject: [PATCH] use _vnote.json instead of .vnote.json as the directory config file --- src/vconfigmanager.cpp | 31 ++++++++++++++++++++++++------- src/vconfigmanager.h | 13 +++++++++++-- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index f7912f0f..2338225a 100644 --- a/src/vconfigmanager.cpp +++ b/src/vconfigmanager.cpp @@ -13,7 +13,8 @@ const QString VConfigManager::orgName = QString("vnote"); const QString VConfigManager::appName = QString("vnote"); const QString VConfigManager::c_version = QString("1.3"); -const QString VConfigManager::dirConfigFileName = QString(".vnote.json"); +const QString VConfigManager::c_obsoleteDirConfigFile = QString(".vnote.json"); +const QString VConfigManager::c_dirConfigFile = QString("_vnote.json"); const QString VConfigManager::defaultConfigFilePath = QString(":/resources/vnote.ini"); const QString VConfigManager::c_styleConfigFolder = QString("styles"); const QString VConfigManager::c_defaultCssFile = QString(":/resources/styles/default.css"); @@ -195,11 +196,27 @@ void VConfigManager::setConfigToSettings(const QString §ion, const QString & qDebug() << "set user config:" << fullKey << value.toString(); } +QString VConfigManager::fetchDirConfigFilePath(const QString &p_path) +{ + QDir dir(p_path); + QString fileName = c_dirConfigFile; + + if (dir.exists(c_obsoleteDirConfigFile)) { + V_ASSERT(!dir.exists(c_dirConfigFile)); + if (!dir.rename(c_obsoleteDirConfigFile, c_dirConfigFile)) { + fileName = c_obsoleteDirConfigFile; + } + qDebug() << "rename old directory config file:" << fileName; + } + + qDebug() << "use directory config file:" << fileName; + return dir.filePath(fileName); +} + QJsonObject VConfigManager::readDirectoryConfig(const QString &path) { - QString configFile = QDir(path).filePath(dirConfigFileName); + QString configFile = fetchDirConfigFilePath(path); - qDebug() << "read config file:" << configFile; QFile config(configFile); if (!config.open(QIODevice::ReadOnly)) { qWarning() << "fail to read directory configuration file:" @@ -213,16 +230,15 @@ QJsonObject VConfigManager::readDirectoryConfig(const QString &path) bool VConfigManager::directoryConfigExist(const QString &path) { - QString configFile = QDir(path).filePath(dirConfigFileName); + QString configFile = fetchDirConfigFilePath(path); QFile config(configFile); return config.exists(); } bool VConfigManager::writeDirectoryConfig(const QString &path, const QJsonObject &configJson) { - QString configFile = QDir(path).filePath(dirConfigFileName); + QString configFile = fetchDirConfigFilePath(path); - qDebug() << "write config file:" << configFile; QFile config(configFile); if (!config.open(QIODevice::WriteOnly)) { qWarning() << "fail to open directory configuration file for write:" @@ -237,7 +253,7 @@ bool VConfigManager::writeDirectoryConfig(const QString &path, const QJsonObject bool VConfigManager::deleteDirectoryConfig(const QString &path) { - QString configFile = QDir(path).filePath(dirConfigFileName); + QString configFile = fetchDirConfigFilePath(path); QFile config(configFile); if (!config.remove()) { @@ -245,6 +261,7 @@ bool VConfigManager::deleteDirectoryConfig(const QString &path) << configFile; return false; } + qDebug() << "delete config file:" << configFile; return true; } diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index 792806cb..6f13728b 100644 --- a/src/vconfigmanager.h +++ b/src/vconfigmanager.h @@ -178,6 +178,10 @@ private: bool outputDefaultCssStyle() const; bool outputDefaultEditorStyle() const; + // See if the old c_obsoleteDirConfigFile exists. If so, rename it to + // the new one; if not, use the c_dirConfigFile. + static QString fetchDirConfigFilePath(const QString &p_path); + int m_editorFontSize; QFont baseEditFont; QPalette baseEditPalette; @@ -251,8 +255,13 @@ private: // Enable colde block syntax highlight. bool m_enableCodeBlockHighlight; - // The name of the config file in each directory - static const QString dirConfigFileName; + // The name of the config file in each directory, obsolete. + // Use c_dirConfigFile instead. + static const QString c_obsoleteDirConfigFile; + + // The name of the config file in each directory. + static const QString c_dirConfigFile; + // The name of the default configuration file static const QString defaultConfigFilePath; // QSettings for the user configuration