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
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