OSDN Git Service

Corrected WatchFolder edit problem where changes were not saved.
authorRandy Baumgarte <randy@fbn.cx>
Sat, 2 Jul 2011 18:47:08 +0000 (14:47 -0400)
committerRandy Baumgarte <randy@Centauri.(none)>
Tue, 12 Jul 2011 22:37:51 +0000 (18:37 -0400)
src/cx/fbn/nevernote/dialog/WatchFolder.java
src/cx/fbn/nevernote/sql/WatchFolderTable.java

index ed26b6a..dbc38bb 100644 (file)
@@ -234,7 +234,8 @@ public class WatchFolder extends QDialog {
                        String notebook = dialog.books.currentText();\r
                        \r
                        boolean keep;\r
-                       if (dialog.keep.itemData(ItemDataRole.UserRole).toString().equalsIgnoreCase("keep"))\r
+                       int idx = dialog.keep.currentIndex();\r
+                       if (dialog.keep.itemData(idx, ItemDataRole.UserRole).toString().equalsIgnoreCase("keep"))\r
                                keep = true;\r
                        else\r
                                keep = false;\r
@@ -247,6 +248,7 @@ public class WatchFolder extends QDialog {
                        newRecord.keep = keep;\r
                        records.add(newRecord);\r
                }\r
+               table.setCurrentIndex(index);\r
                \r
        }\r
        \r
index 32caa0a..3781168 100644 (file)
@@ -53,6 +53,8 @@ public class WatchFolderTable {
        }\r
        // Add an folder\r
        public void addWatchFolder(String folder, String notebook, boolean keep, int depth) {\r
+               if (exists(folder))\r
+                       expungeWatchFolder(folder);\r
         NSqlQuery query = new NSqlQuery(db.getConnection());\r
                query.prepare("Insert Into WatchFolders (folder, notebook, keep, depth) " +\r
                                "values (:folder, :notebook, :keep, :depth)");\r
@@ -64,6 +66,18 @@ public class WatchFolderTable {
                        logger.log(logger.MEDIUM, "Insert into WatchFolder failed.");\r
                }\r
        }\r
+       // Add an folder\r
+       public boolean exists(String folder) {\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+               query.prepare("Select folder from WatchFolders where folder=:folder ");\r
+               query.bindValue(":folder", folder);\r
+               query.exec();\r
+               if (!query.next()) \r
+                       return false;\r
+               else\r
+                       return true;\r
+       }\r
+\r
        // remove an folder\r
        public void expungeWatchFolder(String folder) {\r
         NSqlQuery query = new NSqlQuery(db.getConnection());\r