diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2014-08-27 21:03:11 +0400 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2014-08-27 21:03:11 +0400 |
commit | a73316306d9605752ae1388ac0a15ef013e93849 (patch) | |
tree | a53ae11dd69f3110fd1eb5977875e194e51a2221 /src/wizard | |
parent | 928652e4cf62d918d9cbbdda0100bb4686c38ccd (diff) |
Selective sync: new design in the wizard
Diffstat (limited to 'src/wizard')
-rw-r--r-- | src/wizard/owncloudadvancedsetuppage.cpp | 34 | ||||
-rw-r--r-- | src/wizard/owncloudadvancedsetuppage.h | 4 | ||||
-rw-r--r-- | src/wizard/owncloudadvancedsetuppage.ui | 83 | ||||
-rw-r--r-- | src/wizard/owncloudwizard.cpp | 6 | ||||
-rw-r--r-- | src/wizard/owncloudwizard.h | 1 |
5 files changed, 123 insertions, 5 deletions
diff --git a/src/wizard/owncloudadvancedsetuppage.cpp b/src/wizard/owncloudadvancedsetuppage.cpp index a4e49ed2d..cb89b3f28 100644 --- a/src/wizard/owncloudadvancedsetuppage.cpp +++ b/src/wizard/owncloudadvancedsetuppage.cpp @@ -26,6 +26,7 @@ #include "mirall/account.h" #include "mirall/theme.h" #include "mirall/mirallconfigfile.h" +#include <selectivesyncdialog.h> #include "creds/abstractcredentials.h" namespace Mirall @@ -56,6 +57,9 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage() connect( _ui.pbSelectLocalFolder, SIGNAL(clicked()), SLOT(slotSelectFolder())); setButtonText(QWizard::NextButton, tr("Connect...")); + + connect( _ui.tbSyncEverything, SIGNAL(clicked()), SLOT(slotSyncEverythingClicked())); + connect( _ui.tbSelectiveSync, SIGNAL(clicked()), SLOT(slotSelectiveSyncClicked())); } void OwncloudAdvancedSetupPage::setupCustomization() @@ -179,6 +183,11 @@ QString OwncloudAdvancedSetupPage::localFolder() const return folder; } +QStringList OwncloudAdvancedSetupPage::blacklist() const +{ + return _blacklist; +} + bool OwncloudAdvancedSetupPage::validatePage() { if(!_created) { @@ -249,4 +258,29 @@ void OwncloudAdvancedSetupPage::setConfigExists(bool config) } } +void OwncloudAdvancedSetupPage::slotSelectiveSyncClicked() +{ + // Because clicking on it also changes it, restore it to the previous state in case the user cancel the dialog + _ui.tbSelectiveSync->setChecked(!_blacklist.isEmpty()); + + Account *acc = static_cast<OwncloudWizard *>(wizard())->account(); + SelectiveSyncDialog *dlg = new SelectiveSyncDialog(acc, 0, this); + if (dlg->exec() == QDialog::Accepted) { + _blacklist = dlg->createBlackList(); + if (!_blacklist.isEmpty()) { + _ui.tbSyncEverything->setChecked(false); + _ui.tbSelectiveSync->setChecked(true); + } + wizard()->setProperty("blacklist", _blacklist); + } +} + +void OwncloudAdvancedSetupPage::slotSyncEverythingClicked() +{ + _ui.tbSyncEverything->setChecked(true); + _ui.tbSelectiveSync->setChecked(false); + _blacklist.clear(); +} + + } // ns Mirall diff --git a/src/wizard/owncloudadvancedsetuppage.h b/src/wizard/owncloudadvancedsetuppage.h index 1d897fe77..c085832bf 100644 --- a/src/wizard/owncloudadvancedsetuppage.h +++ b/src/wizard/owncloudadvancedsetuppage.h @@ -36,6 +36,7 @@ public: virtual int nextId() const Q_DECL_OVERRIDE; bool validatePage() Q_DECL_OVERRIDE; QString localFolder() const; + QStringList blacklist() const; void setRemoteFolder( const QString& remoteFolder); void setMultipleFoldersExist( bool exist ); void directoriesCreated(); @@ -49,6 +50,8 @@ public slots: private slots: void slotSelectFolder(); + void slotSyncEverythingClicked(); + void slotSelectiveSyncClicked(); private: void setupCustomization(); @@ -65,6 +68,7 @@ private: QProgressIndicator* _progressIndi; QString _oldLocalFolder; QString _remoteFolder; + QStringList _blacklist; }; } // ns Mirall diff --git a/src/wizard/owncloudadvancedsetuppage.ui b/src/wizard/owncloudadvancedsetuppage.ui index c5a4eed04..679914a2b 100644 --- a/src/wizard/owncloudadvancedsetuppage.ui +++ b/src/wizard/owncloudadvancedsetuppage.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>484</width> - <height>336</height> + <width>917</width> + <height>493</height> </rect> </property> <property name="sizePolicy"> @@ -57,7 +57,10 @@ </item> <item> <layout class="QFormLayout" name="advancedBox"> - <item row="0" column="0"> + <property name="fieldGrowthPolicy"> + <enum>QFormLayout::AllNonFixedFieldsGrow</enum> + </property> + <item row="1" column="0"> <widget class="QLabel" name="label"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> @@ -73,7 +76,7 @@ </property> </widget> </item> - <item row="0" column="1"> + <item row="1" column="1"> <widget class="QPushButton" name="pbSelectLocalFolder"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -86,7 +89,7 @@ </property> </widget> </item> - <item row="1" column="1"> + <item row="2" column="1"> <widget class="QWidget" name="resolutionWidget" native="true"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -209,6 +212,76 @@ </layout> </widget> </item> + <item row="0" column="1"> + <widget class="QWidget" name="widget" native="true"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="1"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>or</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QToolButton" name="tbSelectiveSync"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>160</width> + <height>80</height> + </size> + </property> + <property name="text"> + <string>Choose what to sync</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QToolButton" name="tbSyncEverything"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>160</width> + <height>80</height> + </size> + </property> + <property name="text"> + <string>Sync everything from server</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Remote</string> + </property> + </widget> + </item> </layout> </item> <item> diff --git a/src/wizard/owncloudwizard.cpp b/src/wizard/owncloudwizard.cpp index 5cb6215eb..e2edeb6bd 100644 --- a/src/wizard/owncloudwizard.cpp +++ b/src/wizard/owncloudwizard.cpp @@ -104,6 +104,12 @@ QString OwncloudWizard::localFolder() const return(_advancedSetupPage->localFolder()); } +QStringList OwncloudWizard::blacklist() const +{ + return _advancedSetupPage->blacklist(); +} + + QString OwncloudWizard::ocUrl() const { QString url = field("OCUrl").toString().simplified(); diff --git a/src/wizard/owncloudwizard.h b/src/wizard/owncloudwizard.h index b3c319e76..0d2e77a2f 100644 --- a/src/wizard/owncloudwizard.h +++ b/src/wizard/owncloudwizard.h @@ -50,6 +50,7 @@ public: void setupCustomMedia( QVariant, QLabel* ); QString ocUrl() const; QString localFolder() const; + QStringList blacklist() const; void enableFinishOnResultWidget(bool enable); |