OSDN Git Service

Updated comments in some of the code.
authorRandy Baumgarte <randy@fbn.cx>
Fri, 13 May 2011 14:22:44 +0000 (10:22 -0400)
committerRandy Baumgarte <randy@Centauri.(none)>
Tue, 28 Jun 2011 13:20:32 +0000 (09:20 -0400)
41 files changed:
src/cx/fbn/nevernote/Global.java
src/cx/fbn/nevernote/NeverNote.java
src/cx/fbn/nevernote/dialog/AccountDialog.java
src/cx/fbn/nevernote/dialog/ConfigConnectionPage.java
src/cx/fbn/nevernote/dialog/ConfigDebugPage.java
src/cx/fbn/nevernote/dialog/ConfigDialog.java
src/cx/fbn/nevernote/dialog/ConfigIndexPage.java
src/cx/fbn/nevernote/dialog/ConfigSpellPage.java
src/cx/fbn/nevernote/dialog/DBEncryptDialog.java
src/cx/fbn/nevernote/dialog/DatabaseLoginDialog.java
src/cx/fbn/nevernote/dialog/DatabaseStatus.java
src/cx/fbn/nevernote/dialog/EnCryptDialog.java
src/cx/fbn/nevernote/dialog/EnDecryptDialog.java
src/cx/fbn/nevernote/dialog/FindDialog.java
src/cx/fbn/nevernote/dialog/GeoDialog.java
src/cx/fbn/nevernote/dialog/IgnoreSync.java
src/cx/fbn/nevernote/dialog/InsertLatexImage.java
src/cx/fbn/nevernote/dialog/InsertLinkDialog.java
src/cx/fbn/nevernote/dialog/LogFileDialog.java
src/cx/fbn/nevernote/dialog/LoginDialog.java
src/cx/fbn/nevernote/dialog/NotebookArchive.java
src/cx/fbn/nevernote/dialog/NotebookEdit.java
src/cx/fbn/nevernote/dialog/OnlineNoteHistory.java
src/cx/fbn/nevernote/dialog/PreviewDialog.java
src/cx/fbn/nevernote/dialog/PreviewImage.java
src/cx/fbn/nevernote/dialog/PublishNotebook.java
src/cx/fbn/nevernote/dialog/SavedSearchEdit.java
src/cx/fbn/nevernote/dialog/SetIcon.java
src/cx/fbn/nevernote/dialog/ShareNotebook.java
src/cx/fbn/nevernote/dialog/SpellCheck.java
src/cx/fbn/nevernote/dialog/StackNotebook.java
src/cx/fbn/nevernote/dialog/TableDialog.java
src/cx/fbn/nevernote/dialog/TagAssign.java
src/cx/fbn/nevernote/dialog/TagEdit.java
src/cx/fbn/nevernote/dialog/TagMerge.java
src/cx/fbn/nevernote/dialog/ThumbnailViewer.java
src/cx/fbn/nevernote/dialog/UpgradeAvailableDialog.java
src/cx/fbn/nevernote/dialog/WatchFolder.java
src/cx/fbn/nevernote/dialog/WatchFolderAdd.java
src/cx/fbn/nevernote/evernote/EnCrypt.java
src/cx/fbn/nevernote/evernote/EnmlConverter.java

index daab703..495db8d 100644 (file)
 package cx.fbn.nevernote;\r
 \r
 \r
 package cx.fbn.nevernote;\r
 \r
 \r
-//import java.io.ByteArrayOutputStream;\r
-\r
 import java.io.ByteArrayInputStream;\r
 import java.io.ByteArrayOutputStream;\r
 import java.io.IOException;\r
 import java.io.ObjectInputStream;\r
 import java.io.ObjectOutputStream;\r
 import java.io.ByteArrayInputStream;\r
 import java.io.ByteArrayOutputStream;\r
 import java.io.IOException;\r
 import java.io.ObjectInputStream;\r
 import java.io.ObjectOutputStream;\r
-import java.io.PrintStream;\r
 import java.text.SimpleDateFormat;\r
 import java.util.ArrayList;\r
 import java.util.Calendar;\r
 import java.text.SimpleDateFormat;\r
 import java.util.ArrayList;\r
 import java.util.Calendar;\r
@@ -55,13 +52,24 @@ import cx.fbn.nevernote.gui.ShortcutKeys;
 import cx.fbn.nevernote.utilities.ApplicationLogger;\r
 import cx.fbn.nevernote.utilities.Pair;\r
 \r
 import cx.fbn.nevernote.utilities.ApplicationLogger;\r
 import cx.fbn.nevernote.utilities.Pair;\r
 \r
+\r
+//*****************************************************\r
+//*****************************************************\r
+//* Global constants & static functions used by \r
+//* multiple threads.\r
+//*****************************************************\r
+//*****************************************************\r
+\r
 public class Global {\r
 public class Global {\r
+       // Set current version and the known versions.\r
        public static String version = "0.99";\r
        public static String[] validVersions = {"0.99", "0.98", "0.97", "0.96"};\r
     public static String username = ""; \r
     public static String password = "";     \r
     \r
 \r
        public static String version = "0.99";\r
        public static String[] validVersions = {"0.99", "0.98", "0.97", "0.96"};\r
     public static String username = ""; \r
     public static String password = "";     \r
     \r
 \r
+    // Each thread has an ID.  This is used primarily to check the status\r
+    // of running threads.\r
     public static final int mainThreadId=0;\r
     public static final int syncThreadId=1;\r
     public static final int tagCounterThreadId=2;\r
     public static final int mainThreadId=0;\r
     public static final int syncThreadId=1;\r
     public static final int tagCounterThreadId=2;\r
@@ -72,27 +80,41 @@ public class Global {
     public static final int indexThread03Id=7;   // unused\r
     public static final int indexThread04Id=8;   // unused\r
     public static final int dbThreadId=9;   // This should always be the highest thread ID\r
     public static final int indexThread03Id=7;   // unused\r
     public static final int indexThread04Id=8;   // unused\r
     public static final int dbThreadId=9;   // This should always be the highest thread ID\r
+    public static final int threadCount = 10;\r
     \r
     \r
     \r
     \r
+    // These variables deal with where the list of notes appears\r
+    // They will either be vertical (View_List_Narrow) or will be\r
+    // on top of the note (View_List_Wide).  It also has the size of\r
+    // thumbnails displayed in each view\r
     public static int View_List_Wide = 1;\r
     public static int View_List_Narrow = 2;\r
     public static QSize smallThumbnailSize = new QSize(100,75);\r
     public static QSize largeThumbnailSize = new QSize(300,225);\r
     public static int View_List_Wide = 1;\r
     public static int View_List_Narrow = 2;\r
     public static QSize smallThumbnailSize = new QSize(100,75);\r
     public static QSize largeThumbnailSize = new QSize(300,225);\r
-//    public static boolean listView = true;\r
-    \r
+\r
+    // This is used to keep a running list of passwords that the user\r
+    // wants us to remember.\r
     public static HashMap<String,Pair<String,String>> passwordSafe = new HashMap<String, Pair<String,String>>();\r
     public static List<Pair<String,String>> passwordRemember = new ArrayList<Pair<String,String>>();\r
     public static HashMap<String,Pair<String,String>> passwordSafe = new HashMap<String, Pair<String,String>>();\r
     public static List<Pair<String,String>> passwordRemember = new ArrayList<Pair<String,String>>();\r
-    public static String currentNotebookGuid;\r
+    \r
+    \r
+    //public static String currentNotebookGuid;\r
+    \r
+    // These deal with Evernote user settings\r
     public static User user; \r
     public static long authTimeRemaining;\r
     public static long authRefreshTime;\r
     public static User user; \r
     public static long authTimeRemaining;\r
     public static long authRefreshTime;\r
-    public static long failedRefreshes = 0;\r
-    public static boolean keepRunning;\r
-    \r
+    public static long failedRefreshes = 0; \r
     public static String userStoreUrl;\r
     public static String noteStoreUrl;\r
     public static String noteStoreUrlBase;\r
     public static String userStoreUrl;\r
     public static String noteStoreUrl;\r
     public static String noteStoreUrlBase;\r
-    \r
+\r
+    // When we want to shut down we set this to true to short\r
+    // circut other threads\r
+    public static boolean keepRunning;\r
+        \r
+    // In the note list, these are the column numbers\r
+    // so I don't need to hard code numbers.\r
     public static int noteTableCreationPosition = 0;\r
     public static int noteTableTitlePosition = 1;\r
     public static int noteTableTagPosition = 2;\r
     public static int noteTableCreationPosition = 0;\r
     public static int noteTableTitlePosition = 1;\r
     public static int noteTableTagPosition = 2;\r
@@ -107,45 +129,61 @@ public class Global {
     public static int noteTableColumnCount = 11;\r
     public static Integer cryptCounter = 0;\r
     \r
     public static int noteTableColumnCount = 11;\r
     public static Integer cryptCounter = 0;\r
     \r
-    public static int minimumWordCount = 2;\r
+    //public static int minimumWordCount = 2;\r
+    \r
+    // Regular expression to parse text with when indexing\r
     private static String wordRegex;\r
     private static String wordRegex;\r
+    \r
+    // Experimental fixes.  Set via Edit/Preferences/Debugging\r
     public static boolean enableCarriageReturnFix = false;\r
     public static boolean enableHTMLEntitiesFix = false;\r
     \r
     public static boolean enableCarriageReturnFix = false;\r
     public static boolean enableHTMLEntitiesFix = false;\r
     \r
-    public static String name = null;\r
-    public static QSettings    settings;\r
-    public static boolean isConnected;\r
-    public static boolean showDeleted = false;\r
-    public static boolean disableUploads = false;\r
-       public static int messageLevel;\r
-       public static String tagDelimeter = ",";\r
-       public static String attachmentNameDelimeter = "------";\r
+    //public static String name = null;   \r
+    \r
+    // Used to set & retrieve ini & Windows registry settings\r
+    public static QSettings    settings;     // Set & get ini settings\r
+    public static boolean isConnected;    // Are we connected to Evernote\r
+    public static boolean showDeleted = false;   // Show deleted notes?\r
+    public static boolean disableUploads = false;  // Should we disable uploads (used in testing features)\r
+       public static int messageLevel;   // The level of messages to write to the log files\r
+       public static String tagDelimeter = ",";   // This is used to separate out tag names when entering above note\r
+       public static String attachmentNameDelimeter = "------";  // Used to separate out attachment names in the res directory\r
        \r
        \r
-       public static String    databaseName = new String("NeverNote");\r
-       public static String    indexDatabaseName = new String("Index");\r
-       public static String    resourceDatabaseName = new String("Resources");\r
+       \r
+       //* Database fields\r
+       public static String    databaseName = new String("NeverNote");  // database name.  used for multiple databases to separate settings.\r
+       public static String    indexDatabaseName = new String("Index"); // searchable words database\r
+       public static String    resourceDatabaseName = new String("Resources");  // attachments database\r
        public static DateAttributeFilterTable createdSinceFilter;\r
        public static DateAttributeFilterTable createdBeforeFilter;\r
        public static DateAttributeFilterTable changedSinceFilter;\r
        public static DateAttributeFilterTable changedBeforeFilter;\r
        public static ContainsAttributeFilterTable containsFilter;\r
        public static DateAttributeFilterTable createdSinceFilter;\r
        public static DateAttributeFilterTable createdBeforeFilter;\r
        public static DateAttributeFilterTable changedSinceFilter;\r
        public static DateAttributeFilterTable changedBeforeFilter;\r
        public static ContainsAttributeFilterTable containsFilter;\r
+       \r
+       // Log file used for debugging\r
        public static ApplicationLogger    logger;\r
        public static ApplicationLogger    logger;\r
-       PrintStream stdoutStream;\r
+       //PrintStream stdoutStream;\r
+       \r
+       // Application key shortcuts & appearance\r
        public static QPalette                          originalPalette;\r
        public static ShortcutKeys                      shortcutKeys;\r
        public static QPalette                          originalPalette;\r
        public static ShortcutKeys                      shortcutKeys;\r
-       public static boolean                           disableViewing;\r
        \r
        \r
+       public static boolean                           disableViewing;  // used to disable the editor\r
+       \r
+       // When saving a note, this is a list of things we strip out because Evernote hates them\r
        public static List<String>                              invalidElements = new ArrayList<String>();\r
        public static HashMap<String, ArrayList<String>>        invalidAttributes = new HashMap<String, ArrayList<String>>();\r
        public static List<String>                              invalidElements = new ArrayList<String>();\r
        public static HashMap<String, ArrayList<String>>        invalidAttributes = new HashMap<String, ArrayList<String>>();\r
-       public static boolean mimicEvernoteInterface;\r
-       public static HashMap<String,String> resourceMap;\r
-       public static String cipherPassword = "";\r
-       public static String databaseCache = "16384";\r
        \r
        \r
-       static Calendar startTraceTime;\r
+       public static boolean mimicEvernoteInterface; // Try to mimic Evernote or allow multiple notebook selection\r
+       public static HashMap<String,String> resourceMap;   // List of attachments for a note.\r
+       public static String cipherPassword = "";    // If the database is encrypted, this stores the password\r
+       public static String databaseCache = "16384";  // Default DB cache size\r
+       \r
+       // These are used for performance testing\r
+       static Calendar startTraceTime;   \r
        static Calendar intervalTraceTime;\r
        static Calendar intervalTraceTime;\r
-\r
-       private static FileManager fileManager;\r
+       \r
+       private static FileManager fileManager;  // Used to access files & directories\r
        \r
     // Do initial setup \r
     public static void setup(StartupConfig startupConfig) throws InitializationException  {\r
        \r
     // Do initial setup \r
     public static void setup(StartupConfig startupConfig) throws InitializationException  {\r
@@ -155,39 +193,45 @@ public class Global {
         fileManager = new FileManager(startupConfig.getHomeDirPath(), startupConfig.getProgramDirPath());\r
 \r
 \r
         fileManager = new FileManager(startupConfig.getHomeDirPath(), startupConfig.getProgramDirPath());\r
 \r
 \r
-                       getServer();\r
-                       settings.beginGroup("General");\r
-                       String regex = (String) settings.value("regex", "[,\\s]+");\r
-                       setWordRegex(regex);\r
-                       String wordString = settings.value("minimumWordLength", "4").toString();\r
-                       Integer wordLen = new Integer(wordString);\r
-                       Global.minimumWordCount = wordLen;\r
-                       settings.endGroup();\r
-                       settings.beginGroup("Debug");\r
-                       String msglevel = (String) settings.value("messageLevel", "Low");\r
-                       settings.endGroup();\r
-                       messageLevel = 1;\r
-                       setMessageLevel(msglevel);\r
-                       keepRunning = true;\r
-                       disableUploads = disableUploads();\r
-                       enableCarriageReturnFix = enableCarriageReturnFix();\r
-                       enableHTMLEntitiesFix = enableHtmlEntitiesFix();\r
-                       logger = new ApplicationLogger("global.log");\r
-                       shortcutKeys = new ShortcutKeys();\r
-                       mimicEvernoteInterface = getMimicEvernoteInterface();\r
-                       resourceMap = new HashMap<String,String>();\r
+               getServer();  // Setup URL to connect to\r
+               \r
+               // Get regular expressions used to parse out words\r
+               settings.beginGroup("General");\r
+               String regex = (String) settings.value("regex", "[,\\s]+");\r
+               setWordRegex(regex);\r
+               settings.endGroup();\r
+               \r
+               // Setup debugging information\r
+               //settings.beginGroup("Debug");\r
+               //String msglevel = (String) settings.value("messageLevel", "Low");\r
+               //settings.endGroup();\r
+               \r
+               \r
+               //messageLevel = 1;\r
+               //setMessageLevel(msglevel);\r
+               keepRunning = true;  // Make sure child threads stay running\r
+               disableUploads = disableUploads();  // Should we upload anything?  Normally true.\r
+               enableCarriageReturnFix = enableCarriageReturnFix();  // Enable test fix?\r
+               enableHTMLEntitiesFix = enableHtmlEntitiesFix();  // Enable test fix?\r
+               \r
+               logger = new ApplicationLogger("global.log");  // Setup log for this class \r
+               shortcutKeys = new ShortcutKeys();  // Setup keyboard shortcuts.\r
+               mimicEvernoteInterface = getMimicEvernoteInterface();  // Should we mimic Evernote's notebook behavior\r
+               resourceMap = new HashMap<String,String>();  // Setup resource map used to store attachments when editing\r
                        \r
                        \r
-                       databaseCache = getDatabaseCacheSize();\r
-                               \r
+               databaseCache = getDatabaseCacheSize();  // Set database cache size     \r
     }\r
 \r
     }\r
 \r
+    // Get/Set word parsing regular expression\r
     public static String getWordRegex() {\r
        return wordRegex;\r
     }\r
     public static void setWordRegex(String r) {\r
        wordRegex = r;\r
     }\r
     public static String getWordRegex() {\r
        return wordRegex;\r
     }\r
     public static void setWordRegex(String r) {\r
        wordRegex = r;\r
     }\r
-    public static void setMessageLevel(String msglevel) {\r
+\r
+   // Set the debug message level\r
+   public static void setMessageLevel(String msglevel) {\r
        if (msglevel.equalsIgnoreCase("low")) \r
                        messageLevel = 1;\r
                if (msglevel.equalsIgnoreCase("medium")) \r
        if (msglevel.equalsIgnoreCase("low")) \r
                        messageLevel = 1;\r
                if (msglevel.equalsIgnoreCase("medium")) \r
@@ -201,6 +245,11 @@ public class Global {
                settings.endGroup();            \r
     }\r
 \r
                settings.endGroup();            \r
     }\r
 \r
+   //****************************************************\r
+   //****************************************************\r
+   //** Save user account information from Evernote\r
+   //****************************************************\r
+   //****************************************************\r
     public static void saveUserInformation(User user) {\r
        settings.beginGroup("User");\r
                settings.setValue("id", user.getId());\r
     public static void saveUserInformation(User user) {\r
        settings.beginGroup("User");\r
                settings.setValue("id", user.getId());\r
@@ -338,6 +387,18 @@ public class Global {
                settings.endGroup();\r
                return limit;\r
     }\r
                settings.endGroup();\r
                return limit;\r
     }\r
+\r
+    \r
+    \r
+    //****************************************************\r
+    //****************************************************\r
+    //** View settings.  Used to restore settings \r
+    //** when starting and to control how the program\r
+    //** behaves.\r
+    //****************************************************\r
+    //****************************************************\r
+    \r
+    //* Get/Set if we should show a tray icon\r
     public static boolean showTrayIcon() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean showTrayIcon() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -361,6 +422,8 @@ public class Global {
                        settings.setValue("showTrayIcon", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("showTrayIcon", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Get/Set window maximized when closed last\r
     public static boolean wasWindowMaximized() {\r
        try {\r
                        settings.beginGroup("General");\r
     public static boolean wasWindowMaximized() {\r
        try {\r
                        settings.beginGroup("General");\r
@@ -383,6 +446,8 @@ public class Global {
                        settings.setValue("isMaximized", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("isMaximized", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Get/set currently viewed note Guid\r
     public static String getLastViewedNoteGuid() {\r
                settings.beginGroup("General");\r
                String guid = (String) settings.value("lastViewedNote", "");\r
     public static String getLastViewedNoteGuid() {\r
                settings.beginGroup("General");\r
                String guid = (String) settings.value("lastViewedNote", "");\r
@@ -397,6 +462,8 @@ public class Global {
                        settings.setValue("lastViewedNote", "");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("lastViewedNote", "");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Get/Set the note column we are sorted on and the order\r
     public static void setSortColumn(int i) {\r
        int view = Global.getListView();\r
                settings.beginGroup("General");\r
     public static void setSortColumn(int i) {\r
        int view = Global.getListView();\r
                settings.beginGroup("General");\r
@@ -462,6 +529,8 @@ public class Global {
                settings.endGroup();\r
                return order;\r
     }\r
                settings.endGroup();\r
                return order;\r
     }\r
+    \r
+    // Should we automatically log in to Evernote when starting?\r
     public static boolean automaticLogin() {\r
        try {\r
                settings.beginGroup("General");\r
     public static boolean automaticLogin() {\r
        try {\r
                settings.beginGroup("General");\r
@@ -485,6 +554,8 @@ public class Global {
                        settings.setValue("automaticLogin", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("automaticLogin", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Should it save the Evernote password?\r
     public static boolean rememberPassword() {\r
        try {\r
                        settings.beginGroup("General");\r
     public static boolean rememberPassword() {\r
        try {\r
                        settings.beginGroup("General");\r
@@ -508,6 +579,8 @@ public class Global {
                        settings.setValue("rememberPassword", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("rememberPassword", "false");\r
                settings.endGroup();\r
     }\r
+\r
+    // Get/set the Evernote server Url.  \r
     public static void setServer(String server) {\r
                settings.beginGroup("General");\r
                settings.setValue("server", server);\r
     public static void setServer(String server) {\r
                settings.beginGroup("General");\r
                settings.setValue("server", server);\r
@@ -530,6 +603,8 @@ public class Global {
 //                     noteStoreUrlBase = "http://" + noteStoreUrlBase;\r
                return text;\r
     }\r
 //                     noteStoreUrlBase = "http://" + noteStoreUrlBase;\r
                return text;\r
     }\r
+\r
+    // Get/Set if we should disable uploads to Evernote\r
     public static boolean disableUploads() {\r
        settings.beginGroup("General");\r
        try {\r
     public static boolean disableUploads() {\r
        settings.beginGroup("General");\r
        try {\r
@@ -554,6 +629,8 @@ public class Global {
                settings.endGroup();\r
                disableUploads = val;\r
     }\r
                settings.endGroup();\r
                disableUploads = val;\r
     }\r
\r
+    // Should we view PDF documents inline?\r
     public static boolean pdfPreview() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean pdfPreview() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -577,6 +654,8 @@ public class Global {
                        settings.setValue("pdfPreview", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("pdfPreview", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // When creating a new note, should it inherit tags that are currently selected?\r
     public static boolean newNoteWithSelectedTags() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean newNoteWithSelectedTags() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -600,6 +679,9 @@ public class Global {
                        settings.setValue("newNoteWithSelectedTags", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("newNoteWithSelectedTags", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Minimum weight for text OCRed from Evernote. Anything below this\r
+    // Won't be shown to the user when they search\r
     public static void setRecognitionWeight(int len) {\r
                settings.beginGroup("General");\r
                settings.setValue("recognitionWeight", len);\r
     public static void setRecognitionWeight(int len) {\r
                settings.beginGroup("General");\r
                settings.setValue("recognitionWeight", len);\r
@@ -616,6 +698,8 @@ public class Global {
                settings.endGroup();\r
                return len;\r
     }\r
                settings.endGroup();\r
                return len;\r
     }\r
+    \r
+    // get/set current debug message level\r
     public static String getMessageLevel() {\r
                settings.beginGroup("Debug");\r
                String text = (String)settings.value("messageLevel", "Low");\r
     public static String getMessageLevel() {\r
                settings.beginGroup("Debug");\r
                String text = (String)settings.value("messageLevel", "Low");\r
@@ -627,6 +711,8 @@ public class Global {
                settings.setValue("dateFormat", format);\r
                settings.endGroup();            \r
     }\r
                settings.setValue("dateFormat", format);\r
                settings.endGroup();            \r
     }\r
+    \r
+    // Get/Set user date/time formats\r
     public static String getDateFormat() {\r
                settings.beginGroup("General");\r
                String text = (String)settings.value("dateFormat", "MM/dd/yyyy");\r
     public static String getDateFormat() {\r
                settings.beginGroup("General");\r
                String text = (String)settings.value("dateFormat", "MM/dd/yyyy");\r
@@ -644,6 +730,8 @@ public class Global {
                settings.endGroup();\r
                return text;\r
     }\r
                settings.endGroup();\r
                return text;\r
     }\r
+    \r
+    // How often should we sync with Evernote?\r
     public static String getSyncInterval() {\r
                settings.beginGroup("General");\r
                String text = (String)settings.value("syncInterval", "15 minutes");\r
     public static String getSyncInterval() {\r
                settings.beginGroup("General");\r
                String text = (String)settings.value("syncInterval", "15 minutes");\r
@@ -655,6 +743,9 @@ public class Global {
                settings.setValue("syncInterval", format);\r
                settings.endGroup();            \r
     }\r
                settings.setValue("syncInterval", format);\r
                settings.endGroup();            \r
     }\r
+    \r
+    // Get/Set the width of columns and their position for the \r
+    // next start.\r
     public static void setColumnWidth(String col, int width) {\r
        if (Global.getListView() == Global.View_List_Wide)\r
                settings.beginGroup("ColumnWidths");\r
     public static void setColumnWidth(String col, int width) {\r
        if (Global.getListView() == Global.View_List_Wide)\r
                settings.beginGroup("ColumnWidths");\r
@@ -710,6 +801,8 @@ public class Global {
                settings.endGroup();\r
                return width;\r
     }\r
                settings.endGroup();\r
                return width;\r
     }\r
+    \r
+    // Ping the user when they try to delete or just do it.\r
     public static boolean verifyDelete() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean verifyDelete() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -733,6 +826,8 @@ public class Global {
                        settings.setValue("verifyDelete", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("verifyDelete", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Should it start minimized?\r
     public static boolean startMinimized() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean startMinimized() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -756,6 +851,8 @@ public class Global {
                        settings.setValue("startMinimized", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("startMinimized", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Should we upload the content of any deleted notes\r
     public static boolean synchronizeDeletedContent() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean synchronizeDeletedContent() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -779,6 +876,9 @@ public class Global {
                        settings.setValue("syncDeletedContent", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("syncDeletedContent", "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Is a section of the window visible?  Used to hide things people don't\r
+    // want to see.\r
     public static boolean isWindowVisible(String window) {\r
                settings.beginGroup("WindowsVisible");\r
                try {\r
     public static boolean isWindowVisible(String window) {\r
                settings.beginGroup("WindowsVisible");\r
                try {\r
@@ -808,6 +908,8 @@ public class Global {
                        settings.setValue(window, "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue(window, "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Is a list in the column in the note list visible?  \r
     public static boolean isColumnVisible(String window) {\r
        String defaultValue = "true";\r
        int view = Global.getListView();\r
     public static boolean isColumnVisible(String window) {\r
        String defaultValue = "true";\r
        int view = Global.getListView();\r
@@ -850,6 +952,8 @@ public class Global {
                        settings.setValue(column, "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue(column, "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Is a particular editor button visible?\r
     public static boolean isEditorButtonVisible(String window) {\r
                settings.beginGroup("EditorButtonsVisible");\r
                try {\r
     public static boolean isEditorButtonVisible(String window) {\r
                settings.beginGroup("EditorButtonsVisible");\r
                try {\r
@@ -873,6 +977,8 @@ public class Global {
                        settings.setValue(column, "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue(column, "false");\r
                settings.endGroup();\r
     }\r
+    \r
+    // Should the test fixes be enabled\r
     public static boolean enableCarriageReturnFix() {\r
        try {\r
                settings.beginGroup("Debug");\r
     public static boolean enableCarriageReturnFix() {\r
        try {\r
                settings.beginGroup("Debug");\r
@@ -920,28 +1026,30 @@ public class Global {
                settings.endGroup();\r
     }\r
 \r
                settings.endGroup();\r
     }\r
 \r
-    public static void setIndexThreads(int val) {\r
-               settings.beginGroup("General");\r
-               settings.setValue("indexThreads", val);\r
-               settings.endGroup();\r
-    }\r
-    public static int getIndexThreads() {\r
-               settings.beginGroup("General");\r
-               Integer threads;\r
-               try {\r
-                       String val  = (String)settings.value("indexThreads", "1");\r
-                       threads = new Integer(val.trim());\r
-               } catch (Exception e) {\r
-                       try {\r
-                               threads = (Integer)settings.value("indexThreads", 1);\r
-                       } catch (Exception e1) {\r
-                               threads = 1;\r
-                       }\r
-               }\r
-               settings.endGroup();\r
-               threads = 1;\r
-               return threads;\r
-    }\r
+//    public static void setIndexThreads(int val) {\r
+//             settings.beginGroup("General");\r
+//             settings.setValue("indexThreads", val);\r
+//             settings.endGroup();\r
+//   }\r
+//    public static int getIndexThreads() {\r
+//             settings.beginGroup("General");\r
+//             Integer threads;\r
+//             try {\r
+//                     String val  = (String)settings.value("indexThreads", "1");\r
+//                     threads = new Integer(val.trim());\r
+//             } catch (Exception e) {\r
+//                     try {\r
+//                             threads = (Integer)settings.value("indexThreads", 1);\r
+//                     } catch (Exception e1) {\r
+//                             threads = 1;\r
+//                     }\r
+//             }\r
+//             settings.endGroup();\r
+//             threads = 1;\r
+//             return threads;\r
+    \r
+    // Get/Set text zoom factor\r
+//   }\r
     public static void setZoomFactor(double val) {\r
                settings.beginGroup("General");\r
                settings.setValue("zoomFactor", val);\r
     public static void setZoomFactor(double val) {\r
                settings.beginGroup("General");\r
                settings.setValue("zoomFactor", val);\r
@@ -985,6 +1093,8 @@ public class Global {
                return threads;\r
     }\r
     \r
                return threads;\r
     }\r
     \r
+    \r
+    // Should we mimic Evernote and restrict the notebooks selected?\r
     public static boolean getMimicEvernoteInterface() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean getMimicEvernoteInterface() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -1009,6 +1119,8 @@ public class Global {
        settings.endGroup();\r
     }\r
     \r
        settings.endGroup();\r
     }\r
     \r
+    \r
+    // Synchronize with Evernote when closing?\r
     public static boolean synchronizeOnClose() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean synchronizeOnClose() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -1032,6 +1144,9 @@ public class Global {
                        settings.setValue("synchronizeOnClose", "false");\r
                settings.endGroup();\r
     }\r
                        settings.setValue("synchronizeOnClose", "false");\r
                settings.endGroup();\r
     }\r
+\r
+    // Get/set the database version.  Not really used any more, but kept\r
+    // for compatibility.\r
     public static void setDatabaseVersion(String version) {\r
                settings.beginGroup("General");\r
                settings.setValue("databaseVersion", version);\r
     public static void setDatabaseVersion(String version) {\r
                settings.beginGroup("General");\r
                settings.setValue("databaseVersion", version);\r
@@ -1043,6 +1158,8 @@ public class Global {
                settings.endGroup();\r
                return val;\r
     }\r
                settings.endGroup();\r
                return val;\r
     }\r
+\r
+    // Get the URL (full path) of the main database\r
     public static String getDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
     public static String getDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
@@ -1051,6 +1168,8 @@ public class Global {
                        val = "jdbc:h2:"+Global.getFileManager().getDbDirPath(Global.databaseName);\r
                return val;\r
     }\r
                        val = "jdbc:h2:"+Global.getFileManager().getDbDirPath(Global.databaseName);\r
                return val;\r
     }\r
+    \r
+    // get the url (full path) of the searchable word database\r
     public static String getIndexDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
     public static String getIndexDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
@@ -1059,6 +1178,8 @@ public class Global {
                        val = "jdbc:h2:"+Global.getFileManager().getDbDirPath(Global.indexDatabaseName);\r
                return val;\r
     }\r
                        val = "jdbc:h2:"+Global.getFileManager().getDbDirPath(Global.indexDatabaseName);\r
                return val;\r
     }\r
+    \r
+    // Get the url (full path) of the attachment database\r
     public static String getResourceDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
     public static String getResourceDatabaseUrl() {\r
                settings.beginGroup("General");\r
                String val  = (String)settings.value("DatabaseURL", "");\r
@@ -1084,6 +1205,8 @@ public class Global {
                settings.endGroup();\r
                return val;\r
     }\r
                settings.endGroup();\r
                return val;\r
     }\r
+    \r
+    // get/Set the style sheet and the palette to control the look & feel\r
     public static void setStyle(String style) {\r
                settings.beginGroup("General");\r
                settings.setValue("style", style);\r
     public static void setStyle(String style) {\r
                settings.beginGroup("General");\r
                settings.setValue("style", style);\r
@@ -1119,6 +1242,7 @@ public class Global {
                settings.endGroup();\r
     }\r
     \r
                settings.endGroup();\r
     }\r
     \r
+    // Set the amount of time to wait between indexing\r
     // Get/Set interval when the index thread wakes up.\r
     public static void setIndexThreadSleepInterval(int sleep) {\r
                settings.beginGroup("General");\r
     // Get/Set interval when the index thread wakes up.\r
     public static void setIndexThreadSleepInterval(int sleep) {\r
                settings.beginGroup("General");\r
@@ -1142,6 +1266,8 @@ public class Global {
                return sleep;\r
     }\r
     \r
                return sleep;\r
     }\r
     \r
+    \r
+    // Get/Set a window state for later restoring\r
     public static void saveState(String name, QByteArray state) {\r
        int view = Global.getListView();\r
        if (view == Global.View_List_Narrow)\r
     public static void saveState(String name, QByteArray state) {\r
        int view = Global.getListView();\r
        if (view == Global.View_List_Narrow)\r
@@ -1181,6 +1307,8 @@ public class Global {
                return state;\r
     }\r
     \r
                return state;\r
     }\r
     \r
+    \r
+    // Set how often to do an automatic save\r
     public static void setAutoSaveInterval(int interval) {\r
                settings.beginGroup("General");\r
                settings.setValue("autoSaveInterval", interval);\r
     public static void setAutoSaveInterval(int interval) {\r
                settings.beginGroup("General");\r
                settings.setValue("autoSaveInterval", interval);\r
@@ -1203,6 +1331,8 @@ public class Global {
                return value;\r
     }\r
      \r
                return value;\r
     }\r
      \r
+    // Add an invalid attribute & element to the database so we don't bother parsing it in the future\r
+    // These values we automatically remove from any note.\r
     // Add invalid attributes\r
     public static void addInvalidAttribute(String element, String attribute) {\r
        \r
     // Add invalid attributes\r
     public static void addInvalidAttribute(String element, String attribute) {\r
        \r
@@ -1226,8 +1356,7 @@ public class Global {
                invalidAttributes.put(element,attributeList);\r
        }\r
     }\r
                invalidAttributes.put(element,attributeList);\r
        }\r
     }\r
-\r
-    \r
+   \r
     // Add invalid attributes\r
     public static void addInvalidElement(String element) {\r
                for (int i=0; i<invalidElements.size(); i++) {\r
     // Add invalid attributes\r
     public static void addInvalidElement(String element) {\r
                for (int i=0; i<invalidElements.size(); i++) {\r
@@ -1237,6 +1366,7 @@ public class Global {
        invalidElements.add(element);\r
     }\r
     \r
        invalidElements.add(element);\r
     }\r
     \r
+    // Get/Set proxy information\r
     // Proxy settings\r
     public static String getProxyValue(String key) {\r
                settings.beginGroup("Proxy");\r
     // Proxy settings\r
     public static String getProxyValue(String key) {\r
                settings.beginGroup("Proxy");\r
@@ -1250,7 +1380,7 @@ public class Global {
                settings.endGroup();\r
     }\r
     \r
                settings.endGroup();\r
     }\r
     \r
-    \r
+    // Change a byte array to a hex string\r
     // Convert a byte array to a hex string\r
        public static String byteArrayToHexString(byte data[]) {\r
                StringBuffer buf = new StringBuffer();\r
     // Convert a byte array to a hex string\r
        public static String byteArrayToHexString(byte data[]) {\r
                StringBuffer buf = new StringBuffer();\r
@@ -1268,7 +1398,9 @@ public class Global {
            return buf.toString();              \r
        }\r
 \r
            return buf.toString();              \r
        }\r
 \r
-    public static boolean getSpellSetting(String value) {\r
+    \r
+       // Get/Set spelling settings\r
+       public static boolean getSpellSetting(String value) {\r
                settings.beginGroup("Spell");\r
                String text = (String)settings.value(value, "");\r
                settings.endGroup();\r
                settings.beginGroup("Spell");\r
                String text = (String)settings.value(value, "");\r
                settings.endGroup();\r
@@ -1295,7 +1427,7 @@ public class Global {
                settings.endGroup();\r
     }\r
        \r
                settings.endGroup();\r
     }\r
        \r
-       \r
+       // Get/Set how we should display tags (color them, hide unused, or do nothing)\r
        // What to do with inactive tags?\r
        public static String tagBehavior() {\r
                settings.beginGroup("General");\r
        // What to do with inactive tags?\r
        public static String tagBehavior() {\r
                settings.beginGroup("General");\r
@@ -1310,7 +1442,9 @@ public class Global {
                settings.endGroup();\r
        }\r
 \r
                settings.endGroup();\r
        }\r
 \r
-    public static boolean isToolbarButtonVisible(String window) {\r
+    \r
+       // Should the toolbar be visible?\r
+       public static boolean isToolbarButtonVisible(String window) {\r
                settings.beginGroup("ToolbarButtonsVisible");\r
                try {\r
                        String text = (String)settings.value(window, "true");\r
                settings.beginGroup("ToolbarButtonsVisible");\r
                try {\r
                        String text = (String)settings.value(window, "true");\r
@@ -1334,6 +1468,7 @@ public class Global {
                settings.endGroup();\r
     }\r
        \r
                settings.endGroup();\r
     }\r
        \r
+    // Are thumbnails enabled?\r
     \r
     public static boolean enableThumbnails() {\r
                settings.beginGroup("Debug");\r
     \r
     public static boolean enableThumbnails() {\r
                settings.beginGroup("Debug");\r
@@ -1359,6 +1494,7 @@ public class Global {
                settings.endGroup();\r
     }\r
        \r
                settings.endGroup();\r
     }\r
        \r
+    // Trace used for performance tuning.  Not normally used in production.\r
        // Print date/time.  Used mainly for performance tracing\r
        public static void trace(boolean resetInterval) {\r
                String fmt = "MM/dd/yy HH:mm:ss.SSSSSS";\r
        // Print date/time.  Used mainly for performance tracing\r
        public static void trace(boolean resetInterval) {\r
                String fmt = "MM/dd/yy HH:mm:ss.SSSSSS";\r
@@ -1392,9 +1528,13 @@ public class Global {
                startTraceTime = null;\r
        }\r
 \r
                startTraceTime = null;\r
        }\r
 \r
-    public static FileManager getFileManager() {\r
+    \r
+       // Get the FileManager class to manage local files & directories\r
+       public static FileManager getFileManager() {\r
         return fileManager;\r
     }\r
         return fileManager;\r
     }\r
+       \r
+       // Should the note editor be disabled?\r
     public static boolean getDisableViewing() {\r
         return disableViewing;\r
     }\r
     public static boolean getDisableViewing() {\r
         return disableViewing;\r
     }\r
@@ -1469,6 +1609,10 @@ public class Global {
                }\r
 \r
     }\r
                }\r
 \r
     }\r
+    \r
+    //****************************************************\r
+    // Get/Set the default font settings for a new note\r
+    //****************************************************\r
     public static void setOverrideDefaultFont(boolean value) {\r
                settings.beginGroup("Font");\r
                settings.setValue("overrideFont", value);\r
     public static void setOverrideDefaultFont(boolean value) {\r
                settings.beginGroup("Font");\r
                settings.setValue("overrideFont", value);\r
@@ -1498,9 +1642,9 @@ public class Global {
     }\r
     \r
     \r
     }\r
     \r
     \r
-    //*******************\r
-    // Close/Minimize\r
-    //*******************\r
+    //*******************************************\r
+    // Override the close & minimize instead.\r
+    //*******************************************\r
     public static boolean minimizeOnClose() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean minimizeOnClose() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -1522,9 +1666,9 @@ public class Global {
                settings.endGroup();    \r
     }\r
 \r
                settings.endGroup();    \r
     }\r
 \r
-    //*******************\r
+    //*********************************\r
     // Check version information\r
     // Check version information\r
-    //*******************\r
+    //*********************************\r
     public static boolean checkVersionUpgrade() {\r
                settings.beginGroup("Upgrade");\r
                try {\r
     public static boolean checkVersionUpgrade() {\r
                settings.beginGroup("Upgrade");\r
                try {\r
@@ -1582,9 +1726,9 @@ public class Global {
                settings.endGroup();    \r
     }\r
 \r
                settings.endGroup();    \r
     }\r
 \r
-    //*******************\r
-    // Index attachments\r
-    //*******************\r
+    //*****************************************************************************\r
+    // Control how tag selection behaves (should they be "and" or "or" selections\r
+    //*****************************************************************************\r
     public static boolean anyTagSelectionMatch() {\r
                settings.beginGroup("General");\r
                try {\r
     public static boolean anyTagSelectionMatch() {\r
                settings.beginGroup("General");\r
                try {\r
@@ -1623,7 +1767,7 @@ public class Global {
     }\r
 \r
     \r
     }\r
 \r
     \r
-    \r
+    // This is used to copy a class since Java's normal deep copy is wacked\r
     public static Object deepCopy(Object oldObj) \r
     {\r
        ObjectOutputStream oos = null;\r
     public static Object deepCopy(Object oldObj) \r
     {\r
        ObjectOutputStream oos = null;\r
index e18ba7b..9dece7a 100644 (file)
@@ -396,9 +396,9 @@ public class NeverNote extends QMainWindow{
         browserIndexSplitter.setOrientation(Qt.Orientation.Vertical);
         
         //* Setup threads & thread timers
         browserIndexSplitter.setOrientation(Qt.Orientation.Vertical);
         
         //* Setup threads & thread timers
-        int indexRunnerCount = Global.getIndexThreads();
-        indexRunnerCount = 1;
-        QThreadPool.globalInstance().setMaxThreadCount(indexRunnerCount+5);    // increase max thread count
+//        int indexRunnerCount = Global.getIndexThreads();
+//       indexRunnerCount = 1;
+        QThreadPool.globalInstance().setMaxThreadCount(Global.threadCount);    // increase max thread count
 
                logger.log(logger.EXTREME, "Building list manager");
         listManager = new ListManager(conn, logger);
 
                logger.log(logger.EXTREME, "Building list manager");
         listManager = new ListManager(conn, logger);
index b3da836..b89d8ae 100644 (file)
@@ -49,6 +49,8 @@ public class AccountDialog extends QDialog {
        \r
        // Constructor\r
        public AccountDialog() {\r
        \r
        // Constructor\r
        public AccountDialog() {\r
+               \r
+               // Setup window layout, title, & icon\r
                setWindowTitle(tr("Account Information"));\r
                setWindowIcon(new QIcon(new QIcon(iconPath+"account.png")));\r
                QGridLayout grid = new QGridLayout();\r
                setWindowTitle(tr("Account Information"));\r
                setWindowIcon(new QIcon(new QIcon(iconPath+"account.png")));\r
                QGridLayout grid = new QGridLayout();\r
@@ -61,6 +63,7 @@ public class AccountDialog extends QDialog {
                \r
                String userName = Global.username;\r
                \r
                \r
                String userName = Global.username;\r
                \r
+               // calculate the upload amount\r
                Long uploadAmt = Global.getUploadAmount();\r
                Long uploadLimit = Global.getUploadLimit();\r
                Long uploadLimitEnd = Global.getUploadLimitEnd();\r
                Long uploadAmt = Global.getUploadAmount();\r
                Long uploadLimit = Global.getUploadLimit();\r
                Long uploadLimitEnd = Global.getUploadLimitEnd();\r
@@ -88,6 +91,7 @@ public class AccountDialog extends QDialog {
                SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);\r
                StringBuilder endDate = new StringBuilder(simple.format(uploadLimitEnd));\r
                \r
                SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);\r
                StringBuilder endDate = new StringBuilder(simple.format(uploadLimitEnd));\r
                \r
+               // Show limits\r
                QGroupBox limitGroup = new QGroupBox(tr("Account:"));\r
 \r
                QGridLayout textGrid = new QGridLayout();\r
                QGroupBox limitGroup = new QGroupBox(tr("Account:"));\r
 \r
                QGridLayout textGrid = new QGridLayout();\r
@@ -130,6 +134,7 @@ public class AccountDialog extends QDialog {
                grid.addLayout(buttonLayout,3,1);\r
        }\r
        \r
                grid.addLayout(buttonLayout,3,1);\r
        }\r
        \r
+       // build a field used for the incomming email\r
        private QWidget createIncomingEmailField(String email){\r
                QTextEdit emailTextEdit = new QTextEdit();\r
                \r
        private QWidget createIncomingEmailField(String email){\r
                QTextEdit emailTextEdit = new QTextEdit();\r
                \r
@@ -165,12 +170,13 @@ public class AccountDialog extends QDialog {
                return emailTextEdit;\r
        }\r
        \r
                return emailTextEdit;\r
        }\r
        \r
+       // OK button pushed, close the window\r
        @SuppressWarnings("unused")\r
        private void okPushed() {\r
                this.close();\r
        }\r
        \r
        @SuppressWarnings("unused")\r
        private void okPushed() {\r
                this.close();\r
        }\r
        \r
-\r
+       // return the actual OK button\r
        public QPushButton getOkButton() {\r
                return ok;\r
        }\r
        public QPushButton getOkButton() {\r
                return ok;\r
        }\r
index 9cd0aeb..d905ba7 100644 (file)
  *\r
 */\r
 \r
  *\r
 */\r
 \r
+\r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is the Edit/Preferences dialog \r
+//* when "Connection" is selected.  Used to store\r
+//* Evernote information.\r
+//**********************************************\r
+//**********************************************\r
+\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import java.util.List;\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import java.util.List;\r
index 8d31a67..8ffe2de 100644 (file)
  *\r
 */\r
 \r
  *\r
 */\r
 \r
+\r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is the debugging information \r
+//* page used in the Edit/Preferences dialog\r
+//**********************************************\r
+//**********************************************\r
+\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
index efd2b71..9af74e7 100644 (file)
  *\r
 */\r
 \r
  *\r
 */\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is the debugging information \r
+//* page used in the Edit/Preferences dialog\r
+//**********************************************\r
+//**********************************************\r
+\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import java.io.FileInputStream;\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import java.io.FileInputStream;\r
@@ -102,6 +109,10 @@ public class ConfigDialog extends QDialog {
                \r
                loadSettings();\r
        }\r
                \r
                loadSettings();\r
        }\r
+\r
+       //******************************************\r
+       //* Ok button is pushed.  Save values\r
+       //******************************************\r
        public void okPushed() {\r
                Global.setServer(debugPage.getServer());\r
                Global.setEnableThumbnails(debugPage.getEnableThumbnails());\r
        public void okPushed() {\r
                Global.setServer(debugPage.getServer());\r
                Global.setEnableThumbnails(debugPage.getEnableThumbnails());\r
@@ -215,21 +226,26 @@ public class ConfigDialog extends QDialog {
                                \r
                close();\r
        }\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
        @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
        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
        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
        public void createIcons() {\r
                String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
 \r
@@ -273,10 +289,12 @@ public class ConfigDialog extends QDialog {
                contentsWidget.currentItemChanged.connect(this, "changePage(QListWidgetItem, QListWidgetItem)");\r
        }\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
        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
        private void loadSettings() {\r
                Global.originalPalette = QApplication.palette();\r
                \r
index e3da0b1..44c4a42 100644 (file)
  *\r
 */\r
 \r
  *\r
 */\r
 \r
+\r
+//**********************************************\r
+//**********************************************\r
+//* Index settings in Edit/Preferences\r
+//**********************************************\r
+//**********************************************\r
+\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
index f01d33d..c150cf8 100644 (file)
  *\r
 */\r
 \r
  *\r
 */\r
 \r
+\r
+\r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is the debugging information \r
+//* page used in the Edit/Preferences dialog.  \r
+//* It is the spelling dialog.\r
+//**********************************************\r
+//**********************************************\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.swabunga.spell.engine.Configuration;\r
 package cx.fbn.nevernote.dialog;\r
 \r
 import com.swabunga.spell.engine.Configuration;\r
index 95bd026..1a3f961 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Set the database to be encrypted.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import com.trolltech.qt.gui.QComboBox;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 import com.trolltech.qt.gui.QComboBox;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
index e652056..d6e3f8c 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Dialog box presented when the database is \r
+//* encrypted.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 import com.trolltech.qt.gui.QIcon;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 import com.trolltech.qt.gui.QIcon;\r
index 51c529c..a9cf76c 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Show the current database status\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.text.NumberFormat;\r
 \r
 import com.trolltech.qt.gui.QDialog;\r
 import java.text.NumberFormat;\r
 \r
 import com.trolltech.qt.gui.QDialog;\r
index a0e6a52..08174e8 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog when a user tries to \r
+//* encrypt text in a note\r
+//**********************************************\r
+//**********************************************\r
+\r
 \r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 \r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
index 5695901..3d3684b 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog when a user tries to \r
+//* decrypt text in a note\r
+//**********************************************\r
+//**********************************************\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 import com.trolltech.qt.gui.QDialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 import com.trolltech.qt.gui.QDialog;\r
index 713ce01..4c0a9f4 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog when a user tries to \r
+//* search for text witihn a note.\r
+//**********************************************\r
+//**********************************************\r
+\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 import com.trolltech.qt.gui.QDialog;\r
 \r
 import com.trolltech.qt.gui.QCheckBox;\r
 import com.trolltech.qt.gui.QDialog;\r
index a1acb61..d78cf46 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog when the user clicks\r
+//* the geo tag for a note.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QDoubleValidator;\r
 import com.trolltech.qt.gui.QDoubleValidator.Notation;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QDoubleValidator;\r
 import com.trolltech.qt.gui.QDoubleValidator.Notation;\r
index 7805e7b..5f33f13 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+\r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog used to tell the program\r
+//* to not synchronize some notebooks.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.LinkedNotebook;\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.LinkedNotebook;\r
index 00125a3..8221a25 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog box that pops up when\r
+//* a user tries to insert a LaTeX image.\r
+//**********************************************\r
+//**********************************************\r
 \r
 import com.trolltech.qt.core.Qt;\r
 import com.trolltech.qt.gui.QDialog;\r
 \r
 import com.trolltech.qt.core.Qt;\r
 import com.trolltech.qt.gui.QDialog;\r
index 3694191..5e0e171 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog used when a user wants\r
+//* to add a HTML link.\r
+//**********************************************\r
+//**********************************************\r
 \r
 import com.trolltech.qt.core.Qt;\r
 import com.trolltech.qt.gui.QDialog;\r
 \r
 import com.trolltech.qt.core.Qt;\r
 import com.trolltech.qt.gui.QDialog;\r
index c90e72f..3cd75ae 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This dialog is called when the Help/Log\r
+//* menu option is clicked.\r
+//**********************************************\r
+//**********************************************\r
+\r
+\r
 import java.io.BufferedReader;\r
 import java.io.File;\r
 import java.io.FileNotFoundException;\r
 import java.io.BufferedReader;\r
 import java.io.File;\r
 import java.io.FileNotFoundException;\r
index 35e4ae1..0b65be6 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Login to Evernote\r
+//**********************************************\r
+//**********************************************\r
+\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 import com.trolltech.qt.gui.QIcon;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QGridLayout;\r
 import com.trolltech.qt.gui.QIcon;\r
index 8ae7fc3..0b2e752 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Open or close a notebook to hide a notebook\r
+//* from a user.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Notebook;\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Notebook;\r
index 4b349bb..ed0446f 100644 (file)
 
 package cx.fbn.nevernote.dialog;
 
 
 package cx.fbn.nevernote.dialog;
 
+//**********************************************
+//**********************************************
+//* Chaneg or create a notebook
+//**********************************************
+//**********************************************
+
 import java.util.List;
 
 import com.evernote.edam.type.Notebook;
 import java.util.List;
 
 import com.evernote.edam.type.Notebook;
index bacd4de..cba5d73 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is the dialog that shows a user\r
+//* the note's history from Evernote.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.text.SimpleDateFormat;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.text.SimpleDateFormat;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
index a0f0135..3733320 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Show a full screen preview of the note.  This\r
+//* isn't really used much any more.\r
+//**********************************************\r
+//**********************************************\r
+\r
+\r
+\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QHBoxLayout;\r
 import com.trolltech.qt.gui.QImage;\r
 import com.trolltech.qt.gui.QDialog;\r
 import com.trolltech.qt.gui.QHBoxLayout;\r
 import com.trolltech.qt.gui.QImage;\r
index 17c73ec..229a683 100644 (file)
@@ -5,6 +5,13 @@ import com.trolltech.qt.gui.QLabel;
 import com.trolltech.qt.gui.QMouseEvent;\r
 import com.trolltech.qt.gui.QWidget;\r
 \r
 import com.trolltech.qt.gui.QMouseEvent;\r
 import com.trolltech.qt.gui.QWidget;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Show a full screen preview of the note.  This\r
+//* isn't really used much any more.\r
+//**********************************************\r
+//**********************************************\r
+\r
 public class PreviewImage extends QLabel {\r
 \r
        public String ID;\r
 public class PreviewImage extends QLabel {\r
 \r
        public String ID;\r
index 591cfa0..547fddd 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Publish (make public) a notebook.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import com.evernote.edam.type.NoteSortOrder;\r
 import com.evernote.edam.type.Notebook;\r
 import com.evernote.edam.type.Publishing;\r
 import com.evernote.edam.type.NoteSortOrder;\r
 import com.evernote.edam.type.Notebook;\r
 import com.evernote.edam.type.Publishing;\r
index b48e883..932bad3 100644 (file)
 
 package cx.fbn.nevernote.dialog;
 
 
 package cx.fbn.nevernote.dialog;
 
+//**********************************************
+//**********************************************
+//* Edit or create a saved search
+//**********************************************
+//**********************************************
+
 import java.util.List;
 
 import com.evernote.edam.type.SavedSearch;
 import java.util.List;
 
 import com.evernote.edam.type.SavedSearch;
index 7115caa..bdacc29 100644 (file)
 
 package cx.fbn.nevernote.dialog;
 
 
 package cx.fbn.nevernote.dialog;
 
+//**********************************************
+//**********************************************
+//* Show the "set icon" dialog box for notebooks, tags, etc...
+//**********************************************
+//**********************************************
+
+
 import com.trolltech.qt.gui.QCheckBox;
 import com.trolltech.qt.gui.QDialog;
 import com.trolltech.qt.gui.QFileDialog;
 import com.trolltech.qt.gui.QCheckBox;
 import com.trolltech.qt.gui.QDialog;
 import com.trolltech.qt.gui.QFileDialog;
index 18cb51a..ab24ed5 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Share a notebook with another user.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
index cbc4c87..501cf0a 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Show the spell check dialog\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.swabunga.spell.engine.Word;\r
 import java.util.List;\r
 \r
 import com.swabunga.spell.engine.Word;\r
index 4fac977..1a57119 100644 (file)
 
 package cx.fbn.nevernote.dialog;
 
 
 package cx.fbn.nevernote.dialog;
 
+//**********************************************
+//**********************************************
+//* Dialog used when a user tries to stack
+//* or unstack a notebook.
+//**********************************************
+//**********************************************
+
 import java.util.List;
 
 import com.trolltech.qt.gui.QComboBox;
 import java.util.List;
 
 import com.trolltech.qt.gui.QComboBox;
index 3a0c5d3..ea9794c 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Used to create a table in a note\r
+//**********************************************\r
+//**********************************************\r
+\r
 \r
 import com.trolltech.qt.gui.QComboBox;\r
 import com.trolltech.qt.gui.QDialog;\r
 \r
 import com.trolltech.qt.gui.QComboBox;\r
 import com.trolltech.qt.gui.QDialog;\r
index 4b0b7e9..42cf38f 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Dialog box used to assign a tag to a note\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
index 72c4ff7..2d8ba8a 100644 (file)
 
 package cx.fbn.nevernote.dialog;
 
 
 package cx.fbn.nevernote.dialog;
 
+//**********************************************
+//**********************************************
+//* Create or edit a tag
+//**********************************************
+//**********************************************
+
 import java.util.List;
 
 import com.evernote.edam.type.Tag;
 import java.util.List;
 
 import com.evernote.edam.type.Tag;
index 6506ded..f48ad60 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Combine two tags\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Tag;\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Tag;\r
index 35ad48d..e94e3db 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This isn't really used but at one time it\r
+//* was used to create a full page preview.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.trolltech.qt.core.QPoint;\r
 import java.util.List;\r
 \r
 import com.trolltech.qt.core.QPoint;\r
index 8e9493c..d54d0cb 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Dialog box to notify that a new release\r
+//* is available.\r
+//**********************************************\r
+//**********************************************\r
 \r
 import com.trolltech.qt.core.QUrl;\r
 import com.trolltech.qt.gui.QCheckBox;\r
 \r
 import com.trolltech.qt.core.QUrl;\r
 import com.trolltech.qt.gui.QCheckBox;\r
index b05d67b..ed26b6a 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Dialog box used to show watched folders\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
index d622978..529530f 100644 (file)
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
 \r
 package cx.fbn.nevernote.dialog;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* dialog box used to add a watched folder\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Notebook;\r
 import java.util.List;\r
 \r
 import com.evernote.edam.type.Notebook;\r
index 5769d4f..83f7e61 100644 (file)
 */\r
 package cx.fbn.nevernote.evernote;\r
 \r
 */\r
 package cx.fbn.nevernote.evernote;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* Utility used to encript or decrypt the \r
+//* text in a note.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.io.IOException;\r
 import java.security.InvalidAlgorithmParameterException;\r
 import java.security.InvalidKeyException;\r
 import java.io.IOException;\r
 import java.security.InvalidAlgorithmParameterException;\r
 import java.security.InvalidKeyException;\r
index 8b82196..40831bf 100644 (file)
 */\r
 package cx.fbn.nevernote.evernote;\r
 \r
 */\r
 package cx.fbn.nevernote.evernote;\r
 \r
+//**********************************************\r
+//**********************************************\r
+//* This is used to turn HTML into ENML compliant\r
+//* data.\r
+//**********************************************\r
+//**********************************************\r
+\r
 import java.io.ByteArrayInputStream;\r
 import java.io.ByteArrayOutputStream;\r
 import java.io.File;\r
 import java.io.ByteArrayInputStream;\r
 import java.io.ByteArrayOutputStream;\r
 import java.io.File;\r