Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamila San <hello@camila.codes>2018-03-26 22:02:03 +0300
committerCamila San <hello@camila.codes>2018-07-07 14:17:50 +0300
commit3ada8419c41c4be01d172c4a97ac5756cd4b4e5e (patch)
tree781ba6e1e6233fe25a68a2d2df9227e718674fa1
parenta89756e96f66287ef25552ea8c8a6496a31b1088 (diff)
Adds one activity widget for each user.
Signed-off-by: Camila San <hello@camila.codes>
-rw-r--r--src/gui/activitywidget.cpp46
-rw-r--r--src/gui/activitywidget.h13
-rw-r--r--src/gui/owncloudgui.cpp2
-rw-r--r--src/gui/settingsdialog.cpp73
-rw-r--r--src/gui/settingsdialog.h5
5 files changed, 77 insertions, 62 deletions
diff --git a/src/gui/activitywidget.cpp b/src/gui/activitywidget.cpp
index 0ba79956d..0d4a9cf1c 100644
--- a/src/gui/activitywidget.cpp
+++ b/src/gui/activitywidget.cpp
@@ -49,10 +49,11 @@
namespace OCC {
-ActivityWidget::ActivityWidget(QWidget *parent)
+ActivityWidget::ActivityWidget(QWidget *parent, AccountState *account)
: QWidget(parent)
, _ui(new Ui::ActivityWidget)
, _notificationRequestsRunning(0)
+ , _account(account)
{
_ui->setupUi(this);
@@ -497,8 +498,9 @@ void ActivityWidget::slotCheckToCleanWidgets()
/* ==================================================================== */
-ActivitySettings::ActivitySettings(QWidget *parent)
+ActivitySettings::ActivitySettings(QWidget *parent, AccountState *account)
: QWidget(parent)
+ , _account(account)
{
QHBoxLayout *hbox = new QHBoxLayout(this);
setLayout(hbox);
@@ -506,24 +508,24 @@ ActivitySettings::ActivitySettings(QWidget *parent)
// create a tab widget for the three activity views
_tab = new QTabWidget(this);
hbox->addWidget(_tab);
- _activityWidget = new ActivityWidget(this);
+ _activityWidget = new ActivityWidget(this, _account);
_activityTabId = _tab->addTab(_activityWidget, Theme::instance()->applicationIcon(), tr("Server Activity"));
connect(_activityWidget, &ActivityWidget::copyToClipboard, this, &ActivitySettings::slotCopyToClipboard);
connect(_activityWidget, &ActivityWidget::hideActivityTab, this, &ActivitySettings::setActivityTabHidden);
connect(_activityWidget, &ActivityWidget::guiLog, this, &ActivitySettings::guiLog);
connect(_activityWidget, &ActivityWidget::newNotification, this, &ActivitySettings::slotShowActivityTab);
- _protocolWidget = new ProtocolWidget(this);
- _protocolTabId = _tab->addTab(_protocolWidget, Theme::instance()->syncStateIcon(SyncResult::Success), tr("Sync Protocol"));
- connect(_protocolWidget, &ProtocolWidget::copyToClipboard, this, &ActivitySettings::slotCopyToClipboard);
+// _protocolWidget = new ProtocolWidget(this);
+// _protocolTabId = _tab->addTab(_protocolWidget, Theme::instance()->syncStateIcon(SyncResult::Success), tr("Sync Protocol"));
+// connect(_protocolWidget, &ProtocolWidget::copyToClipboard, this, &ActivitySettings::slotCopyToClipboard);
- _issuesWidget = new IssuesWidget(this);
- _syncIssueTabId = _tab->addTab(_issuesWidget, Theme::instance()->syncStateIcon(SyncResult::Problem), QString());
- slotShowIssueItemCount(0); // to display the label.
- connect(_issuesWidget, &IssuesWidget::issueCountUpdated,
- this, &ActivitySettings::slotShowIssueItemCount);
- connect(_issuesWidget, &IssuesWidget::copyToClipboard,
- this, &ActivitySettings::slotCopyToClipboard);
+// _issuesWidget = new IssuesWidget(this);
+// _syncIssueTabId = _tab->addTab(_issuesWidget, Theme::instance()->syncStateIcon(SyncResult::Problem), QString());
+// slotShowIssueItemCount(0); // to display the label.
+// connect(_issuesWidget, &IssuesWidget::issueCountUpdated,
+// this, &ActivitySettings::slotShowIssueItemCount);
+// connect(_issuesWidget, &IssuesWidget::copyToClipboard,
+// this, &ActivitySettings::slotCopyToClipboard);
// Add a progress indicator to spin if the acitivity list is updated.
_progressIndicator = new QProgressIndicator(this);
@@ -578,14 +580,14 @@ void ActivitySettings::slotShowActivityTab()
}
}
-void ActivitySettings::slotShowIssuesTab(const QString &folderAlias)
-{
- if (_syncIssueTabId == -1)
- return;
- _tab->setCurrentIndex(_syncIssueTabId);
+//void ActivitySettings::slotShowIssuesTab(const QString &folderAlias)
+//{
+// if (_syncIssueTabId == -1)
+// return;
+// _tab->setCurrentIndex(_syncIssueTabId);
- _issuesWidget->showFolderErrors(folderAlias);
-}
+// _issuesWidget->showFolderErrors(folderAlias);
+//}
void ActivitySettings::slotCopyToClipboard()
{
@@ -601,12 +603,12 @@ void ActivitySettings::slotCopyToClipboard()
message = tr("The server activity list has been copied to the clipboard.");
} else if (idx == _protocolTabId) {
// the protocol widget
- _protocolWidget->storeSyncActivity(ts);
+ //_protocolWidget->storeSyncActivity(ts);
message = tr("The sync activity list has been copied to the clipboard.");
} else if (idx == _syncIssueTabId) {
// issues Widget
message = tr("The list of unsynced items has been copied to the clipboard.");
- _issuesWidget->storeSyncIssues(ts);
+ //_issuesWidget->storeSyncIssues(ts);
}
QApplication::clipboard()->setText(text);
diff --git a/src/gui/activitywidget.h b/src/gui/activitywidget.h
index b1e899ed9..4e77110d9 100644
--- a/src/gui/activitywidget.h
+++ b/src/gui/activitywidget.h
@@ -25,6 +25,7 @@
#include "owncloudgui.h"
#include "account.h"
#include "activitydata.h"
+#include "accountmanager.h"
#include "ui_activitywidget.h"
@@ -58,7 +59,8 @@ class ActivityWidget : public QWidget
{
Q_OBJECT
public:
- explicit ActivityWidget(QWidget *parent = 0);
+ explicit ActivityWidget(QWidget *parent = 0,
+ AccountState *account = AccountManager::instance()->accounts().first().data());
~ActivityWidget();
QSize sizeHint() const Q_DECL_OVERRIDE { return ownCloudGui::settingsDialogSize(); }
void storeActivityList(QTextStream &ts);
@@ -117,6 +119,8 @@ private:
ActivityListModel *_model;
QVBoxLayout *_notificationsLayout;
+
+ AccountState *_account;
};
@@ -131,7 +135,8 @@ class ActivitySettings : public QWidget
{
Q_OBJECT
public:
- explicit ActivitySettings(QWidget *parent = 0);
+ explicit ActivitySettings(QWidget *parent = 0,
+ AccountState *account = AccountManager::instance()->accounts().first().data());
~ActivitySettings();
QSize sizeHint() const Q_DECL_OVERRIDE { return ownCloudGui::settingsDialogSize(); }
@@ -141,7 +146,7 @@ public slots:
void setNotificationRefreshInterval(std::chrono::milliseconds interval);
- void slotShowIssuesTab(const QString &folderAlias);
+ //void slotShowIssuesTab(const QString &folderAlias);
private slots:
void slotCopyToClipboard();
@@ -167,6 +172,8 @@ private:
QProgressIndicator *_progressIndicator;
QTimer _notificationCheckTimer;
QHash<AccountState *, QElapsedTimer> _timeSinceLastCheck;
+
+ AccountState *_account;
};
}
#endif // ActivityWIDGET_H
diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp
index d626814a2..1643dcf16 100644
--- a/src/gui/owncloudgui.cpp
+++ b/src/gui/owncloudgui.cpp
@@ -1040,7 +1040,7 @@ void ownCloudGui::slotShowSettings()
void ownCloudGui::slotShowSyncProtocol()
{
slotShowSettings();
- _settingsDialog->showActivityPage();
+ //_settingsDialog->showActivityPage();
}
diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp
index d1f7c767a..01746c2c5 100644
--- a/src/gui/settingsdialog.cpp
+++ b/src/gui/settingsdialog.cpp
@@ -84,19 +84,35 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
setObjectName("Settings"); // required as group for saveGeometry call
setWindowTitle(Theme::instance()->appNameGUI());
+ connect(AccountManager::instance(), &AccountManager::accountAdded,
+ this, &SettingsDialog::accountAdded);
+ connect(AccountManager::instance(), &AccountManager::accountRemoved,
+ this, &SettingsDialog::accountRemoved);
+
_actionGroup = new QActionGroup(this);
_actionGroup->setExclusive(true);
- // Note: all the actions have a '\n' because the account name is in two lines and
- // all buttons must have the same size in order to keep a good layout
- _activityAction = createColorAwareAction(QLatin1String(":/client/resources/activity.png"), tr("Activity"));
- _actionGroup->addAction(_activityAction);
- _toolBar->addAction(_activityAction);
- _activitySettings = new ActivitySettings;
- _ui->stack->addWidget(_activitySettings);
- connect(_activitySettings, &ActivitySettings::guiLog, _gui,
- &ownCloudGui::slotShowOptionalTrayMessage);
- _activitySettings->setNotificationRefreshInterval(cfg.notificationRefreshInterval());
+ foreach (auto ai, AccountManager::instance()->accounts()) {
+ accountAdded(ai.data());
+
+ _activitySettings[ai] = new ActivitySettings(this, ai.data());
+ _ui->stack->addWidget(_activitySettings[ai]);
+ connect(_activitySettings[ai], &ActivitySettings::guiLog, _gui,
+ &ownCloudGui::slotShowOptionalTrayMessage);
+ _activitySettings[ai]->setNotificationRefreshInterval(cfg.notificationRefreshInterval());
+
+ // Note: all the actions have a '\n' because the account name is in two lines and
+ // all buttons must have the same size in order to keep a good layout
+ QAction *action = createColorAwareAction(QLatin1String(":/client/resources/activity.png"), tr("Activity"));
+ action->setProperty("account", QVariant::fromValue(ai));
+ _actionGroup->addAction(action);
+ _toolBar->addSeparator();
+ _toolBar->addAction(action);
+ _actionGroupWidgets.insert(action, _activitySettings[ai]);
+ connect(action, &QAction::triggered, this, &SettingsDialog::showActivityPage);
+
+ slotRefreshActivity(ai.data());
+ }
QAction *generalAction = createColorAwareAction(QLatin1String(":/client/resources/settings.png"), tr("General"));
_actionGroup->addAction(generalAction);
@@ -110,20 +126,11 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
NetworkSettings *networkSettings = new NetworkSettings;
_ui->stack->addWidget(networkSettings);
- _actionGroupWidgets.insert(_activityAction, _activitySettings);
_actionGroupWidgets.insert(generalAction, generalSettings);
_actionGroupWidgets.insert(networkAction, networkSettings);
connect(_actionGroup, &QActionGroup::triggered, this, &SettingsDialog::slotSwitchPage);
- connect(AccountManager::instance(), &AccountManager::accountAdded,
- this, &SettingsDialog::accountAdded);
- connect(AccountManager::instance(), &AccountManager::accountRemoved,
- this, &SettingsDialog::accountRemoved);
- foreach (auto ai, AccountManager::instance()->accounts()) {
- accountAdded(ai.data());
- }
-
QTimer::singleShot(1, this, &SettingsDialog::showFirstPage);
QPushButton *closeButton = _ui->buttonBox->button(QDialogButtonBox::Close);
@@ -189,18 +196,18 @@ void SettingsDialog::showFirstPage()
void SettingsDialog::showActivityPage()
{
- if (_activityAction) {
- _activityAction->trigger();
+ if (auto account = qvariant_cast<AccountStatePtr>(sender()->property("account"))) {
+ _activitySettings[account]->show();
}
}
-void SettingsDialog::showIssuesList(const QString &folderAlias)
-{
- if (!_activityAction)
- return;
- _activityAction->trigger();
- _activitySettings->slotShowIssuesTab(folderAlias);
-}
+//void SettingsDialog::showIssuesList(const QString &folderAlias)
+//{
+// if (!_activityAction)
+// return;
+// _activityAction->trigger();
+// _activitySettings->slotShowIssuesTab(folderAlias);
+//}
void SettingsDialog::accountAdded(AccountState *s)
{
@@ -223,7 +230,7 @@ void SettingsDialog::accountAdded(AccountState *s)
accountAction->setToolTip(s->account()->displayName());
accountAction->setIconText(SettingsDialogCommon::shortDisplayNameForSettings(s->account().data(), height * buttonSizeRatio));
}
- _toolBar->insertAction(_toolBar->actions().at(0), accountAction);
+ _toolBar->addAction(accountAction);
auto accountSettings = new AccountSettings(s, this);
_ui->stack->insertWidget(0, accountSettings);
_actionGroup->addAction(accountAction);
@@ -233,14 +240,14 @@ void SettingsDialog::accountAdded(AccountState *s)
connect(accountSettings, &AccountSettings::folderChanged, _gui, &ownCloudGui::slotFoldersChanged);
connect(accountSettings, &AccountSettings::openFolderAlias,
_gui, &ownCloudGui::slotFolderOpenAction);
- connect(accountSettings, &AccountSettings::showIssuesList, this, &SettingsDialog::showIssuesList);
+ //connect(accountSettings, &AccountSettings::showIssuesList, this, &SettingsDialog::showIssuesList);
connect(s->account().data(), &Account::accountChangedAvatar, this, &SettingsDialog::slotAccountAvatarChanged);
connect(s->account().data(), &Account::accountChangedDisplayName, this, &SettingsDialog::slotAccountDisplayNameChanged);
// Refresh immediatly when getting online
connect(s, &AccountState::isConnectedChanged, this, &SettingsDialog::slotRefreshActivityAccountStateSender);
- slotRefreshActivity(s);
+ //slotRefreshActivity(s);
}
void SettingsDialog::slotAccountAvatarChanged()
@@ -295,7 +302,7 @@ void SettingsDialog::accountRemoved(AccountState *s)
if (_actionForAccount.contains(s->account().data())) {
_actionForAccount.remove(s->account().data());
}
- _activitySettings->slotRemoveAccount(s);
+ _activitySettings[AccountManager::instance()->account(s->account()->displayName())]->slotRemoveAccount(s);
// Hide when the last account is deleted. We want to enter the same
// state we'd be in the client was started up without an account
@@ -390,7 +397,7 @@ void SettingsDialog::slotRefreshActivityAccountStateSender()
void SettingsDialog::slotRefreshActivity(AccountState *accountState)
{
if (accountState) {
- _activitySettings->slotRefresh(accountState);
+ _activitySettings[AccountManager::instance()->account(accountState->account()->displayName())]->slotRefresh(accountState);
}
}
diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h
index 37ff29da8..22352fc6f 100644
--- a/src/gui/settingsdialog.h
+++ b/src/gui/settingsdialog.h
@@ -56,7 +56,7 @@ public:
public slots:
void showFirstPage();
void showActivityPage();
- void showIssuesList(const QString &folderAlias);
+// void showIssuesList(const QString &folderAlias);
void slotSwitchPage(QAction *action);
void slotRefreshActivity(AccountState *accountState);
void slotRefreshActivityAccountStateSender();
@@ -91,9 +91,8 @@ private:
QToolBar *_toolBar;
- ActivitySettings *_activitySettings;
+ QMap<AccountStatePtr, ActivitySettings *> _activitySettings;
- QAction *_activityAction;
ownCloudGui *_gui;
};
}