OSDN Git Service

iniファイルをプログラムディレクトリからホームディレクトリに移動させる記述を追加。
authoryuki <kimaira7@gmail.com>
Fri, 24 May 2013 09:51:45 +0000 (18:51 +0900)
committeryuki <kimaira7@gmail.com>
Fri, 24 May 2013 09:51:45 +0000 (18:51 +0900)
src/cx/fbn/nevernote/Global.java
src/cx/fbn/nevernote/config/FileManager.java

index 5378565..c8f7222 100644 (file)
@@ -23,6 +23,7 @@ package cx.fbn.nevernote;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -40,6 +41,7 @@ import com.evernote.edam.type.User;
 import com.evernote.edam.type.UserAttributes;
 import com.swabunga.spell.engine.Configuration;
 import com.trolltech.qt.core.QByteArray;
+import com.trolltech.qt.core.QFile;
 import com.trolltech.qt.core.QSettings;
 import com.trolltech.qt.core.QSize;
 import com.trolltech.qt.gui.QPalette;
@@ -196,8 +198,20 @@ public class Global {
        
     // Do initial setup 
     public static void setup(StartupConfig startupConfig) throws InitializationException  {
-       // ICHANGED 設定値の保存先を変更
-        settings = new QSettings("NeighborNote.ini", QSettings.Format.IniFormat);
+       String settingFileName = new String("NeighborNote.ini");
+       
+       // バージョン0.1.2以下では設定ファイルをプログラムディレクトリに置いていたので、それを見つけたらホームディレクトリに移動させる。
+       File programDir = new File(FileManager.toPlatformPathSeparator(startupConfig.getProgramDirPath()));
+       String programPath = FileManager.slashTerminatePath(programDir.getPath());
+       File homeDir = new File(FileManager.toPlatformPathSeparator(startupConfig.getHomeDirPath()));
+       String homePath = FileManager.slashTerminatePath(homeDir.getPath());
+       if (QFile.exists(programPath + settingFileName)) {
+               QFile file = new QFile(programPath + settingFileName);
+               file.copy(homePath + settingFileName);
+               file.remove();
+       }
+       
+        settings = new QSettings(homePath + settingFileName, QSettings.Format.IniFormat);
         
         disableViewing = startupConfig.getDisableViewing();
         syncOnly = startupConfig.isSyncOnly();
index 9345fd2..75e060d 100644 (file)
@@ -268,7 +268,7 @@ public class FileManager {
         return translateDirPath + toPlatformPathSeparator(relativePath);
     }
 
-    private static String toPlatformPathSeparator(String relativePath) {
+    public static String toPlatformPathSeparator(String relativePath) {
        // Sometimes a space in the file name comes across as a %20.  This is to put it back as a space.
        relativePath = relativePath.replace("%20", " ");
        return ALL_PATH_SEPARATORS_REGEX.matcher(relativePath).replaceAll(
@@ -277,7 +277,7 @@ public class FileManager {
                                (File.separator.equals("\\") ? "\\\\" : File.separator));
     }
 
-    private static String slashTerminatePath(String path) {
+    public static String slashTerminatePath(String path) {
         if (!path.substring(path.length() - 1).equals(File.separator)) {
             return path + File.separator;
         }