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
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2014-08-27 21:03:11 +0400
committerOlivier Goffart <ogoffart@woboq.com>2014-08-27 21:03:11 +0400
commita73316306d9605752ae1388ac0a15ef013e93849 (patch)
treea53ae11dd69f3110fd1eb5977875e194e51a2221 /src/wizard
parent928652e4cf62d918d9cbbdda0100bb4686c38ccd (diff)
Selective sync: new design in the wizard
Diffstat (limited to 'src/wizard')
-rw-r--r--src/wizard/owncloudadvancedsetuppage.cpp34
-rw-r--r--src/wizard/owncloudadvancedsetuppage.h4
-rw-r--r--src/wizard/owncloudadvancedsetuppage.ui83
-rw-r--r--src/wizard/owncloudwizard.cpp6
-rw-r--r--src/wizard/owncloudwizard.h1
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);