/* * This file is part of NixNote * Copyright 2009 Randy Baumgarte * * This file may be licensed under the terms of of the * GNU General Public License Version 2 (the ``GPL''). * * Software distributed under the License is distributed * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the GPL for the specific language * governing rights and limitations. * * You should have received a copy of the GPL along with this * program. If not, go to http://www.gnu.org/licenses/gpl.html * or write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ //********************************************** //********************************************** //* This dialog is the debugging information //* page used in the Edit/Preferences dialog //********************************************** //********************************************** package cx.fbn.nevernote.dialog; import com.swabunga.spell.engine.Configuration; import com.trolltech.qt.core.QSize; import com.trolltech.qt.core.Qt.AlignmentFlag; import com.trolltech.qt.core.Qt.ItemFlag; import com.trolltech.qt.gui.QApplication; import com.trolltech.qt.gui.QDialog; import com.trolltech.qt.gui.QHBoxLayout; import com.trolltech.qt.gui.QIcon; import com.trolltech.qt.gui.QListView; import com.trolltech.qt.gui.QListWidget; import com.trolltech.qt.gui.QListWidgetItem; import com.trolltech.qt.gui.QPushButton; import com.trolltech.qt.gui.QStackedWidget; import com.trolltech.qt.gui.QVBoxLayout; import com.trolltech.qt.gui.QWidget; import cx.fbn.nevernote.Global; public class ConfigDialog extends QDialog { private final QListWidget contentsWidget; private final ConfigFontPage fontPage; private final QStackedWidget pagesWidget; private final ConfigConnectionPage connectionPage; private final ConfigDebugPage debugPage; private final ConfigAppearancePage appearancePage; private final ConfigSpellPage spellPage; private final ConfigIndexPage indexPage; private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/"); public ConfigDialog(QWidget parent) { contentsWidget = new QListWidget(this); setWindowIcon(new QIcon(iconPath+"config.png")); contentsWidget.setViewMode(QListView.ViewMode.IconMode); contentsWidget.setIconSize(new QSize(96, 84)); contentsWidget.setMovement(QListView.Movement.Static); contentsWidget.setMaximumWidth(128); contentsWidget.setSpacing(12); pagesWidget = new QStackedWidget(this); fontPage = new ConfigFontPage(this); connectionPage = new ConfigConnectionPage(this); appearancePage = new ConfigAppearancePage(this); indexPage = new ConfigIndexPage(this); debugPage = new ConfigDebugPage(this); spellPage = new ConfigSpellPage(this); pagesWidget.addWidget(appearancePage); pagesWidget.addWidget(fontPage); pagesWidget.addWidget(indexPage); pagesWidget.addWidget(spellPage); pagesWidget.addWidget(connectionPage); pagesWidget.addWidget(debugPage); QPushButton cancelButton = new QPushButton(tr("Cancel")); QPushButton okButton = new QPushButton(tr("OK")); okButton.clicked.connect(this, "okPushed()"); cancelButton.clicked.connect(this, "close()"); createIcons(); contentsWidget.setCurrentRow(0); QHBoxLayout horizontalLayout = new QHBoxLayout(); horizontalLayout.addWidget(contentsWidget); horizontalLayout.addWidget(pagesWidget,1); QHBoxLayout buttonLayout = new QHBoxLayout(); buttonLayout.addStretch(1); buttonLayout.addWidget(okButton); buttonLayout.addWidget(cancelButton); setWindowTitle(tr("Settings")); QVBoxLayout mainLayout = new QVBoxLayout(); mainLayout.addLayout(horizontalLayout); mainLayout.addSpacing(1); mainLayout.addLayout(buttonLayout); setLayout(mainLayout); loadSettings(); } //****************************************** //* Ok button is pushed. Save values //****************************************** public void okPushed() { Global.setServer(debugPage.getServer()); Global.setEnableThumbnails(debugPage.getEnableThumbnails()); if (debugPage.getDisableUploads()) Global.disableUploads = true; else Global.disableUploads = false; Global.setDisableUploads(Global.disableUploads); Global.setMimicEvernoteInterface(appearancePage.getMimicEvernote()); Global.setMinimizeOnClose(appearancePage.getMinimizeOnClose()); if (appearancePage.getShowSplashScreen()) Global.saveWindowVisible("SplashScreen", true); else Global.saveWindowVisible("SplashScreen", false); if (appearancePage.getPdfPreview()) Global.setPdfPreview(true); else Global.setPdfPreview(false); if (appearancePage.getCheckForUpdates()) Global.setCheckVersionUpgrade(true); else Global.setCheckVersionUpgrade(false); if (appearancePage.getNewNoteWithTags()) Global.setNewNoteWithSelectedTags(true); else Global.setNewNoteWithSelectedTags(false); if (appearancePage.getAnyTagSelection()) Global.setAnyTagSelectionMatch(true); else Global.setAnyTagSelectionMatch(false); Global.setAutoSaveInterval(appearancePage.getAutoSaveInterval()); Global.setAutomaticLogin(connectionPage.getAutomaticLogin()); Global.setProxyValue("url", connectionPage.getProxyUrl()); Global.setProxyValue("port", connectionPage.getProxyPort()); Global.setProxyValue("userid", connectionPage.getProxyUserid()); Global.setProxyValue("password", connectionPage.getProxyPassword()); Global.setShowTrayIcon(appearancePage.getShowTrayIcon()); Global.setVerifyDelete(appearancePage.getVerifyDelete()); Global.setStartMinimized(appearancePage.getStartMinimized()); Global.setSynchronizeOnClose(connectionPage.getSynchronizeOnClose()); Global.setSynchronizeDeletedContent(connectionPage.getSynchronizeDeletedContent()); Global.setTagBehavior(appearancePage.getTagBehavior()); Global.setIndexAttachmentsLocally(indexPage.getIndexAttachmentsLocally()); Global.setIndexNoteBody(indexPage.getIndexNoteBody()); Global.setIndexNoteTitle(indexPage.getIndexNoteTitle()); Global.setIndexImageRecognition(indexPage.getIndexImageRecognition()); Global.setAutomaticWildcardSearches(indexPage.getAutomaticWildcardSearches()); Global.setSpecialIndexCharacters(indexPage.getSpecialCharacters()); Global.setIncludeTagChildren(appearancePage.getIncludeTagChildren()); Global.setDisplayRightToLeft(appearancePage.getDisplayRightToLeft()); Global.userStoreUrl = "https://"+debugPage.getServer()+"/edam/user"; Global.setWordRegex(indexPage.getRegex()); Global.setRecognitionWeight(indexPage.getRecognitionWeight()); Global.setIndexThreadSleepInterval(indexPage.getSleepInterval()); Global.setMessageLevel( debugPage.getDebugLevel()); Global.saveCarriageReturnFix(debugPage.getCarriageReturnFix()); Global.enableCarriageReturnFix = debugPage.getCarriageReturnFix(); Global.saveHtmlEntitiesFix(debugPage.getHtmlEntitiesFix()); Global.enableHTMLEntitiesFix = debugPage.getHtmlEntitiesFix(); Global.setSpellSetting(Configuration.SPELL_IGNOREDIGITWORDS, spellPage.getIgnoreDigitWords()); Global.setSpellSetting(Configuration.SPELL_IGNOREINTERNETADDRESSES, spellPage.getIgnoreInternetAddresses()); Global.setSpellSetting(Configuration.SPELL_IGNOREMIXEDCASE, spellPage.getIgnoreMixedCase()); Global.setSpellSetting(Configuration.SPELL_IGNOREUPPERCASE, spellPage.getIgnoreUpperCase()); Global.setSpellSetting(Configuration.SPELL_IGNORESENTENCECAPITALIZATION, spellPage.getIgnoreSentenceCapitalization()); String guiFormat = appearancePage.getStyle(); QApplication.setStyle(guiFormat); QApplication.style().standardPalette(); Global.setStyle(guiFormat); Global.setStandardPalette(appearancePage.getStandardPalette()); if (Global.useStandardPalette()) QApplication.setPalette(QApplication.style().standardPalette()); else QApplication.setPalette(Global.originalPalette); Global.setStartupNotebook(appearancePage.getStartupNotebook()); String dateFmt = appearancePage.getDateFormat(); String timeFmt = appearancePage.getTimeFormat(); int dash = dateFmt.indexOf("-"); dateFmt = dateFmt.substring(0,dash-1); dash = timeFmt.indexOf("-"); timeFmt = timeFmt.substring(0,dash-1); Global.setDateFormat(dateFmt); Global.setTimeFormat(timeFmt); Global.setSyncInterval(connectionPage.getSyncInterval()); Global.setOverrideDefaultFont(fontPage.overrideFont()); Global.setDefaultFont(fontPage.getFont()); Global.setDefaultFontSize(fontPage.getFontSize()); Global.setDatabaseCache(debugPage.getDatabaseCacheSize()); close(); } // Reject the current style @Override public void reject() { QApplication.setStyle(Global.getStyle()); super.reject(); } //* return the debugging information page public ConfigDebugPage getDebugPage() { return debugPage; } // Get the Evernote connection page public ConfigConnectionPage getConfigPage() { return connectionPage; } // Create icons used for navigating the page public void createIcons() { String iconPath = new String("classpath:cx/fbn/nevernote/icons/"); QListWidgetItem formatsButton = new QListWidgetItem(contentsWidget); formatsButton.setText(tr("Appearance")); formatsButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); formatsButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); formatsButton.setIcon(new QIcon(iconPath+"appearance.jpg")); QListWidgetItem fontButton = new QListWidgetItem(contentsWidget); fontButton.setText(tr("Fonts")); fontButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); fontButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); fontButton.setIcon(new QIcon(iconPath+"fontConfig.png")); QListWidgetItem indexButton = new QListWidgetItem(contentsWidget); indexButton.setText(tr("Indexing")); indexButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); indexButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); indexButton.setIcon(new QIcon(iconPath+"search_config.jpg")); QListWidgetItem spellButton = new QListWidgetItem(contentsWidget); spellButton.setText(tr("Spell Check")); spellButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); spellButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); spellButton.setIcon(new QIcon(iconPath+"dictionary.png")); QListWidgetItem configButton = new QListWidgetItem(contentsWidget); configButton.setText(tr("Connection")); configButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); configButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); configButton.setIcon(new QIcon(iconPath+"synchronize.png")); QListWidgetItem debugButton = new QListWidgetItem(contentsWidget); debugButton.setText(tr("Debugging")); debugButton.setTextAlignment(AlignmentFlag.AlignHCenter.value()); debugButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled); debugButton.setIcon(new QIcon(iconPath+"debug.jpg")); contentsWidget.currentItemChanged.connect(this, "changePage(QListWidgetItem, QListWidgetItem)"); } // this is called when the user switches config pages protected void changePage(QListWidgetItem current, QListWidgetItem previous) { pagesWidget.setCurrentIndex(contentsWidget.row(current)); } // Load initial settings private void loadSettings() { Global.originalPalette = QApplication.palette(); debugPage.setServer(Global.getServer()); debugPage.setDisableUploads(Global.disableUploads); debugPage.setEnableThumbnails(Global.enableThumbnails()); // if (Global.getUpdateSequenceNumber() > 0) debugPage.serverCombo.setEnabled(false); appearancePage.setAutoSaveInterval(Global.getAutoSaveInterval()); connectionPage.setAutomaticLogin(Global.automaticLogin()); appearancePage.setMimicEvernote(Global.getMimicEvernoteInterface()); appearancePage.setShowTrayIcon(Global.showTrayIcon()); connectionPage.setSynchronizeOnClose(Global.synchronizeOnClose()); connectionPage.setSyncronizeDeletedContent(Global.synchronizeDeletedContent()); appearancePage.setVerifyDelete(Global.verifyDelete()); appearancePage.setStartMinimized(Global.startMinimized()); appearancePage.setPdfPreview(Global.pdfPreview()); appearancePage.setCheckForUpdates(Global.checkVersionUpgrade()); appearancePage.setNewNoteWithTags(Global.newNoteWithSelectedTags()); appearancePage.setAnyTagSelection(Global.anyTagSelectionMatch()); appearancePage.setShowSplashScreen(Global.isWindowVisible("SplashScreen")); appearancePage.setTagBehavior(Global.tagBehavior()); appearancePage.setMinimizeOnClose(Global.minimizeOnClose()); appearancePage.setIncludeTagChildren(Global.includeTagChildren()); appearancePage.setDisplayRightToLeft(Global.displayRightToLeft()); appearancePage.setStartupNotebook(Global.getStartupNotebook()); indexPage.setRegex(Global.getWordRegex()); indexPage.setSleepInterval(Global.getIndexThreadSleepInterval()); connectionPage.setSyncInterval(Global.getSyncInterval()); appearancePage.setDateFormat(Global.getDateFormat()); appearancePage.setTimeFormat(Global.getTimeFormat()); appearancePage.setStyle(Global.getStyle()); appearancePage.setStandardPalette(Global.useStandardPalette()); debugPage.setDebugLevel(Global.getMessageLevel()); debugPage.setCarriageReturnFix(Global.enableCarriageReturnFix()); debugPage.setHtmlEntitiesFix(Global.enableHTMLEntitiesFix); } }