[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