Commit Graph

238 Commits

Author SHA1 Message Date
Sefa Eyeoglu
f3f628410d
Merge pull request #576 from Ryex/identify-zip-packs
fix https://github.com/PrismLauncher/PrismLauncher/issues/349
2023-01-07 17:33:34 +01:00
Rachel Powers
7f438425aa refactor: add an identify function to make easy to reuse
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-29 19:47:19 -07:00
Sefa Eyeoglu
7a651bdc53
feat: install launcher logging categories
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-27 18:10:01 +01:00
Sefa Eyeoglu
f33f596584
refactor: use ECM logging categories instead
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-27 17:34:21 +01:00
Sefa Eyeoglu
c8d8046412
refactor: add logging category for credentials
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-27 17:04:42 +01:00
Rachel Powers
a7c9b2f172 feat: validate world saves
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07:00
Rachel Powers
64c51a70a3 feat: add initial support for parseing datapacks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 09:42:02 -07:00
DioEgizio
6e07c11f65 fix: exclude unused tls backends
makes bundles slightly smaller on windows and macos:

- qopensslbackend will not be used neither on macos nor on qt6 windows, so let's just not copy it
- qcertonlybackend won't be used and wouldn't work for prism anyways as it doesn't support some features we use

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-12-18 11:03:48 +01:00
Sefa Eyeoglu
849b92665e
Merge branch 'develop' into remove-updater 2022-12-14 23:22:27 +01:00
Sefa Eyeoglu
7cc42269a9
Merge pull request #569 from Jan200101/PR/fix-mangohud 2022-12-11 18:31:05 +01:00
flow
5622bcc563
Merge pull request #461 from flowln/fix_big_resource_pack_imgs
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/360
2022-12-11 04:16:21 -08:00
Jan200101
2c1e887c8d
chore: replace naive mangohud detection with vulkan layer detection
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2022-12-11 11:01:33 +01:00
flow
0ff8891c66
feat: add ManagedPackPage to the instance pages
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:32 -03:00
Ryan Cao
f916ce8752
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import-resource-pack-dialog-uwu 2022-11-21 23:19:50 +08:00
Sefa Eyeoglu
fdbd8d9d2b
refactor: remove old updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-21 16:18:05 +01:00
DioEgizio
5cc91965d0
Merge pull request #487 from TayouVR/breeze-icon-themes 2022-11-21 14:43:58 +01:00
Tayou
bb7a321c6e
add breeze themes
Signed-off-by: Tayou <tayou@gmx.net>
2022-11-20 05:24:10 +01:00
Ryan Cao
8dacbafc8b
feat: initial support for smart resource pack parsing on file handler
Signed-off-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
2022-11-19 23:14:57 +08:00
flow
c4c1e75de8
fix: use QPixmapCache only from the main thread
It's a required condition.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-15 18:14:03 -03:00
Sefa Eyeoglu
086304f7f2
feat: add initial Migration dialog
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-12 20:28:30 +01:00
Sefa Eyeoglu
bd7065eece
feat: add SimplePrefixMatcher
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-12 20:28:30 +01:00
Sefa Eyeoglu
392452d422
Merge pull request #397 from flowln/windows_mod_updater_fixes_maybe
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/226
2022-11-10 14:34:15 +01:00
TheLastRar
456999eee6 Fix: Configuration-less config for Qt Install
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-06 14:25:38 +00:00
Sefa Eyeoglu
9fb80a2687
Merge pull request #242 from marcelohdez/more-copy-options 2022-11-06 01:10:24 +01:00
Sefa Eyeoglu
e4bd82190a
Merge pull request #149 from TayouVR/better-custom-themes 2022-11-05 11:16:41 +01:00
flow
353b51f11e
refactor: move MMCStrings -> StringUtils
General utilities can go in here >:)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-04 16:53:24 -03:00
TheLastRar
f8ad1a052f CMake: Support multi-configuration generators
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-04 18:11:38 +00:00
TheLastRar
653a953d2f CMake: Add zlib
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-04 18:11:35 +00:00
TheLastRar
e682c3e9b8 Fix: Correct exclusions for debug QT plugins
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-11-03 21:35:28 +00:00
Tayou
fef60a9da0
add support for multiple custom themes
also moved theme related code from Application.cpp to new ui/themes/ThemeManager.cpp, this class should cleanly isolate theme related functions and help avoid code duplication in future theme related additions.
Themes can now be just qss or css files, they won't have color pallette information with them in that case

Signed-off-by: Tayou <tayou@gmx.net>
2022-11-01 20:10:12 +01:00
Marcelo Hernandez
15593b5c09
Add "Select all" checkbox + ui revamp + code cleanup
Signed-off-by: Marcelo Hernandez <marcelohdez.inq@gmail.com>
2022-10-23 19:30:41 -04:00
Marcelo Hernandez
e7e56eb1e3
add more options to copy instance dialog
- Copy game options, copy resource packs, copy shaders,
copy servers, and copy mods
- Also made a new InstanceCopyPrefs struct to store those
options rather than passing 7 different booleans into
InstanceCopyTask's constructor

Signed-off-by: Marcelo Hernandez <marcelohdez.inq@gmail.com>
2022-10-23 19:30:28 -04:00
he3als
99e1c13e80 fix: add flat_white to code 2022-10-22 15:50:06 +01:00
Sefa Eyeoglu
4e08f28246
Merge pull request #31 from flowln/who_needs_webview 2022-10-19 14:28:29 +02:00
DioEgizio
87d35f0d16 fix: remove some unused libs
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-10-15 20:16:15 +02:00
Sefa Eyeoglu
303628bb05
refactor: support system ghc-filesystem
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-15 13:13:38 +02:00
flow
c520faed6d feat: add gulrak/filesystem submodule
... for old macs that don't have std::filesystem in their stdlib.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-14 14:08:42 +02:00
Sefa Eyeoglu
fafc9cf9ca
Merge pull request #1033 from Scrumplex/multi-arch-support 2022-10-08 20:12:40 +02:00
flow
ea3be17220
feat: add widget for a text browser with image support
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-08 14:11:20 -03:00
Sefa Eyeoglu
0dca9cb6b8
Merge pull request #1162 from Trial97/feature/Replace-toml-library 2022-09-30 19:44:45 +02:00
Trial97
600c49f7f0
Replaced tomlc99 with tomlplusplus
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2022-09-24 00:10:27 +03:00
flow
7024acac06
feat: add override helper functions
These help us keep track of relevant metadata information about
overrides, so that we know what they are when we update a pack.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:08 -03:00
flow
72d2ca234e
refactor: move flame modpack import to separate file
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:36:07 -03:00
flow
4441b37338
refactor: move modrinth modpack import to separate file
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:32:36 -03:00
flow
941d75824a
refactor: add instance creation abstraction and move vanilla
This is so that 1. Code is more cleanly separated, and 2. Allows to more
easily add instance updating :)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20 18:32:36 -03:00
Sefa Eyeoglu
09e85e948c
refactor: introduce RuntimeContext
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 15:59:43 +02:00
Sefa Eyeoglu
07dcefabcb
feat: add texture pack parsing
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
Sefa Eyeoglu
1ca2be0039
Merge pull request #982 from DavidoTek/windarkmode2 2022-09-14 13:17:17 +02:00
Sefa Eyeoglu
4c7d3a103c
refactor: restructure tests
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-11 22:29:01 +02:00
flow
333dbca01e
Merge pull request #1105 from flowln/better_resource_packs
Add basic resource pack parsing and fix issues
2022-09-07 08:30:36 -03:00
flow
1b0ca47682
Merge pull request #939 from flowln/mod_downloader_improve
Some more UI / UX improvements to the mod downloader!
2022-09-07 08:27:11 -03:00
flow
0331f5a1eb
feat(tests): add tests for resource pack parsing
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:22 -03:00
flow
f21ae66265
feat: add basic resource pack parsing of pack.mcmeta
This parses the pack format ID and the description from the local file,
from both a ZIP and a folder, and hooks it into the model.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:21 -03:00
flow
050768c266
feat: add more resource pack info
Adds pack format id and description to ResourcePack, that'll be parsed
from pack.mcmeta.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:21 -03:00
Sefa Eyeoglu
f371ec210c
Merge pull request #1052 from flowln/resource_model 2022-08-28 16:52:53 +02:00
Sefa Eyeoglu
afcd669d2f
Merge pull request #965 from flowln/fat_files_in_memory
Refactor a bit EnsureMetadataTask and calculate hashes in a incremental manner
2022-08-28 11:03:12 +02:00
flow
e7cf9932a9
refactor: simplify Mod structure
No need to keep track of pointers left and right. A single one already
gives enough headaches!

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:48:51 -03:00
flow
97a74d5c1f
refactor: adapt rest of the codebase to the new resource model
In order to access the ModFolderModel from the ModFolderPage, i created
a new m_model for the correct type, shadowing the m_model of type
ResourceFolderModel. This creates two shared_ptr references to the same object,
but since they will have the same lifetime, it doesn't generate a memory
leak.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:47:58 -03:00
flow
ec62d8e973
refactor: move general code from mod model to its own model
This aims to continue decoupling other types of resources (e.g. resource
packs, shader packs, etc) from mods, so that we don't have to
continuously watch our backs for changes to one of them affecting the
others.

To do so, this creates a more general list model for resources, based on
the mods one, that allows you to extend it with functionality for other
resources.

I had to do some template and preprocessor stuff to get around the
QObject limitation of not allowing templated classes, so that's sadge :c

On the other hand, I tried cleaning up most general-purpose code in the
mod model, and added some documentation, because it looks nice :D

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:45:01 -03:00
flow
3225f514f6
refactor: move general info from Mod to Resource
This allows us to create other resources that are not Mods, but can
still share a significant portion of code.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:41:59 -03:00
Sefa Eyeoglu
70a8f6743a
Merge pull request #919 from kumquat-ir/download-all-blocked 2022-08-20 12:50:01 +02:00
timoreo
c375e7b4df
Merge pull request #897 from jamierocks/atl-updating-initial 2022-08-11 08:50:05 +02:00
flow
4a13dbe3bb
feat: create delegate for project item views
This allows us to define custom painting for list view items. In
particular, this is applied to the mod downloader, in order to allow
displaying both the mod name and mod description, and settings their
effects (like bold or underline) independent of each other.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
kumquat-ir
579582740e Merge remote-tracking branch 'origin/develop' into download-all-blocked
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2022-07-31 14:54:50 -04:00
LennyMcLennington
94a63e3859
Merge pull request #941 from Scrumplex/bump-cxx-standard
Bump to C++17
2022-07-30 17:10:59 +01:00
DavidoTek
b4e8abd0ad feat: win32 enable dark titlebar for dark theme
Signed-off-by: DavidoTek <54072917+DavidoTek@users.noreply.github.com>
2022-07-26 23:25:17 +02:00
flow
631a93bcd8
refactor: add a HashUtils place for hashing stuff
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:54 -03:00
Sefa Eyeoglu
c65f5f7728
Merge pull request #877 from Scrumplex/refactor-offline-accounts 2022-07-23 13:54:36 +02:00
Sefa Eyeoglu
2e94562f79
fix: treat accounts as offline, if auth servers are down
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-23 12:38:01 +02:00
Sefa Eyeoglu
c666c3e251
refactor!: bump to C++17 and C17
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-20 14:22:10 +02:00
kumquat-ir
20b1723e78 merge origin/develop
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2022-07-18 14:05:23 -04:00
flow
6e2869834f
feat: add mod update dialog
This subclasses the Review mods dialog to make a "Update review" one.
Also, all the necessary components built until now are put together in a
coherent unity that checks and generates metadata on-the-fly and checks for
mod updates, while giving and receiving feedback to the user.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
b8b71c7dd2
feat: add mod update check tasks
Those tasks take a list of mods and check on the mod providers for
updates. They assume that the mods have metadata already.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
844b245776
feat: add EnsureMetadataTask
This task is responsible for checking if the mod has metadata for a
specific provider, and create it if it doesn't.

In the context of the mod updater, this is not the best architecture,
since we do a single task for each mod. However, this way of structuring
it allows us to use it later on in more diverse scenarios.

This way we decouple this task from the mod updater, trading off some performance
(though that will be mitigated when we have a way of running arbitrary tasks
concurrently).

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
4bcf8e6975
feat: add api call to flame
Call added:
- Get Fingerprints Matches
- Get Mod File Changelog

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
flow
0e52112016
feat: add some api calls to modrinth
Calls added:
- Get version from hash
- Get versions from hashes
- Latest version of a project from a hash, loader(s), and game version(s)
- Latest versions of multiple project from hashes, loader(s), and game version(s)

Some of those are not used yet, but may be of use later on, so we have
it if we need it :)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
flow
32a9545360
libs: add murmur2 library
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
flow
9a44c92211
feat: add MultipleOptionsTask
This is a variation of a Sequential Task, in which a subtask failing
will prompt the next one to execute, and a subtask being successful will
stop the task.

This way, this can be used for easily managing fallbacks with tasks. :D

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
flow
dd6aabf9ab
feat: add ChooseProviderDialog
Allows you to prompt the user for choosing a (mod) provider. This should
be fairly independent of the mod updater logic, so it can be used for
other ends later down the road :^)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
kumquat-ir
6a1d611fd1 Restore ScrollMessageBox
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2022-07-17 02:40:27 -04:00
kumquat-ir
33e34ebb83 Add "Open All" button to blocked mods dialog
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2022-07-16 19:14:54 -04:00
Sefa Eyeoglu
b3b76d5d56
Merge branch 'develop' into feature/sparkle-mac
# Conflicts:
#	.github/workflows/build.yml
2022-07-10 19:38:30 +02:00
Jamie Mansfield
bf560f4594
ATLauncher: Move the UI support implementation into it's own class
This will allow it to be used in multiple locations.
2022-07-10 11:27:42 +01:00
Sefa Eyeoglu
f464b347b2
fix: install TLS plugins for release builds
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
3e4d1c04de
fix: include TLS plugins in bundle
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
e58158c3cd
feat: add Qt 6 support to CMake
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:14 +02:00
Sefa Eyeoglu
ff2cd50bfa
refactor: replace QRegExp with QRegularExpression
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
Sefa Eyeoglu
984692dc62
refactor: fix deprecation up to Qt 5.15
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
Sefa Eyeoglu
ffa756ccee
fix: remove tests for updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-06 18:13:51 +02:00
Sefa Eyeoglu
e210a4b244
Revert "fix: remove updater if it is not used"
This reverts commit 2ff0aa09e3.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-06 18:13:51 +02:00
Sefa Eyeoglu
04b865adae
Merge pull request #707 from Jan200101/PR/gamemode
Add Performance related settings
2022-07-06 17:11:43 +02:00
Jan200101
cad581388f
Add Performance related settings
Integrates support for Feral Gamemode, discrete GPU support for Mesa and the proprietary Nvidia driver and MangoHud support

Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2022-07-06 09:34:14 +02:00
flow
fb75c23f4e
Merge pull request #784 from Scrumplex/refactor-cmake
Refactor tests
2022-07-02 17:50:08 -03:00
timoreo
fe2e1d931f
Merge pull request #786 from flowln/concurrent_tasks_slimmed 2022-07-01 20:09:18 +02:00
timoreo
2e17e78052
Merge pull request #845 from flowln/news_in_launcher 2022-07-01 20:04:06 +02:00
flow
8e80b4bfc1
feat: add ConcurrentTask
This tasks (or rather, meta-task) has the ability to run several other
sub tasks concurrently.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-01 08:34:10 -03:00
flow
455e4de6f3
feat: add news reader dialog
Makes it easier to read about new blog posts! Yay :D
2022-06-25 20:15:16 -03:00
Sefa Eyeoglu
effe46db86
refactor: move away from UnitTest.cmake 2022-06-14 14:44:49 +02:00
flow
d394235ee0
refactor: Create a more clear hierarchy for some instance pages
Previously, the Shaders, Texture packs and Resource packs tabs had as
parent the ModFolderPage, making it so that making changes only to the
Mods page would require checking the id of the page for the correct one.
This was hackish and error-prone.

Now, those pages all inherit from a single class, ExternalResourcesPage,
that handles the basic behaviour of all of them, while allowing for
individual modification in code.

This is still not a clear separation, since internally, all those
resources are derived from Mods, so for now there's still some awkward
common code :/
2022-06-14 07:04:31 -03:00
Sefa Eyeoglu
2ff0aa09e3
fix: remove updater if it is not used 2022-06-12 13:39:47 +02:00