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