OSDN Git Service

Merge branch 'japaneseSearch' into develop
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / ConfigDialog.java
index 77ae85e..aae31c4 100644 (file)
@@ -1,6 +1,7 @@
 /*\r
- * This file is part of NeverNote \r
+ * This file is part of NixNote/NeighborNote \r
  * Copyright 2009 Randy Baumgarte\r
+ * Copyright 2013 Yuki Takahashi\r
  * \r
  * This file may be licensed under the terms of of the\r
  * GNU General Public License Version 2 (the ``GPL'').\r
  *\r
 */\r
 \r
-package cx.fbn.nevernote.dialog;\r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is the debugging information \r
+//* page used in the Edit/Preferences dialog\r
+//**********************************************\r
+//**********************************************\r
 \r
-import java.io.FileInputStream;\r
-import java.io.FileNotFoundException;\r
-import java.io.FileOutputStream;\r
+package cx.fbn.nevernote.dialog;\r
 \r
+import com.swabunga.spell.engine.Configuration;\r
 import com.trolltech.qt.core.QSize;\r
 import com.trolltech.qt.core.Qt.AlignmentFlag;\r
 import com.trolltech.qt.core.Qt.ItemFlag;\r
@@ -36,22 +41,32 @@ 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.utilities.AESEncrypter;\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
        private final QStackedWidget                    pagesWidget;\r
        private final ConfigConnectionPage              connectionPage;\r
        private final ConfigDebugPage                   debugPage;\r
        private final ConfigAppearancePage              appearancePage;\r
        private final ConfigSpellPage                   spellPage;\r
        private final ConfigIndexPage                   indexPage;\r
+       private final ConfigRensoNoteListPage   rensoNoteListPage;\r
+       private final NeverNote                                 parent;\r
+       private final DatabaseConnection conn;\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
                contentsWidget.setViewMode(QListView.ViewMode.IconMode);\r
                contentsWidget.setIconSize(new QSize(96, 84));\r
                contentsWidget.setMovement(QListView.Movement.Static);\r
@@ -59,16 +74,23 @@ public class ConfigDialog extends QDialog {
                contentsWidget.setSpacing(12);\r
                \r
                pagesWidget = new QStackedWidget(this);\r
+               fontPage = new ConfigFontPage(this);\r
                connectionPage = new ConfigConnectionPage(this);\r
                appearancePage = new ConfigAppearancePage(this);\r
                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
+               pagesWidget.addWidget(fontPage);\r
                pagesWidget.addWidget(indexPage);\r
                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
                QPushButton okButton = new QPushButton(tr("OK"));\r
@@ -96,10 +118,14 @@ public class ConfigDialog extends QDialog {
                \r
                loadSettings();\r
        }\r
+\r
+       //******************************************\r
+       //* Ok button is pushed.  Save values\r
+       //******************************************\r
        public void okPushed() {\r
                Global.setServer(debugPage.getServer());\r
-               AESEncrypter aes = new AESEncrypter();\r
-               aes.setUserid(connectionPage.getUserid().trim());\r
+               Global.setEnableThumbnails(debugPage.getEnableThumbnails());\r
+\r
                \r
                if (debugPage.getDisableUploads())\r
                        Global.disableUploads = true;\r
@@ -107,6 +133,7 @@ public class ConfigDialog extends QDialog {
                        Global.disableUploads = false;\r
                Global.setDisableUploads(Global.disableUploads);\r
                Global.setMimicEvernoteInterface(appearancePage.getMimicEvernote());\r
+               Global.setMinimizeOnClose(appearancePage.getMinimizeOnClose());\r
                \r
                if (appearancePage.getShowSplashScreen())\r
                        Global.saveWindowVisible("SplashScreen", true);\r
@@ -118,43 +145,61 @@ public class ConfigDialog extends QDialog {
                        Global.setPdfPreview(true);\r
                else\r
                        Global.setPdfPreview(false);\r
+\r
+               if (appearancePage.getCheckForUpdates())\r
+                       Global.setCheckVersionUpgrade(true);\r
+               else\r
+                       Global.setCheckVersionUpgrade(false);\r
+\r
                \r
                if (appearancePage.getNewNoteWithTags())\r
                        Global.setNewNoteWithSelectedTags(true);\r
                else\r
                        Global.setNewNoteWithSelectedTags(false);\r
                \r
+               if (appearancePage.getAnyTagSelection())\r
+                       Global.setAnyTagSelectionMatch(true);\r
+               else\r
+                       Global.setAnyTagSelectionMatch(false);\r
+               \r
                Global.setAutoSaveInterval(appearancePage.getAutoSaveInterval());\r
                                                \r
                Global.setAutomaticLogin(connectionPage.getAutomaticLogin());\r
-               Global.setRememberPassword(connectionPage.getRememberPassword());\r
-               if (connectionPage.getRememberPassword()) {     \r
-                       aes.setPassword(connectionPage.getPassword());\r
-               }\r
+               Global.setProxyValue("url", connectionPage.getProxyUrl());\r
+               Global.setProxyValue("port", connectionPage.getProxyPort());\r
+               Global.setProxyValue("userid", connectionPage.getProxyUserid());\r
+               Global.setProxyValue("password", connectionPage.getProxyPassword());\r
+               \r
                Global.setShowTrayIcon(appearancePage.getShowTrayIcon());\r
                Global.setVerifyDelete(appearancePage.getVerifyDelete());\r
                Global.setStartMinimized(appearancePage.getStartMinimized());\r
                Global.setSynchronizeOnClose(connectionPage.getSynchronizeOnClose());\r
                Global.setSynchronizeDeletedContent(connectionPage.getSynchronizeDeletedContent());\r
                Global.setTagBehavior(appearancePage.getTagBehavior());\r
-       FileOutputStream out = null;\r
-               try {\r
-                       out = new FileOutputStream(Global.getFileManager().getHomeDirFile("secure.txt"));\r
-               } catch (FileNotFoundException e) {\r
-                       // if it isn't found we'll write it.\r
-               }\r
-               if (out != null)\r
-                       aes.encrypt(out);\r
+               Global.setIndexAttachmentsLocally(indexPage.getIndexAttachmentsLocally());\r
+               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.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.setMinimumWordLength(indexPage.getWordLength());\r
-               Global.minimumWordCount = indexPage.getWordLength();    \r
-               Global.setIndexThreads(indexPage.getIndexThreads());\r
                Global.setIndexThreadSleepInterval(indexPage.getSleepInterval());\r
                Global.setMessageLevel( debugPage.getDebugLevel());\r
                Global.saveCarriageReturnFix(debugPage.getCarriageReturnFix());\r
                Global.enableCarriageReturnFix = debugPage.getCarriageReturnFix();\r
+               Global.saveHtmlEntitiesFix(debugPage.getHtmlEntitiesFix());\r
+               Global.enableHTMLEntitiesFix = debugPage.getHtmlEntitiesFix();\r
+               \r
+               Global.setSpellSetting(Configuration.SPELL_IGNOREDIGITWORDS, spellPage.getIgnoreDigitWords());\r
+               Global.setSpellSetting(Configuration.SPELL_IGNOREINTERNETADDRESSES, spellPage.getIgnoreInternetAddresses());\r
+               Global.setSpellSetting(Configuration.SPELL_IGNOREMIXEDCASE, spellPage.getIgnoreMixedCase());\r
+               Global.setSpellSetting(Configuration.SPELL_IGNOREUPPERCASE, spellPage.getIgnoreUpperCase());\r
+               Global.setSpellSetting(Configuration.SPELL_IGNORESENTENCECAPITALIZATION, spellPage.getIgnoreSentenceCapitalization());\r
                \r
                String guiFormat = appearancePage.getStyle();\r
                QApplication.setStyle(guiFormat);\r
@@ -165,6 +210,7 @@ public class ConfigDialog extends QDialog {
                        QApplication.setPalette(QApplication.style().standardPalette());\r
                else\r
                        QApplication.setPalette(Global.originalPalette);\r
+               Global.setStartupNotebook(appearancePage.getStartupNotebook());\r
                \r
                String dateFmt = appearancePage.getDateFormat();\r
                String timeFmt = appearancePage.getTimeFormat();\r
@@ -177,33 +223,76 @@ public class ConfigDialog extends QDialog {
                Global.setTimeFormat(timeFmt);\r
                \r
                Global.setSyncInterval(connectionPage.getSyncInterval());\r
-                               \r
+               \r
+               Global.setOverrideDefaultFont(fontPage.overrideFont());\r
+               Global.setDefaultFont(fontPage.getFont());\r
+               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());\r
+               Global.setSameTagWeight(rensoNoteListPage.getSameTagWeight());\r
+               Global.setSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\r
+               Global.setENRelatedNotesWeight(rensoNoteListPage.getENRelatedNotesWeight());\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
                close();\r
        }\r
+       \r
+       \r
+       // Reject the current style\r
        @Override\r
        public void reject() {\r
                QApplication.setStyle(Global.getStyle());\r
                super.reject();\r
        }\r
        \r
+       //* return the debugging information page\r
        public ConfigDebugPage getDebugPage() {\r
                return debugPage;\r
        }\r
        \r
-       \r
+       // Get the Evernote connection page\r
        public ConfigConnectionPage getConfigPage() {\r
                return connectionPage;\r
        }\r
        \r
+       // 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
                formatsButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());\r
                formatsButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
-               formatsButton.setIcon(new QIcon(iconPath+"appearance.jpg"));\r
+               formatsButton.setIcon(new QIcon(iconPath+"appearance.png"));\r
+               \r
+               QListWidgetItem fontButton = new QListWidgetItem(contentsWidget);\r
+               fontButton.setText(tr("Fonts"));\r
+               fontButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());\r
+               fontButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
+               fontButton.setIcon(new QIcon(iconPath+"fontConfig.png"));\r
                \r
                QListWidgetItem indexButton = new QListWidgetItem(contentsWidget);\r
                indexButton.setText(tr("Indexing"));\r
@@ -229,40 +318,36 @@ 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
+               rensoListButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
+               rensoListButton.setIcon(new QIcon(iconPath+"rensoNoteList.png"));\r
+               \r
                contentsWidget.currentItemChanged.connect(this, "changePage(QListWidgetItem, QListWidgetItem)");\r
        }\r
        \r
+       // this is called when the user switches config pages\r
        protected void changePage(QListWidgetItem current, QListWidgetItem previous) {\r
                pagesWidget.setCurrentIndex(contentsWidget.row(current));\r
        }\r
        \r
+       // Load initial settings\r
        private void loadSettings() {\r
                Global.originalPalette = QApplication.palette();\r
                \r
                debugPage.setServer(Global.getServer());\r
                debugPage.setDisableUploads(Global.disableUploads);\r
+               debugPage.setEnableThumbnails(Global.enableThumbnails());\r
 //             if (Global.getUpdateSequenceNumber() > 0)\r
-                       debugPage.serverCombo.setEnabled(false);\r
-               \r
-               if (Global.username.equalsIgnoreCase("") || Global.password.equalsIgnoreCase("")) {\r
-               AESEncrypter aes = new AESEncrypter();\r
-               try {\r
-                               aes.decrypt(new FileInputStream(Global.getFileManager().getHomeDirFile("secure.txt")));\r
-                       } catch (FileNotFoundException e) {\r
-                               // File not found, so we'll just get empty strings anyway. \r
-                       }\r
-                       String userid = aes.getUserid();\r
-                       String password = aes.getPassword();\r
-                       if (!userid.equals("") && !password.equals("")) {\r
-                       Global.username = userid;\r
-                       Global.password = password;\r
-                       }                                       \r
-               }\r
+               \r
+               // ICHANGED\r
+               // TODO ↓のコメントアウトは最終的に外す(設定のデバッグページのサーバー選択を使用不可にする)\r
+               //      debugPage.serverCombo.setEnabled(false);\r
+\r
                appearancePage.setAutoSaveInterval(Global.getAutoSaveInterval());\r
-               connectionPage.setUserid(Global.username);\r
-               connectionPage.setPassword(Global.password);\r
                connectionPage.setAutomaticLogin(Global.automaticLogin());\r
-               connectionPage.setRememberPassword(Global.rememberPassword());\r
                appearancePage.setMimicEvernote(Global.getMimicEvernoteInterface());\r
                appearancePage.setShowTrayIcon(Global.showTrayIcon());\r
                connectionPage.setSynchronizeOnClose(Global.synchronizeOnClose());\r
@@ -270,13 +355,17 @@ public class ConfigDialog extends QDialog {
                appearancePage.setVerifyDelete(Global.verifyDelete());\r
                appearancePage.setStartMinimized(Global.startMinimized());\r
                appearancePage.setPdfPreview(Global.pdfPreview());\r
+               appearancePage.setCheckForUpdates(Global.checkVersionUpgrade());\r
                appearancePage.setNewNoteWithTags(Global.newNoteWithSelectedTags());\r
+               appearancePage.setAnyTagSelection(Global.anyTagSelectionMatch());\r
                appearancePage.setShowSplashScreen(Global.isWindowVisible("SplashScreen"));\r
                appearancePage.setTagBehavior(Global.tagBehavior());\r
+               appearancePage.setMinimizeOnClose(Global.minimizeOnClose());\r
+               appearancePage.setIncludeTagChildren(Global.includeTagChildren());\r
+               appearancePage.setDisplayRightToLeft(Global.displayRightToLeft());\r
+               appearancePage.setStartupNotebook(Global.getStartupNotebook());\r
                \r
-               indexPage.setRegex(Global.getWordRegex());\r
-               indexPage.setWordLength(Global.getMinimumWordLength());\r
-               indexPage.setIndexThreads(Global.getIndexThreads());\r
+//             indexPage.setRegex(Global.getWordRegex());\r
                indexPage.setSleepInterval(Global.getIndexThreadSleepInterval());\r
                connectionPage.setSyncInterval(Global.getSyncInterval());\r
                \r
@@ -287,6 +376,7 @@ public class ConfigDialog extends QDialog {
                                                \r
                debugPage.setDebugLevel(Global.getMessageLevel());\r
                debugPage.setCarriageReturnFix(Global.enableCarriageReturnFix());\r
+               debugPage.setHtmlEntitiesFix(Global.enableHTMLEntitiesFix);\r
                \r
        }\r
        \r