import java.util.HashMap;\r
import java.util.List;\r
\r
+import org.apache.commons.lang.StringEscapeUtils;\r
+\r
import com.evernote.edam.type.Accounting;\r
import com.evernote.edam.type.PrivilegeLevel;\r
import com.evernote.edam.type.User;\r
import com.swabunga.spell.engine.Configuration;\r
import com.trolltech.qt.core.QByteArray;\r
import com.trolltech.qt.core.QSettings;\r
+import com.trolltech.qt.core.QSize;\r
import com.trolltech.qt.gui.QPalette;\r
\r
import cx.fbn.nevernote.config.FileManager;\r
import cx.fbn.nevernote.gui.DateAttributeFilterTable;\r
import cx.fbn.nevernote.gui.ShortcutKeys;\r
import cx.fbn.nevernote.utilities.ApplicationLogger;\r
+import cx.fbn.nevernote.utilities.Pair;\r
\r
public class Global {\r
- public static String version = "0.91";\r
+ public static String version = "0.94";\r
public static String username = ""; \r
public static String password = ""; \r
\r
\r
public static final int mainThreadId=0;\r
- \r
public static final int syncThreadId=1;\r
- \r
public static final int tagCounterThreadId=2;\r
- \r
public static final int trashCounterThreadId=3; // This should always be the highest thread ID\r
-\r
public static final int indexThreadId=4; // Thread for indexing words\r
-\r
public static final int saveThreadId=5; // Thread used for processing data to saving content\r
-\r
public static final int notebookCounterThreadId=6; // Notebook Thread\r
-\r
public static final int indexThread03Id=7; // unused\r
-\r
public static final int indexThread04Id=8; // unused\r
- \r
public static final int dbThreadId=9; // This should always be the highest thread ID\r
\r
\r
- public static HashMap<String,String> passwordSafe = new HashMap<String, String>();\r
- public static List<String> passwordRemember = new ArrayList<String>();\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
+ 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
public static User user; \r
public static long authTimeRemaining;\r
public static int noteTableSourceUrlPosition = 7;\r
public static int noteTableSubjectDatePosition = 8;\r
public static int noteTableSynchronizedPosition = 9;\r
- public static int noteTableColumnCount = 10;\r
+ public static int noteTableThumbnailPosition = 10;\r
+ public static int noteTableColumnCount = 11;\r
public static Integer cryptCounter = 0;\r
\r
public static int minimumWordCount = 2;\r
}\r
public static void setSortColumn(int i) {\r
settings.beginGroup("General");\r
- settings.setValue("sortColumn", i);\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.setValue("sortColumn", i);\r
+ else\r
+ settings.setValue("sortColumn-Narrow", i);\r
settings.endGroup();\r
}\r
public static int getSortColumn() {;\r
+ String key;\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ key = "sortColumn";\r
+ else\r
+ key = "sortColumn-Narrow";\r
+\r
settings.beginGroup("General");\r
int order; \r
try {\r
- String val = settings.value("sortColumn", new Integer(0)).toString();\r
+ String val = settings.value(key, new Integer(0)).toString();\r
order = new Integer(val.trim());\r
} catch (Exception e) {\r
try {\r
- order = (Integer)settings.value("sortColumn", 0);\r
+ order = (Integer)settings.value(key, 0);\r
} catch (Exception e1) {\r
order = 0;\r
}\r
noteStoreUrlBase = "sandbox.evernote.com/edam/note/";\r
}\r
settings.endGroup();\r
- if (isPremium())\r
+// if (isPremium())\r
noteStoreUrlBase = "https://" + noteStoreUrlBase;\r
- else\r
- noteStoreUrlBase = "http://" + noteStoreUrlBase;\r
+// else\r
+// noteStoreUrlBase = "http://" + noteStoreUrlBase;\r
return text;\r
}\r
public static boolean disableUploads() {\r
settings.endGroup(); \r
}\r
public static void setColumnWidth(String col, int width) {\r
- settings.beginGroup("ColumnWidths");\r
- settings.setValue(col, width);\r
- settings.endGroup();\r
- }\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnWidths");\r
+ else \r
+ settings.beginGroup("ColumnWidths-Narrow");\r
+ settings.setValue(col, width);\r
+ settings.endGroup();\r
+ }\r
public static int getColumnWidth(String col) {\r
- settings.beginGroup("ColumnWidths");\r
+ int view = Global.getListView();\r
+ if (view == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnWidths");\r
+ else\r
+ settings.beginGroup("ColumnWidths-Narrow");\r
Integer width;\r
try {\r
String val = (String)settings.value(col, "0");\r
return width;\r
}\r
public static void setColumnPosition(String col, int width) {\r
- settings.beginGroup("ColumnPosition");\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnPosition");\r
+ else\r
+ settings.beginGroup("ColumnPosition-Narrow");\r
settings.setValue(col, width);\r
settings.endGroup();\r
}\r
public static int getColumnPosition(String col) {\r
- settings.beginGroup("ColumnPosition");\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnPosition");\r
+ else\r
+ settings.beginGroup("ColumnPosition-Narrow");\r
Integer width;\r
try {\r
String val = (String)settings.value(col, "-1");\r
settings.endGroup();\r
}\r
public static boolean isColumnVisible(String window) {\r
- settings.beginGroup("ColumnsVisible");\r
- String text = (String)settings.value(window, "true");\r
+ String defaultValue = "true";\r
+ int view = Global.getListView();\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnsVisible");\r
+ else\r
+ settings.beginGroup("ColumnsVisible-Narrow"); \r
+// if (view == Global.View_List_Narrow)\r
+// defaultValue = "false";\r
+ if (window.equalsIgnoreCase("thumbnail") && view == Global.View_List_Wide)\r
+ defaultValue = "false";\r
+ if (window.equalsIgnoreCase("thumbnail"))\r
+ defaultValue = "false";\r
+ if (window.equalsIgnoreCase("Guid"))\r
+ defaultValue = "false";\r
+// if (window.equalsIgnoreCase("thumbnail") && view == Global.View_List_Narrow)\r
+// defaultValue = "true";\r
+ String text = (String)settings.value(window, defaultValue);\r
settings.endGroup();\r
if (text.equalsIgnoreCase("true"))\r
return true;\r
return false; \r
}\r
public static void saveColumnVisible(String column, boolean val) {\r
- settings.beginGroup("ColumnsVisible");\r
+ if (Global.getListView() == Global.View_List_Wide)\r
+ settings.beginGroup("ColumnsVisible");\r
+ else\r
+ settings.beginGroup("ColumnsVisible-Narrow"); \r
if (val)\r
settings.setValue(column, "true");\r
else\r
settings.endGroup();\r
return threads;\r
}\r
-\r
+ \r
public static boolean getMimicEvernoteInterface() {\r
settings.beginGroup("General");\r
String text = (String)settings.value("mimicEvernoteInterface", "true");\r
}\r
\r
public static void saveState(String name, QByteArray state) {\r
+ int view = Global.getListView();\r
+ if (view == Global.View_List_Narrow)\r
+ name = name +"Narrow";\r
settings.beginGroup("SaveState");\r
settings.setValue(name, state);\r
settings.endGroup();\r
}\r
\r
public static QByteArray restoreState(String name) {\r
+ int view = Global.getListView();\r
+ if (view == Global.View_List_Narrow)\r
+ name = name +"Narrow";\r
settings.beginGroup("SaveState");\r
QByteArray state = (QByteArray)settings.value(name);\r
settings.endGroup();\r
return state;\r
}\r
public static void saveGeometry(String name, QByteArray state) {\r
- settings.beginGroup("SaveGeometry");\r
+ int view = Global.getListView();\r
+ if (view == Global.View_List_Narrow)\r
+ settings.beginGroup("SaveGeometryNarrow");\r
+ else\r
+ settings.beginGroup("SaveGeometry");\r
settings.setValue(name, state);\r
settings.endGroup();\r
}\r
\r
public static QByteArray restoreGeometry(String name) {\r
- settings.beginGroup("SaveGeometry");\r
+ int view = Global.getListView();\r
+ if (view == Global.View_List_Narrow)\r
+ settings.beginGroup("SaveGeometryNarrow");\r
+ else\r
+ settings.beginGroup("SaveGeometry");\r
QByteArray state = (QByteArray)settings.value(name);\r
settings.endGroup();\r
return state;\r
try {\r
value = (Integer)settings.value("autoSaveInterval", 5);\r
} catch (Exception e1) {\r
- value = 0;\r
+ value = 5;\r
}\r
}\r
settings.endGroup();\r
invalidElements.add(element);\r
}\r
\r
+ // Proxy settings\r
+ public static String getProxyValue(String key) {\r
+ settings.beginGroup("Proxy");\r
+ String val = (String)settings.value(key, "");\r
+ settings.endGroup();\r
+ return val;\r
+ }\r
+ public static void setProxyValue(String key, String value) {\r
+ settings.beginGroup("Proxy");\r
+ settings.setValue(key, value);\r
+ settings.endGroup();\r
+ }\r
+ \r
+ \r
// Convert a byte array to a hex string\r
public static String byteArrayToHexString(byte data[]) {\r
StringBuffer buf = new StringBuffer();\r
settings.endGroup();\r
}\r
\r
+ public static boolean isToolbarButtonVisible(String window) {\r
+ settings.beginGroup("ToolbarButtonsVisible");\r
+ String text = (String)settings.value(window, "true");\r
+ settings.endGroup();\r
+ if (text.equalsIgnoreCase("true"))\r
+ return true;\r
+ else\r
+ return false; \r
+ }\r
+ public static void saveToolbarButtonsVisible(String column, boolean val) {\r
+ settings.beginGroup("ToolbarButtonsVisible");\r
+ if (val)\r
+ settings.setValue(column, "true");\r
+ else\r
+ settings.setValue(column, "false");\r
+ settings.endGroup();\r
+ }\r
+ \r
+ \r
+ public static boolean enableThumbnails() {\r
+ settings.beginGroup("Debug");\r
+ String text = (String)settings.value("thumbnails", "false");\r
+ settings.endGroup();\r
+ if (text.equalsIgnoreCase("true"))\r
+ return true;\r
+ else\r
+ return false; \r
+ }\r
+ public static void setEnableThumbnails(boolean val) {\r
+ settings.beginGroup("Debug");\r
+ if (val)\r
+ settings.setValue("thumbnails", "true");\r
+ else\r
+ settings.setValue("thumbnails", "false");\r
+ settings.endGroup();\r
+ }\r
\r
// Print date/time. Used mainly for performance tracing\r
public static void trace(boolean resetInterval) {\r
public static boolean getDisableViewing() {\r
return disableViewing;\r
}\r
+\r
+ //**********************\r
+ //* Thumbnail zoom level\r
+ //**********************\r
+ public static int calculateThumbnailZoom(String content) {\r
+ int zoom = 1;\r
+ if (content.indexOf("application/pdf") == -1) {\r
+ if (content.indexOf("image/") == -1) {\r
+ String text = StringEscapeUtils.unescapeHtml(content.replaceAll("\\<.*?\\>", ""));\r
+ zoom = 2;\r
+ if (text.length() < 500) \r
+ zoom = 2;\r
+ if (text.length() < 250)\r
+ zoom = 3;\r
+ if (text.length() < 100)\r
+ zoom = 4;\r
+ if (text.length() < 50)\r
+ zoom = 5;\r
+ if (text.length() < 10)\r
+ zoom = 6;\r
+ }\r
+ }\r
+ return zoom;\r
+ }\r
+ \r
+ //**********************\r
+ //* List View settings \r
+ //**********************\r
+ public static void setListView(int view) {\r
+ settings.beginGroup("General");\r
+ settings.setValue("listView", view);\r
+ settings.endGroup();\r
+ }\r
+ public static int getListView() {\r
+ settings.beginGroup("General");\r
+ Integer value;\r
+ try {\r
+ String val = (String)settings.value("listView", View_List_Wide);\r
+ value = new Integer(val.trim());\r
+ } catch (Exception e) {\r
+ try {\r
+ value = (Integer)settings.value("listView", View_List_Wide);\r
+ } catch (Exception e1) {\r
+ value = View_List_Wide;\r
+ }\r
+ }\r
+ settings.endGroup();\r
+ return value;\r
+ }\r
+\r
+ \r
+ \r
+ //*******************\r
+ // Font Settings\r
+ //*******************\r
+ public static boolean overrideDefaultFont() {\r
+ settings.beginGroup("Font");\r
+ String text = (String)settings.value("overrideFont", "false");\r
+ settings.endGroup();\r
+ if (text.equalsIgnoreCase("true"))\r
+ return true;\r
+ else\r
+ return false; \r
+ }\r
+ public static void setOverrideDefaultFont(boolean value) {\r
+ settings.beginGroup("Font");\r
+ settings.setValue("overrideFont", value);\r
+ settings.endGroup(); \r
+ }\r
+ public static String getDefaultFont() {\r
+ settings.beginGroup("Font");\r
+ String val = (String)settings.value("font", "");\r
+ settings.endGroup();\r
+ return val;\r
+ }\r
+ public static void setDefaultFont(String value) {\r
+ settings.beginGroup("Font");\r
+ settings.setValue("font", value);\r
+ settings.endGroup();\r
+ }\r
+ public static String getDefaultFontSize() {\r
+ settings.beginGroup("Font");\r
+ String val = (String)settings.value("fontSize", "");\r
+ settings.endGroup();\r
+ return val;\r
+ }\r
+ public static void setDefaultFontSize(String value) {\r
+ settings.beginGroup("Font");\r
+ settings.setValue("fontSize", value);\r
+ settings.endGroup();\r
+ }\r
\r
\r
}\r