1 // For license of this file, see <project-root-folder>/LICENSE.md.
2 
3 #include "services/owncloud/gui/formeditowncloudaccount.h"
4 
5 #include "gui/guiutilities.h"
6 #include "miscellaneous/iconfactory.h"
7 #include "network-web/networkfactory.h"
8 #include "services/owncloud/definitions.h"
9 #include "services/owncloud/gui/owncloudaccountdetails.h"
10 #include "services/owncloud/owncloudnetworkfactory.h"
11 #include "services/owncloud/owncloudserviceroot.h"
12 
FormEditOwnCloudAccount(QWidget * parent)13 FormEditOwnCloudAccount::FormEditOwnCloudAccount(QWidget* parent)
14   : FormAccountDetails(qApp->icons()->miscIcon(QSL("nextcloud")), parent), m_details(new OwnCloudAccountDetails(this)) {
15   insertCustomTab(m_details, tr("Server setup"), 0);
16   activateTab(0);
17 
18   connect(m_details->m_ui.m_btnTestSetup, &QPushButton::clicked, this, &FormEditOwnCloudAccount::performTest);
19 
20   m_details->m_ui.m_txtUrl->setFocus();
21 }
22 
apply()23 void FormEditOwnCloudAccount::apply() {
24   FormAccountDetails::apply();
25 
26   bool using_another_acc =
27     m_details->m_ui.m_txtUsername->lineEdit()->text() != account<OwnCloudServiceRoot>()->network()->authUsername() ||
28     m_details->m_ui.m_txtUrl->lineEdit()->text() != account<OwnCloudServiceRoot>()->network()->url();
29 
30   account<OwnCloudServiceRoot>()->network()->setUrl(m_details->m_ui.m_txtUrl->lineEdit()->text());
31   account<OwnCloudServiceRoot>()->network()->setAuthUsername(m_details->m_ui.m_txtUsername->lineEdit()->text());
32   account<OwnCloudServiceRoot>()->network()->setAuthPassword(m_details->m_ui.m_txtPassword->lineEdit()->text());
33   account<OwnCloudServiceRoot>()->network()->setForceServerSideUpdate(m_details->m_ui.m_checkServerSideUpdate->isChecked());
34   account<OwnCloudServiceRoot>()->network()->setBatchSize(m_details->m_ui.m_spinLimitMessages->value());
35   account<OwnCloudServiceRoot>()->network()->setDownloadOnlyUnreadMessages(m_details->m_ui.m_checkDownloadOnlyUnreadMessages->isChecked());
36 
37   account<OwnCloudServiceRoot>()->saveAccountDataToDatabase();
38   accept();
39 
40   if (!m_creatingNew && using_another_acc) {
41     account<OwnCloudServiceRoot>()->completelyRemoveAllData();
42     account<OwnCloudServiceRoot>()->start(true);
43   }
44 }
45 
loadAccountData()46 void FormEditOwnCloudAccount::loadAccountData() {
47   FormAccountDetails::loadAccountData();
48 
49   OwnCloudServiceRoot* existing_root = account<OwnCloudServiceRoot>();
50 
51   m_details->m_ui.m_txtUsername->lineEdit()->setText(existing_root->network()->authUsername());
52   m_details->m_ui.m_txtPassword->lineEdit()->setText(existing_root->network()->authPassword());
53   m_details->m_ui.m_txtUrl->lineEdit()->setText(existing_root->network()->url());
54   m_details->m_ui.m_checkDownloadOnlyUnreadMessages->setChecked(existing_root->network()->downloadOnlyUnreadMessages());
55   m_details->m_ui.m_checkServerSideUpdate->setChecked(existing_root->network()->forceServerSideUpdate());
56   m_details->m_ui.m_spinLimitMessages->setValue(existing_root->network()->batchSize());
57 }
58 
performTest()59 void FormEditOwnCloudAccount::performTest() {
60   m_details->performTest(m_proxyDetails->proxy());
61 }
62