Activity View: Update only if visible and when becoming visible #4083
authorMarkus Goetz <markus@woboq.com>
Wed, 18 Nov 2015 14:25:29 +0000 (15:25 +0100)
committerMarkus Goetz <markus@woboq.com>
Wed, 18 Nov 2015 14:25:29 +0000 (15:25 +0100)
src/gui/activitywidget.cpp
src/gui/activitywidget.h

index 34a7b79a0fe2f56daa4553081ee6e72648a18113..91af0aa957c4062c89b3a80db778d596f68386ed 100644 (file)
@@ -418,12 +418,23 @@ void ActivitySettings::slotRemoveAccount( AccountState *ptr )
 
 void ActivitySettings::slotRefresh( AccountState* ptr )
 {
-    if( ptr && ptr->isConnected() ) {
+    if( ptr && ptr->isConnected() && isVisible()) {
         _progressIndicator->startAnimation();
         _activityWidget->slotRefresh(ptr);
     }
 }
 
+bool ActivitySettings::event(QEvent* e)
+{
+    if (e->type() == QEvent::Show) {
+        AccountManager *am = AccountManager::instance();
+        foreach (AccountStatePtr a, am->accounts()) {
+            slotRefresh(a.data());
+        }
+    }
+    return QWidget::event(e);
+}
+
 ActivitySettings::~ActivitySettings()
 {
 
index 8fcae67576968355b8f5b24dc64a1b9d89d17e35..6b51f09f37a8cecbde0d3c7ccd6b06c446085a87 100644 (file)
@@ -182,6 +182,8 @@ signals:
     void guiLog(const QString&, const QString&);
 
 private:
+    bool event(QEvent* e) Q_DECL_OVERRIDE;
+
     QTabWidget *_tab;
     ActivityWidget *_activityWidget;
     ProtocolWidget *_protocolWidget;