Fixed another QUrl weirdness were urls with empty credentials contained an unnecessary @ before the hostname

FossilOrigin-Name: 9f7b11b9ab0c210395f8aade55e8de0a3d212ae6
This commit is contained in:
Kostas 2015-09-15 10:39:11 +00:00
parent a71355cbec
commit 45740da630
5 changed files with 30 additions and 28 deletions

View File

@ -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

View File

@ -1 +1 @@
96924d1d0700cae5f848c9acf40d2775e2f48db1
9f7b11b9ab0c210395f8aade55e8de0a3d212ae6

View File

@ -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";

View File

@ -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)
{

View File

@ -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);