OSDN Git Service

Add logic to disable tray options if there is no tray available.
authorRandy Baumgarte <randy@fbn.cx>
Wed, 21 Mar 2012 13:35:35 +0000 (09:35 -0400)
committerRandy Baumgarte <randy@fbn.cx>
Wed, 21 Mar 2012 13:35:35 +0000 (09:35 -0400)
src/cx/fbn/nevernote/Global.java
src/cx/fbn/nevernote/NeverNote.java
src/cx/fbn/nevernote/dialog/ConfigAppearancePage.java

index e563e46..dfe7259 100644 (file)
@@ -42,6 +42,7 @@ import com.trolltech.qt.core.QByteArray;
 import com.trolltech.qt.core.QSettings;\r
 import com.trolltech.qt.core.QSize;\r
 import com.trolltech.qt.gui.QPalette;\r
+import com.trolltech.qt.gui.QSystemTrayIcon;\r
 \r
 import cx.fbn.nevernote.config.FileManager;\r
 import cx.fbn.nevernote.config.InitializationException;\r
@@ -455,7 +456,7 @@ public class Global {
                try {\r
                        String max = (String) settings.value("showTrayIcon", "false");\r
                        settings.endGroup();\r
-                       if (!max.equalsIgnoreCase("true"))\r
+                       if (!max.equalsIgnoreCase("true") || !QSystemTrayIcon.isSystemTrayAvailable())\r
                                return false;\r
                        else\r
                                return true;    \r
@@ -1712,7 +1713,7 @@ public class Global {
                try {\r
                        String text = (String)settings.value("minimizeOnClose", "false");\r
                        settings.endGroup();\r
-                       if (text.equalsIgnoreCase("true"))\r
+                       if (text.equalsIgnoreCase("true") && QSystemTrayIcon.isSystemTrayAvailable())\r
                                return true;\r
                        else\r
                                return false;\r
index 53f5607..0c3faf0 100644 (file)
@@ -332,7 +332,7 @@ public class NeverNote extends QMainWindow{
     boolean                            encryptOnShutdown;                      // should I encrypt when I close?
     boolean                            decryptOnShutdown;                      // should I decrypt on shutdown;
     String                             encryptCipher;                          // What cipher should I use?
-    Signal0                    minimizeToTray;
+    //Signal0                  minimizeToTray;
     boolean                            windowMaximized = false;        // Keep track of the window state for restores
     List<String>               pdfReadyQueue;                          // Queue of PDFs that are ready to be rendered.
     List<QPixmap>              syncIcons;                                      // Array of icons used in sync animation
@@ -709,12 +709,14 @@ public class NeverNote extends QMainWindow{
         tagTree.showAllTags(true);
 
                QIcon appIcon = new QIcon(iconPath+"nevernote.png");
-       setWindowIcon(appIcon);
-       trayIcon.setIcon(appIcon);
-       if (Global.showTrayIcon())
-               trayIcon.show();
-       else
-               trayIcon.hide();
+               if (QSystemTrayIcon.isSystemTrayAvailable()) {
+                       setWindowIcon(appIcon);
+                       trayIcon.setIcon(appIcon);
+                       if (Global.showTrayIcon())
+                               trayIcon.show();
+                       else
+                               trayIcon.hide();
+               }
        
        scrollToGuid(currentNoteGuid);
        if (Global.automaticLogin()) {
@@ -988,7 +990,7 @@ public class NeverNote extends QMainWindow{
                startupConfig.setHomeDirPath(arg.substring(arg.indexOf('=') + 1));
             if (lower.startsWith("--disable-viewing"))
                startupConfig.setDisableViewing(true);
-            if (lower.startsWith("--sync-only"))
+            if (lower.startsWith("--sync-only=true"))
                 startupConfig.setSyncOnly(true);
         }
         Global.setup(startupConfig);
@@ -6353,15 +6355,17 @@ public class NeverNote extends QMainWindow{
        @Override
        public void changeEvent(QEvent e) {
                if (e.type() == QEvent.Type.WindowStateChange) {
-                       if (isMinimized() && Global.showTrayIcon()) {
-                               e.accept();
-                               QTimer.singleShot(10, this, "hide()");
-                               return;
+                       if (QSystemTrayIcon.isSystemTrayAvailable()) {
+                               if (isMinimized() && Global.showTrayIcon()) {
+                                       e.accept();
+                                       QTimer.singleShot(10, this, "hide()");
+                                       return;
+                               }
+                               if (isMaximized())
+                                       windowMaximized = true;
+                               else 
+                                       windowMaximized = false;
                        }
-                       if (isMaximized())
-                               windowMaximized = true;
-                       else 
-                               windowMaximized = false;
                }
        }
        
index 9281279..bef269e 100644 (file)
@@ -33,6 +33,7 @@ import com.trolltech.qt.gui.QLabel;
 import com.trolltech.qt.gui.QScrollArea;\r
 import com.trolltech.qt.gui.QSpinBox;\r
 import com.trolltech.qt.gui.QStyleFactory;\r
+import com.trolltech.qt.gui.QSystemTrayIcon;\r
 import com.trolltech.qt.gui.QVBoxLayout;\r
 import com.trolltech.qt.gui.QWidget;\r
 \r
@@ -142,6 +143,10 @@ public class ConfigAppearancePage extends QWidget {
                showSplashScreen = new QCheckBox(tr("Show Splash Screen on Startup"));\r
                showTrayIcon = new QCheckBox(tr("Minimize To Tray"));\r
                minimizeOnClose = new QCheckBox(tr("Minimize On Close"));\r
+               if (!QSystemTrayIcon.isSystemTrayAvailable()) { \r
+                       showTrayIcon.setEnabled(false);\r
+                       minimizeOnClose.setEnabled(false);\r
+               }\r
                verifyDelete = new QCheckBox(tr("Verify Deletes"));\r
                startMinimized = new QCheckBox(tr("Start Minimized"));\r
                pdfPreview = new QCheckBox(tr("Display PDF Documents Inline"));\r
@@ -206,7 +211,6 @@ public class ConfigAppearancePage extends QWidget {
                showTrayIcon.clicked.connect(this, "showTrayIconClicked(Boolean)");\r
                showTrayIconClicked(showTrayIcon.isChecked());\r
 \r
-\r
        }\r
        \r
        private void showTrayIconClicked(Boolean checked) {\r
@@ -214,7 +218,10 @@ public class ConfigAppearancePage extends QWidget {
                        minimizeOnClose.setEnabled(false);\r
                        minimizeOnClose.setChecked(false);\r
                } else\r
-                       minimizeOnClose.setEnabled(true);\r
+                       if (QSystemTrayIcon.isSystemTrayAvailable()) \r
+                               minimizeOnClose.setEnabled(true);\r
+                       else\r
+                               minimizeOnClose.setEnabled(false);\r
        }\r
 \r
        \r