OSDN Git Service

Add the ability to add & remove notebook stacks.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / utilities / ListManager.java
index 47794cf..6e0696b 100644 (file)
@@ -34,6 +34,8 @@ import com.evernote.edam.type.SavedSearch;
 import com.evernote.edam.type.Tag;\r
 import com.trolltech.qt.QThread;\r
 import com.trolltech.qt.core.QDateTime;\r
+import com.trolltech.qt.gui.QImage;\r
+import com.trolltech.qt.gui.QPixmap;\r
 import com.trolltech.qt.sql.QSqlQuery;\r
 import com.trolltech.qt.xml.QDomAttr;\r
 import com.trolltech.qt.xml.QDomDocument;\r
@@ -97,8 +99,10 @@ public class ListManager  {
        public NotebookSignal                   notebookSignal;\r
        private int                                             trashCount;\r
     public SaveRunner                          saveRunner;                                     // Thread used to save content.  Used because the xml conversion is slowwwww\r
-    QThread                            saveThread;\r
+    QThread                                                    saveThread;\r
        \r
+//    private final HashMap<String, QImage> thumbnailList;\r
+    \r
        // Constructor\r
        public ListManager(DatabaseConnection d, ApplicationLogger l) {\r
                conn = d;\r
@@ -148,7 +152,10 @@ public class ListManager  {
                saveRunner = new SaveRunner("saveRunner.log", Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword);\r
                saveThread = new QThread(saveRunner, "Save Runner Thread");\r
                saveThread.start();\r
-\r
+               \r
+//             thumbnailList = conn.getNoteTable().getThumbnails();\r
+//             thumbnailList = new HashMap<String,QImage>();\r
+               \r
                loadNoteTitleColors();\r
                                \r
        }\r
@@ -382,7 +389,32 @@ public class ListManager  {
        public List<Note> getMasterNoteIndex() {\r
                return noteModel.getMasterNoteIndex();\r
        }\r
-       \r
+       // Thumbnails\r
+//     public HashMap<String, QImage> getThumbnails() {\r
+//             return thumbnailList;\r
+//     }\r
+       public QImage getThumbnail(String guid) {\r
+//             if (getThumbnails().containsKey(guid))\r
+//                     return getThumbnails().get(guid);\r
+               \r
+               QImage img = new QImage();\r
+               img = QImage.fromData(conn.getNoteTable().getThumbnail(guid));\r
+               if (img == null || img.isNull()) \r
+                       return null;\r
+               //getThumbnails().put(guid, img);\r
+               return img;\r
+       }\r
+       public QPixmap getThumbnailPixmap(String guid) {\r
+//             if (getThumbnails().containsKey(guid))\r
+//                     return getThumbnails().get(guid);\r
+               \r
+               QPixmap img = new QPixmap();\r
+               img.loadFromData(conn.getNoteTable().getThumbnail(guid));\r
+               if (img == null || img.isNull()) \r
+                       return null;\r
+               //getThumbnails().put(guid, img);\r
+               return img;\r
+       }\r
     //***************************************************************\r
     //***************************************************************\r
     //** These functions deal with setting & retrieving filters\r
@@ -765,6 +797,15 @@ public class ListManager  {
                }\r
                conn.getNotebookTable().expungeNotebook(guid, true);            \r
        }\r
+       // Rename a stack\r
+       public void renameStack(String oldName, String newName) {\r
+               for (int i=0; i<getNotebookIndex().size(); i++) {\r
+                       if (getNotebookIndex().get(i).getStack() != null && \r
+                                       getNotebookIndex().get(i).getStack().equalsIgnoreCase(oldName)) {\r
+                               getNotebookIndex().get(i).setStack(newName);\r
+                       }\r
+               }       \r
+       }\r
        // Update a notebook sequence number\r
        public void updateNotebookSequence(String guid, int sequence) {\r
                logger.log(logger.HIGH, "Entering ListManager.updateNotebookSequence");\r
@@ -795,6 +836,21 @@ public class ListManager  {
                logger.log(logger.HIGH, "Leaving ListManager.updateNotebookGuid");\r
 \r
        }\r
+       // Update a notebook Guid number\r
+       public void updateNotebookStack(String oldGuid, String stack) {\r
+               logger.log(logger.HIGH, "Entering ListManager.updateNotebookGuid");\r
+\r
+               conn.getNotebookTable().setStack(oldGuid, stack);\r
+               \r
+               for (int i=0; i<notebookIndex.size(); i++) {\r
+                       if (notebookIndex.get(i).getGuid().equals(oldGuid)) {\r
+                               notebookIndex.get(i).setStack(stack);\r
+                               i=notebookIndex.size()+1;\r
+                       }\r
+               }\r
+               logger.log(logger.HIGH, "Leaving ListManager.updateNotebookGuid");\r
+\r
+       }\r
        \r
        \r
        //************************************************************************************\r
@@ -842,44 +898,44 @@ public class ListManager  {
                else {\r
                        if (n.isActive() && !Global.showDeleted)\r
                                goodStatus = true;\r
-                       // Begin filtering results\r
-                       if (goodStatus)\r
-                               goodNotebook = filterByNotebook(n.getNotebookGuid());\r
-                       if (goodNotebook) \r
-                               goodTag = filterByTag(n.getTagGuids());\r
-                       if (goodTag) {\r
-                               boolean goodCreatedBefore = false;\r
-                               boolean goodCreatedSince = false;\r
-                               boolean goodChangedBefore = false;\r
-                               boolean goodChangedSince = false;\r
-                               boolean goodContains = false;\r
-                                       \r
-                               if (!Global.createdBeforeFilter.hasSelection())\r
-                                       goodCreatedBefore = true;\r
-                               else\r
-                                       goodCreatedBefore = Global.createdBeforeFilter.check(n);\r
+               }\r
+               \r
+               // Begin filtering results\r
+               if (goodStatus)\r
+                       goodNotebook = filterByNotebook(n.getNotebookGuid());\r
+               if (goodNotebook) \r
+                       goodTag = filterByTag(n.getTagGuids());\r
+               if (goodTag) {\r
+                       boolean goodCreatedBefore = false;\r
+                       boolean goodCreatedSince = false;\r
+                       boolean goodChangedBefore = false;\r
+                       boolean goodChangedSince = false;\r
+                       boolean goodContains = false;\r
+                       if (!Global.createdBeforeFilter.hasSelection())\r
+                               goodCreatedBefore = true;\r
+                       else\r
+                               goodCreatedBefore = Global.createdBeforeFilter.check(n);\r
                                \r
-                               if (!Global.createdSinceFilter.hasSelection())\r
-                                       goodCreatedSince = true;\r
-                               else\r
-                                       goodCreatedSince = Global.createdSinceFilter.check(n);\r
+                       if (!Global.createdSinceFilter.hasSelection())\r
+                               goodCreatedSince = true;\r
+                       else\r
+                               goodCreatedSince = Global.createdSinceFilter.check(n);\r
                                \r
-                               if (!Global.changedBeforeFilter.hasSelection())\r
-                                       goodChangedBefore = true;\r
-                               else\r
-                                       goodChangedBefore = Global.changedBeforeFilter.check(n);\r
-                                       if (!Global.changedSinceFilter.hasSelection())\r
-                                       goodChangedSince = true;\r
-                               else\r
-                                       goodChangedSince = Global.changedSinceFilter.check(n);\r
-                               if (!Global.containsFilter.hasSelection())\r
-                                       goodContains = true;\r
-                               else\r
-                                       goodContains = Global.containsFilter.check(conn.getNoteTable(), n);\r
-                                       \r
-                               if (goodCreatedSince && goodCreatedBefore && goodChangedSince && goodChangedBefore && goodContains)\r
-                                       return true;\r
-                       }\r
+                       if (!Global.changedBeforeFilter.hasSelection())\r
+                               goodChangedBefore = true;\r
+                       else\r
+                               goodChangedBefore = Global.changedBeforeFilter.check(n);\r
+                               if (!Global.changedSinceFilter.hasSelection())\r
+                               goodChangedSince = true;\r
+                       else\r
+                               goodChangedSince = Global.changedSinceFilter.check(n);\r
+                       if (!Global.containsFilter.hasSelection())\r
+                               goodContains = true;\r
+                       else\r
+                               goodContains = Global.containsFilter.check(conn.getNoteTable(), n);\r
+                               \r
+                       if (goodCreatedSince && goodCreatedBefore && goodChangedSince && goodChangedBefore && goodContains)\r
+                               return true;\r
                }       \r
                return false;\r
        }\r
@@ -971,7 +1027,9 @@ public class ListManager  {
                return false;\r
        }\r
 \r
-       \r
+       public void setNoteSynchronized(String guid, boolean value) {\r
+               getNoteTableModel().updateNoteSyncStatus(guid, value);\r
+       }\r
        \r
        public void updateNoteTitleColor(String guid, Integer color) {\r
                noteModel.updateNoteTitleColor(guid, color);\r