[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