OSDN Git Service

ツールバーの「新規」ボタンを押した時にノートを新しいタブで開けるように変更した
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / ConfigDialog.java
index 1a4cabd..db344b7 100644 (file)
@@ -41,9 +41,11 @@ import com.trolltech.qt.gui.QListWidgetItem;
 import com.trolltech.qt.gui.QPushButton;\r
 import com.trolltech.qt.gui.QStackedWidget;\r
 import com.trolltech.qt.gui.QVBoxLayout;\r
-import com.trolltech.qt.gui.QWidget;\r
 \r
 import cx.fbn.nevernote.Global;\r
+import cx.fbn.nevernote.NeverNote;\r
+import cx.fbn.nevernote.sql.DatabaseConnection;\r
+import cx.fbn.nevernote.sql.driver.NSqlQuery;\r
 public class ConfigDialog extends QDialog {\r
        private final QListWidget                               contentsWidget;\r
        private final ConfigFontPage                    fontPage;\r
@@ -53,12 +55,15 @@ public class ConfigDialog extends QDialog {
        private final ConfigAppearancePage              appearancePage;\r
        private final ConfigSpellPage                   spellPage;\r
        private final ConfigIndexPage                   indexPage;\r
-       // ICHANGED\r
-       private final ConfigRensoNoteListPage           rensoNoteListPage;\r
+       private final ConfigRensoNoteListPage   rensoNoteListPage;\r
+       private final NeverNote                                 parent;\r
+       private final DatabaseConnection conn;\r
        \r
-    private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
-       \r
-       public ConfigDialog(QWidget parent) {\r
+       private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
+    \r
+       public ConfigDialog(NeverNote parent, DatabaseConnection conn) {\r
+               this.parent = parent;\r
+               this.conn = conn;\r
                \r
                contentsWidget = new QListWidget(this);\r
                setWindowIcon(new QIcon(iconPath+"config.png"));\r
@@ -75,7 +80,6 @@ public class ConfigDialog extends QDialog {
                indexPage = new ConfigIndexPage(this);\r
                debugPage = new ConfigDebugPage(this);\r
                spellPage = new ConfigSpellPage(this);\r
-               // ICHANGED\r
                rensoNoteListPage = new ConfigRensoNoteListPage(this);\r
                \r
                pagesWidget.addWidget(appearancePage);\r
@@ -84,7 +88,6 @@ public class ConfigDialog extends QDialog {
                pagesWidget.addWidget(spellPage);\r
                pagesWidget.addWidget(connectionPage);\r
                pagesWidget.addWidget(debugPage);\r
-               // ICHANGED\r
                pagesWidget.addWidget(rensoNoteListPage);\r
                \r
                QPushButton cancelButton = new QPushButton(tr("Cancel"));\r
@@ -145,6 +148,11 @@ public class ConfigDialog extends QDialog {
                        Global.setCheckVersionUpgrade(true);\r
                else\r
                        Global.setCheckVersionUpgrade(false);\r
+               \r
+               if (appearancePage.getNewAction())\r
+                       Global.setToolBarNewAction(true);\r
+               else\r
+                       Global.setToolBarNewAction(false);\r
 \r
                \r
                if (appearancePage.getNewNoteWithTags())\r
@@ -175,13 +183,13 @@ public class ConfigDialog extends QDialog {
                Global.setIndexNoteBody(indexPage.getIndexNoteBody());\r
                Global.setIndexNoteTitle(indexPage.getIndexNoteTitle());\r
                Global.setIndexImageRecognition(indexPage.getIndexImageRecognition());\r
-               Global.setAutomaticWildcardSearches(indexPage.getAutomaticWildcardSearches());\r
-               Global.setSpecialIndexCharacters(indexPage.getSpecialCharacters());\r
+//             Global.setAutomaticWildcardSearches(indexPage.getAutomaticWildcardSearches());\r
+//             Global.setSpecialIndexCharacters(indexPage.getSpecialCharacters());\r
                Global.setIncludeTagChildren(appearancePage.getIncludeTagChildren());\r
                Global.setDisplayRightToLeft(appearancePage.getDisplayRightToLeft());\r
                \r
                Global.userStoreUrl = "https://"+debugPage.getServer()+"/edam/user";\r
-               Global.setWordRegex(indexPage.getRegex());\r
+//             Global.setWordRegex(indexPage.getRegex());\r
                Global.setRecognitionWeight(indexPage.getRecognitionWeight());\r
                Global.setIndexThreadSleepInterval(indexPage.getSleepInterval());\r
                Global.setMessageLevel( debugPage.getDebugLevel());\r
@@ -224,20 +232,51 @@ public class ConfigDialog extends QDialog {
                Global.setDefaultFontSize(fontPage.getFontSize());\r
                Global.setDatabaseCache(debugPage.getDatabaseCacheSize());\r
                \r
-               // ICHANGED\r
                Global.setBrowseWeight(rensoNoteListPage.getBrowseWeight());\r
                Global.setCopyPasteWeight(rensoNoteListPage.getCopyPasteWeight());\r
                Global.setAddNewNoteWeight(rensoNoteListPage.getAddNewNoteWeight());\r
-               Global.setRensoItemClickWeight(rensoNoteListPage.getRensoItemClickWeight());
-               Global.setSameTagWeight(rensoNoteListPage.getSameTagWeight());
+               Global.setRensoItemClickWeight(rensoNoteListPage.getRensoItemClickWeight());\r
+               Global.setSameTagWeight(rensoNoteListPage.getSameTagWeight());\r
                Global.setSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\r
+               Global.setENRelatedNotesWeight(rensoNoteListPage.getENRelatedNotesWeight());\r
+               \r
+               // 現在カスタムモードなら、カスタムモードの設定値として保存\r
+               String mode = new String(Global.rensoWeightingSelect());\r
+               if (mode.equals("Custom")) {\r
+                       Global.saveCustomBrowseWeight(rensoNoteListPage.getBrowseWeight());\r
+                       Global.saveCustomCopyPasteWeight(rensoNoteListPage.getCopyPasteWeight());\r
+                       Global.saveCustomAddNewNoteWeight(rensoNoteListPage.getAddNewNoteWeight());\r
+                       Global.saveCustomRensoItemClickWeight(rensoNoteListPage.getRensoItemClickWeight());\r
+                       Global.saveCustomSameTagWeight(rensoNoteListPage.getSameTagWeight());\r
+                       Global.saveCustomSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\r
+                       Global.saveCustomENRelatedNotesWeight(rensoNoteListPage.getENRelatedNotesWeight());\r
+               }\r
                \r
-               // ICHANGED\r
                Global.setMergeRensoNote(rensoNoteListPage.getMergeChecked());\r
                Global.setDuplicateRensoNote(rensoNoteListPage.getDuplicateChecked());\r
                Global.setVerifyExclude(rensoNoteListPage.getVerifyExcludeChecked());\r
                Global.setRensoListItemMaximum(rensoNoteListPage.getRensoListItemMaximum());\r
                \r
+               // 連想ノートリストをリフレッシュ\r
+               parent.getRensoNoteList().refreshRensoNoteList(parent.getCurrentNoteGuid());\r
+               \r
+               // 全文検索の対象項目を再設定\r
+               NSqlQuery nQuery = new NSqlQuery(conn.getConnection());\r
+               NSqlQuery rQuery = new NSqlQuery(conn.getResourceConnection()); \r
+               // カラム単位で削除できないので一度全部消す\r
+               nQuery.exec("CALL FTL_DROP_ALL();");\r
+               rQuery.exec("CALL FTL_DROP_ALL();");\r
+               // 再構築\r
+               Global.rebuildFullTextNoteTarget(conn);\r
+               Global.rebuildFullTextResourceTarget(conn);\r
+               \r
+               // ツールバーの「新規」ボタンを押した時の動作を再設定\r
+       if (Global.toolBarNewAction()) {\r
+               parent.connectNewButtonSlot("noteAddNewTab()");\r
+       } else {\r
+               parent.connectNewButtonSlot("addNote()");\r
+       }\r
+               \r
                close();\r
        }\r
        \r
@@ -262,7 +301,6 @@ public class ConfigDialog extends QDialog {
        // Create icons used for navigating the page\r
        public void createIcons() {\r
                String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
-\r
                \r
                QListWidgetItem formatsButton = new QListWidgetItem(contentsWidget);\r
                formatsButton.setText(tr("Appearance"));\r
@@ -300,7 +338,6 @@ public class ConfigDialog extends QDialog {
                debugButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
                debugButton.setIcon(new QIcon(iconPath+"debug.jpg"));\r
                \r
-               // ICHANGED\r
                QListWidgetItem rensoListButton = new QListWidgetItem(contentsWidget);\r
                rensoListButton.setText(tr("Renso Note List"));\r
                rensoListButton.setTextAlignment(AlignmentFlag.AlignCenter.value());\r
@@ -324,7 +361,6 @@ public class ConfigDialog extends QDialog {
                debugPage.setEnableThumbnails(Global.enableThumbnails());\r
 //             if (Global.getUpdateSequenceNumber() > 0)\r
                \r
-               // ICHANGED\r
                // TODO ↓のコメントアウトは最終的に外す(設定のデバッグページのサーバー選択を使用不可にする)\r
                //      debugPage.serverCombo.setEnabled(false);\r
 \r
@@ -346,8 +382,9 @@ public class ConfigDialog extends QDialog {
                appearancePage.setIncludeTagChildren(Global.includeTagChildren());\r
                appearancePage.setDisplayRightToLeft(Global.displayRightToLeft());\r
                appearancePage.setStartupNotebook(Global.getStartupNotebook());\r
+               appearancePage.setNewAction(Global.toolBarNewAction());\r
                \r
-               indexPage.setRegex(Global.getWordRegex());\r
+//             indexPage.setRegex(Global.getWordRegex());\r
                indexPage.setSleepInterval(Global.getIndexThreadSleepInterval());\r
                connectionPage.setSyncInterval(Global.getSyncInterval());\r
                \r