[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ktp-contact-list] /: busyOverlay now hides if presence chooser is editable.
From:       Roman Nazarenko <me () jtalk ! me>
Date:       2013-03-03 17:41:40
Message-ID: 20130303174140.B9609A604F () git ! kde ! org
[Download RAW message or body]

Git commit 19ebafedd3dea93aef6efeced15a9b2155b0cbbd by Roman Nazarenko.
Committed on 03/03/2013 at 17:10.
Pushed by romann into branch 'master'.

busyOverlay now hides if presence chooser is editable.

REVIEW: 109262
BUG: 292282

M  +16   -4    global-presence-chooser.cpp
M  +1    -0    global-presence-chooser.h

http://commits.kde.org/telepathy-contact-list/19ebafedd3dea93aef6efeced15a9b2155b0cbbd

diff --git a/global-presence-chooser.cpp b/global-presence-chooser.cpp
index 9e7994f..f748197 100644
--- a/global-presence-chooser.cpp
+++ b/global-presence-chooser.cpp
@@ -176,16 +176,15 @@ GlobalPresenceChooser::GlobalPresenceChooser(QWidget *parent) :
     KComboBox(parent),
     m_globalPresence(new KTp::GlobalPresence(this)),
     m_model(new PresenceModel(this)),
-    m_modelExtended(new PresenceModelExtended(m_model, this))
+    m_modelExtended(new PresenceModelExtended(m_model, this)),
+    m_busyOverlay(new KPixmapSequenceOverlayPainter(this))
 {
     this->setModel(m_modelExtended);
-    setEditable(false);
     //needed for mousemove events
     setMouseTracking(true);
 
-    m_busyOverlay = new KPixmapSequenceOverlayPainter(this);
     m_busyOverlay->setSequence(KPixmapSequence("process-working"));
-    m_busyOverlay->setWidget(this);
+    setEditable(false);
 
     onPresenceChanged(m_globalPresence->currentPresence());
 
@@ -297,6 +296,19 @@ bool GlobalPresenceChooser::event(QEvent *e)
     return KComboBox::event(e); // krazy:exclude=qclasses
 }
 
+void GlobalPresenceChooser::setEditable(bool editable)
+{
+    if (editable) {
+        m_busyOverlay->setWidget(0);
+    } else {
+        m_busyOverlay->setWidget(this);
+        if (m_globalPresence->connectionStatus() == Tp::ConnectionStatusConnecting) {
+            m_busyOverlay->start(); // If telepathy is still connecting, overlay must be spinning again.
+        }
+    }
+    KComboBox::setEditable(editable);
+}
+
 void GlobalPresenceChooser::onCurrentIndexChanged(int index)
 {
     if (index == -1) {
diff --git a/global-presence-chooser.h b/global-presence-chooser.h
index d7a19c4..678681c 100644
--- a/global-presence-chooser.h
+++ b/global-presence-chooser.h
@@ -47,6 +47,7 @@ public:
 
 protected:
     virtual bool event(QEvent *event);
+    virtual void setEditable(bool editable); /** Hides overlay and calls ancestor's method. */
 
 private Q_SLOTS:
     void onCurrentIndexChanged(int index);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic