rev 20739 - in kde-extras/krusader/trunk/debian: . patches

Maximiliano Curia maxy at moszumanska.debian.org
Sat Feb 11 10:18:49 UTC 2017


Author: maxy
Date: 2017-02-11 10:18:49 +0000 (Sat, 11 Feb 2017)
New Revision: 20739

Added:
   kde-extras/krusader/trunk/debian/patches/ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch
   kde-extras/krusader/trunk/debian/patches/FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch
Modified:
   kde-extras/krusader/trunk/debian/changelog
   kde-extras/krusader/trunk/debian/patches/Build-and-install-the-manpages.patch
   kde-extras/krusader/trunk/debian/patches/series
Log:
Add patches to restore minimize tray function.

 + ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch
 + FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch

Closes: 854992
Thanks: Andrej Mernik for reporting
Gbp-Dch: Ignore

Modified: kde-extras/krusader/trunk/debian/changelog
===================================================================
--- kde-extras/krusader/trunk/debian/changelog	2017-02-11 10:18:46 UTC (rev 20738)
+++ kde-extras/krusader/trunk/debian/changelog	2017-02-11 10:18:49 UTC (rev 20739)
@@ -3,6 +3,10 @@
   * Add missing kinit runtime dependency.
   * Add NEWS entry for krusader configuration paths change. (Closes: 854992)
     Thanks Roman Lebedev for reporting.
+  * Add patches to restore minimize tray function. (Closes: 848711)
+     + ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch
+     + FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch
+    Thanks Andrej Mernik for reporting.
 
  -- Maximiliano Curia <maxy at debian.org>  Sat, 11 Feb 2017 09:39:16 +0100
 

Added: kde-extras/krusader/trunk/debian/patches/ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch
===================================================================
--- kde-extras/krusader/trunk/debian/patches/ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch	                        (rev 0)
+++ kde-extras/krusader/trunk/debian/patches/ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch	2017-02-11 10:18:49 UTC (rev 20739)
@@ -0,0 +1,189 @@
+From: Alexander Bikadorov <bikaejkb at mailbox.tu-berlin.de>
+Date: Mon, 4 Jul 2016 16:28:07 +0200
+Subject: ADDED: Reimplementation of "minimize to system tray" feature.
+
+Partially reverts commit 8a05cacaf58fba11d6d96b934ce2588a43dc3019.
+Using QSystemTrayIcon. Icon is only shown if mainwindow is minimized.
+---
+ krusader/Konfigurator/kggeneral.cpp |  3 ++-
+ krusader/Konfigurator/kgstartup.cpp |  4 +++-
+ krusader/defaults.h                 |  4 ++++
+ krusader/krusader.cpp               | 47 ++++++++++++++++++++++++++++++++++++-
+ krusader/krusader.h                 |  5 ++++
+ 5 files changed, 60 insertions(+), 3 deletions(-)
+
+diff --git a/krusader/Konfigurator/kggeneral.cpp b/krusader/Konfigurator/kggeneral.cpp
+index 3633c93b..07b1780d 100644
+--- a/krusader/Konfigurator/kggeneral.cpp
++++ b/krusader/Konfigurator/kggeneral.cpp
+@@ -230,8 +230,9 @@ void KgGeneral::createGeneralTab()
+ 
+     KONFIGURATOR_CHECKBOX_PARAM settings[] = { //   cfg_class  cfg_name                default             text                              restart tooltip
+         {"Look&Feel", "Warn On Exit",         _WarnOnExit,        i18n("Warn on exit"),           false,  i18n("Display a warning when trying to close the main window.") },    // KDE4: move warn on exit to the other confirmations
++        {"Look&Feel", "Minimize To Tray",     _MinimizeToTray,    i18n("Minimize to tray"),       false,  i18n("The icon will appear in the system tray instead of the taskbar, when Krusader is minimized.") },
+     };
+-    KonfiguratorCheckBoxGroup *cbs = createCheckBoxGroup(2, 0, settings, 1 /*count*/, generalGrp, PAGE_GENERAL);
++    KonfiguratorCheckBoxGroup *cbs = createCheckBoxGroup(2, 0, settings, 2 /*count*/, generalGrp, PAGE_GENERAL);
+     generalGrid->addWidget(cbs, 0, 0);
+ 
+ 
+diff --git a/krusader/Konfigurator/kgstartup.cpp b/krusader/Konfigurator/kgstartup.cpp
+index 4691a4b6..4100bc27 100644
+--- a/krusader/Konfigurator/kgstartup.cpp
++++ b/krusader/Konfigurator/kgstartup.cpp
+@@ -108,9 +108,11 @@ KgStartup::KgStartup(bool first, QWidget* parent) :
+                  "to manually set the main window's size and position at startup.</p>") },
+         {"Startup", "Update Default Panel Settings", _RememberPos, i18n("Update default panel settings"), true,
+             i18n("When settings of a panel are changed, save them as the default for new panels of the same type.") },
++        {"Startup", "Start To Tray", _StartToTray, i18n("Start to tray"), false,
++            i18n("Krusader starts to tray (if minimize to tray is set), without showing the main window") },
+     };
+ 
+-    uiCbGroup = createCheckBoxGroup(2, 0, uiCheckBoxes, 9, uiGrp);
++    uiCbGroup = createCheckBoxGroup(2, 0, uiCheckBoxes, 10, uiGrp);
+     connect(uiCbGroup->find("UI Save Settings"), SIGNAL(stateChanged(int)), this, SLOT(slotDisable()));
+ 
+     uiGrid->addWidget(uiCbGroup, 1, 0);
+diff --git a/krusader/defaults.h b/krusader/defaults.h
+index 8b49ff83..22f94f08 100644
+--- a/krusader/defaults.h
++++ b/krusader/defaults.h
+@@ -52,6 +52,8 @@
+ #define _ShowTerminalEmulator false
+ // Remember Position
+ #define _RememberPos      true
++// Start to tray
++#define _StartToTray      false
+ // Left Tab Bar
+ // Right Tab Bar
+ // Size where lister is the default viewer
+@@ -64,6 +66,8 @@
+ #define _FilelistFont   QFontDatabase::systemFont(QFontDatabase::GeneralFont)
+ // Warn On Exit ////////
+ #define _WarnOnExit     false
++// Minimize To Tray ////
++#define _MinimizeToTray false
+ // Mark Dirs ///////////
+ #define _MarkDirs       false
+ // Show Hidden /////////
+diff --git a/krusader/krusader.cpp b/krusader/krusader.cpp
+index fea64809..01a4533f 100644
+--- a/krusader/krusader.cpp
++++ b/krusader/krusader.cpp
+@@ -218,6 +218,20 @@ Krusader::Krusader(const QCommandLineParser &parser) : KParts::MainWindow(0,
+     status->setWhatsThis(i18n("Statusbar will show basic information "
+                               "about file below mouse pointer."));
+ 
++    // create tray icon (even if not shown)
++    sysTray = new QSystemTrayIcon(this);
++    sysTray->setIcon(krLoader->loadIcon(privIcon(), KIconLoader::Panel, 22));
++    QMenu *trayMenu = new QMenu(this);
++    trayMenu->addSection(QGuiApplication::applicationDisplayName()); // show "title"
++    QAction *restoreAction = new QAction(i18n("Restore"), this);
++    connect(restoreAction, SIGNAL(triggered()), SLOT(showFromTray()));
++    trayMenu->addAction(restoreAction);
++    trayMenu->addSeparator();
++    trayMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Quit)));
++    sysTray->setContextMenu(trayMenu);
++    // tray is only visible if main window is hidden, so action is always "show"
++    connect(sysTray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(showFromTray()));
++
+     setCentralWidget(MAIN_VIEW);
+ 
+     // manage our keyboard short-cuts
+@@ -249,7 +263,12 @@ Krusader::Krusader(const QCommandLineParser &parser) : KParts::MainWindow(0,
+         }
+     }
+ 
+-    show();
++    // view initialized; show window or tray
++    if (gs.readEntry("Start To Tray", _StartToTray)) {
++        sysTray->show();
++    } else {
++        show();
++    }
+ 
+     KrTrashHandler::startWatcher();
+     isStarting = false;
+@@ -331,6 +350,31 @@ void Krusader::statusBarUpdate(QString& mess)
+         statusBar() ->showMessage(mess, 5000);
+ }
+ 
++void Krusader::showFromTray() {
++    setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
++    show();
++    sysTray->hide();
++}
++
++void Krusader::changeEvent(QEvent *event) {
++    QMainWindow::changeEvent(event);
++    if (isExiting)
++        return;
++
++    // toggle tray when minimizing (if enabled)
++    if(event->type() == QEvent::WindowStateChange) {
++        if(isMinimized()) {
++            KConfigGroup group(krConfig, "Look&Feel");
++            if (group.readEntry("Minimize To Tray", _MinimizeToTray)) {
++                sysTray->show();
++                hide();
++            }
++        } else if(isVisible()) {
++            sysTray->hide();
++        }
++    }
++}
++
+ void Krusader::moveEvent(QMoveEvent *e) {
+     oldPos = e->oldPos();
+     KParts::MainWindow::moveEvent(e);
+@@ -410,6 +454,7 @@ void Krusader::saveSettings() {
+         cfg.writeEntry("Show FN Keys", KrActions::actToggleFnkeys->isChecked());
+         cfg.writeEntry("Show Cmd Line", KrActions::actToggleCmdline->isChecked());
+         cfg.writeEntry("Show Terminal Emulator", KrActions::actToggleTerminal->isChecked());
++        cfg.writeEntry("Start To Tray", isHidden());
+     }
+ 
+     // save popular links
+diff --git a/krusader/krusader.h b/krusader/krusader.h
+index f1750ae9..e6a444b7 100644
+--- a/krusader/krusader.h
++++ b/krusader/krusader.h
+@@ -40,6 +40,7 @@
+ 
+ // QtCore
+ #include <QCommandLineParser>
++#include <QEvent>
+ #include <QStringList>
+ #include <QTimer>
+ // QtGui
+@@ -49,6 +50,7 @@
+ #include <QMoveEvent>
+ // QtWidgets
+ #include <QAction>
++#include <QSystemTrayIcon>
+ 
+ #include <KParts/MainWindow>
+ #include <KConfigWidgets/KStandardAction>
+@@ -135,11 +137,13 @@ protected slots:
+     void doOpenUrl();
+     void slotGotNewStartup(const KStartupInfoId &id, const KStartupInfoData &data);
+     void slotGotRemoveStartup(const KStartupInfoId &id, const KStartupInfoData &data);
++    void showFromTray();
+ 
+ protected:
+     bool queryClose() Q_DECL_OVERRIDE;
+     void setupActions();
+     bool versionControl();  // handle version differences in krusaderrc
++    void changeEvent(QEvent *even) Q_DECL_OVERRIDE;
+     void moveEvent(QMoveEvent *) Q_DECL_OVERRIDE;
+     void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+     bool event(QEvent *) Q_DECL_OVERRIDE;
+@@ -184,6 +188,7 @@ private:
+     ViewActions *_viewActions;
+     ListPanelActions *_listPanelActions;
+     TabActions *_tabActions;
++    QSystemTrayIcon *sysTray;
+     QPoint       oldPos;
+     QSize        oldSize;
+     bool         isStarting;

Modified: kde-extras/krusader/trunk/debian/patches/Build-and-install-the-manpages.patch
===================================================================
--- kde-extras/krusader/trunk/debian/patches/Build-and-install-the-manpages.patch	2017-02-11 10:18:46 UTC (rev 20738)
+++ kde-extras/krusader/trunk/debian/patches/Build-and-install-the-manpages.patch	2017-02-11 10:18:49 UTC (rev 20739)
@@ -13,7 +13,7 @@
  7 files changed, 14 insertions(+)
 
 diff --git a/doc/de/CMakeLists.txt b/doc/de/CMakeLists.txt
-index fd99785..125e050 100644
+index fd99785f..125e0501 100644
 --- a/doc/de/CMakeLists.txt
 +++ b/doc/de/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -24,7 +24,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR}/de/)
  
 diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt
-index 5b1d4af..c567d68 100644
+index 5b1d4af3..c567d681 100644
 --- a/doc/en/CMakeLists.txt
 +++ b/doc/en/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -35,7 +35,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR})
  
 diff --git a/doc/it/CMakeLists.txt b/doc/it/CMakeLists.txt
-index 6010d62..f92fbc9 100644
+index 6010d622..f92fbc98 100644
 --- a/doc/it/CMakeLists.txt
 +++ b/doc/it/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -46,7 +46,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR}/it/)
  
 diff --git a/doc/nl/CMakeLists.txt b/doc/nl/CMakeLists.txt
-index 4828e1d..8e4f6dc 100644
+index 4828e1dc..8e4f6dc2 100644
 --- a/doc/nl/CMakeLists.txt
 +++ b/doc/nl/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -57,7 +57,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR}/nl/)
  
 diff --git a/doc/pt_BR/CMakeLists.txt b/doc/pt_BR/CMakeLists.txt
-index cbe8614..8e315c3 100644
+index cbe86148..8e315c30 100644
 --- a/doc/pt_BR/CMakeLists.txt
 +++ b/doc/pt_BR/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -68,7 +68,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR}/pt_BR/)
  
 diff --git a/doc/sv/CMakeLists.txt b/doc/sv/CMakeLists.txt
-index 70e8890..1f6df90 100644
+index 70e8890d..1f6df90e 100644
 --- a/doc/sv/CMakeLists.txt
 +++ b/doc/sv/CMakeLists.txt
 @@ -1,4 +1,6 @@
@@ -79,7 +79,7 @@
 +                         INSTALL_DESTINATION ${MAN_INSTALL_DIR}/sv/)
  
 diff --git a/doc/uk/CMakeLists.txt b/doc/uk/CMakeLists.txt
-index 206a088..35f7587 100644
+index 206a0884..35f7587f 100644
 --- a/doc/uk/CMakeLists.txt
 +++ b/doc/uk/CMakeLists.txt
 @@ -1,4 +1,6 @@

Added: kde-extras/krusader/trunk/debian/patches/FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch
===================================================================
--- kde-extras/krusader/trunk/debian/patches/FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch	                        (rev 0)
+++ kde-extras/krusader/trunk/debian/patches/FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch	2017-02-11 10:18:49 UTC (rev 20739)
@@ -0,0 +1,35 @@
+From: Alexander Bikadorov <alex.bikadorov at kdemail.net>
+Date: Fri, 28 Oct 2016 19:07:53 +0200
+Subject: FIXED: [ 365105 ] Workaround for bug in KF5+QSystemTrayIcon
+
+BUG: 365105
+---
+ krusader/krusader.cpp | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/krusader/krusader.cpp b/krusader/krusader.cpp
+index 01a4533f..da153f4d 100644
+--- a/krusader/krusader.cpp
++++ b/krusader/krusader.cpp
+@@ -366,6 +366,21 @@ void Krusader::changeEvent(QEvent *event) {
+         if(isMinimized()) {
+             KConfigGroup group(krConfig, "Look&Feel");
+             if (group.readEntry("Minimize To Tray", _MinimizeToTray)) {
++                // TODO tray created again to prevent bug in kf5,
++                // remove this if bug 365105 is resolved
++                sysTray->deleteLater();
++                sysTray = new QSystemTrayIcon(this);
++                sysTray->setIcon(krLoader->loadIcon(privIcon(), KIconLoader::Panel, 22));
++                QMenu *trayMenu = new QMenu(this);
++                trayMenu->addSection(QGuiApplication::applicationDisplayName()); // show "title"
++                QAction *restoreAction = new QAction(i18n("Restore"), this);
++                connect(restoreAction, SIGNAL(triggered()), SLOT(showFromTray()));
++                trayMenu->addAction(restoreAction);
++                trayMenu->addSeparator();
++                trayMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Quit)));
++                sysTray->setContextMenu(trayMenu);
++                connect(sysTray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(showFromTray()));
++
+                 sysTray->show();
+                 hide();
+             }

Modified: kde-extras/krusader/trunk/debian/patches/series
===================================================================
--- kde-extras/krusader/trunk/debian/patches/series	2017-02-11 10:18:46 UTC (rev 20738)
+++ kde-extras/krusader/trunk/debian/patches/series	2017-02-11 10:18:49 UTC (rev 20739)
@@ -1 +1,3 @@
 Build-and-install-the-manpages.patch
+ADDED-Reimplementation-of-minimize-to-system-tray-feature.patch
+FIXED-365105-Workaround-for-bug-in-KF5-QSystemTrayIcon.patch




More information about the pkg-kde-commits mailing list