Added option, fixed bug.
authorJimmy Christensen <dusted@dusted.dk>
Mon, 22 Sep 2014 19:39:08 +0000 (22:39 +0300)
committerJimmy Christensen <dusted@dusted.dk>
Mon, 22 Sep 2014 19:39:08 +0000 (22:39 +0300)
Some windowmanagers handle the systray tooltip so poorly that it won't go
away and allow the content of the popup menu to be read.
Added option to disable the tooltip.

Also fixed the bug that settings tab would be removed if disconnected
before accountstab was created.

src/fkgui/MainWin.java
src/fkgui/Messages.java
src/fkgui/messages.properties
src/fkgui/messages_da.properties

index d1736aa..6cb5280 100644 (file)
@@ -92,6 +92,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
        private static final String PREF_SHOW_ACCOUNT_ID_IN_NAME_KEY = "showAccountIdInName"; //$NON-NLS-1$
        private static final String PREF_ALLOW_UPDATE_CHECK = "allowUpdateCheck"; //$NON-NLS-1$
        private static final String PREF_SHOW_ACCOUNTS_READY_NOTICE = "showAccountsReadyNotice"; //$NON-NLS-1$
+       private static final String PREF_SHOW_SYSTRAY_NAME = "showSystrayName"; //$NON-NLS-1$
 
        public Composite cmpConnect;
        private Composite cmpAccounts;
@@ -225,7 +226,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                sysTrayIconVisible=true;
                //Check the SystemTray is supported
                if (!SystemTray.isSupported()) {
-                       log("SystemTray is not supported, app is useless"); //$NON-NLS-1$
+                       log("SystemTray is not supported."); //$NON-NLS-1$
                        return;
                }
 
@@ -237,7 +238,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
 
                popup = new PopupMenu();
                trayIcon = new TrayIcon( iconSystrayOffline ); //$NON-NLS-1$
-               trayIcon.setToolTip("The Final Key - Hardware password manager"); //$NON-NLS-1$
+
                trayIcon.setImageAutoSize(true);
                final SystemTray tray = SystemTray.getSystemTray();
 
@@ -285,6 +286,23 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
 
        }
 
+       String systrayTipTxt;
+       private void setSystrayIconTip(String tip) {
+               if( tip == null )
+               {
+                       trayIcon.setToolTip(systrayTipTxt);
+               } else {
+                       systrayTipTxt=tip;
+                       trayIcon.setToolTip(tip);
+               }
+
+               if( !prefs.getBoolean(PREF_SHOW_SYSTRAY_NAME, true) )
+               {
+                       trayIcon.setToolTip(null);
+               }
+
+       }
+
        private void hideToTray()
        {
                popup.remove(0);
@@ -564,6 +582,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                {
                case Connected:
                        shell.setText(Messages.MainWin_33 + FkManager.getInstance().getBanner());
+                       setSystrayIconTip(Messages.MainWin_33 + FkManager.getInstance().getBanner());
 
                        animation.setVisible(false);
                        animation.setPlaying(false);
@@ -611,6 +630,8 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        lblPassword.setEnabled(false);
                        break;
                case Disconnected:
+                       setSystrayIconTip("The Final Key - Not Connected"); //$NON-NLS-1$
+
                        fkSerial=null;
                        animation.setVisible(false);
                        animation.setPlaying(false);
@@ -651,7 +672,7 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
        }
 
        private void remAccountsTab() {
-               if( tabFolder.getItemCount() > 1 )
+               if( tabFolder.getItemCount() > 2 )
                {
                        tabFolder.getItem(1).dispose();
                }
@@ -1002,6 +1023,20 @@ public class MainWin implements ConsoleMsg, UpdateCheckResultListener {
                        }
                });
 
+               Button btnShowSystrayName = new Button( cmpSettings, SWT.CHECK );
+               btnShowSystrayName.setSelection( prefs.getBoolean( PREF_SHOW_SYSTRAY_NAME,  true) );
+               FormData fd_btnShowSystrayName = new FormData();
+               fd_btnShowSystrayName.top = new FormAttachment( btnShowaccountsReady, 6 );
+               fd_btnShowSystrayName.left = new FormAttachment( chkAutoHide, 0, SWT.LEFT );
+               btnShowSystrayName.setLayoutData(fd_btnShowSystrayName);
+               btnShowSystrayName.setText( Messages.MainWin_14 );
+               btnShowSystrayName.addSelectionListener( new SelectionAdapter() {
+                               public void widgetSelected(SelectionEvent e) {
+                                       Button b = (Button)e.widget;
+                                       prefs.putBoolean( PREF_SHOW_SYSTRAY_NAME, b.getSelection() );
+                                       setSystrayIconTip(null);
+                               }
+               });
        }
 
        private void showTrigDialog(Account acc) {
index 3e0e048..938a6c0 100644 (file)
@@ -13,6 +13,7 @@ public class Messages extends NLS {
        public static String MainWin_11;
        public static String MainWin_12;
        public static String MainWin_13;
+       public static String MainWin_14;
        public static String MainWin_15;
        public static String MainWin_16;
        public static String MainWin_17;
index d6e9180..86f9b45 100644 (file)
@@ -6,6 +6,7 @@ MainWin_10=Search... (Ctrl+f)
 MainWin_11=\nNot visiting the website.
 MainWin_12=Connection
 MainWin_13=Visit the website now?
+MainWin_14=Show name when mousecursor is on top of systray icon
 MainWin_15=Connect
 MainWin_16=Opening browser to 
 MainWin_17=You should close this program and download/use the new one.
index 35f260b..d94c30b 100644 (file)
@@ -6,6 +6,7 @@ MainWin_10=S
 MainWin_11=\nBesøger ikke hjemmesiden.
 MainWin_12=Forbindelse
 MainWin_13=Besøg hjemmesiden nu?
+MainWin_14=Vis navn når musen holdes over systembakke ikonet
 MainWin_15=Forbind
 MainWin_16=Åbner browser til 
 MainWin_17=Du kan lukke dette program nu og hente/bruge den nye version.