diff --git a/manifest b/manifest index cf86f10..2fe0618 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Renamed\sSettings.h/.cpp\sto\sAppSettings.h/.cpp -D 2015-09-15T10:10:14.515 +C Fixed\sanother\sQUrl\sweirdness\swere\surls\swith\sempty\scredentials\scontained\san\sunnecessary\s@\sbefore\sthe\shostname +D 2015-09-15T10:39:11.137 F .fossil-settings/manifest a09a968bf05a50058f3ad50132730b719bc39e76 F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b @@ -214,8 +214,8 @@ F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342 F rsrc/resources.qrc a69b05ceb3d614f9aaae3adc2734af8ce3013fa2 F src/AboutDialog.cpp aaa3e614c9aace66531bccc35a3dbf398cb79b7b F src/AboutDialog.h 269f3a0589067c08f19b542e4576b0ef58bc6ec5 -F src/AppSettings.cpp f3c48adeaa6573872fd149deeed72eaef3db4489 w src/Settings.cpp -F src/AppSettings.h 815d90d4a0a7110f836836370c8b7e11422ab528 w src/Settings.h +F src/AppSettings.cpp f3c48adeaa6573872fd149deeed72eaef3db4489 +F src/AppSettings.h 815d90d4a0a7110f836836370c8b7e11422ab528 F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056 F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597 F src/CloneDialog.cpp ca978366d9d5fcdbb21551cd7d7e782fcebd066c @@ -228,7 +228,7 @@ F src/FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8 F src/FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df -F src/Fossil.cpp a33ea0f0c6ac9af9a50bbb8eb0f00d014d742ae7 +F src/Fossil.cpp a4e59b0f1af20f96d037f78bb66931be783298dc F src/Fossil.h 7695ace9412a26c5498a4ebe69ab261f6d598d81 F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac F src/FslSettingsDialog.h 92a292d43022289f9f626050cd07392dd72f1676 @@ -244,8 +244,8 @@ F src/SearchBox.cpp d4209c575baa9933e1ce5ed376e785b289a145ba F src/SearchBox.h 0c78d3a68136dab3e0e71b83ae36f22bd2688ab2 F src/SettingsDialog.cpp fa0c70eaf0fa7edb15de302d041cdb552fe523d5 F src/SettingsDialog.h 81158a26ce9ea9fd95c6c5cdd3c24a9b87b00e8d -F src/Utils.cpp fb9fe1caeef47dca310079f8f10b41c838defaa5 -F src/Utils.h c52be757cd0045e34ab14c51f35a61af8f8870a4 +F src/Utils.cpp abdc1525d08448f09833a310c26491351256d5a5 +F src/Utils.h d8cda8bc809f75895bd340109dd8086f43ed83b0 F src/Workspace.cpp 88ec8258920d7d450c3bb6110085fb07b30ee01a F src/Workspace.h a0ae8f0a2c32da3a8b51a74fa68b0b09167d79c5 F src/main.cpp d8c65ea5e54102e4989fef9fd8cfd4f13ef8a8f0 @@ -261,7 +261,7 @@ F ui/MainWindow.ui ad04643d071fe513b46ef413749a493909a90ad1 F ui/RemoteDialog.ui 424b2d4a3d0162f84fdccf6af02c1cfce07a06f5 F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1 -P 3a62c3b4808b76d14fd48839f7aba68e4502c6ad -R 9476eb1cdf40ed4bcce3e28d7b815097 +P 96924d1d0700cae5f848c9acf40d2775e2f48db1 +R 6d9069c8d6722a19cda4d42f759de1f8 U Kostas -Z 162321b283d5a79bfa8836ca7d1d368c +Z 704a90ac967f7cf21ae930ac22a5455e diff --git a/manifest.uuid b/manifest.uuid index 9d1fbff..53202ab 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -96924d1d0700cae5f848c9acf40d2775e2f48db1 \ No newline at end of file +9f7b11b9ab0c210395f8aade55e8de0a3d212ae6 \ No newline at end of file diff --git a/src/Fossil.cpp b/src/Fossil.cpp index 4a27e64..41c85b2 100644 --- a/src/Fossil.cpp +++ b/src/Fossil.cpp @@ -152,11 +152,7 @@ bool Fossil::pushWorkspace(const QUrl &url) if(!url.isEmpty()) { - // QUrl generates bad local file url for Windows local paths with drive letters - if(url.isLocalFile()) - params << url.toLocalFile(); - else - params << url.toEncoded(); + params << UrlToString(url); params << "--once"; QStringList log_params = params; @@ -182,12 +178,7 @@ bool Fossil::pullWorkspace(const QUrl &url) if(!url.isEmpty()) { - // QUrl generates bad local file url for Windows local paths with drive letters - if(url.isLocalFile()) - params << url.toLocalFile(); - else - params << url.toEncoded(); - + params << UrlToString(url); params << "--once"; QStringList log_params = params; @@ -440,12 +431,7 @@ bool Fossil::setSetting(const QString& name, const QString& value, bool global) //------------------------------------------------------------------------------ bool Fossil::setRemoteUrl(const QUrl& url) { - QString u = url.toEncoded(); - - // QUrl generates bad local file url for Windows local paths with drive letters - if(url.isLocalFile()) - u = url.toLocalFile(); - + QString u = UrlToString(url); if(url.isEmpty()) u = "off"; diff --git a/src/Utils.cpp b/src/Utils.cpp index 3267610..19076b5 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -525,6 +525,21 @@ QString UrlToStringNoCredentials(const QUrl& url) return url.toString(QUrl::PrettyDecoded|QUrl::RemoveUserInfo); #endif } + +//------------------------------------------------------------------------------ +// Attempt to address weird behaviour of QUrl to string conversions +QString UrlToString(const QUrl &url) +{ + QString username = url.userName(); + // QUrl generates bad local file url for Windows local paths with drive letters + if(url.isLocalFile()) + return url.toLocalFile(); + else if(username.isEmpty()) // QUrl generates an invalid url like http://@host.domain/path + return UrlToStringNoCredentials(url); + else + return url.toEncoded(); +} + //------------------------------------------------------------------------------ void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams) { diff --git a/src/Utils.h b/src/Utils.h index fad13a5..8a0e574 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -63,6 +63,7 @@ bool KeychainDelete(QObject* parent, const QUrl& url, QSettings &settings); QString HashString(const QString &str); QString UrlToStringDisplay(const QUrl &url); QString UrlToStringNoCredentials(const QUrl& url); +QString UrlToString(const QUrl &url); void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams); bool SpawnExternalProcess(QObject *processParent, const QString& command, const QStringList& fileList, const stringset_t& pathSet, const QString &workspaceDir, UICallback &uiCallback); void TrimStringList(QStringList &list);