OSDN Git Service

Add shared notebook editing & syncing logic.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / BrowserWindow.java
index 51ea0ea..28120fc 100644 (file)
@@ -92,6 +92,8 @@ import com.trolltech.qt.gui.QLineEdit;
 import com.trolltech.qt.gui.QListWidgetItem;\r
 import com.trolltech.qt.gui.QMatrix;\r
 import com.trolltech.qt.gui.QMessageBox;\r
+import com.trolltech.qt.gui.QPalette;\r
+import com.trolltech.qt.gui.QPalette.ColorRole;\r
 import com.trolltech.qt.gui.QPushButton;\r
 import com.trolltech.qt.gui.QShortcut;\r
 import com.trolltech.qt.gui.QTimeEdit;\r
@@ -114,6 +116,7 @@ import cx.fbn.nevernote.dialog.SpellCheck;
 import cx.fbn.nevernote.dialog.TableDialog;\r
 import cx.fbn.nevernote.dialog.TagAssign;\r
 import cx.fbn.nevernote.evernote.EnCrypt;\r
+import cx.fbn.nevernote.filters.FilterEditorTags;\r
 import cx.fbn.nevernote.signals.NoteResourceSignal;\r
 import cx.fbn.nevernote.signals.NoteSignal;\r
 import cx.fbn.nevernote.sql.DatabaseConnection;\r
@@ -568,6 +571,24 @@ public class BrowserWindow extends QWidget {
                \r
                browser.page().microFocusChanged.connect(this, "microFocusChanged()");\r
                \r
+               //Setup colors\r
+               \r
+               QPalette pal = new QPalette();\r
+               pal.setColor(ColorRole.Text, QColor.black);\r
+               titleLabel.setPalette(pal);\r
+               authorText.setPalette(pal);\r
+               authorLabel.setPalette(pal);\r
+               urlLabel.setPalette(pal);\r
+               urlText.setPalette(pal);\r
+               createdDate.setPalette(pal);\r
+               createdTime.setPalette(pal);\r
+               alteredDate.setPalette(pal);\r
+               alteredTime.setPalette(pal);\r
+               subjectDate.setPalette(pal);\r
+               subjectTime.setPalette(pal);\r
+               tagEdit.setPalette(pal);\r
+               notebookBox.setPalette(pal);\r
+               \r
                logger.log(logger.HIGH, "Browser setup complete");\r
        }\r
 \r
@@ -620,6 +641,10 @@ public class BrowserWindow extends QWidget {
                createdDate.setEnabled(!v);\r
                subjectDate.setEnabled(!v);\r
                alteredDate.setEnabled(!v);\r
+               authorText.setEnabled(!v);\r
+               createdTime.setEnabled(!v);\r
+               alteredTime.setEnabled(!v);\r
+               subjectTime.setEnabled(!v);\r
                getBrowser().setEnabled(true);\r
        }\r
        \r
@@ -1420,7 +1445,7 @@ public class BrowserWindow extends QWidget {
        // Modify a note's tags\r
        @SuppressWarnings("unused")\r
        private void modifyTags() {\r
-               TagAssign tagWindow = new TagAssign(allTags, currentTags);\r
+               TagAssign tagWindow = new TagAssign(allTags, currentTags, !conn.getNotebookTable().isLinked(currentNote.getNotebookGuid()));\r
                tagWindow.exec();\r
                if (tagWindow.okClicked()) {\r
                        currentTags.clear();\r
@@ -1496,6 +1521,20 @@ public class BrowserWindow extends QWidget {
                        if (!newTagArray[i].trim().equals(""))\r
                                newTagList.add(newTagArray[i]);\r
 \r
+               if (conn.getNotebookTable().isLinked(currentNote.getNotebookGuid())) {\r
+                       for (int i=newTagList.size()-1; i>=0; i--) {\r
+                               boolean found = false;\r
+                               for (int j=0; j<allTags.size(); j++) {\r
+                                       if (allTags.get(j).getName().equalsIgnoreCase(newTagList.get(i))) {\r
+                                               found = true;\r
+                                               j=allTags.size();\r
+                                       }\r
+                               }\r
+                               if (!found)\r
+                                       newTagList.remove(i);\r
+                       }\r
+               }\r
+\r
                // Let's cleanup the appearance of the tag list\r
                Collections.sort(newTagList);\r
                String newDisplay = "";\r
@@ -1632,6 +1671,13 @@ public class BrowserWindow extends QWidget {
                for (int i = 0; i < notebookList.size(); i++) {\r
                        if (n.equals(notebookList.get(i).getName())) {\r
                                if (!notebookList.get(i).getGuid().equals(currentNote.getNotebookGuid())) {\r
+                                       String guid = conn.getNotebookTable().findNotebookByName(n);\r
+                                       if (conn.getNotebookTable().isLinked(guid)) {\r
+                                               tagEdit.setText("");\r
+                                               noteSignal.tagsChanged.emit(currentNote.getGuid(), new ArrayList<String>());\r
+                                               FilterEditorTags t = new FilterEditorTags(conn, logger);\r
+                                               setAllTags(t.getValidTags(currentNote));\r
+                                       }\r
                                        currentNote.setNotebookGuid(notebookList.get(i).getGuid());\r
                                        changed = true;\r
                                }\r