[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim/akregator_port] akregator2/src: Backport patch from aurelien:
From: Montel Laurent <montel () kde ! org>
Date: 2013-07-08 7:24:28
Message-ID: E1Uw5oC-0004GJ-Gq () scm ! kde ! org
[Download RAW message or body]
Git commit f08e16ab4048541ab28e8a384367738752afdc5b by Montel Laurent.
Committed on 08/07/2013 at 07:24.
Pushed by mlaurent into branch 'akregator_port'.
Backport patch from aurelien:
"akregator: when a Frame is not current, disable the GUI of its KPart
This avoids having multiple RSS or other widgets in the statusbar"
M +19 -0 akregator2/src/framemanager.cpp
http://commits.kde.org/kdepim/f08e16ab4048541ab28e8a384367738752afdc5b
diff --git a/akregator2/src/framemanager.cpp b/akregator2/src/framemanager.cpp
index d5023d6..52f754e 100644
--- a/akregator2/src/framemanager.cpp
+++ b/akregator2/src/framemanager.cpp
@@ -36,10 +36,23 @@
#include <kshell.h>
#include <kconfiggroup.h>
#include <ktoolinvocation.h>
+#include <kparts/event.h>
#include <QtCore/QStringList>
+#include <QtGui/QApplication>
namespace Akregator2 {
+
+static void setPartGuiActive(KParts::ReadOnlyPart* part, bool active)
+{
+ if (!part)
+ return;
+ // When this event is sent to a KPart, the KPart StatusBarExtension shows or
+ // hides its items
+ KParts::GUIActivateEvent ev(active);
+ QApplication::sendEvent(part, &ev);
+}
+
FrameManager::FrameManager(QWidget* mainWin, QObject* parent) : QObject(parent), \
m_mainWin(mainWin), m_currentFrame(0) {
}
@@ -80,6 +93,8 @@ void FrameManager::slotAddFrame(Frame* frame)
connect(frame, SIGNAL(signalIsLoadingToggled(Akregator2::Frame*,bool)), this, \
SLOT(slotIsLoadingToggled(Akregator2::Frame*,bool)) );
+ setPartGuiActive(frame->part(), false);
+
emit signalFrameAdded(frame);
if (m_frames.count() == 1)
@@ -122,8 +137,12 @@ void FrameManager::slotChangeFrame(int frameId)
Frame* oldFrame = m_currentFrame;
m_currentFrame = frame;
+ if (oldFrame)
+ setPartGuiActive(oldFrame->part(), false);
+
if (frame)
{
+ setPartGuiActive(frame->part(), true);
slotCanGoBackToggled(frame, frame->canGoBack());
slotCanGoForwardToggled(frame, frame->canGoForward());
slotIsReloadableToggled(frame, frame->isReloadable());
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic