OSDN Git Service

Add user qss directory.
authorRandy Baumgarte <randy@fbn.cx>
Thu, 30 Dec 2010 11:47:34 +0000 (06:47 -0500)
committerRandy Baumgarte <randy@fbn.cx>
Sat, 1 Jan 2011 23:40:48 +0000 (18:40 -0500)
src/cx/fbn/nevernote/NeverNote.java
src/cx/fbn/nevernote/config/FileManager.java

index 1533417..2d51697 100644 (file)
@@ -1128,8 +1128,15 @@ public class NeverNote extends QMainWindow{
        }    
        // Load the style sheet
        private void loadStyleSheet() {
-               String fileName = Global.getFileManager().getQssDirPath("default.qss");
+               String fileName = Global.getFileManager().getQssDirPathUser("default.qss");
+               fileName = Global.getFileManager().getQssDirPath("default.qss");
                QFile file = new QFile(fileName);
+               
+               // If a user default.qss doesn't exist, we use the one shipped with NeverNote
+               if (!file.exists()) {
+                       fileName = Global.getFileManager().getQssDirPath("default.qss");
+                       file = new QFile(fileName);
+               }
                file.open(OpenModeFlag.ReadOnly);
                String styleSheet = file.readAll().toString();
                file.close();
index 5f51497..fc67ab0 100644 (file)
@@ -35,6 +35,9 @@ public class FileManager {
     
     private final String qssDirPath;
     private final File qssDir;
+    
+    private final String qssDirPathUser;
+    private final File qssDirUser;
 
     private final String resDirPath;
     private final File resDir;
@@ -72,6 +75,10 @@ public class FileManager {
         qssDir = new File(programDir, "qss");
         checkExistingReadableDir(qssDir);
         qssDirPath = slashTerminatePath(qssDir.getPath());
+        
+        qssDirUser = new File(homeDir, "qss");
+        createDirOrCheckWriteable(qssDirUser);
+        qssDirPathUser = slashTerminatePath(qssDirUser.getPath());
 
         spellDir = new File(programDir, "spell");
         checkExistingReadableDir(spellDir);
@@ -214,6 +221,14 @@ public class FileManager {
     }
 
     /**
+     * Get a path below the 'qss' directory, using native {@link File#separator}.
+     * This will contain backslashes on Windows.
+     */
+    public String getQssDirPathUser(String relativePath) {
+        return qssDirPathUser + toPlatformPathSeparator(relativePath);
+    }
+    
+    /**
      * Get a path to the 'res' directory, terminated with native {@link File#separator}.
      * This will contain backslashes on Windows.
      */