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

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2020-08-19 18:53:22 +0300
committerHannah von Reth <vonreth@kde.org>2020-08-21 16:00:06 +0300
commit2a6def4523feac6b7a60a134c351c8117e32fab8 (patch)
treea44c15c95ab680935a943347dbad1746f7fb66ad /src
parent115b1b2a3d2f40033db03e590134d0a4cc3555fb (diff)
Add dedicated button to add accounts
Diffstat (limited to 'src')
-rw-r--r--src/gui/accountsettings.cpp25
-rw-r--r--src/gui/accountsettings.h2
-rw-r--r--src/gui/settingsdialog.cpp19
-rw-r--r--src/gui/settingsdialog.h1
4 files changed, 17 insertions, 30 deletions
diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp
index 69d01b9bf..53d09b250 100644
--- a/src/gui/accountsettings.cpp
+++ b/src/gui/accountsettings.cpp
@@ -139,8 +139,6 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
ui->selectiveSyncStatus->hide();
createAccountToolbox();
- connect(AccountManager::instance(), &AccountManager::accountAdded,
- this, &AccountSettings::slotAccountAdded);
connect(ui->_folderList, &QWidget::customContextMenuRequested,
this, &AccountSettings::slotCustomContextMenuRequested);
connect(ui->_folderList, &QAbstractItemView::clicked,
@@ -197,10 +195,6 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
void AccountSettings::createAccountToolbox()
{
QMenu *menu = new QMenu(ui->_accountToolbox);
- _addAccountAction = new QAction(tr("Add new"), this);
- _addAccountAction->setObjectName("addAccountAction");
- menu->addAction(_addAccountAction);
- connect(_addAccountAction, &QAction::triggered, this, &AccountSettings::slotOpenAccountWizard);
_toggleSignInOutAction = new QAction(tr("Log out"), this);
connect(_toggleSignInOutAction, &QAction::triggered, this, &AccountSettings::slotToggleSignInState);
@@ -213,8 +207,6 @@ void AccountSettings::createAccountToolbox()
ui->_accountToolbox->setText(tr("Account") + QLatin1Char(' '));
ui->_accountToolbox->setMenu(menu);
ui->_accountToolbox->setPopupMode(QToolButton::InstantPopup);
-
- slotAccountAdded(_accountState);
}
QString AccountSettings::selectedFolderAlias() const
@@ -225,11 +217,6 @@ QString AccountSettings::selectedFolderAlias() const
return _model->data(selected, FolderStatusDelegate::FolderAliasRole).toString();
}
-void AccountSettings::slotOpenAccountWizard()
-{
- ocApp()->gui()->runNewAccountWizard();
-}
-
void AccountSettings::slotToggleSignInState()
{
if (_accountState->isSignedOut()) {
@@ -1054,18 +1041,6 @@ void AccountSettings::refreshSelectiveSyncStatus()
}
}
-void AccountSettings::slotAccountAdded(AccountState *)
-{
- // if the theme is limited to single account, the button must hide if
- // there is already one account.
- int s = AccountManager::instance()->accounts().size();
- if (s > 0 && !Theme::instance()->multiAccount()) {
- _addAccountAction->setVisible(false);
- } else {
- _addAccountAction->setVisible(true);
- }
-}
-
void AccountSettings::slotDeleteAccount()
{
// Deleting the account potentially deletes 'this', so
diff --git a/src/gui/accountsettings.h b/src/gui/accountsettings.h
index 74d831dbc..b768d180e 100644
--- a/src/gui/accountsettings.h
+++ b/src/gui/accountsettings.h
@@ -84,8 +84,6 @@ protected slots:
void slotFolderWizardRejected();
void slotDeleteAccount();
void slotToggleSignInState();
- void slotOpenAccountWizard();
- void slotAccountAdded(AccountState *);
void refreshSelectiveSyncStatus();
void slotCustomContextMenuRequested(const QPoint &);
void slotFolderListClicked(const QModelIndex &indx);
diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp
index 11b2b2434..b30a6ba1c 100644
--- a/src/gui/settingsdialog.cpp
+++ b/src/gui/settingsdialog.cpp
@@ -15,6 +15,7 @@
#include "settingsdialog.h"
#include "ui_settingsdialog.h"
+#include "application.h"
#include "folderman.h"
#include "theme.h"
#include "generalsettings.h"
@@ -27,6 +28,7 @@
#include "activitywidget.h"
#include "accountmanager.h"
#include "protocolwidget.h"
+#include "owncloudsetupwizard.h"
#include <QLabel>
#include <QStandardItemModel>
@@ -103,6 +105,17 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
_actionGroup = new QActionGroup(this);
_actionGroup->setExclusive(true);
+
+ if (Theme::instance()->multiAccount()) {
+ _addAccountAction = createColorAwareAction(QStringLiteral(":/client/resources/plus-solid.svg"), tr("Add account"));
+ _addAccountAction->setCheckable(false);
+ connect(_addAccountAction, &QAction::triggered, this, []{
+ // don't directly connect here, ocApp might not be defined yet
+ ocApp()->gui()->runNewAccountWizard();
+ });
+ _ui->toolBar->addAction(_addAccountAction);
+ }
+
// 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(QStringLiteral(":/client/resources/activity.svg"), tr("Activity"));
@@ -233,9 +246,9 @@ void SettingsDialog::slotSwitchPage(QAction *action)
void SettingsDialog::showFirstPage()
{
- QList<QAction *> actions = _ui->toolBar->actions();
+ const QList<QAction *> &actions = _ui->toolBar->actions();
if (!actions.empty()) {
- actions.first()->trigger();
+ actions.at(_addAccountAction ? 1 : 0)->trigger();
}
}
@@ -273,7 +286,7 @@ void SettingsDialog::accountAdded(AccountState *s)
accountAction->setToolTip(s->account()->displayName());
accountAction->setIconText(shortDisplayNameForSettings(s->account().data()));
}
- _ui->toolBar->insertAction(_ui->toolBar->actions().at(0), accountAction);
+ _ui->toolBar->insertAction(_addAccountAction ? _ui->toolBar->actions().at(1) : _ui->toolBar->actions().at(0), accountAction);
auto accountSettings = new AccountSettings(s, this);
QString objectName = QLatin1String("accountSettings_");
objectName += s->account()->displayName();
diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h
index 414069529..079f91df2 100644
--- a/src/gui/settingsdialog.h
+++ b/src/gui/settingsdialog.h
@@ -93,6 +93,7 @@ private:
ActivitySettings *_activitySettings;
QAction *_activityAction;
+ QAction *_addAccountAction = nullptr;
ownCloudGui *_gui;
};