/*\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
package cx.fbn.nevernote.dialog;\r
\r
-import java.io.FileInputStream;\r
-import java.io.FileNotFoundException;\r
-import java.io.FileOutputStream;\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.gui.QWidget;\r
\r
import cx.fbn.nevernote.Global;\r
-import cx.fbn.nevernote.utilities.AESEncrypter;\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 ConfigAppearancePage appearancePage;\r
private final ConfigSpellPage spellPage;\r
private final ConfigIndexPage indexPage;\r
+ // ICHANGED\r
+ private final ConfigRensoNoteListPage rensoNoteListPage;\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
+ public ConfigDialog(QWidget parent, DatabaseConnection conn) {\r
+ this.conn = conn;\r
\r
contentsWidget = new QListWidget(this);\r
setWindowIcon(new QIcon(iconPath+"config.png"));\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
public void okPushed() {\r
Global.setServer(debugPage.getServer());\r
Global.setEnableThumbnails(debugPage.getEnableThumbnails());\r
- AESEncrypter aes = new AESEncrypter();\r
- aes.setUserid(connectionPage.getUserid().trim());\r
+\r
\r
if (debugPage.getDisableUploads())\r
Global.disableUploads = true;\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.setSynchronizeDeletedContent(connectionPage.getSynchronizeDeletedContent());\r
Global.setTagBehavior(appearancePage.getTagBehavior());\r
Global.setIndexAttachmentsLocally(indexPage.getIndexAttachmentsLocally());\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.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.setRecognitionWeight(indexPage.getRecognitionWeight());\r
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
Global.setDefaultFont(fontPage.getFont());\r
Global.setDefaultFontSize(fontPage.getFontSize());\r
Global.setDatabaseCache(debugPage.getDatabaseCacheSize());\r
- \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.setSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\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
+ NSqlQuery query = new NSqlQuery(conn.getConnection());\r
+ query.exec("CALL FTL_DROP_ALL();"); // カラム単位で削除できないので一度全部消して、再構築\r
+ \r
+ StringBuilder noteTableTarget = new StringBuilder();\r
+ if (Global.indexNoteBody()) {\r
+ noteTableTarget.append("CONTENTTEXT");\r
+ }\r
+ if (Global.indexNoteTitle()) {\r
+ if (noteTableTarget.length() > 0) {\r
+ noteTableTarget.append(", ");\r
+ }\r
+ noteTableTarget.append("TITLE");\r
+ }\r
+ \r
+ // TODO 他の項目もあとで追加\r
+ \r
+ if (noteTableTarget.length() > 0) {\r
+ query.prepare("CALL FTL_CREATE_INDEX('PUBLIC', 'NOTE', :column);");\r
+ query.bindValue(":column", noteTableTarget.toString());\r
+ query.exec();\r
+ }\r
+ \r
close();\r
}\r
\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
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
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
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.setSleepInterval(Global.getIndexThreadSleepInterval());\r