diff --git a/src/gui/activitywidget.cpp b/src/gui/activitywidget.cpp index 4cb8cf231f..ab9c1e5d84 100644 --- a/src/gui/activitywidget.cpp +++ b/src/gui/activitywidget.cpp @@ -182,6 +182,10 @@ void ActivityListModel::slotActivitiesReceived(const QVariantMap& json, int stat _activityLists[ai] = list; + if( statusCode == 999 ) { + emit accountWithoutActivityApp(ai); + } + combineActivityLists(); } @@ -269,7 +273,10 @@ ActivityWidget::ActivityWidget(QWidget *parent) : _ui->_activityList->setAlternatingRowColors(true); _ui->_activityList->setModel(_model); - _ui->_headerLabel->setText(tr("Server Activities")); + showLabels(); + + connect(_model, SIGNAL(accountWithoutActivityApp(AccountState*)), + this, SLOT(slotAccountWithoutActivityApp(AccountState*))); _copyBtn = _ui->_dialogButtonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole); _copyBtn->setToolTip( tr("Copy the activity list to the clipboard.")); @@ -296,6 +303,30 @@ void ActivityWidget::slotRemoveAccount( AccountState *ptr ) _model->slotRemoveAccount(ptr); } +void ActivityWidget::showLabels() +{ + QString t = tr("Server Activities"); + _ui->_headerLabel->setTextFormat(Qt::RichText); + _ui->_headerLabel->setText(t); + + t.clear(); + QSetIterator i(_accountsWithoutActivities); + while (i.hasNext() ) { + t.append( tr("
Account %1 does not have activities enabled.").arg(i.next())); + } + _ui->_bottomLabel->setTextFormat(Qt::RichText); + _ui->_bottomLabel->setText(t); +} + +void ActivityWidget::slotAccountWithoutActivityApp(AccountState *ast) +{ + if( ast && ast->account() ) { + _accountsWithoutActivities.insert(ast->account()->displayName()); + } + + showLabels(); +} + // FIXME: Reused from protocol widget. Move over to utilities. QString ActivityWidget::timeString(QDateTime dt, QLocale::FormatType format) const { diff --git a/src/gui/activitywidget.h b/src/gui/activitywidget.h index 015823380b..03836d0a2d 100644 --- a/src/gui/activitywidget.h +++ b/src/gui/activitywidget.h @@ -112,6 +112,9 @@ public slots: private slots: void slotActivitiesReceived(const QVariantMap& json, int statusCode); +signals: + void accountWithoutActivityApp(AccountState* ast); + private: void startFetchJob(AccountState* s); void combineActivityLists(); @@ -142,6 +145,7 @@ public slots: void slotOpenFile(QModelIndex indx); void slotRefresh(AccountState* ptr); void slotRemoveAccount( AccountState *ptr ); + void slotAccountWithoutActivityApp(AccountState *ast); signals: void guiLog(const QString&, const QString&); @@ -149,10 +153,13 @@ signals: void rowsInserted(); private: + void showLabels(); QString timeString(QDateTime dt, QLocale::FormatType format) const; Ui::ActivityWidget *_ui; QPushButton *_copyBtn; + QSet _accountsWithoutActivities; + ActivityListModel *_model; }; diff --git a/src/gui/activitywidget.ui b/src/gui/activitywidget.ui index ddce3e50d2..eb48941a4c 100644 --- a/src/gui/activitywidget.ui +++ b/src/gui/activitywidget.ui @@ -25,6 +25,13 @@ + + + TextLabel + + + +