From a426c4ea37bd098a2b3a4c21b7a73255ad5aa896 Mon Sep 17 00:00:00 2001 From: Kyle Fazzari Date: Mon, 10 Sep 2012 20:50:51 -0400 Subject: * Fixed bug where the if one enters the owncloud URL on the setup page of the initial wizard, continued, and then hit the back button on the Install page, the protocol was included in the URL. --- src/mirall/owncloudsetupwizard.cpp | 17 +++++++++++++++++ src/mirall/owncloudwizard.cpp | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/mirall/owncloudsetupwizard.cpp b/src/mirall/owncloudsetupwizard.cpp index 19e382f8e..4b5dcd416 100644 --- a/src/mirall/owncloudsetupwizard.cpp +++ b/src/mirall/owncloudsetupwizard.cpp @@ -127,6 +127,14 @@ void OwncloudSetupWizard::slotConnectToOCUrl( const QString& url ) qDebug() << "Connect to url: " << url; _ocWizard->setField(QLatin1String("OCUrl"), url ); _ocWizard->appendToResultWidget(tr("Trying to connect to ownCloud at %1...").arg(url )); + + // Remove the protocol from the beginning of the url + QString urlWithoutProtocol = url; + urlWithoutProtocol.remove(QRegExp(".*://")); + + _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), + urlWithoutProtocol); + testOwnCloudConnect(); } @@ -213,6 +221,8 @@ void OwncloudSetupWizard::slotCreateOCLocalhost() // define _ocWizard->setField( QLatin1String("OCUrl"), QLatin1String( "http://localhost/owncloud/") ); + _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), + QLatin1String("localhost/owncloud/")); } void OwncloudSetupWizard::slotInstallOCServer() @@ -244,6 +254,13 @@ void OwncloudSetupWizard::slotInstallOCServer() runOwncloudAdmin( args ); _ocWizard->setField( QLatin1String("OCUrl"), QString::fromLatin1( "%1/owncloud/") .arg(_ocWizard->field(QLatin1String("myOCDomain")).toString() )); + + QString url = QString::fromLatin1( "%1/owncloud/") + .arg(_ocWizard->field(QLatin1String("myOCDomain")).toString()); + + _ocWizard->setField(QLatin1String("OCUrl"), url); + _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), + url.remove(QRegExp(".*://"))); } void OwncloudSetupWizard::runOwncloudAdmin( const QStringList& args ) diff --git a/src/mirall/owncloudwizard.cpp b/src/mirall/owncloudwizard.cpp index 3a9e18d14..e6cf28dd7 100644 --- a/src/mirall/owncloudwizard.cpp +++ b/src/mirall/owncloudwizard.cpp @@ -57,7 +57,7 @@ void setupCustomMedia( QVariant variant, QLabel *label ) OwncloudSetupPage::OwncloudSetupPage() { _ui.setupUi(this); - registerField( QLatin1String("OCUrl"), _ui.leUrl ); + registerField( QLatin1String("OCUrlWithoutProtocol"), _ui.leUrl ); registerField( QLatin1String("OCUser"), _ui.leUsername ); registerField( QLatin1String("OCPasswd"), _ui.lePassword); registerField( QLatin1String("connectMyOC"), _ui.cbConnectOC ); @@ -465,7 +465,11 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) QString OwncloudWizard::ocUrl() const { - QString url = field("OCUrl").toString(); + QString url = field("OCUrlWithoutProtocol").toString(); + + if (url.isEmpty()) { + url = field("OCUrl").toString(); + } if( field("secureConnect").toBool() ) { url.prepend(QLatin1String("https://")); -- cgit v1.2.3 From 7f6d39383e784846db2fb0ce46296c18df911061 Mon Sep 17 00:00:00 2001 From: Kyle Fazzari Date: Tue, 11 Sep 2012 18:56:32 -0400 Subject: Found a much slicker solution to the problem of the OC URL containing the protocol when the back button is used. Instead of moving to two separate URL fields, a slot was created and connected to the textChanged signal of the OCUrl LineEdit. This slot simply ensures the protocol is not present. --- src/mirall/owncloudsetupwizard.cpp | 17 ----------------- src/mirall/owncloudwizard.cpp | 16 ++++++++++------ src/mirall/owncloudwizard.h | 3 +-- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/src/mirall/owncloudsetupwizard.cpp b/src/mirall/owncloudsetupwizard.cpp index 4b5dcd416..19e382f8e 100644 --- a/src/mirall/owncloudsetupwizard.cpp +++ b/src/mirall/owncloudsetupwizard.cpp @@ -127,14 +127,6 @@ void OwncloudSetupWizard::slotConnectToOCUrl( const QString& url ) qDebug() << "Connect to url: " << url; _ocWizard->setField(QLatin1String("OCUrl"), url ); _ocWizard->appendToResultWidget(tr("Trying to connect to ownCloud at %1...").arg(url )); - - // Remove the protocol from the beginning of the url - QString urlWithoutProtocol = url; - urlWithoutProtocol.remove(QRegExp(".*://")); - - _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), - urlWithoutProtocol); - testOwnCloudConnect(); } @@ -221,8 +213,6 @@ void OwncloudSetupWizard::slotCreateOCLocalhost() // define _ocWizard->setField( QLatin1String("OCUrl"), QLatin1String( "http://localhost/owncloud/") ); - _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), - QLatin1String("localhost/owncloud/")); } void OwncloudSetupWizard::slotInstallOCServer() @@ -254,13 +244,6 @@ void OwncloudSetupWizard::slotInstallOCServer() runOwncloudAdmin( args ); _ocWizard->setField( QLatin1String("OCUrl"), QString::fromLatin1( "%1/owncloud/") .arg(_ocWizard->field(QLatin1String("myOCDomain")).toString() )); - - QString url = QString::fromLatin1( "%1/owncloud/") - .arg(_ocWizard->field(QLatin1String("myOCDomain")).toString()); - - _ocWizard->setField(QLatin1String("OCUrl"), url); - _ocWizard->setField(QLatin1String("OCUrlWithoutProtocol"), - url.remove(QRegExp(".*://"))); } void OwncloudSetupWizard::runOwncloudAdmin( const QStringList& args ) diff --git a/src/mirall/owncloudwizard.cpp b/src/mirall/owncloudwizard.cpp index e6cf28dd7..c08565bd2 100644 --- a/src/mirall/owncloudwizard.cpp +++ b/src/mirall/owncloudwizard.cpp @@ -57,7 +57,10 @@ void setupCustomMedia( QVariant variant, QLabel *label ) OwncloudSetupPage::OwncloudSetupPage() { _ui.setupUi(this); - registerField( QLatin1String("OCUrlWithoutProtocol"), _ui.leUrl ); + + connect(_ui.leUrl, SIGNAL(textChanged(QString)), SLOT(handleNewOcUrl(QString))); + + registerField( QLatin1String("OCUrl"), _ui.leUrl ); registerField( QLatin1String("OCUser"), _ui.leUsername ); registerField( QLatin1String("OCPasswd"), _ui.lePassword); registerField( QLatin1String("connectMyOC"), _ui.cbConnectOC ); @@ -147,6 +150,11 @@ void OwncloudSetupPage::slotSecureConChanged( int state ) } } +void OwncloudSetupPage::handleNewOcUrl(QString ocUrl) +{ + _ui.leUrl->setText(ocUrl.remove(QRegExp(".*://"))); +} + bool OwncloudSetupPage::isComplete() const { if( _ui.leUrl->text().isEmpty() ) return false; @@ -465,11 +473,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) QString OwncloudWizard::ocUrl() const { - QString url = field("OCUrlWithoutProtocol").toString(); - - if (url.isEmpty()) { - url = field("OCUrl").toString(); - } + QString url = field("OCUrl").toString(); if( field("secureConnect").toBool() ) { url.prepend(QLatin1String("https://")); diff --git a/src/mirall/owncloudwizard.h b/src/mirall/owncloudwizard.h index d0427c0bf..a43152bef 100644 --- a/src/mirall/owncloudwizard.h +++ b/src/mirall/owncloudwizard.h @@ -45,10 +45,10 @@ public: protected slots: void slotPwdStoreChanged( int ); void slotSecureConChanged( int ); + void handleNewOcUrl(QString ocUrl); void setupCustomization(); private: Ui_OwncloudSetupPage _ui; - }; class OwncloudWizard: public QWizard @@ -112,7 +112,6 @@ public: private: Ui_OwncloudWizardSelectTypePage _ui; - }; class CreateAnOwncloudPage: public QWizardPage -- cgit v1.2.3 From 2652a744d0419bef53e9532e5ca15a99cade52d4 Mon Sep 17 00:00:00 2001 From: Kyle Fazzari Date: Thu, 13 Sep 2012 22:47:39 -0400 Subject: Damino requested that QUrl be used to parse the URL, along with toString(QUrl::RemoveScheme). QUrl::RemoveScheme doesn't remove the slashes, so extra code was thrown in to ensure they were removed if they were present. --- src/mirall/owncloudwizard.cpp | 15 +++++++++++++-- src/mirall/owncloudwizard.h | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mirall/owncloudwizard.cpp b/src/mirall/owncloudwizard.cpp index c08565bd2..27bdb3d15 100644 --- a/src/mirall/owncloudwizard.cpp +++ b/src/mirall/owncloudwizard.cpp @@ -150,9 +150,20 @@ void OwncloudSetupPage::slotSecureConChanged( int state ) } } -void OwncloudSetupPage::handleNewOcUrl(QString ocUrl) +void OwncloudSetupPage::handleNewOcUrl(const QString& ocUrl) { - _ui.leUrl->setText(ocUrl.remove(QRegExp(".*://"))); + QUrl url(ocUrl); + + QString urlMinusScheme = url.toString(QUrl::RemoveScheme); + + // QUrl::RemoveScheme leaves the beginning slashes. Remove them + // if they're present. + if (urlMinusScheme.startsWith("//")) + { + urlMinusScheme.remove(0, 2); + } + + _ui.leUrl->setText(urlMinusScheme); } bool OwncloudSetupPage::isComplete() const diff --git a/src/mirall/owncloudwizard.h b/src/mirall/owncloudwizard.h index a43152bef..35bc7ba1d 100644 --- a/src/mirall/owncloudwizard.h +++ b/src/mirall/owncloudwizard.h @@ -45,7 +45,7 @@ public: protected slots: void slotPwdStoreChanged( int ); void slotSecureConChanged( int ); - void handleNewOcUrl(QString ocUrl); + void handleNewOcUrl(const QString& ocUrl); void setupCustomization(); private: Ui_OwncloudSetupPage _ui; -- cgit v1.2.3 From 4dbd8ee016597e392174906b5ae1c0ce2459cdde Mon Sep 17 00:00:00 2001 From: Kyle Fazzari Date: Thu, 13 Sep 2012 22:51:47 -0400 Subject: Forgot to comform to ownCloud coding standards. Fixed. --- src/mirall/owncloudwizard.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/mirall/owncloudwizard.cpp b/src/mirall/owncloudwizard.cpp index 27bdb3d15..7005c2d9e 100644 --- a/src/mirall/owncloudwizard.cpp +++ b/src/mirall/owncloudwizard.cpp @@ -158,8 +158,7 @@ void OwncloudSetupPage::handleNewOcUrl(const QString& ocUrl) // QUrl::RemoveScheme leaves the beginning slashes. Remove them // if they're present. - if (urlMinusScheme.startsWith("//")) - { + if (urlMinusScheme.startsWith("//")) { urlMinusScheme.remove(0, 2); } -- cgit v1.2.3