aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleo78913 <leo3758@riseup.net>2022-10-28 15:46:02 -0300
committerGitHub <noreply@github.com>2022-10-28 15:46:02 -0300
commit4500e345b37f007f9e6311637db9df0351a57dfb (patch)
treec523d60512749da628e822b579b47dda898782bc
parent43bf601f120c9b1eac1c73feb31c67df54955b6d (diff)
parente885f3c26a030d093e2c7e60770c069e4d958cff (diff)
downloadPrismLauncher-4500e345b37f007f9e6311637db9df0351a57dfb.tar.gz
PrismLauncher-4500e345b37f007f9e6311637db9df0351a57dfb.tar.bz2
PrismLauncher-4500e345b37f007f9e6311637db9df0351a57dfb.zip
Merge branch 'PrismLauncher:develop' into toolbar-icons
-rw-r--r--.github/workflows/build.yml12
-rw-r--r--CMakeLists.txt6
-rw-r--r--README.md44
-rw-r--r--launcher/Application.cpp14
-rw-r--r--launcher/Application.h1
-rw-r--r--launcher/CMakeLists.txt1
-rw-r--r--launcher/FileSystem.cpp1
-rw-r--r--launcher/GZip.cpp4
-rw-r--r--launcher/HoeDown.h2
-rw-r--r--launcher/main.cpp1
-rw-r--r--launcher/modplatform/helpers/NetworkModAPI.cpp1
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackIndex.cpp55
-rw-r--r--launcher/resources/flat_white/flat_white.qrc50
-rw-r--r--launcher/resources/flat_white/index.theme11
-rw-r--r--launcher/resources/flat_white/scalable/about.svg3
-rw-r--r--launcher/resources/flat_white/scalable/accounts.svg3
-rw-r--r--launcher/resources/flat_white/scalable/bug.svg3
-rw-r--r--launcher/resources/flat_white/scalable/cat.svg3
-rw-r--r--launcher/resources/flat_white/scalable/centralmods.svg3
-rw-r--r--launcher/resources/flat_white/scalable/checkupdate.svg3
-rw-r--r--launcher/resources/flat_white/scalable/copy.svg3
-rw-r--r--launcher/resources/flat_white/scalable/coremods.svg3
-rw-r--r--launcher/resources/flat_white/scalable/custom-commands.svg86
-rw-r--r--launcher/resources/flat_white/scalable/delete.svg5
-rw-r--r--launcher/resources/flat_white/scalable/discord.svg4
-rw-r--r--launcher/resources/flat_white/scalable/export.svg5
-rw-r--r--launcher/resources/flat_white/scalable/externaltools.svg3
-rw-r--r--launcher/resources/flat_white/scalable/help.svg17
-rw-r--r--launcher/resources/flat_white/scalable/instance-settings.svg3
-rw-r--r--launcher/resources/flat_white/scalable/jarmods.svg3
-rw-r--r--launcher/resources/flat_white/scalable/java.svg3
-rw-r--r--launcher/resources/flat_white/scalable/language.svg103
-rw-r--r--launcher/resources/flat_white/scalable/launcher.svg2
-rw-r--r--launcher/resources/flat_white/scalable/loadermods.svg3
-rw-r--r--launcher/resources/flat_white/scalable/log.svg3
-rw-r--r--launcher/resources/flat_white/scalable/minecraft.svg3
-rw-r--r--launcher/resources/flat_white/scalable/multimc.svg3
-rw-r--r--launcher/resources/flat_white/scalable/new.svg3
-rw-r--r--launcher/resources/flat_white/scalable/news.svg3
-rw-r--r--launcher/resources/flat_white/scalable/notes.svg3
-rw-r--r--launcher/resources/flat_white/scalable/packages.svg3
-rw-r--r--launcher/resources/flat_white/scalable/patreon.svg3
-rw-r--r--launcher/resources/flat_white/scalable/proxy.svg3
-rw-r--r--launcher/resources/flat_white/scalable/quickmods.svg3
-rw-r--r--launcher/resources/flat_white/scalable/reddit-alien.svg3
-rw-r--r--launcher/resources/flat_white/scalable/refresh.svg3
-rw-r--r--launcher/resources/flat_white/scalable/rename.svg4
-rw-r--r--launcher/resources/flat_white/scalable/resourcepacks.svg3
-rw-r--r--launcher/resources/flat_white/scalable/screenshot-placeholder.svg3
-rw-r--r--launcher/resources/flat_white/scalable/screenshots.svg3
-rw-r--r--launcher/resources/flat_white/scalable/settings.svg3
-rw-r--r--launcher/resources/flat_white/scalable/shaderpacks.svg56
-rw-r--r--launcher/resources/flat_white/scalable/star.svg3
-rw-r--r--launcher/resources/flat_white/scalable/status-bad.svg3
-rw-r--r--launcher/resources/flat_white/scalable/status-good.svg3
-rw-r--r--launcher/resources/flat_white/scalable/status-running.svg3
-rw-r--r--launcher/resources/flat_white/scalable/status-yellow.svg3
-rw-r--r--launcher/resources/flat_white/scalable/tag.svg4
-rw-r--r--launcher/resources/flat_white/scalable/viewfolder.svg3
-rw-r--r--launcher/resources/flat_white/scalable/worlds.svg3
-rw-r--r--launcher/tasks/Task.cpp2
-rw-r--r--launcher/ui/dialogs/ModUpdateDialog.cpp15
-rw-r--r--launcher/ui/pages/global/LauncherPage.cpp13
-rw-r--r--launcher/ui/pages/global/LauncherPage.ui5
-rw-r--r--launcher/ui/pages/modplatform/ModModel.cpp25
-rw-r--r--launcher/ui/pages/modplatform/ModModel.h1
-rw-r--r--launcher/ui/themes/DarkTheme.cpp2
-rw-r--r--libraries/LocalPeer/src/LocalPeer.cpp2
-rw-r--r--libraries/katabasis/src/DeviceFlow.cpp2
-rw-r--r--libraries/murmur2/src/MurmurHash2.cpp6
-rw-r--r--program_info/CMakeLists.txt1
-rw-r--r--program_info/prismlauncher.6.scd3
-rw-r--r--program_info/prismlauncher.manifest.in2
-rw-r--r--program_info/win_install.nsi.in4
74 files changed, 593 insertions, 87 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b6400791..dd2c0599 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -30,12 +30,12 @@ jobs:
- os: windows-2022
name: "Windows-Legacy"
- msystem: mingw32
+ msystem: clang32
qt_ver: 5
- os: windows-2022
name: "Windows"
- msystem: mingw32
+ msystem: clang64
qt_ver: 6
- os: macos-12
@@ -89,6 +89,7 @@ jobs:
update: true
install: >-
git
+ mingw-w64-x86_64-binutils
pacboy: >-
toolchain:p
cmake:p
@@ -99,7 +100,6 @@ jobs:
qt${{ matrix.qt_ver }}-imageformats:p
quazip-qt${{ matrix.qt_ver }}:p
ccache:p
- nsis:p
${{ matrix.qt_ver == 6 && 'qt6-5compat:p' || '' }}
- name: Setup ccache
@@ -194,7 +194,7 @@ jobs:
if: runner.os == 'Windows'
shell: msys2 {0}
run: |
- cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=${{ matrix.name }} -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -G Ninja
+ cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=${{ matrix.name }} -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DCMAKE_OBJDUMP=/mingw64/bin/objdump.exe -G Ninja
- name: Configure CMake (Linux)
if: runner.os == 'Linux'
@@ -251,6 +251,7 @@ jobs:
cd ${{ env.INSTALL_DIR }}
chmod +x "PrismLauncher.app/Contents/MacOS/prismlauncher"
sudo codesign --sign - --deep --force --entitlements "../program_info/App.entitlements" --options runtime "PrismLauncher.app/Contents/MacOS/prismlauncher"
+ mv "PrismLauncher.app" "Prism Launcher.app"
tar -czf ../PrismLauncher.tar.gz *
- name: Make Sparkle signature (macOS)
@@ -280,7 +281,7 @@ jobs:
cd ${{ env.INSTALL_DIR }}
if [ "${{ matrix.qt_ver }}" == "5" ]; then
- cp /mingw32/bin/libcrypto-1_1.dll /mingw32/bin/libssl-1_1.dll ./
+ cp /clang32/bin/libcrypto-1_1.dll /clang32/bin/libssl-1_1.dll ./
fi
- name: Package (Windows, portable)
@@ -292,7 +293,6 @@ jobs:
- name: Package (Windows, installer)
if: runner.os == 'Windows'
- shell: msys2 {0}
run: |
cd ${{ env.INSTALL_DIR }}
makensis -NOCD "${{ github.workspace }}/${{ env.BUILD_DIR }}/program_info/win_install.nsi"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 97bad31b..94af61f3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -222,14 +222,14 @@ if(UNIX AND APPLE)
set(APPS "\${CMAKE_INSTALL_PREFIX}/${Launcher_Name}.app")
# Mac bundle settings
- set(MACOSX_BUNDLE_BUNDLE_NAME "${Launcher_Name}")
- set(MACOSX_BUNDLE_INFO_STRING "${Launcher_Name}: A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once.")
+ set(MACOSX_BUNDLE_BUNDLE_NAME "${Launcher_DisplayName}")
+ set(MACOSX_BUNDLE_INFO_STRING "${Launcher_DisplayName}: A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once.")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.prismlauncher.${Launcher_Name}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${Launcher_VERSION_NAME}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${Launcher_VERSION_NAME}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${Launcher_VERSION_NAME}")
set(MACOSX_BUNDLE_ICON_FILE ${Launcher_Name}.icns)
- set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2021-2022 ${Launcher_Copyright}")
+ set(MACOSX_BUNDLE_COPYRIGHT "© 2022 ${Launcher_Copyright_Mac}")
set(MACOSX_SPARKLE_UPDATE_PUBLIC_KEY "v55ZWWD6QlPoXGV6VLzOTZxZUggWeE51X8cRQyQh6vA=")
set(MACOSX_SPARKLE_UPDATE_FEED_URL "https://prismlauncher.org/feed/appcast.xml")
diff --git a/README.md b/README.md
index d7df8e26..db0e2c62 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,14 @@
-<p align="center">
+<p align="left">
<img src="./program_info/org.prismlauncher.PrismLauncher.logo.svg#gh-light-mode-only" alt="Prism Launcher logo" width="50%"/>
<img src="./program_info/org.prismlauncher.PrismLauncher.logo-darkmode.svg#gh-dark-mode-only" alt="Prism Launcher logo" width="50%"/>
</p>
+
Prism Launcher is a custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once.
This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC.
+
## Installation
- All downloads and instructions for Prism Launcher can be found [on our website](https://prismlauncher.org/download/).
@@ -16,25 +18,24 @@ This is a **fork** of the MultiMC Launcher and not endorsed by MultiMC.
There are development builds available [here](https://github.com/PrismLauncher/PrismLauncher/actions). These have debug information in the binaries, so their file sizes are relatively larger.
-Portable builds are provided for on Linux, Windows, and macOS.
+Portable builds are provided for Linux, Windows, and macOS.
-For Debian and Arch, you can use these packages for the latest development versions:
-[![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--git-blue)](https://aur.archlinux.org/packages/prismlauncher-git/)
-[![prismlauncher-git](https://img.shields.io/badge/mpr-prismlauncher--git-orange)](https://mpr.makedeb.org/packages/prismlauncher-git)
-## Help & Support
+For Arch, Debian and Gentoo, respectively, you can use these packages to get compiled development versions:
-Feel free to create an issue if you need help. However, you might find it easier to ask in the Discord server.
+[![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--git-blue?style=flat-square)](https://aur.archlinux.org/packages/prismlauncher-qt5-git/) [![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--qt5--git-blue?style=flat-square)](https://aur.archlinux.org/packages/prismlauncher-git/) [![prismlauncher-git](https://img.shields.io/badge/mpr-prismlauncher--git-orange?style=flat-square)](https://mpr.makedeb.org/packages/prismlauncher-git) [![prismlauncher-9999](https://img.shields.io/badge/gentoo-prismlauncher--9999-purple?style=flat-square)](https://packages.gentoo.org/packages/games-action/prismlauncher)
-[![Prism Launcher Discord server](https://discordapp.com/api/guilds/1031648380885147709/widget.png?style=banner3)](https://discord.gg/prismlauncher)
+## Help & Support
-We will also soon be opening up our Matrix channels.
-You can already join our Matrix space:
+Feel free to create an issue if you need help.
-[![PrismLauncher Space](https://img.shields.io/matrix/prismlauncher:matrix.org?label=PrismLauncher%20space)](https://matrix.to/#/#prismlauncher:matrix.org)
+#### Join our Discord server:
+[![Prism Launcher Discord server](https://discordapp.com/api/guilds/1031648380885147709/widget.png?style=banner3)](https://discord.gg/prismlauncher)
-We also have a subreddit you can post your issues and suggestions on:
+#### Join our Matrix space:
+[![PrismLauncher Space](https://img.shields.io/matrix/prismlauncher:matrix.org?style=for-the-badge)](https://matrix.to/#/#prismlauncher:matrix.org)
-[r/PrismLauncher](https://www.reddit.com/r/PrismLauncher/)
+#### Join our SubReddit:
+[![r/PrismLauncher](https://img.shields.io/reddit/subreddit-subscribers/prismlauncher?style=for-the-badge)](https://www.reddit.com/r/PrismLauncher/)
## Building
@@ -60,13 +61,11 @@ Be aware that if you build this software without removing the provided API keys
If you do not agree with these terms and conditions, then remove the associated API keys from the [CMakeLists.txt](CMakeLists.txt) file by setting them to an empty string (`""`).
-## License
+## Sponsors & Partners
-All launcher code is available under the GPL-3.0-only license.
-
-The logo and related assets are under the CC BY-SA 4.0 license.
+We thank all the wonderful backers over at Open Collective! Support Prism Launcher by [becoming a backer](https://opencollective.com/prismlauncher).
-## Sponsors
+[![OpenCollective Backers](https://opencollective.com/prismlauncher/backers.svg?width=890&limit=1000)](https://opencollective.com/prismlauncher#backers)
Thanks to JetBrains for providing us a few licenses for all their products, as part of their [Open Source program](https://www.jetbrains.com/opensource/).
@@ -85,3 +84,12 @@ Thanks to Netlify for providing us their excellent web services, as part of thei
Thanks to the awesome people over at [MacStadium](https://www.macstadium.com/), for providing M1-Macs for development purposes!
<a href="https://www.macstadium.com"><img src="https://uploads-ssl.webflow.com/5ac3c046c82724970fc60918/5c019d917bba312af7553b49_MacStadium-developerlogo.png" alt="Powered by MacStadium" width="300"></a>
+
+
+## License
+
+All launcher code is available under the GPL-3.0-only license.
+
+![https://github.com/PrismLauncher/PrismLauncher/blob/develop/LICENSE](https://img.shields.io/github/license/PrismLauncher/PrismLauncher?style=for-the-badge)
+
+The logo and related assets are under the CC BY-SA 4.0 license.
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 97f757f7..f6b41850 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -245,7 +245,8 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
{{"s", "server"}, "Join the specified server on launch (only valid in combination with --launch)", "address"},
{{"a", "profile"}, "Use the account specified by its profile name (only valid in combination with --launch)", "profile"},
{"alive", "Write a small '" + liveCheckFile + "' file after the launcher starts"},
- {{"I", "import"}, "Import instance from specified zip (local path or URL)", "file"}
+ {{"I", "import"}, "Import instance from specified zip (local path or URL)", "file"},
+ {"show", "Opens the window for the specified instance (by instance ID)", "show"}
});
parser.addHelpOption();
parser.addVersionOption();
@@ -257,6 +258,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_profileToUse = parser.value("profile");
m_liveCheck = parser.isSet("alive");
m_zipToImport = parser.value("import");
+ m_instanceIdToShowWindowOf = parser.value("show");
// error if --launch is missing with --server or --profile
if((!m_serverToJoin.isEmpty() || !m_profileToUse.isEmpty()) && m_instanceIdToLaunch.isEmpty())
@@ -986,6 +988,16 @@ void Application::performMainStartupAction()
return;
}
}
+ if(!m_instanceIdToShowWindowOf.isEmpty())
+ {
+ auto inst = instances()->getInstanceById(m_instanceIdToShowWindowOf);
+ if(inst)
+ {
+ qDebug() << "<> Showing window of instance " << m_instanceIdToShowWindowOf;
+ showInstanceWindow(inst);
+ return;
+ }
+ }
if(!m_mainWindow)
{
// normal main window
diff --git a/launcher/Application.h b/launcher/Application.h
index 34ad8c15..c453cc28 100644
--- a/launcher/Application.h
+++ b/launcher/Application.h
@@ -301,6 +301,7 @@ public:
QString m_profileToUse;
bool m_liveCheck = false;
QUrl m_zipToImport;
+ QString m_instanceIdToShowWindowOf;
std::unique_ptr<QFile> logFile;
};
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 79ac49c7..0dae47df 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -602,6 +602,7 @@ SET(LAUNCHER_SOURCES
resources/OSX/OSX.qrc
resources/iOS/iOS.qrc
resources/flat/flat.qrc
+ resources/flat_white/flat_white.qrc
resources/documents/documents.qrc
../${Launcher_Branding_LogoQRC}
diff --git a/launcher/FileSystem.cpp b/launcher/FileSystem.cpp
index 39e68c20..76cfccb0 100644
--- a/launcher/FileSystem.cpp
+++ b/launcher/FileSystem.cpp
@@ -401,6 +401,7 @@ bool overrideFolder(QString overwritten_path, QString override_path)
std::error_code err;
fs::copy_options opt = copy_opts::recursive | copy_opts::overwrite_existing;
+ // FIXME: hello traveller! Apparently std::copy does NOT overwrite existing files on GNU libstdc++ on Windows?
fs::copy(toStdString(override_path), toStdString(overwritten_path), opt, err);
if (err) {
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/main.cpp b/launcher/main.cpp
index c6a7614c..e2116f38 100644
--- a/launcher/main.cpp
+++ b/launcher/main.cpp
@@ -84,6 +84,7 @@ int main(int argc, char *argv[])
Q_INIT_RESOURCE(OSX);
Q_INIT_RESOURCE(iOS);
Q_INIT_RESOURCE(flat);
+ Q_INIT_RESOURCE(flat_white);
return app.exec();
}
case Application::Failed:
diff --git a/launcher/modplatform/helpers/NetworkModAPI.cpp b/launcher/modplatform/helpers/NetworkModAPI.cpp
index 866e7540..7633030e 100644
--- a/launcher/modplatform/helpers/NetworkModAPI.cpp
+++ b/launcher/modplatform/helpers/NetworkModAPI.cpp
@@ -15,6 +15,7 @@ void NetworkModAPI::searchMods(CallerType* caller, SearchArgs&& args) const
QObject::connect(netJob, &NetJob::started, caller, [caller, netJob] { caller->setActiveJob(netJob); });
QObject::connect(netJob, &NetJob::failed, caller, &CallerType::searchRequestFailed);
+ QObject::connect(netJob, &NetJob::aborted, caller, &CallerType::searchRequestAborted);
QObject::connect(netJob, &NetJob::succeeded, caller, [caller, response] {
QJsonParseError parse_error{};
QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
index 3e53becb..ae45e096 100644
--- a/launcher/modplat