summaryrefslogtreecommitdiffstats
path: root/logic
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-05-31 17:51:20 +0200
committerPetr Mrázek <peterix@gmail.com>2015-05-31 17:51:20 +0200
commitff64b6cf1d21e35cbc10ebc6cf3838f5b0244355 (patch)
tree3d8cf8491aaba702a1ccf2280136a0689af1519c /logic
parent84757f485b51bd54926807d05fe4fa503a09ea4c (diff)
downloadMultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar
MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.gz
MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.lz
MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.xz
MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.zip
GH-1020 use plain strings for library URLs
Because the URLs can contain {}, which are percent encoded in URLs and this breaks variable substitution
Diffstat (limited to 'logic')
-rw-r--r--logic/minecraft/OneSixUpdate.cpp2
-rw-r--r--logic/minecraft/RawLibrary.cpp13
-rw-r--r--logic/minecraft/RawLibrary.h6
3 files changed, 14 insertions, 7 deletions
diff --git a/logic/minecraft/OneSixUpdate.cpp b/logic/minecraft/OneSixUpdate.cpp
index 9dcb977b..485727ec 100644
--- a/logic/minecraft/OneSixUpdate.cpp
+++ b/logic/minecraft/OneSixUpdate.cpp
@@ -228,7 +228,7 @@ void OneSixUpdate::jarlibStart()
}
QString raw_storage = lib->storageSuffix();
- QString raw_dl = lib->url().toString();
+ QString raw_dl = lib->url();
auto f = [&](QString storage, QString dl)
{
diff --git a/logic/minecraft/RawLibrary.cpp b/logic/minecraft/RawLibrary.cpp
index fa8270cd..bae6c66a 100644
--- a/logic/minecraft/RawLibrary.cpp
+++ b/logic/minecraft/RawLibrary.cpp
@@ -157,7 +157,7 @@ QJsonObject RawLibrary::toJson() const
m_base_url != "https://" + URLConstants::AWS_DOWNLOAD_LIBRARIES &&
m_base_url != "https://" + URLConstants::LIBRARY_BASE && !m_base_url.isEmpty())
{
- libRoot.insert("url", m_base_url.toString());
+ libRoot.insert("url", m_base_url);
}
if (isNative())
{
@@ -224,7 +224,7 @@ bool RawLibrary::filesExist(const QDir &base) const
}
return true;
}
-QUrl RawLibrary::url() const
+QString RawLibrary::url() const
{
if (!m_absolute_url.isEmpty())
{
@@ -236,7 +236,14 @@ QUrl RawLibrary::url() const
return QString("https://" + URLConstants::LIBRARY_BASE) + storageSuffix();
}
- return m_base_url.resolved(storageSuffix());
+ if(m_base_url.endsWith('/'))
+ {
+ return m_base_url + storageSuffix();
+ }
+ else
+ {
+ return m_base_url + QChar('/') + storageSuffix();
+ }
}
bool RawLibrary::isActive() const
diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h
index 3f3cb925..e51cbf4c 100644
--- a/logic/minecraft/RawLibrary.h
+++ b/logic/minecraft/RawLibrary.h
@@ -86,7 +86,7 @@ public: /* methods */
QString storagePath() const;
/// Set the url base for downloads
- void setBaseUrl(const QUrl &base_url)
+ void setBaseUrl(const QString &base_url)
{
m_base_url = base_url;
}
@@ -127,7 +127,7 @@ public: /* methods */
bool isActive() const;
/// Get the URL to download the library from
- QUrl url() const;
+ QString url() const;
protected: /* data */
/// the basic gradle dependency specifier.
@@ -141,7 +141,7 @@ protected: /* data */
public: /* data */
// TODO: make all of these protected, clean up semantics of implicit vs. explicit values.
/// URL where the file can be downloaded
- QUrl m_base_url;
+ QString m_base_url;
/// DEPRECATED: absolute URL. takes precedence the normal download URL, if defined
QString m_absolute_url;