Browse Source

use _vnote.json instead of .vnote.json as the directory config file

Le Tan 8 years ago
parent
commit
2a29456f45
2 changed files with 35 additions and 9 deletions
  1. 24 7
      src/vconfigmanager.cpp
  2. 11 2
      src/vconfigmanager.h

+ 24 - 7
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 &section, 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;
 }

+ 11 - 2
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