diff options
Diffstat (limited to 'launcher')
54 files changed, 1060 insertions, 51 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp index ace06c2c..f6b41850 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -1583,7 +1583,7 @@ QString Application::getJarPath(QString jarFile) { QStringList potentialPaths = { #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD) - FS::PathCombine(m_rootPath, "share/jars"), + FS::PathCombine(m_rootPath, "share/" + BuildConfig.LAUNCHER_APP_BINARY_NAME), #endif FS::PathCombine(m_rootPath, "jars"), FS::PathCombine(applicationDirPath(), "jars") diff --git a/launcher/GZip.cpp b/launcher/GZip.cpp index 067104cf..e36dc8a4 100644 --- a/launcher/GZip.cpp +++ b/launcher/GZip.cpp @@ -72,7 +72,7 @@ bool GZip::unzip(const QByteArray &compressedBytes, QByteArray &uncompressedByte uncompLength *= 2; } - strm.next_out = (Bytef *)(uncompressedBytes.data() + strm.total_out); + strm.next_out = reinterpret_cast<Bytef *>((uncompressedBytes.data() + strm.total_out)); strm.avail_out = uncompLength - strm.total_out; // Inflate another chunk. @@ -129,7 +129,7 @@ bool GZip::zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes) { compressedBytes.resize(compressedBytes.size() * 2); } - zs.next_out = (Bytef *) (compressedBytes.data() + offset); + zs.next_out = reinterpret_cast<Bytef*>((compressedBytes.data() + offset)); temp = zs.avail_out = compressedBytes.size() - offset; ret = deflate(&zs, Z_FINISH); offset += temp - zs.avail_out; diff --git a/launcher/HoeDown.h b/launcher/HoeDown.h index b9e06ffb..cb62de6c 100644 --- a/launcher/HoeDown.h +++ b/launcher/HoeDown.h @@ -42,7 +42,7 @@ public: } void put(QByteArray input) { - hoedown_buffer_put(buf, (uint8_t *) input.data(), input.size()); + hoedown_buffer_put(buf, reinterpret_cast<uint8_t *>(input.data()), input.size()); } const uint8_t * data() const { diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp index 040fe821..6c0c60cd 100644 --- a/launcher/java/JavaUtils.cpp +++ b/launcher/java/JavaUtils.cpp @@ -379,7 +379,9 @@ QList<QString> JavaUtils::FindJavaPaths() } } - return addJavasFromEnv(candidates); + candidates = addJavasFromEnv(candidates); + candidates.removeDuplicates(); + return candidates; } #elif defined(Q_OS_MAC) @@ -402,7 +404,9 @@ QList<QString> JavaUtils::FindJavaPaths() javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Home/bin/java"); javas.append(systemLibraryJVMDir.absolutePath() + "/" + java + "/Contents/Commands/java"); } - return addJavasFromEnv(javas); + javas = addJavasFromEnv(javas); + javas.removeDuplicates(); + return javas; } #elif defined(Q_OS_LINUX) @@ -448,7 +452,9 @@ QList<QString> JavaUtils::FindJavaPaths() scanJavaDir("/opt/jdks"); // flatpak scanJavaDir("/app/jdk"); - return addJavasFromEnv(javas); + javas = addJavasFromEnv(javas); + javas.removeDuplicates(); + return javas; } #else QList<QString> JavaUtils::FindJavaPaths() diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp index a553eafd..68d75943 100644 --- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp +++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp @@ -736,7 +736,12 @@ void PackInstallTask::downloadMods() QVector<QString> selectedMods; if (!optionalMods.isEmpty()) { setStatus(tr("Selecting optional mods...")); - selectedMods = m_support->chooseOptionalMods(m_version, optionalMods); + auto mods = m_support->chooseOptionalMods(m_version, optionalMods); + if (!mods.has_value()) { + emitAborted(); + return; + } + selectedMods = mods.value(); } setStatus(tr("Downloading mods...")); diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.h b/launcher/modplatform/atlauncher/ATLPackInstallTask.h index ed4436f0..78cd87fb 100644 --- a/launcher/modplatform/atlauncher/ATLPackInstallTask.h +++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.h @@ -62,7 +62,7 @@ public: /** * Requests a user interaction to select which optional mods should be installed. */ - virtual QVector<QString> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0; + virtual std::optional<QVector<QString>> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0; /** * Requests a user interaction to select a component version from a given version list diff --git a/launcher/modplatform/flame/FileResolvingTask.cpp b/launcher/modplatform/flame/FileResolvingTask.cpp index 1e7f5559..c50abb8f 100644 --- a/launcher/modplatform/flame/FileResolvingTask.cpp +++ b/launcher/modplatform/flame/FileResolvingTask.cpp @@ -12,6 +12,8 @@ bool Flame::FileResolvingTask::abort() bool aborted = true; if (m_dljob) aborted &= m_dljob->abort(); + if (m_checkJob) + aborted &= m_checkJob->abort(); return aborted ? Task::abort() : false; } @@ -40,7 +42,7 @@ void Flame::FileResolvingTask::netJobFinished() setProgress(1, 3); int index = 0; // job to check modrinth for blocked projects - auto job = new NetJob("Modrinth check", m_network); + m_checkJob = new NetJob("Modrinth check", m_network); blockedProjects = QMap<File *,QByteArray *>(); auto doc = Json::requireDocument(*result); auto array = Json::requireArray(doc.object()["data"]); @@ -60,15 +62,15 @@ void Flame::FileResolvingTask::netJobFinished() out.resolved = true; }); - job->addNetAction(dl); + m_checkJob->addNetAction(dl); blockedProjects.insert(&out, output); } } index++; } - connect(job, &NetJob::finished, this, &Flame::FileResolvingTask::modrinthCheckFinished); + connect(m_checkJob.get(), &NetJob::finished, this, &Flame::FileResolvingTask::modrinthCheckFinished); - job->start(); + m_checkJob->start(); } void Flame::FileResolvingTask::modrinthCheckFinished() { diff --git a/launcher/modplatform/flame/FileResolvingTask.h b/launcher/modplatform/flame/FileResolvingTask.h index f71b87ce..8fc17ea9 100644 --- a/launcher/modplatform/flame/FileResolvingTask.h +++ b/launcher/modplatform/flame/FileResolvingTask.h @@ -30,8 +30,9 @@ protected slots: private: /* data */ shared_qobject_ptr<QNetworkAccessManager> m_network; Flame::Manifest m_toProcess; - std::shared_ptr<QByteArray> result; + std::shared_ptr<QByteArray> result; NetJob::Ptr m_dljob; + NetJob::Ptr m_checkJob; void modrinthCheckFinished(); diff --git a/launcher/resources/OSX/OSX.qrc b/launcher/resources/OSX/OSX.qrc index 3eca8e19..55be28b5 100644 --- a/launcher/resources/OSX/OSX.qrc +++ b/launcher/resources/OSX/OSX.qrc @@ -34,5 +34,9 @@ <file>scalable/status-yellow.svg</file> <file>scalable/viewfolder.svg</file> <file>scalable/worlds.svg</file> + <file>scalable/delete.svg</file> + <file>scalable/tag.svg</file> + <file>scalable/export.svg</file> + <file>scalable/rename.svg</file> </qresource> </RCC> diff --git a/launcher/resources/OSX/scalable/delete.svg b/launcher/resources/OSX/scalable/delete.svg new file mode 100644 index 00000000..bec8c7d9 --- /dev/null +++ b/launcher/resources/OSX/scalable/delete.svg @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + version="1.1" + id="Calque_1" + x="0px" + y="0px" + viewBox="0 0 32 32" + enable-background="new 0 0 32 32" + xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs13" /> +<rect + fill-rule="evenodd" + clip-rule="evenodd" + fill="none" + width="32" + height="32" + id="rect2" /> +<path + fill="#B6B5B6" + d="M30,28H2c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v18C32,27.1,31.1,28,30,28z" + id="path4" /> +<path + fill="#FBFBFB" + d="M30,27H2c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v17C32,26.1,31.1,27,30,27z" + id="path6" /> + +<g + id="g19002" + transform="matrix(0.61347029,0,0,0.61364877,6.1844752,6.6215364)" + style="stroke-width:1.62983"><g + id="g9250" + transform="matrix(0.97069724,0,0,1.1763237,-0.10468178,-4.8181425)" + style="stroke-width:1.52524"><path + style="color:#000000;fill:#585858;fill-opacity:1;stroke-width:1.52524;stroke-linecap:round;-inkscape-stroke:none" + d="m 6.7324219,10.556641 v 0.820312 15.230469 c 0,1.649975 1.3558838,3.003906 3.0058594,3.003906 H 23.443359 c 1.649976,0 3.00586,-1.353931 3.00586,-3.003906 V 10.556641 Z m 1.6386719,1.638672 H 24.810547 v 14.412109 c 0,0.764319 -0.602868,1.365234 -1.367188,1.365234 H 9.7382813 c -0.7643194,0 -1.3671876,-0.600915 -1.3671875,-1.365234 z" + id="rect2395" /><path + id="path8117" + style="fill:none;stroke:#585858;stroke-width:2.28785;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" + d="m 13.353409,15.259086 v 9.466797 z m 6.474609,0.183594 v 9.466797 z" /></g><path + style="fill:none;fill-opacity:1;stroke:#585858;stroke-width:2.44476;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="M 3.0114815,4.6293617 H 28.988519" + id="path9281" /><path + style="fill:none;stroke:#585858;stroke-width:2.44476;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 10.431403,3.4038387 H 21.568596" + id="path9283" /></g></svg> diff --git a/launcher/resources/OSX/scalable/export.svg b/launcher/resources/OSX/scalable/export.svg new file mode 100644 index 00000000..62145a7e --- /dev/null +++ b/launcher/resources/OSX/scalable/export.svg @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + version="1.1" + id="Calque_1" + x="0px" + y="0px" + viewBox="0 0 32 32" + enable-background="new 0 0 32 32" + xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs7209" /> +<rect + fill-rule="evenodd" + clip-rule="evenodd" + fill="none" + width="32" + height="32" + id="rect7195" /> +<path + fill="#B6B5B6" + d="M30,28.4H2c-1.1,0-2-0.9-2-2v-18c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v18C32,27.5,31.1,28.4,30,28.4z" + id="path7197" /> +<path + fill="#FBFBFB" + d="M30,27.4H2c-1.1,0-2-0.9-2-2v-17c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v17C32,26.5,31.1,27.4,30,27.4z" + id="path7199" /> +<g + id="_x36__6_"> + <g + id="g7203"> + <path + fill="#585858" + d="M22,11.4h-7c0-1.1-0.9-2-2-2h-3c-1.1,0-2,0.9-2,2v12c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-10 C24,12.3,23.1,11.4,22,11.4z M23,23.4c0,0.6-0.4,1-1,1H10c-0.6,0-1-0.4-1-1v-8h14V23.4z M23,14.4H9v-3c0-0.6,0.4-1,1-1h3 c0.6,0,1,0.4,1,1v1h8c0.6,0,1,0.4,1,1V14.4z" + id="path7201" /> + </g> +</g> +<g + id="g7346" + transform="matrix(0.60195183,0,0,0.60195183,6.3687707,6.8734131)" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"><g + id="_x36__4_" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"> + <g + id="g849" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"> + + </g> +</g><g + id="g1052" + transform="rotate(-90,15.237227,22.237227)" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"><g + id="_x37__7_" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"> + <g + id="g1038" + style="fill:#585858;fill-opacity:1;stroke-width:1.66127"> + <path + d="m 21.7,25.4 c -0.4,-0.4 -1,-0.4 -1.4,0 L 17,28.7 V 15 c 0,-0.6 -0.4,-1 -1,-1 -0.6,0 -1,0.4 -1,1 v 13.6 l -3.3,-3.2 c -0.4,-0.4 -1,-0.4 -1.4,0 -0.4,0.4 -0.4,1 0,1.4 l 4.9,4.9 c 0.2,0.2 0.5,0.3 0.8,0.3 0.3,0 0.6,-0.1 0.8,-0.3 l 4.9,-4.9 c 0.4,-0.4 0.4,-1 0,-1.4 z" + id="path1036" + style="fill:#585858;fill-opacity:1;stroke-width:2.62304" /> + </g> +</g></g></g></svg> diff --git a/launcher/resources/OSX/scalable/rename.svg b/launcher/resources/OSX/scalable/rename.svg new file mode 100644 index 00000000..83ae5cb5 --- /dev/null +++ b/launcher/resources/OSX/scalable/rename.svg @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + id="Calque_1" + x="0px" + y="0px" + viewBox="0 0 24 24" + enable-background="new 0 0 24 24" + xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs11868" /> +<rect + fill="none" + width="24" + height="24" + id="rect11854" /> +<g + id="g15058" + transform="matrix(1.2018036,0,0,1.2018036,9.1890033,-5.9659463)" + style="stroke-width:0.832083"><path + style="fill:#cccccc;fill-opacity:1;stroke:#585858;stroke-width:0.832083;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + d="m -4.635309,18.83508 -1.6867847,4.775149 4.7751492,-1.686784 z" + id="path14640" /><path + style="fill:#f2f2f2;fill-opacity:1;stroke:#585858;stroke-width:0.832083;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + d="M 7.6468491,6.2880897 -3.1410372,17.075975 0.21216023,20.429172 11.000046,9.6412872 Z" + id="rect291" /></g></svg> diff --git a/launcher/resources/OSX/scalable/tag.svg b/launcher/resources/OSX/scalable/tag.svg new file mode 100644 index 00000000..56438e3b --- /dev/null +++ b/launcher/resources/OSX/scalable/tag.svg @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + version="1.1" + id="Calque_1" + x="0px" + y="0px" + viewBox="0 0 32 32" + enable-background="new 0 0 32 32" + xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs13" /> +<rect + fill-rule="evenodd" + clip-rule="evenodd" + fill="none" + width="32" + height="32" + id="rect2" /> +<path + fill="#B6B5B6" + d="M30,28H2c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v18C32,27.1,31.1,28,30,28z" + id="path4" /> +<path + fill="#FBFBFB" + d="M30,27H2c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v17C32,26.1,31.1,27,30,27z" + id="path6" /> + +<path + style="fill:none;fill-opacity:1;stroke:#585858;stroke-width:1;stroke-dasharray:none;stroke-opacity:1" + d="m 15.90395,8.3243241 -8.037878,0.04174 -0.04175,8.0378789 8.752925,8.079624 7.406322,-7.406322 z m -3.366509,2.6932089 c 1.114988,0 2.019906,0.904918 2.019906,2.019906 0,1.114988 -0.904918,2.019906 -2.019906,2.019906 -1.114988,0 -2.019906,-0.904918 -2.019906,-2.019906 0,-1.114988 0.904918,-2.019906 2.019906,-2.019906" + class="ColorScheme-Text" + id="path4838" /></svg> diff --git a/launcher/resources/flat/flat.qrc b/launcher/resources/flat/flat.qrc index d2b752b1..7f59da7b 100644 --- a/launcher/resources/flat/flat.qrc +++ b/launcher/resources/flat/flat.qrc @@ -42,5 +42,9 @@ <file>scalable/status-yellow.svg</file> <file>scalable/viewfolder.svg</file> <file>scalable/worlds.svg</file> + <file>scalable/delete.svg</file> + <file>scalable/tag.svg</file> + <file>scalable/export.svg</file> + <file>scalable/rename.svg</file> </qresource> </RCC> diff --git a/launcher/resources/flat/scalable/delete.svg b/launcher/resources/flat/scalable/delete.svg new file mode 100644 index 00000000..89a0948b --- /dev/null +++ b/launcher/resources/flat/scalable/delete.svg @@ -0,0 +1 @@ +<svg fill="#757575" xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M13.05 42q-1.2 0-2.1-.9-.9-.9-.9-2.1V10.5H8v-3h9.4V6h13.2v1.5H40v3h-2.05V39q0 1.2-.9 2.1-.9.9-2.1.9Zm5.3-7.3h3V14.75h-3Zm8.3 0h3V14.75h-3Z"/></svg> diff --git a/launcher/resources/flat/scalable/export.svg b/launcher/resources/flat/scalable/export.svg new file mode 100644 index 00000000..a3b711a2 --- /dev/null +++ b/launcher/resources/flat/scalable/export.svg @@ -0,0 +1 @@ +<svg fill="#757575" xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M24.65 33.35 32 26l-7.35-7.35-2.1 2.1 3.75 3.75H16v3h10.3l-3.75 3.75ZM7.05 40q-1.2 0-2.1-.925-.9-.925-.9-2.075V11q0-1.15.9-2.075Q5.85 8 7.05 8h14l3 3h17q1.15 0 2.075.925.925.925.925 2.075v23q0 1.15-.925 2.075Q42.2 40 41.05 40Z"/></svg> diff --git a/launcher/resources/flat/scalable/rename.svg b/launcher/resources/flat/scalable/rename.svg new file mode 100644 index 00000000..d0b56723 --- /dev/null +++ b/launcher/resources/flat/scalable/rename.svg @@ -0,0 +1 @@ +<svg fill="#757575" xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="m39.7 14.7-6.4-6.4 2.1-2.1q.85-.85 2.125-.825 1.275.025 2.125.875L41.8 8.4q.85.85.85 2.1t-.85 2.1Zm-2.1 2.1L12.4 42H6v-6.4l25.2-25.2Z"/></svg> diff --git a/launcher/resources/flat/scalable/tag.svg b/launcher/resources/flat/scalable/tag.svg new file mode 100644 index 00000000..0629b185 --- /dev/null +++ b/launcher/resources/flat/scalable/tag.svg @@ -0,0 +1 @@ +<svg fill="#757575" xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M27.95 43.15q-.9.9-2.175.9t-2.175-.9L4.85 24.4q-.5-.5-.675-1.05Q4 22.8 4 22.2V7q0-1.3.85-2.15Q5.7 4 7 4h15.2q.6 0 1.2.175t1.1.675L43.15 23.5q.95.95.95 2.225 0 1.275-.95 2.225ZM12.25 14.8q1.05 0 1.825-.775.775-.775.775-1.825 0-1.05-.775-1.825Q13.3 9.6 12.25 9.6q-1.05 0-1.825.775-.775.775-.775 1.825 0 1.05.775 1.825.775.775 1.825.775Z"/></svg> diff --git a/launcher/resources/iOS/iOS.qrc b/launcher/resources/iOS/iOS.qrc index f05cd67c..1d752042 100644 --- a/launcher/resources/iOS/iOS.qrc +++ b/launcher/resources/iOS/iOS.qrc @@ -34,5 +34,9 @@ <file>scalable/status-yellow.svg</file> <file>scalable/viewfolder.svg</file> <file>scalable/worlds.svg</file> + <file>scalable/delete.svg</file> + <file>scalable/tag.svg</file> + <file>scalable/export.svg</file> + <file>scalable/rename.svg</file> </qresource> </RCC> diff --git a/launcher/resources/iOS/scalable/delete.svg b/launcher/resources/iOS/scalable/delete.svg new file mode 100644 index 00000000..a542fa4f --- /dev/null +++ b/launcher/resources/iOS/scalable/delete.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + version="1.1" + id="Calque_1" + x="0px" + y="0px" + viewBox="0 0 32 32" + enable-background="new 0 0 32 32" + xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs855" /> +<g + id="g19002" + transform="matrix(1.142151,0,0,1.1420676,-2. |
