OSDN Git Service

Add shared notebook editing & syncing logic.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / TagTreeWidget.java
index c3a803d..1b215bb 100644 (file)
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.HashMap;\r
 import java.util.List;\r
 \r
+import com.evernote.edam.type.Note;\r
 import com.evernote.edam.type.Tag;\r
 import com.trolltech.qt.core.QByteArray;\r
 import com.trolltech.qt.core.QMimeData;\r
@@ -309,12 +310,23 @@ public class TagTreeWidget extends QTreeWidget {
                        sortItems(0, SortOrder.AscendingOrder);\r
                        return true;\r
                }\r
+               \r
+               // If we are dropping a note\r
                if (data.hasFormat("application/x-nevernote-note")) {\r
+                       String notebookGuid = db.getTagTable().getNotebookGuid(parent.text(2));\r
                        QByteArray d = data.data("application/x-nevernote-note");\r
                        String s = d.toString();\r
                        String noteGuidArray[] = s.split(" ");\r
                        for (String element : noteGuidArray) {\r
-                               if (!db.getNoteTable().noteTagsTable.checkNoteNoteTags(element.trim(), parent.text(2))) {\r
+                               Note n = db.getNoteTable().getNote(element.trim(), false, false, false, false, false);\r
+                               \r
+                               // Check that...\r
+                               // 1.) Check that tag isn't already assigned to that note\r
+                               // 2.) Check that that tag is valid for that notebook or the tag isn't notebook specific\r
+                               // 3.) Check that the notebook isn't read only.\r
+                               if (!db.getNoteTable().noteTagsTable.checkNoteNoteTags(element.trim(), parent.text(2)) &&\r
+                                               (notebookGuid == null || n.getNotebookGuid().equalsIgnoreCase(notebookGuid) || notebookGuid.equals("")) &&\r
+                                               !db.getNotebookTable().isReadOnly(n.getNotebookGuid())) {\r
                                        db.getNoteTable().noteTagsTable.saveNoteTag(element.trim(), parent.text(2));\r
                                        noteSignal.tagsAdded.emit(element.trim(), parent.text(2));\r
                                }\r