diff --git a/NEXTCLOUD.cmake b/NEXTCLOUD.cmake index a497b8674..ec5830a4f 100644 --- a/NEXTCLOUD.cmake +++ b/NEXTCLOUD.cmake @@ -6,7 +6,8 @@ set( APPLICATION_VENDOR "Nextcloud GmbH" ) set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE STRING "URL for updater" ) set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" ) set( APPLICATION_ICON_NAME "Nextcloud" ) -set( APPLICATION_SERVER_URL "" CACHE STRING "URL for the server to use. If entered the server can only connect to this instance" ) +set( APPLICATION_SERVER_URL "" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" ) +set( APPLICATION_SERVER_URL_ENFORCE ON ) # If set and APPLICATION_SERVER_URL is defined, the server can only connect to the pre-defined URL set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" ) set( LINUX_PACKAGE_SHORTNAME "nextcloud" ) diff --git a/config.h.in b/config.h.in index 83ec3853e..0581afbd9 100644 --- a/config.h.in +++ b/config.h.in @@ -21,6 +21,7 @@ #cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@" #cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@" #cmakedefine APPLICATION_SERVER_URL "@APPLICATION_SERVER_URL@" +#cmakedefine APPLICATION_SERVER_URL_ENFORCE "@APPLICATION_SERVER_URL_ENFORCE@" #cmakedefine LINUX_APPLICATION_ID "@LINUX_APPLICATION_ID@" #cmakedefine APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "@APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR@" #cmakedefine APPLICATION_WIZARD_HEADER_TITLE_COLOR "@APPLICATION_WIZARD_HEADER_TITLE_COLOR@" diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp index 71f1c19c9..1bc76fdef 100644 --- a/src/gui/wizard/owncloudsetuppage.cpp +++ b/src/gui/wizard/owncloudsetuppage.cpp @@ -51,7 +51,7 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent) if (theme->overrideServerUrl().isEmpty()) { _ui.leUrl->setPostfix(theme->wizardUrlPostfix()); _ui.leUrl->setPlaceholderText(theme->wizardUrlHint()); - } else { + } else if (Theme::instance()->forceOverrideServerUrl()) { _ui.leUrl->setEnabled(false); } @@ -213,6 +213,10 @@ void OwncloudSetupPage::initializePage() // immediately. if (Theme::instance()->overrideServerUrl().isEmpty()) { _ui.leUrl->setFocus(); + } else if (!Theme::instance()->forceOverrideServerUrl()) { + if (nextButton) { + nextButton->setFocus(); + } } else { setCommitPage(true); // Hack: setCommitPage() changes caption, but after an error this page could still be visible diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index f2dcb597b..f792c493d 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -269,6 +269,15 @@ QString Theme::overrideServerUrl() const #endif } +bool Theme::forceOverrideServerUrl() const +{ +#ifdef APPLICATION_SERVER_URL_ENFORCE + return true; +#else + return false; +#endif +} + QString Theme::forceConfigAuthType() const { return QString(); diff --git a/src/libsync/theme.h b/src/libsync/theme.h index 79014dc48..b36dab7ea 100644 --- a/src/libsync/theme.h +++ b/src/libsync/theme.h @@ -149,10 +149,17 @@ public: /** * Setting a value here will pre-define the server url. * - * The respective UI controls will be disabled + * The respective UI controls will be disabled only if forceOverrideServerUrl() is true */ virtual QString overrideServerUrl() const; + /** + * Enforce a pre-defined server url. + * + * When true, the respective UI controls will be disabled + */ + virtual bool forceOverrideServerUrl() const; + /** * This is only usefull when previous version had a different overrideServerUrl * with a different auth type in that case You should then specify "http" or "shibboleth".