From: Randy Baumgarte Date: Thu, 2 Dec 2010 16:24:55 +0000 (-0500) Subject: - Added the ability to disable indexing of attachments locally. - Added the ability... X-Git-Tag: version0.1.1~273 X-Git-Url: http://git.sourceforge.jp/view?p=neighbornote%2FNeighborNote.git;a=commitdiff_plain;h=6557a6e4b659044fa7cb56227b29cd8d5d10192a;ds=sidebyside - Added the ability to disable indexing of attachments locally. - Added the ability to minimize the window instead of closing it. --- diff --git a/src/cx/fbn/nevernote/Global.java b/src/cx/fbn/nevernote/Global.java index 90f9cc9..ab17364 100644 --- a/src/cx/fbn/nevernote/Global.java +++ b/src/cx/fbn/nevernote/Global.java @@ -1328,6 +1328,44 @@ public class Global { settings.endGroup(); } + + //******************* + // Close/Minimize + //******************* + public static boolean minimizeOnClose() { + settings.beginGroup("General"); + String text = (String)settings.value("minimizeOnClose", "false"); + settings.endGroup(); + if (text.equalsIgnoreCase("true")) + return true; + else + return false; + } + public static void setMinimizeOnClose(boolean value) { + settings.beginGroup("General"); + settings.setValue("minimizeOnClose", value); + settings.endGroup(); + } + + + //******************* + // Index attachments + //******************* + public static boolean indexAttachmentsLocally() { + settings.beginGroup("Debug"); + String text = (String)settings.value("indexAttachmentsLocally", "true"); + settings.endGroup(); + if (text.equalsIgnoreCase("true")) + return true; + else + return false; + } + public static void setIndexAttachmentsLocally(boolean value) { + settings.beginGroup("Debug"); + settings.setValue("indexAttachmentsLocally", value); + settings.endGroup(); + } + } diff --git a/src/cx/fbn/nevernote/NeverNote.java b/src/cx/fbn/nevernote/NeverNote.java index 1616200..abf8534 100644 --- a/src/cx/fbn/nevernote/NeverNote.java +++ b/src/cx/fbn/nevernote/NeverNote.java @@ -305,7 +305,8 @@ public class NeverNote extends QMainWindow{ Signal0 minimizeToTray; boolean windowMaximized = false; // Keep track of the window state for restores List pdfReadyQueue; // Queue of PDFs that are ready to be rendered. - List syncIcons; + List syncIcons; // Array of icons used in sync animation + private boolean closeAction = false; // Used to say when to close or when to minimize private static Logger log = Logger.getLogger(NeverNote.class); @@ -380,6 +381,7 @@ public class NeverNote extends QMainWindow{ logger.log(logger.EXTREME, "Building index runners & timers"); indexRunner = new IndexRunner("indexRunner.log", Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); indexThread = new QThread(indexRunner, "Index Thread"); + indexRunner.indexAttachmentsLocally = Global.indexAttachmentsLocally(); indexThread.start(); synchronizeAnimationTimer = new QTimer(); @@ -585,7 +587,7 @@ public class NeverNote extends QMainWindow{ trayExitAction = new QAction("Exit", this); trayAddNoteAction = new QAction("Add Note", this); - trayExitAction.triggered.connect(this, "close()"); + trayExitAction.triggered.connect(this, "closeNeverNote()"); trayAddNoteAction.triggered.connect(this, "addNote()"); trayShowAction.triggered.connect(this, "trayToggleVisible()"); @@ -859,6 +861,11 @@ public class NeverNote extends QMainWindow{ // Exit point @Override public void closeEvent(QCloseEvent event) { + if (Global.minimizeOnClose() && !closeAction && Global.showTrayIcon()) { + event.ignore(); + hide(); + return; + } logger.log(logger.HIGH, "Entering NeverNote.closeEvent"); waitCursor(true); @@ -958,6 +965,11 @@ public class NeverNote extends QMainWindow{ logger.log(logger.HIGH, "Leaving NeverNote.closeEvent"); } + @SuppressWarnings("unused") + private void closeNeverNote() { + closeAction = true; + close(); + } public void setMessage(String s) { logger.log(logger.HIGH, "Entering NeverNote.setMessage"); logger.log(logger.HIGH, "Message: " +s); @@ -1044,6 +1056,7 @@ public class NeverNote extends QMainWindow{ indexTimer.start(indexTime); // reset indexing timer settings.exec(); + indexRunner.indexAttachmentsLocally = Global.indexAttachmentsLocally(); if (Global.showTrayIcon()) trayIcon.show(); else diff --git a/src/cx/fbn/nevernote/dialog/ConfigAppearancePage.java b/src/cx/fbn/nevernote/dialog/ConfigAppearancePage.java index 5460968..4e95242 100644 --- a/src/cx/fbn/nevernote/dialog/ConfigAppearancePage.java +++ b/src/cx/fbn/nevernote/dialog/ConfigAppearancePage.java @@ -49,6 +49,7 @@ public class ConfigAppearancePage extends QWidget { private final QCheckBox newNoteWithTags; private final QCheckBox mimicEvernote; private final QCheckBox startMinimized; + private final QCheckBox minimizeOnClose; private final QSpinBox autoSaveInterval; private final List tformats; @@ -133,6 +134,7 @@ public class ConfigAppearancePage extends QWidget { mimicEvernote = new QCheckBox(tr("Mimic Evernote Selection Behavior (Requires Restart)")); showSplashScreen = new QCheckBox(tr("Show Splash Screen on Startup")); showTrayIcon = new QCheckBox(tr("Minimize To Tray")); + minimizeOnClose = new QCheckBox(tr("Minimize On Close")); verifyDelete = new QCheckBox(tr("Verify Deletes")); startMinimized = new QCheckBox(tr("Start Minimized")); pdfPreview = new QCheckBox(tr("Display PDF Documents Inline")); @@ -152,6 +154,7 @@ public class ConfigAppearancePage extends QWidget { mainLayout.addWidget(tagBehaviorGroup); mainLayout.addWidget(mimicEvernote); mainLayout.addWidget(showTrayIcon); + mainLayout.addWidget(minimizeOnClose); mainLayout.addWidget(startMinimized); mainLayout.addWidget(showSplashScreen); mainLayout.addWidget(verifyDelete); @@ -159,9 +162,20 @@ public class ConfigAppearancePage extends QWidget { mainLayout.addWidget(newNoteWithTags); mainLayout.addStretch(1); setLayout(mainLayout); + + showTrayIcon.clicked.connect(this, "showTrayIconClicked(Boolean)"); + showTrayIconClicked(showTrayIcon.isChecked()); } + + private void showTrayIconClicked(Boolean checked) { + if (!checked) { + minimizeOnClose.setEnabled(false); + minimizeOnClose.setChecked(false); + } else + minimizeOnClose.setEnabled(true); + } //***************************************** @@ -231,12 +245,24 @@ public class ConfigAppearancePage extends QWidget { //******************************************* public void setShowTrayIcon(boolean val) { showTrayIcon.setChecked(val); + showTrayIconClicked(showTrayIcon.isChecked()); } public boolean getShowTrayIcon() { return showTrayIcon.isChecked(); } + //******************************************* + //* minimize on close get/set + //******************************************* + public void setMinimizeOnClose(boolean val) { + minimizeOnClose.setChecked(val); + } + public boolean getMinimizeOnClose() { + return minimizeOnClose.isChecked(); + } + + //***************************************** //* Show the splash screen on startup //***************************************** diff --git a/src/cx/fbn/nevernote/dialog/ConfigDialog.java b/src/cx/fbn/nevernote/dialog/ConfigDialog.java index f20def5..c8baa2d 100644 --- a/src/cx/fbn/nevernote/dialog/ConfigDialog.java +++ b/src/cx/fbn/nevernote/dialog/ConfigDialog.java @@ -114,6 +114,7 @@ public class ConfigDialog extends QDialog { Global.disableUploads = false; Global.setDisableUploads(Global.disableUploads); Global.setMimicEvernoteInterface(appearancePage.getMimicEvernote()); + Global.setMinimizeOnClose(appearancePage.getMinimizeOnClose()); if (appearancePage.getShowSplashScreen()) Global.saveWindowVisible("SplashScreen", true); @@ -149,6 +150,7 @@ public class ConfigDialog extends QDialog { Global.setSynchronizeOnClose(connectionPage.getSynchronizeOnClose()); Global.setSynchronizeDeletedContent(connectionPage.getSynchronizeDeletedContent()); Global.setTagBehavior(appearancePage.getTagBehavior()); + Global.setIndexAttachmentsLocally(indexPage.getIndexAttachmentsLocally()); FileOutputStream out = null; try { out = new FileOutputStream(Global.getFileManager().getHomeDirFile("secure.txt")); @@ -302,6 +304,7 @@ public class ConfigDialog extends QDialog { appearancePage.setNewNoteWithTags(Global.newNoteWithSelectedTags()); appearancePage.setShowSplashScreen(Global.isWindowVisible("SplashScreen")); appearancePage.setTagBehavior(Global.tagBehavior()); + appearancePage.setMinimizeOnClose(Global.minimizeOnClose()); indexPage.setRegex(Global.getWordRegex()); indexPage.setWordLength(Global.getMinimumWordLength()); diff --git a/src/cx/fbn/nevernote/dialog/ConfigIndexPage.java b/src/cx/fbn/nevernote/dialog/ConfigIndexPage.java index 7b29789..7d9b81a 100644 --- a/src/cx/fbn/nevernote/dialog/ConfigIndexPage.java +++ b/src/cx/fbn/nevernote/dialog/ConfigIndexPage.java @@ -19,6 +19,7 @@ package cx.fbn.nevernote.dialog; +import com.trolltech.qt.gui.QCheckBox; import com.trolltech.qt.gui.QGroupBox; import com.trolltech.qt.gui.QHBoxLayout; import com.trolltech.qt.gui.QLabel; @@ -35,6 +36,7 @@ public class ConfigIndexPage extends QWidget { private final QSpinBox lengthSpinner; private final QSpinBox weightSpinner; private final QSpinBox sleepSpinner; + private final QCheckBox indexAttachmentsLocally; private final QLineEdit regexEdit; public ConfigIndexPage(QWidget parent) { @@ -68,20 +70,27 @@ public class ConfigIndexPage extends QWidget { wordLengthLayout.addWidget(lengthSpinner); wordLengthGroup.setLayout(wordLengthLayout); - - // Minimum word length + // Recognition weight QGroupBox weightGroup = new QGroupBox(tr("Recognition")); QLabel weightLabel = new QLabel(tr("Minimum Recognition Weight")); weightSpinner = new QSpinBox(); weightSpinner.setRange(1,100); weightSpinner.setSingleStep(1); weightSpinner.setValue(Global.getRecognitionWeight()); - + QHBoxLayout weightLayout = new QHBoxLayout(); weightLayout.addWidget(weightLabel); weightLayout.addWidget(weightSpinner); weightGroup.setLayout(weightLayout); + // Local attachment indexing + QGroupBox attachmentGroup = new QGroupBox(tr("Attachments")); + indexAttachmentsLocally = new QCheckBox(tr("Index Attachments Locally")); + indexAttachmentsLocally.setChecked(Global.indexAttachmentsLocally()); + + QHBoxLayout attachmentLayout = new QHBoxLayout(); + attachmentLayout.addWidget(indexAttachmentsLocally); + attachmentGroup.setLayout(attachmentLayout); // Index sleep interval QGroupBox sleepGroup = new QGroupBox(tr("Index Interval")); @@ -95,8 +104,6 @@ public class ConfigIndexPage extends QWidget { sleepLayout.addWidget(sleepLabel); sleepLayout.addWidget(sleepSpinner); sleepGroup.setLayout(sleepLayout); - - // Regular Expressions for word parsing QGroupBox regexGroup = new QGroupBox(tr("Word Parse")); @@ -115,6 +122,7 @@ public class ConfigIndexPage extends QWidget { mainLayout.addWidget(wordLengthGroup); mainLayout.addWidget(sleepGroup); mainLayout.addWidget(weightGroup); + mainLayout.addWidget(attachmentGroup); mainLayout.addWidget(regexGroup); mainLayout.addStretch(1); setLayout(mainLayout); @@ -132,6 +140,12 @@ public class ConfigIndexPage extends QWidget { return lengthSpinner.value(); } + //***************************************** + //* Get for flag to index attachments + //***************************************** + public boolean getIndexAttachmentsLocally() { + return indexAttachmentsLocally.isChecked(); + } //***************************************** //* Word length get/set methods diff --git a/src/cx/fbn/nevernote/gui/MainMenuBar.java b/src/cx/fbn/nevernote/gui/MainMenuBar.java index df6369e..4cd82f4 100644 --- a/src/cx/fbn/nevernote/gui/MainMenuBar.java +++ b/src/cx/fbn/nevernote/gui/MainMenuBar.java @@ -188,7 +188,7 @@ public class MainMenuBar extends QMenuBar { exitAction = new QAction(tr("Exit"), this); exitAction.setToolTip("Close the program"); - exitAction.triggered.connect(parent, "close()"); + exitAction.triggered.connect(parent, "closeNeverNote()"); exitAction.setShortcut("Ctrl+Q"); setupShortcut(exitAction, "File_Exit"); diff --git a/src/cx/fbn/nevernote/threads/IndexRunner.java b/src/cx/fbn/nevernote/threads/IndexRunner.java index 61158d4..208d940 100644 --- a/src/cx/fbn/nevernote/threads/IndexRunner.java +++ b/src/cx/fbn/nevernote/threads/IndexRunner.java @@ -80,6 +80,7 @@ public class IndexRunner extends QObject implements Runnable { private static int MAX_QUEUED_WAITING = 1000; public boolean interrupt; public boolean idle; + public boolean indexAttachmentsLocally = true; public volatile IndexSignal signal; @@ -234,10 +235,10 @@ public class IndexRunner extends QObject implements Runnable { } } - if (Global.keepRunning) { + if (Global.keepRunning && indexAttachmentsLocally) { indexResourceContent(guid); } - + if (Global.keepRunning) conn.getNoteTable().noteResourceTable.setIndexNeeded(guid,false); } @@ -556,11 +557,11 @@ public class IndexRunner extends QObject implements Runnable { } List unindexedResources = conn.getNoteTable().noteResourceTable.getUnindexed(); - if (notes.size() > 0 && !started) { + if (unindexedResources.size() > 0 && !started) { signal.indexStarted.emit(); started = true; } - for (int i=0; i>unindexedResources.size()&& !interrupt && keepRunning; i++) { + for (int i=0; i