Compare commits

...
Sign in to create a new pull request.

3574 commits

Author SHA1 Message Date
HerozDotExe
6799b772de docs: explain the point of this fork
Some checks failed
CodeQL Code Scanning / CodeQL (push) Has been cancelled
Nix / Build (x86_64-darwin) (push) Has been cancelled
Nix / Build (aarch64-darwin) (push) Has been cancelled
Nix / Build (x86_64-linux) (push) Has been cancelled
Nix / Build (aarch64-linux) (push) Has been cancelled
Build Application / Build Debug (push) Has been cancelled
2025-02-23 10:52:10 +01:00
HerozDotExe
3b87452699 feat: allow offline accounts 2025-02-23 10:50:49 +01:00
Seth Flynn
0af021fef2
ci: always run nix workflow on push (#3433) 2025-02-19 02:17:41 -05:00
Alexandru Ionut Tripon
d24066c965
chore(deps): update actions/cache action to v4.2.1 (#3432) 2025-02-19 08:20:04 +02:00
Seth Flynn
46385e671d
ci: always run nix workflow on push
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-02-18 22:55:51 -05:00
renovate[bot]
73bb740bbb
chore(deps): update actions/cache action to v4.2.1 2025-02-18 18:14:21 +00:00
Alexandru Ionut Tripon
50ab1b2c40
Recognize riscv64 as a 64-bit platform (#3425) 2025-02-17 20:33:17 +02:00
Alexandru Ionut Tripon
d472b966dc
chore(nix): update lockfile (#3401) 2025-02-17 18:04:45 +02:00
Alexandru Ionut Tripon
beee93e199
Update hendrikmuhs/ccache-action action to v1.2.17 (#3388) 2025-02-17 18:04:33 +02:00
thonkdifferent
8f1750df51
Recognize riscv64 as a 64-bit platform
Currently PrismLauncher complains about the installed JDK being a 32-bit version, despite it being compiled for 64-bit RISC-V `riscv64`. 

This PR fixes this issue.

Signed-off-by: thonkdifferent <41342923+thonkdifferent@users.noreply.github.com>
2025-02-16 19:30:31 +02:00
github-actions[bot]
bdf87fa02f chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3a228057f5b619feb3186e986dbe76278d707b6e?narHash=sha256-xvTo0Aw0%2Bveek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc%3D' (2025-02-01)
  → 'github:NixOS/nixpkgs/2ff53fe64443980e139eaa286017f53f88336dd0?narHash=sha256-%2B/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc%3D' (2025-02-13)
2025-02-16 00:25:49 +00:00
Rachel Powers
3295b0717a
add libMangoHud_shim.so to mangohub preloadlist (#3413) 2025-02-13 14:41:01 -07:00
Rachel Powers
7b97863685
make sure if user changes java path also disable java management (#3414) 2025-02-13 14:40:40 -07:00
Alexandru Ionut Tripon
3e4fc2ff3b
Increase the stale operations (#3393) 2025-02-13 13:44:01 +02:00
Alexandru Ionut Tripon
d22a20ffa6
Update .github/workflows/stale.yml
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-13 08:14:20 +02:00
TheKodeToad
de86e63611
Update .github/workflows/stale.yml
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-13 00:05:14 +00:00
TheKodeToad
e41a60e57e
remove some unused files (#3412) 2025-02-13 00:04:45 +00:00
Trial97
174cddcf42
make sure if user changes java path also disable java management
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-12 20:40:09 +02:00
Trial97
9e954548dd
add libMangoHud_shim.so to mangohub preloadlist
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-12 20:21:45 +02:00
Trial97
14b653e08d
remove some unused files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-12 20:16:00 +02:00
TheKodeToad
79180db663
Fix some undefined behaviour (#3407) 2025-02-11 19:04:56 +00:00
Alexandru Ionut Tripon
22b59e760c
Update launcher/ui/widgets/CheckComboBox.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-11 21:03:04 +02:00
Alexandru Ionut Tripon
1d1a4f1b30
Apply suggestions from code review
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-11 21:02:27 +02:00
Trial97
bf1084d7fa
Fix some undefined behaviour
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-11 10:59:10 +02:00
Trial97
ef825a7bc5
update stale action
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-06 09:58:41 +02:00
Alexandru Ionut Tripon
8d143c7b95
Fixed when game crashes, it doesn't log any time played (#3392) 2025-02-06 09:35:23 +02:00
Riley Richard
9ea33e0651 DCO Remediation Commit for Riley Richard <bubbalou112@gmail.com>
I, Riley Richard <bubbalou112@gmail.com>, hereby add my Signed-off-by to this commit: cb83f8e52d

Signed-off-by: Riley Richard <bubbalou112@gmail.com>
2025-02-05 18:10:31 -05:00
Trial97
f1209c1279
Increase the stale operations
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-05 23:43:38 +02:00
Riley Richard
17e95c0d07 forgot to sign
Signed-off-by: Riley Richard <bubbalou112@gmail.com>
2025-02-05 16:33:15 -05:00
Riley Richard
cb83f8e52d fixed thing 2025-02-05 16:13:22 -05:00
Alexandru Ionut Tripon
7d202e348d
Use the same UI for instance and global settings (#3341) 2025-02-05 23:04:54 +02:00
Alexandru Ionut Tripon
364b5be856
Add stale workflow (#3389) 2025-02-05 23:04:38 +02:00
TheKodeToad
e1896d5b6b
Update launcher/ui/pages/global/MinecraftPage.h
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 13:45:49 +00:00
TheKodeToad
6e3dd04a1f
Update launcher/ui/pages/global/MinecraftPage.h
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 12:09:32 +00:00
TheKodeToad
f7a401ab22
Update launcher/ui/pages/instance/InstanceSettingsPage.h
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 12:09:26 +00:00
TheKodeToad
9ed6801b15
Update launcher/ui/pages/global/JavaPage.h
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 12:09:12 +00:00
TheKodeToad
06b50dfd33
Fix more header mistakes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 11:11:45 +00:00
TheKodeToad
5a76d9b7e1
Make requested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-02-05 10:58:06 +00:00
Alexandru Ionut Tripon
34438824c1
Update .github/workflows/stale.yml
Co-authored-by: Seth Flynn <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-04 23:15:18 +02:00
Alexandru Ionut Tripon
ac598740b3
Update .github/workflows/stale.yml
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-04 22:08:46 +02:00
Alexandru Ionut Tripon
85c2710e33
Apply suggestions from code review
Co-authored-by: Seth Flynn <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-04 22:08:16 +02:00
Alexandru Ionut Tripon
afe6d4836d
Update .github/workflows/stale.yml
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-02-04 17:41:36 +02:00
Trial97
9c26ba5932
add stale workflow
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-02-04 16:13:55 +02:00
renovate[bot]
2a987b5a4a
chore(deps): update hendrikmuhs/ccache-action action to v1.2.17 2025-02-03 22:11:56 +00:00
Alexandru Ionut Tripon
1a375dc243
Merge pull request #3382 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2025-02-03 00:28:59 +02:00
Alexandru Ionut Tripon
ab3792b080
Merge pull request #3381 from razzeee/patch-1
Add PackageManager category
2025-02-03 00:28:42 +02:00
Seth Flynn
f9dcc31843
Merge pull request #3374 from getchoo-contrib/ci/fix-nix-out-paths
Fix Nix workflow
2025-02-02 17:18:03 -05:00
Seth Flynn
989e6c6cb6
ci: directly print nix out paths to step summary
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-02-01 22:55:39 -05:00
Seth Flynn
138684a84f
Revert "ci: add nix out paths to job summary"
This reverts commit 588e0d6305.

Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-02-01 22:54:26 -05:00
github-actions[bot]
faf7e6b06e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
  → 'github:NixOS/nixpkgs/3a228057f5b619feb3186e986dbe76278d707b6e?narHash=sha256-xvTo0Aw0%2Bveek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc%3D' (2025-02-01)
2025-02-02 00:24:39 +00:00
Kolja
f1671e3ded
Add PackageManager category
Signed-off-by: Kolja <razzeee@gmail.com>
2025-02-01 20:25:01 +01:00
Alexandru Ionut Tripon
6404d81ada
Merge pull request #3373 from Trial97/fix_crash2
Show warning when adding new resources with no instances
2025-01-31 23:03:55 +02:00
Alexandru Ionut Tripon
d6eb96df5c
Merge pull request #3260 from Trial97/fix_modrinth_shapshot
Map Minecraft snapshots to Modrinth
2025-01-31 23:02:55 +02:00
Trial97
c5efe081b4
fix add resource with no instance
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-31 22:03:57 +02:00
Seth Flynn
a639bc019e
Merge pull request #3368 from getchoo-contrib/ci/print-nix-out-paths 2025-01-31 07:00:37 -05:00
Seth Flynn
588e0d6305
ci: add nix out paths to job summary
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-30 13:34:34 -05:00
Sefa Eyeoglu
d7eddedf41
Merge pull request #3359 from PrismLauncher/ci/flakehub 2025-01-30 16:06:58 +01:00
Alexandru Ionut Tripon
6ae9fa4df4
Merge pull request #3314 from Trial97/update_modules
update submodules
2025-01-29 23:35:08 +02:00
Seth Flynn
86cc6d3c5e
feat: publish on flakehub
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 16:34:31 -05:00
Seth Flynn
61d7f08883
ci: use generic workflow for publishing
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 16:34:27 -05:00
Seth Flynn
0deb5e20ae
Merge pull request #3362 from getchoo-contrib/ci/flakehub-cache 2025-01-29 16:34:02 -05:00
Alexandru Ionut Tripon
fcb3dd5e9d
Merge pull request #3346 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2025-01-29 23:33:01 +02:00
Seth Flynn
169f5728b1
ci: run nix workflow on pull_request_target
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 16:22:44 -05:00
Seth Flynn
8816be1668
ci: use flakehub cache
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 16:17:01 -05:00
Alexandru Ionut Tripon
bd752c025c
Merge pull request #3360 from getchoo-contrib/ci/split
Split Flatpak and Nix CI jobs from main build workflow
2025-01-29 22:51:07 +02:00
Seth Flynn
49d734f314
ci: separate flatpak job
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 08:32:49 -05:00
Seth Flynn
417688089d
ci: separate nix job
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-29 08:31:45 -05:00
Seth Flynn
de21b77ae1
Merge pull request #3334 from PrismLauncher/renovate/determinatesystems-magic-nix-cache-action-9.x
chore(deps): update determinatesystems/magic-nix-cache-action action to v9
2025-01-29 07:44:06 -05:00
TheKodeToad
68bf409a98
Fix formatting issues
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 19:14:57 +00:00
TheKodeToad
5d179671bf
Fix non-Linux build
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 18:55:24 +00:00
TheKodeToad
dc6f536843
Fix Qt 5 compilation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 18:04:41 +00:00
TheKodeToad
cc504f4a6c
Merge remote-tracking branch 'upstream/develop' into unify-mc-settings
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 17:02:50 +00:00
TheKodeToad
a92c68adbd
Remove duplicate console section
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 16:54:45 +00:00
TheKodeToad
7aaa9fa93c
Finish off MinecraftSettingsWidget implementation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 16:46:26 +00:00
TheKodeToad
81769b9047
Use MinecraftInstancePtr instance of InstancePtr
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 14:34:07 +00:00
TheKodeToad
147b315c14
Update thresholds when min. memory value is changed too
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 14:15:07 +00:00
TheKodeToad
9d0918a064
Remove outdated JavaWizardWidget comment
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 13:19:10 +00:00
TheKodeToad
98ab686348
Merge remote-tracking branch 'upstream/develop' into unify-mc-settings
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-27 13:18:19 +00:00
TheKodeToad
39ae2fbd4a
Fix tab inconsistencies
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-26 22:44:43 +00:00
TheKodeToad
36a35d7925
Fix tab order
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-26 22:36:48 +00:00
TheKodeToad
1b4b36df33
Unify Java page
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2025-01-26 22:25:26 +00:00
github-actions[bot]
3d9e073721 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5df43628fdf08d642be8ba5b3625a6c70731c19c?narHash=sha256-Tbk1MZbtV2s5aG%2BiM99U8FqwxU/YNArMcWAv6clcsBc%3D' (2025-01-16)
  → 'github:NixOS/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
2025-01-26 00:23:21 +00:00
Alexandru Ionut Tripon
fdb4159f2a
Merge pull request #3332 from eff3ry/modrinth-filter-tweak
Update Modrinth Client/Server Filters to match Modrinth website & launcher.
2025-01-21 23:42:37 +02:00
Alexandru Ionut Tripon
98be91c9d5
Merge pull request #3294 from Trial97/fix_flame_update
Fix updating Curseforge mods with missing mod loader
2025-01-21 23:40:21 +02:00
renovate[bot]
705375c0df
chore(deps): update determinatesystems/magic-nix-cache-action action to v9 2025-01-21 21:35:18 +00:00
TheKodeToad
8d3684c484
Merge pull request #1413 from Trial97/fix_curse_import
feat: updated flame mod resolution
2025-01-21 13:53:00 +00:00
Alexandru Ionut Tripon
0d4eeb9965
Merge pull request #3330 from getchoo-contrib/mingw-cfg
Use better compile flags for MINGW
2025-01-21 15:18:43 +02:00
Jeffery Tolmie
caccaefb39
Change "none" to ""
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: Jeffery Tolmie <jeffery.tolmie@gmail.com>
2025-01-22 02:06:49 +13:00
eff3ry
532fec7748 DCO Remediation Commit
DCO Remediation Commit for eff3ry <jeffery.tolmie@gmail.com>

I, eff3ry <jeffery.tolmie@gmail.com>, hereby add my Signed-off-by to this commit: 2a403b3bfe
I, eff3ry <jeffery.tolmie@gmail.com>, hereby add my Signed-off-by to this commit: 4ba3fd559d

Signed-off-by: eff3ry <jeffery.tolmie@gmail.com>
2025-01-22 01:48:04 +13:00
eff3ry
4ba3fd559d Update Filter Checks
Updates the filter checks so that options both and none can be differentiated.

Signed-off-by: Jeffery Tolmie Jeffery.tolmie@gmail.com
2025-01-22 01:40:59 +13:00
eff3ry
2a403b3bfe Edit Modrinth search faucets
Edit Modrinth search faucets to alter the client and server filters to be more in-line with the Modrinth website and Launcher, making it easier to find client-side only mods etc.

Signed-off-by: Jeffery Tolmie Jeffery.tolmie@gmail.com
2025-01-22 01:39:28 +13:00
Seth Flynn
f8a504e254
Merge pull request #3299 from Trial97/appimage2
Use Ubuntu 22.04 for Linux builds
2025-01-20 23:43:45 -05:00
Seth Flynn
e66f447ce5
feat: use better compile flags for mingw
Signed-off-by: Seth Flynn <getchoo@tuta.io>
2025-01-20 20:36:48 -05:00
Seth Flynn
67b218b1f3
Merge pull request #2895 from Edgars-Cirulis/qt-6.8
chore: update to qt 6.8.x
2025-01-20 18:53:05 -05:00
Alexandru Ionut Tripon
db766574a4
Update .github/workflows/build.yml
Co-authored-by: Seth Flynn <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-01-21 01:38:13 +02:00
timoreo
18da01c9a6
Merge pull request #3320 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2025-01-20 09:48:11 +01:00
Alexandru Ionut Tripon
c79ad73311
Merge pull request #3319 from getchoo-contrib/flatpak-arm
Build Flatpaks for ARM
2025-01-19 10:16:41 +02:00
Sefa Eyeoglu
fb3926a85d
Merge pull request #3318 from getchoo-contrib/nix-arm
Build Nix packages for aarch64-linux
2025-01-19 09:08:17 +01:00
github-actions[bot]
8d4f279539 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bffc22eb12172e6db3c5dde9e3e5628f8e3e7912?narHash=sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc%2Bc2c%3D' (2025-01-08)
  → 'github:NixOS/nixpkgs/5df43628fdf08d642be8ba5b3625a6c70731c19c?narHash=sha256-Tbk1MZbtV2s5aG%2BiM99U8FqwxU/YNArMcWAv6clcsBc%3D' (2025-01-16)
2025-01-19 00:24:56 +00:00
Alexandru Ionut Tripon
1b5d3c2bf9
Update .github/workflows/build.yml
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2025-01-19 02:03:21 +02:00
Trial97
be3eca8c97
remove specific step for qt6
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-19 01:05:06 +02:00
seth
66f0397087
ci: build flatpaks for arm
Signed-off-by: seth <getchoo@tuta.io>
2025-01-18 17:16:02 -05:00
seth
8e8538b506
ci: build nix packages for aarch64-linux
Signed-off-by: seth <getchoo@tuta.io>
2025-01-18 16:55:38 -05:00
Trial97
dc00c47f2e
update submodules
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-18 13:27:18 +02:00
Trial97
7d3238d234
rename variables
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-17 21:09:44 +02:00
Alexandru Ionut Tripon
f17599c8b8
Merge pull request #1689 from Trial97/progrss_bar_interaction
Added mouse interactions for labels in ProgressDialog
2025-01-17 20:59:52 +02:00
Trial97
8e5a7c6e33
ensure that the snapshot mapping is on all apis
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-17 10:35:13 +02:00
Trial97
1d8bf1d5a7
map modrinth snapshots
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-17 09:19:39 +02:00
Alexandru Ionut Tripon
c2f4389e5f
Merge pull request #3254 from Trial97/remove_multimc
remove EditAccountDialog
2025-01-17 08:51:44 +02:00
Alexandru Ionut Tripon
b7d117cc77
Merge pull request #2737 from maskersss/log-upload
Truncate logs for mclo.gs to fit 25k line limit
2025-01-17 08:49:49 +02:00
seth
1cce582d56
Merge pull request #3292 from Trial97/fix_modrinth_link
fix modrinth link
2025-01-16 20:42:00 -05:00
seth
867aaf881e
Merge pull request #3286 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2025-01-16 20:40:44 -05:00
seth
14b348ffe7
Merge pull request #3285 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.16
2025-01-16 20:40:17 -05:00
Edgars Cīrulis
181610a8c1
Merge branch 'PrismLauncher:develop' into qt-6.8 2025-01-17 03:04:43 +02:00
seth
b7f2175718
Merge pull request #3179 from sshcrack/fix-inst-java
Fix $INST_JAVA not being set for auto download java
2025-01-16 20:03:26 -05:00
seth
7a1dc0e9c9
Merge pull request #1555 from Trial97/env_vars
correctly expand env vars for pre/post launch commands
2025-01-16 19:45:31 -05:00
Trial97
9317a675ed
removed unused type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-16 17:07:44 +02:00
Trial97
7cb8deeb90
feat: updated flame mod resolution
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-16 17:05:36 +02:00
Trial97
bca517b8d3
fix appimage
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-16 12:10:19 +02:00
Trial97
e4ad4051c8
fix curseforge with empty loader as newest version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-13 13:56:55 +02:00
Trial97
3ee73916ca
fix modrinth link
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-13 08:16:12 +02:00
github-actions[bot]
03834e1455 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6df24922a1400241dae323af55f30e4318a6ca65?narHash=sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk%3D' (2025-01-02)
  → 'github:NixOS/nixpkgs/bffc22eb12172e6db3c5dde9e3e5628f8e3e7912?narHash=sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc%2Bc2c%3D' (2025-01-08)
2025-01-12 00:26:01 +00:00
renovate[bot]
54da41c625
chore(deps): update hendrikmuhs/ccache-action action to v1.2.16 2025-01-11 22:11:18 +00:00
Alexandru Ionut Tripon
f4f1d5f0d7
Merge pull request #3228 from Trial97/delete_block
Add settings to control the if prism should move the downloaded mods
2025-01-09 00:12:12 +02:00
Alexandru Ionut Tripon
fbd886e9db
Merge pull request #3255 from Trial97/propagate_load
propagate load component error
2025-01-09 00:11:48 +02:00
Alexandru Ionut Tripon
0fb99d837f
Merge pull request #3230 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2025-01-09 00:11:24 +02:00
Alexandru Ionut Tripon
cb8320ca41
Merge pull request #3278 from Trial97/remove_drop
remove drop label
2025-01-09 00:10:50 +02:00
Alexandru Ionut Tripon
33981b9870
Merge pull request #3215 from Trial97/fix_custom_instance_icons
Fix curseforge/modrinth instance icons
2025-01-09 00:10:39 +02:00
Alexandru Ionut Tripon
07a0a15457
Merge pull request #3277 from Trial97/drop_file
fix drop file on resource page
2025-01-08 10:46:55 +02:00
Trial97
0f9ea5c949
remove drop label
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-08 01:55:45 +02:00
Trial97
d40c8b704c
fix drop file on resource page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-01-08 01:52:11 +02:00
github-actions[bot]
82a500f4e8 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5d67ea6b4b63378b9c13be21e2ec9d1afc921713?narHash=sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g%3D' (2024-12-11)
  → 'github:NixOS/nixpkgs/6df24922a1400241dae323af55f30e4318a6ca65?narHash=sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk%3D' (2025-01-02)
2025-01-05 00:25:34 +00:00
Trial97
6ebfcb91cf
propagate load component error
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-31 13:44:22 +02:00
Trial97
e01df73deb
remove EditAccountDialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-31 11:13:01 +02:00
Trial97
7dde35fef2
Add settings to control the if prism should move the downloaded mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-20 19:57:09 +02:00
Alexandru Ionut Tripon
0b6ce5525d
Merge pull request #3216 from Trial97/fix_auto_mod_provider
Fix automatically choose mod provider option
2024-12-19 09:16:59 +02:00
timoreo
f17faadf8a
Merge pull request #3174 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-12-18 19:54:44 +01:00
timoreo
c7b6977692
Merge pull request #3043 from Trial97/fix_flame_loader_match
fix the flame loaders match
2024-12-18 19:53:22 +01:00
timoreo
423d72a6e8
Merge pull request #3197 from Trial97/fix_curseforge_import
Do not fail curseforge import if modrinth file check fails
2024-12-18 19:48:05 +01:00
timoreo
2a2ed9f8bd
Merge pull request #3214 from kthchew/fix/manifest-symlink
Correct symbolic link destination on manifest (Mojang) Java download
2024-12-18 19:42:25 +01:00
Trial97
0412ed3f78
Fix automatically choose mod provider option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-16 14:51:59 +02:00
Trial97
f4d93a08ba
Fix curseforge/modrinth instance icons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-16 13:27:44 +02:00
Kenneth Chew
8d53242952
Correct symbolic link destination on manifest Java download
Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-12-16 03:30:09 -05:00
github-actions[bot]
706e263050 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-compat':
    'github:edolstra/flake-compat/9ed2ac151eada2306ca8c418ebd97807bb08f6ac?narHash=sha256-HRJ/18p%2BWoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg%3D' (2024-11-27)
  → 'github:edolstra/flake-compat/ff81ac966bb2cae68946d5ed5fc4994f96d0ffec?narHash=sha256-NeCCThCEP3eCl2l/%2B27kNNK7QrwZB1IJCrXfrbv5oqU%3D' (2024-12-04)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/970e93b9f82e2a0f3675757eb0bfc73297cc6370?narHash=sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE%3D' (2024-11-28)
  → 'github:NixOS/nixpkgs/5d67ea6b4b63378b9c13be21e2ec9d1afc921713?narHash=sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g%3D' (2024-12-11)
2024-12-15 00:27:47 +00:00
Alexandru Ionut Tripon
507faf9f00
Merge pull request #3150 from kthchew/fix/unneeded-hr-exceptions
Remove unnecessary hardened runtime exceptions on macOS
2024-12-14 19:30:11 +02:00
Alexandru Ionut Tripon
c0803365ef
Merge pull request #3202 from kthchew/chore/bump-sparkle
[macOS] Update Sparkle to v2.6.4
2024-12-14 18:18:04 +02:00
Alexandru Ionut Tripon
02e527c15b
Merge pull request #3199 from kthchew/fix/launcher-settings-tab
Fix tab order in launcher settings
2024-12-14 18:17:08 +02:00
Alexandru Ionut Tripon
5659dad23d
Merge pull request #3198 from kthchew/fix/local-net-use-desc
[macOS] Add local network usage description
2024-12-14 18:16:34 +02:00
Alexandru Ionut Tripon
647bb04a0d
Merge pull request #3181 from Trial97/fix_mrpack_crash
fix crash with invalid mrpack format
2024-12-14 18:15:50 +02:00
Kenneth Chew
b6cd46ad27
Update Sparkle to v2.6.4
Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-12-14 00:42:08 -05:00
Kenneth Chew
c3712ba648
Fix tab order in launcher settings
Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-12-12 14:53:39 -05:00
Kenneth Chew
c3e44554ab
Add local network usage description
Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-12-12 14:43:28 -05:00
Trial97
a1c1c0b769
Do not fail curseforge import if modrinth file check fails
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-12 17:29:46 +02:00
Alexandru Ionut Tripon
15e58589d5
Merge pull request #3170 from leia-uwu/fix-icon-theme-path
[Linux] Don't use fallback icon search paths
2024-12-09 09:14:25 +02:00
Edgars Cirulis
eb8c375ec5
chore: update Qt to 6.8.1
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-12-09 00:40:05 +02:00
Trial97
1dd0728a58
fix crash with invalid mrpack format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-12-08 22:04:16 +02:00
sshcrack
cf2dcbd431
load meta first
Signed-off-by: sshcrack <34072808+sshcrack@users.noreply.github.com>
2024-12-08 18:27:57 +01:00
sshcrack
dedb7a2343
change order of steps
Signed-off-by: sshcrack <34072808+sshcrack@users.noreply.github.com>
2024-12-08 14:39:06 +01:00
leia uwu
614574f15c
fix icon theme search paths
using fallback search paths breaks qadwaitadecorations

Signed-off-by: leia uwu <leia@tutamail.com>
2024-12-06 23:26:46 -03:00
Alexandru Ionut Tripon
28a471777a
Merge pull request #2800 from QazCetelic/advanced-icon-dialog
Add search and support for subdirectories to icon picker
2024-12-06 12:37:45 +02:00
Alexandru Ionut Tripon
93526637cb
Merge pull request #3166 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.2.0
2024-12-06 08:47:04 +02:00
renovate[bot]
94c893bd86
chore(deps): update actions/cache action to v4.2.0 2024-12-05 20:29:11 +00:00
Alexandru Ionut Tripon
c99876f3d7
Merge pull request #3154 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-12-03 16:17:50 +02:00
Alexandru Ionut Tripon
a3b2f1a931
Merge pull request #3119 from guihkx/flathub-manifest-sync
Sync Flatpak manifest with Flathub's
2024-12-02 17:30:19 +02:00
TheKodeToad
488dc7815c
Merge pull request #3135 from Trial97/italic
Make FTB Import note italic to match others
2024-12-02 14:07:42 +00:00
Tayou
dbee4bee14
Merge pull request #3152 from leia-uwu/fix-system-icons
Fix system icons on Linux
2024-12-02 15:00:43 +01:00
github-actions[bot]
2cfd116947 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33?narHash=sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U%3D' (2023-10-04)
  → 'github:edolstra/flake-compat/9ed2ac151eada2306ca8c418ebd97807bb08f6ac?narHash=sha256-HRJ/18p%2BWoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg%3D' (2024-11-27)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/23e89b7da85c3640bbc2173fe04f4bd114342367?narHash=sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w%3D' (2024-11-19)
  → 'github:NixOS/nixpkgs/970e93b9f82e2a0f3675757eb0bfc73297cc6370?narHash=sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE%3D' (2024-11-28)
2024-12-01 00:30:03 +00:00
leia uwu
3f67ef968b
fix: icon search paths memory leak
Signed-off-by: leia uwu <leia@tutamail.com>
2024-11-30 12:51:39 -03:00
leia uwu
fd9c80db62
fix: fix system icons
This sets the fallback icon theme to the current(system default) icon theme before
launcher specific themes are applied

And removes `Inherits` line of multimc/legacy icon theme because it can end up making it
inherit a default theme set from /usr/share/icons/default/index.theme
instead of the user configured theme (probably a qt bug?)

Signed-off-by: leia uwu <leia@tutamail.com>
2024-11-30 11:35:41 -03:00
Kenneth Chew
7e76638f2c
Only disable library validation if using ad-hoc signature
While not needed for regular releases, it is needed for CI when an Apple Developer account isn't available and you can only perform an ad-hoc signature.

Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-11-29 21:18:07 -05:00
Kenneth Chew
884f15da1e
Remove unnecessary hardened runtime exceptions
These are cruft from an older time when the launcher was ad-hoc signed, and the OS couldn't tell the libraries and launcher were signed by the same party.

Additionally, add a workaround to send the necessary library injection to the game if Steam overlay is used despite library validation being on for the launcher.

Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-11-29 21:18:06 -05:00
TheKodeToad
616aa002e1
Merge pull request #2875 from Jan200101/PR/switcheroo
[Linux] Integrate switcheroo-control for discrete GPU support
2024-11-28 20:02:58 +00:00
guihkx
e0faee7f26
ci(flatpak): update build artifact name
Just aligning the name of the Flatpak package with other build artifacts.

Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2024-11-27 14:35:15 -03:00
guihkx
f6770a847a
flatpak: update KDE runtime to 6.8
This also switches to the Docker image provided and maintained by
Flathub collaborators through the 'flathub-infra' organization on
GitHub, because it looks better maintained at the moment.

Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2024-11-26 13:51:09 -03:00
guihkx
4a50e94967
flatpak: update xrandr to 1.5.3
Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2024-11-26 13:51:09 -03:00
Jan200101
514ec99a03
Integrate switcheroo-control for discrete GPU support
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2024-11-25 22:29:39 +01:00
TheKodeToad
6c062c48b4
Merge pull request #3130 from Kationor/trimversion
Improve MANIFEST.MF parsing
2024-11-25 10:05:02 +00:00
Kationor
b40a1973bf
Improve MANIFEST.MF parsing
Previously, we would only properly parse LF-encoded manifests, and even
those only if they used the recommended casing.

This commit allows the parser to recognise CR and CRLF newlines, and
also makes the name comparison case insensitive to align with the
specification. (Though not completely: we still don't support multiline
values)

Signed-off-by: Kationor <n96211028@gmail.com>
2024-11-24 19:30:59 +01:00
Trial97
a09af619ce
Make FTB Import note italic to match others
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-24 20:29:07 +02:00
TheKodeToad
835944387b
Merge pull request #3128 from QazCetelic/naming-clang-tidy
Add naming check in `.clang-tidy` file
2024-11-24 16:10:41 +00:00
QazCetelic
d927c539b5 Update CONTRIBUTING.md conventions section
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-23 19:55:40 +01:00
QazCetelic
14454faac8 Use old list style
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-23 18:21:03 +01:00
QazCetelic
2351531e84 Add naming checks to clang-tidy
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-23 18:15:07 +01:00
QazCetelic
33ff3b4f36 Fix naming
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-23 18:10:33 +01:00
seth
11e7b218d4
Merge pull request #3113 from PrismLauncher/update_flake_lock_action
chore(nix): adopt new darwin SDK pattern
2024-11-22 18:25:21 -05:00
seth
fbbd64ddb7
chore(nix): sync with upstream nixpkgs
Signed-off-by: seth <getchoo@tuta.io>
2024-11-22 17:33:16 -05:00
github-actions[bot]
41db87c8cf chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/776e68c1d014c3adde193a18db9d738458cd2ba4?narHash=sha256-SCHiL%2B1f7q9TAnxpasriP6fMarWE5H43t25F5/9e28I%3D' (2024-10-29)
  → 'github:numtide/nix-filter/f7653272fd234696ae94229839a99b73c9ab7de0?narHash=sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms%3D' (2024-11-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4aa36568d413aca0ea84a1684d2d46f55dbabad7?narHash=sha256-Zwl8YgTVJTEum%2BL%2B0zVAWvXAGbWAuXHax3KzuejaDyo%3D' (2024-11-05)
  → 'github:NixOS/nixpkgs/23e89b7da85c3640bbc2173fe04f4bd114342367?narHash=sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w%3D' (2024-11-19)
2024-11-22 22:26:01 +00:00
Alexandru Ionut Tripon
79dd912126
Merge pull request #3091 from Awqre/develop
Lossless image asset compression
2024-11-20 10:12:34 +02:00
Awqre
00fa65c18b
Merge branch 'PrismLauncher:develop' into develop 2024-11-20 02:08:31 +00:00
seth
59db80cb0e
Merge pull request #3068 from Scrumplex/chore/update-nixos-readme
[Linux] Update Nix README
2024-11-19 10:09:11 -05:00
Alexandru Ionut Tripon
e5a4dfdf16
Merge pull request #2962 from AOSC-Tracking/upstream/detect-aosc-os-jdks
javautils: add a filter for detecting Java paths on AOSC OS
2024-11-19 13:44:57 +02:00
QazCetelic
6ca18c6266 Refactoring
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-18 19:19:02 +01:00
QazCetelic
e74592fa09 Code style conventions (camelCase, m_ prefix)
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-17 20:43:09 +01:00
QazCetelic
abbebff400 Removed bug when renaming icon file in nested folder while application is running
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-11-17 20:35:24 +01:00
Awqre
3c88eccf17
Merge branch 'PrismLauncher:develop' into develop 2024-11-17 08:19:35 +00:00
TheKodeToad
48235f5b71
Merge pull request #3083 from Trial97/fix_resource_search
Fix resource search
2024-11-15 23:09:28 +00:00
timoreo
736ecf266d
Merge pull request #3019 from Trial97/task_parent
fixed double deletion for tasks
2024-11-15 06:19:40 +01:00
timoreo
b2a37452be
Merge pull request #3024 from Trial97/leak
fix leak on resource search
2024-11-15 06:18:33 +01:00
timoreo
54f2e75b9d
Merge pull request #3070 from TheKodeToad/general-scrollbar
Add scrollbar to Settings -> Launcher -> Features
2024-11-15 06:16:54 +01:00
timoreo
f7620a43aa
Merge pull request #3094 from Trial97/remove_resource_warning
Fix warnings regarding Resource static cast
2024-11-15 06:15:55 +01:00
timoreo
bcbe5da87f
Merge pull request #3096 from Trial97/dangling_file
Fix file remaingin open after program closure
2024-11-15 06:14:25 +01:00
Alexandru Ionut Tripon
e735ea7e63
Merge pull request #3003 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-11-14 22:50:53 +02:00
Trial97
ce61ed2f86 Fix file remaingin open after program closure
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-14 13:27:16 +02:00
Trial97
172e43cd3f Fix warnings regarding Resource static cast
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-13 23:11:33 +02:00
Awqre
9f0b2bafd8 Further additional even better(er) compression
Truly unprecedented levels of optimization we're reaching here. (OxiPNG/ZopfliPNG/ECT/DeflOpt)

Signed-off-by: Awqre <32497511+Awqre@users.noreply.github.com>
2024-11-13 14:31:20 -05:00
txtsd
03b34e39f8
feat: Compression script with compressed images
Also modified genicons.sh

Signed-off-by: txtsd <code@ihavea.quest>
2024-11-13 19:04:31 +05:30
Awqre
885fc66c14 Lossless image compression
Applied lossless zopfli/ect/deflopt compression to PNG files including ones contained in ICO files.

Repacked ICO files with optidash icopack

Signed-off-by: Awqre <32497511+Awqre@users.noreply.github.com>
2024-11-12 20:17:17 -05:00
github-actions[bot]
f41380d91c chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/3342559a24e85fc164b295c3444e8a139924675b?narHash=sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj%2BrL8sRQsSM%3D' (2024-03-11)
  → 'github:numtide/nix-filter/776e68c1d014c3adde193a18db9d738458cd2ba4?narHash=sha256-SCHiL%2B1f7q9TAnxpasriP6fMarWE5H43t25F5/9e28I%3D' (2024-10-29)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0?narHash=sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c%2BcHUJwA%3D' (2024-10-18)
  → 'github:NixOS/nixpkgs/4aa36568d413aca0ea84a1684d2d46f55dbabad7?narHash=sha256-Zwl8YgTVJTEum%2BL%2B0zVAWvXAGbWAuXHax3KzuejaDyo%3D' (2024-11-05)
2024-11-10 00:24:54 +00:00
Trial97
66883db645 Fix removed signal handler for filter resource
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-09 23:30:04 +02:00
Tayou
df45e5518f
Merge pull request #3081 from Trial97/fix_markdown
fix CONTRIBUTING.md formating
2024-11-09 22:19:41 +01:00
Trial97
4c8c6e543e fix contrributing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-08 00:18:12 +02:00
Alexandru Ionut Tripon
1d9508c268
Merge pull request #3074 from Trial97/lock
Close the window using the invokeMethod to not block
2024-11-07 23:45:44 +02:00
Alexandru Ionut Tripon
7d03cb114d
Merge pull request #3031 from Trial97/lambda
do not capture by default all values in lambdas
2024-11-07 23:45:31 +02:00
Tayou
2fcf03ead3
Merge pull request #3036 from Trial97/typo4 2024-11-07 17:30:47 +01:00
TheKodeToad
012bbca197
JavaSettingsWidget -> JavaWizardWidget
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 14:51:43 +00:00
TheKodeToad
8132828ad7
Phrasing fix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 13:36:33 +00:00
Trial97
9601fbf2d5
Close the window using the invokeMethod to not block
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-07 15:07:17 +02:00
TheKodeToad
6e55239cec
Merge pull request #3073 from TheKodeToad/fix-formatting-guidelines-oversight
Fix formatting oversight
2024-11-07 13:01:15 +00:00
TheKodeToad
900235642c
Fix formatting oversight
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 12:16:22 +00:00
TheKodeToad
f667f56fb7
Merge pull request #3067 from TheKodeToad/updated-formatting-guidelines
Updated formatting guidelines
2024-11-07 11:43:12 +00:00
TheKodeToad
e06b3e7a7a
Implement open global settings
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 00:47:32 +00:00
TheKodeToad
223b6b3b2b
Fix non-Linux build
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 00:22:22 +00:00
TheKodeToad
71e55f8829
Add scrollbar to Settings -> Launcher -> Features
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-07 00:11:27 +00:00
TheKodeToad
e6d4e5d78d
Unify instance and global settings pt.1
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-06 23:46:30 +00:00
TheKodeToad
8ecc21c093
Make Ryex's suggested change
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-06 22:12:22 +00:00
Sefa Eyeoglu
0a80da28fa
chore: update Nix readme
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-11-06 19:29:57 +01:00
TheKodeToad
b67d400f60
Update formatting guidelines
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-11-06 16:27:03 +00:00
timoreo
1ab10bdd84
Merge pull request #3060 from Ryex/ci/bump_linux_qt
ci: bump linux qt version
2024-11-05 11:25:27 +01:00
Rachel Powers
ba6743d134
ci: libxcb-curcsor_dev ?
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-11-05 01:30:55 -07:00
Rachel Powers
d63a336411
ci: bump linux qt version
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-11-05 01:10:38 -07:00
Alexandru Ionut Tripon
4a92573235
Merge pull request #3042 from Trial97/isportable
use isPortable to determine if the MSAStep should check for url handler
2024-11-03 11:55:55 +02:00
Alexandru Ionut Tripon
db3d796275
Merge pull request #3045 from Trial97/ask_retry3
disable retry for modrinth currentVersions API
2024-11-03 11:55:37 +02:00
Trial97
6f2f3c2d3b
disable retry for modrinth currentVersions API
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-01 17:34:29 +02:00
Trial97
f77f0207f7
fix the flame loaders match
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-01 14:30:47 +02:00
Trial97
99cfb62370
use isPortable to determine if the MSAStep should check for url handler
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-01 11:03:47 +02:00
Trial97
2b590f24ed
remove task parent from constuctor
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-11-01 00:11:45 +02:00
Trial97
670c932f32 Fix installed typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-31 14:51:18 +02:00
TheKodeToad
ba07a136dc
Merge pull request #3035 from PrismLauncher/remove-BasicFolderLoadTask
Remove BasicFolderLoadTask
2024-10-31 09:17:27 +00:00
TheKodeToad
9ae16921bc
Remove BasicFolderLoadTask
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-30 21:10:43 +00:00
Tayou
887e4a964a
Merge pull request #3010 from Trial97/lock3 2024-10-30 21:56:17 +01:00
seth
8faff9ac6a
Merge pull request #3030 from Trial97/sys 2024-10-30 15:16:38 -04:00
Trial97
0e80aae1b8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into lambda 2024-10-30 19:35:25 +02:00
TheKodeToad
c142d38f08
Merge pull request #1588 from TheKodeToad/resource-meta
Implement tracking and updates for files other than mods
2024-10-30 17:03:54 +00:00
Trial97
82bffabb69
do not capture by default all values in lambdas
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-30 18:16:43 +02:00
Trial97
14c95b9d37
fix macos system detection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-30 17:15:42 +02:00
Alexandru Ionut Tripon
b7598c6a41
Merge pull request #2331 from michaeltyson/develop
Support for launching from command line in offline mode
2024-10-30 09:49:33 +02:00
Michael Tyson
ced2f9d1a0 Applied clang formatting
Signed-off-by: Michael Tyson <michael@atastypixel.com>
2024-10-30 12:51:34 +11:00
Michael Tyson
5661444414 Removed “--name” flag in favour of specifying offline player name via “--offline” flag
Signed-off-by: Michael Tyson <michael@atastypixel.com>
2024-10-30 12:37:14 +11:00
Michael Tyson
afa1e0599a Improved formatting
Signed-off-by: Michael Tyson <michael@atastypixel.com>
2024-10-30 12:34:33 +11:00
Michael Tyson
43e4481b70 Support for launching from command line in offline mode
This allows launching an offline instance with --offline --name=OfflineName. This is useful for playing split screen by creating two side-by-side instances, which is impossible online, unless one is using two separate paid accounts.

With this PR, it makes it possible to launch from a script - otherwise, one has to launch manually, which is a pain, or create offline profiles for each instance, which interferes with some functionality like skins (my autistic son takes great issue with his skin not being visible, when using offline profiles!).

Implementation is based on MultiMC, which supports this feature.

See also https://github.com/PrismLauncher/PrismLauncher/issues/1059 for discussion.

Signed-off-by: Michael Tyson <michael@atastypixel.com>
2024-10-30 12:30:20 +11:00
Tayou
65b0fdf08d
Merge pull request #3027 from benthetechguy/metadata 2024-10-29 23:06:01 +01:00
Ben Westover
f6511c601e
Fix some typos
Signed-off-by: Ben Westover <me@benthetechguy.net>
2024-10-29 20:45:10 +00:00
Ben Westover
fd109c4740
Shorten metainfo.xml app summary
Signed-off-by: Ben Westover <me@benthetechguy.net>
2024-10-29 20:45:06 +00:00
TheKodeToad
2368521a9a
Add missing semicolon
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-29 17:54:03 +00:00
TheKodeToad
d49e6187cd
Make requested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-29 17:17:51 +00:00
TheKodeToad
c1c198b84b
Combine if statements
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-29 15:45:30 +00:00
TheKodeToad
e7ff3146fe
Merge pull request #1953 from Trial97/account2
Auto reauthenticate account if expired
2024-10-29 14:08:50 +00:00
Trial97
8e7d84d05b
fix leak on resource search
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-29 00:40:13 +02:00
TheKodeToad
d157159106
Fix license headers and formatting
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 22:29:43 +00:00
TheKodeToad
bd8b30c606
Implement link for InfoFrame::updateWithResource
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 22:17:16 +00:00
TheKodeToad
f56a8feade
Merge pull request #2986 from Trial97/bump_10.x
bump develop to 10
2024-10-28 21:12:53 +00:00
TheKodeToad
f3cae427f1
Fix tests (make them green)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 21:09:45 +00:00
Alexandru Ionut Tripon
51b7abec24
Merge pull request #3005 from Trial97/installed
add installed text to version select
2024-10-28 22:55:40 +02:00
Alexandru Ionut Tripon
d90ed89a30
Merge pull request #2989 from Trial97/what
add extra protection against empty download link
2024-10-28 22:55:21 +02:00
TheKodeToad
ad1d5ddcdf
Revert unwise refactor
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 20:42:59 +00:00
Alexandru Ionut Tripon
2dee936246
Merge pull request #2837 from Trial97/translate_standeard_butons
translate standard buttons
2024-10-28 22:31:47 +02:00
Alexandru Ionut Tripon
a0a74612e1
Merge pull request #1894 from Trial97/maximize
Fixed the maximized option on the newer Minecraft versions
2024-10-28 22:30:09 +02:00
Alexandru Ionut Tripon
fbd3aa36c4
Merge pull request #3006 from Trial97/relase_type
add release_type filer for mod/modpacks
2024-10-28 22:29:38 +02:00
Trial97
94f65f8727
add qassert
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 22:27:40 +02:00
TheKodeToad
2b22a1aebe
Reimplement View Homepage
I removed it for some reason, but now it's back for all pages!

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 20:14:56 +00:00
TheKodeToad
354a0ed46e
Fix column sizes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 18:01:01 +00:00
Trial97
9cdda4377b
remove message box
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 19:19:06 +02:00
TheKodeToad
49044e23de
Fix Export List placement
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 16:21:00 +00:00
TheKodeToad
f57ca1e79e
Add Change Version action to all pages
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 16:07:41 +00:00
Trial97
0f42f3cc5c
Added warning regarding maximized option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 17:19:18 +02:00
Trial97
81c5866fa9
Made sure that the qt version check is in place
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 17:19:18 +02:00
Trial97
1be29076ea
When java disappoints try C++
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 17:19:18 +02:00
Trial97
3c17f606ed
Patched the maximized option on the newer Minecraft versions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 17:19:18 +02:00
Trial97
09a118e85e
expand env from wrapped cmd
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 16:23:33 +02:00
Trial97
c12beb43a0
correctly expand env vars
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 16:23:33 +02:00
Trial97
08f5148a9a
Added mouse interactions for labels in ProgressDialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 16:22:52 +02:00
Trial97
14ad720c58
fix conflict
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 16:21:40 +02:00
Trial97
0ee5665c95
Revert "Removed auto reauthenticate"
This reverts commit 400b518bc2.

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 16:21:39 +02:00
Trial97
bd82737efb
translate standard buttons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 15:46:47 +02:00
Trial97
f75e049675
add release_type filer for mod/modpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 15:36:47 +02:00
Tayou
1f8ce9eb92
Merge pull request #3002 from Trial97/typo2 2024-10-28 14:19:53 +01:00
Alexandru Ionut Tripon
d4bf61da50
Merge pull request #3007 from Trial97/open_source
add open source filter
2024-10-28 15:04:33 +02:00
Tayou
33754db9b9
Merge pull request #3009 from Trial97/order 2024-10-28 14:04:20 +01:00
TheKodeToad
1809858fc7
Ignore .index in ExportPackDialog
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 11:01:30 +00:00
Trial97
0cafac84ac
replace currentData with itemData on QComboBox::currentIndexChanged slots
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 12:54:21 +02:00
Trial97
9eb1ce3ad7
replace unzipping with unpacking
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-28 12:39:26 +02:00
TheKodeToad
6a6fe60a5b
Revert "Use non-mod metadata in ModrinthPackExportTask"
Out-of-scope

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-28 10:29:49 +00:00
Alexandru Ionut Tripon
6338e2b362
Update launcher/ui/widgets/ModFilterWidget.ui
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-10-28 00:34:41 +02:00
txtsd
b1113f4293
Merge pull request #3008 from Trial97/about
change contributors name
2024-10-28 01:01:43 +05:30
Trial97
c4cd7cf6c1
change ZekeZ name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 13:17:58 +02:00
Trial97
11d4d948aa
lock m_instanceExtras
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 12:36:14 +02:00
Trial97
61448a61ea
swap search with filter button for modpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 12:06:45 +02:00
Trial97
f373a5cea0
change contributors name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 11:58:34 +02:00
Trial97
935b2e8fb2
add open source filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 11:56:48 +02:00
Trial97
b1c8ab9350
add installed text to version select
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 10:56:14 +02:00
Trial97
b593ff09e9
fix #3001
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 03:05:56 +02:00
Trial97
44894a29b1
rename snake_case to camelCase
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 03:05:30 +02:00
Trial97
685d3c79ac
fix unzipping typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-27 03:02:13 +03:00
TheKodeToad
b66d6b2812
Unhardcode PREFIXES
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-26 13:24:03 +01:00
seth
5b8ea89092
Merge pull request #2992 from getchoo-contrib/nix/sync 2024-10-25 20:56:44 -04:00
TheKodeToad
13e13ea8fc
Use non-mod metadata in ModrinthPackExportTask
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-25 19:13:41 +01:00
seth
63b10738b2
chore(nix): use self for version
Signed-off-by: seth <getchoo@tuta.io>
2024-10-25 02:35:53 -04:00
seth
a5c554cf6e
chore(nix): sync with nixpkgs
Signed-off-by: seth <getchoo@tuta.io>
2024-10-25 02:35:53 -04:00
seth
6a2ed4a631
Merge pull request #2982 from TheKodeToad/launcher-level-autoinstalljava
Use Launcher log level in AutoInstallJava
2024-10-25 02:23:02 -04:00
seth
b7152e7010
Merge pull request #2963 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.1.2
2024-10-25 02:22:12 -04:00
seth
d766de5fbf
Merge pull request #2980 from Arcitec/flatpak-enhancements
fix: bring back Flathub manifest improvements to the repo
2024-10-25 02:19:09 -04:00
Trial97
8daa1219a5
add extra protection against empty download link
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-25 01:13:05 +03:00
Trial97
3bc40120cd
bump develop to 10
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-25 00:17:34 +03:00
Arcitec
4ce025c0a2 fix: bring back Flathub manifest improvements to the repo
- Brings back all manifest improvements, such as the incredibly important Mojang Java Downloader (without it, the Flatpak doesn't work), and important fixes for Wayland.

Signed-off-by: Arcitec <38923130+Arcitec@users.noreply.github.com>
2024-10-24 17:36:45 +02:00
TheKodeToad
d8702e1357
Use Launcher log level in AutoInstallJava
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-24 12:46:01 +01:00
TheKodeToad
9fe81ff564
Merge pull request #2975 from Ryex/fix/version-page-load-speed
fix: don't hang the ui for a full version load
2024-10-24 11:24:35 +01:00
TheKodeToad
5eff9b0934
Fix column crashes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-24 01:23:11 +01:00
TheKodeToad
8e586c883c
Fix Modrinth update crashing
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-24 01:16:06 +01:00
Rachel Powers
7bd04ae928
fix don't hang the ui for a full version load
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-23 16:23:10 -07:00
TheKodeToad
4a7d624e9b
Merge pull request #2972 from TheKodeToad/fix-clean-env
Fix launching Minecraft in portable Linux
2024-10-23 22:30:42 +01:00
TheKodeToad
92a906e0d4
Move everything in CheckUpdateTask::Update
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-23 14:58:52 +01:00
TheKodeToad
24cecf7b63
Fix compile
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-23 14:42:54 +01:00
TheKodeToad
89a327d363
Merge remote-tracking branch 'upstream/develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-23 14:19:07 +01:00
TheKodeToad
e7cd8fe078
Fix CleanEnviroment()'s usage of stripVariableEntries
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-23 13:44:39 +01:00
Kaiyang Wu
3d82bc37af
javautils: add a filter for detecting Java paths on AOSC OS
Signed-off-by: Kaiyang Wu <origincode@aosc.io>
2024-10-22 11:58:00 -07:00
TheKodeToad
f13e875f0d
Try to fix ModrinthCheckUpdate (not working)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-22 18:46:10 +01:00
Alexandru Ionut Tripon
79439a0217
Merge pull request #2958 from Trial97/crash_QsaveFile
skip parsing open QSaveFile temprary files as resources
2024-10-22 17:38:32 +03:00
renovate[bot]
210d0d8aa2
chore(deps): update actions/cache action to v4.1.2 2024-10-22 13:48:29 +00:00
Trial97
836aebc0d9
fix small leak
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-22 13:43:16 +03:00
Trial97
73d33f93b3
Replaced QSet with QHash
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-22 09:41:00 +03:00
Trial97
562c301326
skip QSaveFile temprary files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-22 01:22:31 +03:00
Alexandru Ionut Tripon
a43ebefc97
Merge pull request #2954 from Trial97/skin_warn
do not try to import skin if path is empty
2024-10-22 00:14:16 +03:00
Alexandru Ionut Tripon
69028969f1
Update launcher/ui/dialogs/skins/SkinManageDialog.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-10-21 22:59:51 +03:00
Alexandru Ionut Tripon
671d5270eb
Merge pull request #2953 from TheKodeToad/portable-fix
Fix removing portable.txt on Linux portable build
2024-10-21 22:44:44 +03:00
Trial97
9a5b773e69
do not try to import skin if path is empty
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-21 19:28:34 +03:00
TheKodeToad
f3f4c44620
Fix removing portable.txt on Linux portable build
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-21 16:30:08 +01:00
TheKodeToad
b049e92697
Merge pull request #2947 from Trial97/fix_initial_setup
do not require java if auto-download is enabled
2024-10-21 15:57:47 +01:00
Tayou
ea703ba26e
Merge pull request #2948 from TheKodeToad/vc-redist-norestart 2024-10-21 16:54:18 +02:00
TheKodeToad
78e24962f9
Fix /norestart
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-21 14:41:48 +01:00
Trial97
fcadbbb739
do not require java if auto-download is enabled
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-21 16:17:48 +03:00
Alexandru Ionut Tripon
a8c3a49cb9
Merge pull request #2938 from Trial97/fix_sparkle
fix sparkle signature
2024-10-21 00:05:57 +03:00
Trial97
0586d38e03
fix sparkle signature
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-20 23:53:23 +03:00
ZekeZ
3ac080806d
Merge pull request #2831 from Trial97/fix_login
split the auth loading screen
2024-10-21 00:14:36 +10:00
seth
38e0e0cb73
Merge pull request #2935 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-10-20 02:11:26 -04:00
github-actions[bot]
0501c1e17a chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
  → 'github:NixOS/nixpkgs/4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0?narHash=sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c%2BcHUJwA%3D' (2024-10-18)
2024-10-20 00:25:22 +00:00
Alexandru Ionut Tripon
417bb3564d
Merge pull request #2933 from getchoo-contrib/flatpak/jdks
Don't bundle JREs in Flatpak
2024-10-19 22:33:05 +03:00
Alexandru Ionut Tripon
e43836a271
Merge pull request #2932 from getchoo-contrib/nix/enable-tests
Enable checks in Nix package
2024-10-19 22:32:59 +03:00
Alexandru Ionut Tripon
9a161a0335
Merge pull request #2930 from Trial97/fixes
Fix tests segfault
2024-10-19 22:32:51 +03:00
Trial97
2d234b127b
make sure that tests are only disabled fro cmark
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-19 22:07:31 +03:00
Rachel Powers
464c7c1d4d
Merge pull request #2929 from Trial97/https
Replace http with https on skins
2024-10-19 12:00:52 -07:00
Trial97
2030041fcc
Fix tests segfault
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-19 21:42:14 +03:00
seth
01721b593b
fix(flatpak): run tests for launcher
Signed-off-by: seth <getchoo@tuta.io>
2024-10-19 12:40:15 -04:00
seth
0bae14999f
chore(flatpak): don't bundle JREs
After https://github.com/PrismLauncher/PrismLauncher/pull/2069, JREs can
be managed at runtime. This is great for the Flatpak, as previously
*all* JREs had to be installed and could not be updated independently of
the launcher's Flatpak. It also makes using unsupported Java versions
easier as the launcher can download any version in the sandbox

We don't need to include these anymore

Signed-off-by: seth <getchoo@tuta.io>
2024-10-19 12:40:15 -04:00
seth
522d105dbe
fix(nix): enable checks
Signed-off-by: seth <getchoo@tuta.io>
2024-10-19 12:32:36 -04:00
Trial97
7519c63f2e
Replace http with https on skins
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-19 01:11:27 +03:00
timoreo
f60d6e4d48
Merge pull request #2917 from Trial97/asan_log
fix heap-use-after-free in modrinth creation task
2024-10-18 12:09:24 +02:00
Alexandru Ionut Tripon
43eb27b695
Merge pull request #2916 from Ryex/fix/progress_dialog_use_after_free
fix: ensure all connections to the ProgressDialogs's Task the dialog made are disconnected
2024-10-15 08:59:12 +03:00
Trial97
ac13579b99
fix heap-use-after-free in modrinth creation task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-14 11:10:54 +03:00
Rachel Powers
a108b5b420
fix: ensure all connections to the ProgressDialogs's Task the dialog made are dissconnected
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-14 00:45:45 -07:00
Alexandru Ionut Tripon
f239f4c17c
Merge pull request #2914 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-10-13 22:46:00 +03:00
Alexandru Ionut Tripon
5685bc3407
Merge pull request #2913 from archessmn/fix/custom-command-tab-order
Fix tab order on custom command inputs
2024-10-13 09:49:13 +03:00
Alexandru Ionut Tripon
bd01c47dc9
Merge pull request #2906 from TheKodeToad/no-recursive-remove-on-update
Prevent directories from being removed on instance update
2024-10-13 09:48:27 +03:00
github-actions[bot]
3c836ece71 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bc947f541ae55e999ffdb4013441347d83b00feb?narHash=sha256-NOiTvBbRLIOe5F6RbHaAh6%2B%2BBNjsb149fGZd1T4%2BKBg%3D' (2024-10-04)
  → 'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
2024-10-13 00:24:52 +00:00
Mia Moir
3a1c06de02
fix: Tab order on custom command inputs
The tab order on the custom command UI in the instance settings is off, it goes 0 -> 2 -> 1, This re-orders the ui file to fix the order the inputs are in.

Signed-off-by: Mia Moir <63592337+archessmn@users.noreply.github.com>
2024-10-12 23:47:58 +01:00
Alexandru Ionut Tripon
ef0cb88dd3
Merge pull request #2907 from Ryex/fix/icon_cache_stack_overflow
Prevent infinite recursion when mod icon load fails
2024-10-12 12:21:09 +03:00
Alexandru Ionut Tripon
0b624a43d6
Merge pull request #2908 from Trial97/remove_client
remove client overrides instead of double deleting the normal ones
2024-10-12 00:49:57 +03:00
Trial97
97f4ead0fb
remove client overrides instead of double deleting the normal ones
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-12 00:19:54 +03:00
Alexandru Ionut Tripon
78ceae9c17
Merge pull request #2887 from Trial97/filters_modpack
Add filters for modpack search
2024-10-12 00:07:14 +03:00
TheKodeToad
72cfad8fee
Continue deleting before failing
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-11 21:35:13 +01:00
Rachel Powers
09c9da268f
fix: prevent inf recursion when mod icon load fails; cut max pixmapcache to 1/4 previous value
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-11 13:26:20 -07:00
TheKodeToad
2bc6ae9756
Prevent directories from being removed on instance update
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-11 19:53:28 +01:00
Tayou
0c4c86c41f
Merge pull request #2900 from TheKodeToad/log-utf8
Use UTF-8 to decode logs on Java 18 or newer
2024-10-11 19:10:55 +02:00
Edgars Cirulis
0beaa94311
ci: uprev qt install action to v4
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-10-10 15:26:36 +03:00
Edgars Cirulis
b39098dbc5
ci: fix qt-6.8 workflow
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-10-10 15:26:19 +03:00
Edgars Cirulis
5b6d551650
chore: update Qt to 6.8.0
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-10-10 03:45:35 +03:00
TheKodeToad
98adcc60a3
Use UTF-8 to decode logs on Java 18 or newer
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-09 17:15:53 +01:00
TheKodeToad
909114bf2a
Change LaunchTask to only accept MinecraftInstance
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-09 15:07:09 +01:00
txtsd
2abbcdfa6f
Merge pull request #2896 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.1.1
2024-10-09 13:01:15 +05:30
renovate[bot]
093313e591
chore(deps): update actions/cache action to v4.1.1 2024-10-09 07:14:47 +00:00
Alexandru Ionut Tripon
c72cce6572
Merge pull request #2897 from Trial97/fix_crash
fix crash when no resorce version is available
2024-10-09 08:37:22 +03:00
TheKodeToad
4b66320f63
Move x-prism-launcher to unnamed table for consistency
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-08 22:51:03 +01:00
TheKodeToad
a76f37760c
Fix log spam when opening files from older versions
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-08 22:30:50 +01:00
Trial97
d31c947b36
fix crash when no resorce version is available
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-08 22:02:38 +03:00
seth
e2b346fc53
Merge pull request #2888 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.1.0
2024-10-08 13:15:05 -04:00
seth
7c45f88769
Merge pull request #2883 from PrismLauncher/renovate/cachix-install-nix-action-30.x
chore(deps): update cachix/install-nix-action action to v30
2024-10-08 13:14:47 -04:00
seth
acd4dceafa
Merge pull request #2890 from arnfaldur/patch-1
Keep libGLU in Flatpak
2024-10-08 13:14:18 -04:00
Trial97
df9f54454a
removed static functions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-08 19:19:03 +03:00
TheKodeToad
538815e033
Merge remote-tracking branch 'upstream/develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-08 17:16:10 +01:00
TheKodeToad
3fae659b30
Merge remote-tracking branch 'upstream/develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-08 17:15:42 +01:00
Trial97
5bd5627a96
extended the modrinth search and applied the suggested change
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-08 15:06:50 +03:00
TheKodeToad
a200fca45c
Merge pull request #2869 from Edgars-Cirulis/patch-1
chore: update Qt to 6.7.3
2024-10-08 12:36:11 +01:00
Alexandru Ionut Tripon
dc1f56e108
Merge pull request #2865 from Ryex/nsis_vc_redist
add vc_redist as a NSIS install section
2024-10-08 14:09:22 +03:00
Trial97
6e5f616ced
move checkMcVersions to Filter struct
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-07 00:21:28 +03:00
Alexandru Ionut Tripon
1eee5c924b
Merge pull request #2891 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-10-06 23:21:16 +03:00
Alexandru Ionut Tripon
999dec18dd
Merge pull request #2893 from PrismLauncher/ftb-private-no-retry
Disable retry for private pack fetch
2024-10-06 23:20:14 +03:00
TheKodeToad
d5990cca43
Disable retry for private pack fetch
This is already handled with a dialog asking whether you want it to be removed.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-10-06 13:51:36 +01:00
github-actions[bot]
03294f0000 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1925c603f17fc89f4c8f6bf6f631a802ad85d784?narHash=sha256-J%2BPeFKSDV%2BpHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI%3D' (2024-09-26)
  → 'github:NixOS/nixpkgs/bc947f541ae55e999ffdb4013441347d83b00feb?narHash=sha256-NOiTvBbRLIOe5F6RbHaAh6%2B%2BBNjsb149fGZd1T4%2BKBg%3D' (2024-10-04)
2024-10-06 00:24:57 +00:00
arnfaldur
f7bd76c7d4
flatpak: don't cleanup libGLU
The mod AAA Particles (found in the modpack Prominence II RPG) fails to start due to a missing `libGLU.so.1` file.
Removing this cleanup command fixes the issue and makes the modpack run without issue.

I reproduced the issue at the head of the develop branch, with and without the change. No other issue was detected by adding the library, and I could not find the initial justification for removing it.

Signed-off-by: arnfaldur <a.arnaldur+git@gmail.com>
2024-10-05 17:58:53 +00:00
renovate[bot]
cc0c9d208d
chore(deps): update actions/cache action to v4.1.0 2024-10-04 22:22:10 +00:00
Trial97
859fac604b
add modrinth modpack filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-04 17:06:47 +03:00
Rachel Powers
a61c93bede
Update .github/workflows/build.yml
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-04 07:06:19 -07:00
Rachel Powers
023aa18e85
ci: NSCurl only needed on MSVC
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-03 23:14:29 -07:00
Rachel Powers
63172540fb
fix: nisi needs !include "x64.nsh" now. also, there were some broken varible
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-03 22:38:30 -07:00
Rachel Powers
bcb1d456d4
fix: version NSCurl plugin in workflow, detect and use arm64 vc_redist for arm64
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-10-03 21:56:19 -07:00
renovate[bot]
010678da53
chore(deps): update cachix/install-nix-action action to v30 2024-10-03 13:46:28 +00:00
Trial97
dfe3cd849d
add curseforge modpack filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-02 01:06:45 +03:00
Alexandru Ionut Tripon
44b4262f3c
Merge pull request #2862 from PrismLauncher/renovate/cachix-install-nix-action-29.x
chore(deps): update cachix/install-nix-action action to v29
2024-10-01 14:04:55 +03:00
Alexandru Ionut Tripon
2539aa42da
Merge pull request #2851 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-10-01 14:04:28 +03:00
timoreo
62f19a6ac9
Merge pull request #2863 from Trial97/fix_resource_search_equal 2024-10-01 11:41:11 +02:00
timoreo
c57e26cf57
Merge pull request #2874 from Trial97/modpack_equal 2024-10-01 11:40:42 +02:00
timoreo
1b58645c52
Merge pull request #2857 from Trial97/translation_warnings 2024-10-01 10:20:56 +02:00
Trial97
946e791d39
sync modpack search field
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-01 08:53:27 +03:00
Trial97
5ea2dece54
fix search term not remaining the same between providers on resource download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-01 08:52:07 +03:00
Trial97
0eefa52dbc
fix some transtaions warnings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-10-01 08:51:06 +03:00
Trial97
b676a67b3c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_login 2024-10-01 08:49:03 +03:00
Alexandru Ionut Tripon
fa92e6bd29
Merge pull request #2859 from Trial97/packwiz_prefix
add prefix to non-standard packwiz fields
2024-10-01 08:23:10 +03:00
renovate[bot]
79be2fc062
chore(deps): update cachix/install-nix-action action to v29 2024-10-01 00:32:42 +00:00
seth
974c89b9c3
Merge pull request #2843 from getchoo-contrib/ci/fix-nix
Fix Nix CI
2024-09-30 20:32:08 -04:00
seth
38fa2e0cd4
style: format with clang-format
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:32:55 -04:00
seth
988ef32019
fix(nix): don't write to files in formatting check
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:32:50 -04:00
seth
bf432b5514
chore(nix): use cachix for binary cache
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:25:58 -04:00
seth
68bf500f7e
chore: add nix reformat to .git-blame-ignore-revs
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:25:58 -04:00
seth
5adca58337
ci: add nix job
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:25:56 -04:00
seth
2663ac5405
build(nix): add debug builds
This will lead to build times on par with our other CI jobs, as now
we're not always building for release

Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:18:20 -04:00
seth
732008db20
ci: drop garnix
Signed-off-by: seth <getchoo@tuta.io>
2024-09-30 16:18:17 -04:00
Tayou
a63451212f
Merge pull request #2867 from turret-dev/turret/tmpdir_noexec_jvmarg_noannoy
fix: don't annoy when java tmpdir jvmarg is set & /tmp is noexec
2024-09-29 09:07:25 +02:00
github-actions[bot]
c899043816 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f?narHash=sha256-IiA3jfbR7K/B5%2B9byVi9BZGWTD4VSbWe8VLpp9B/iYk%3D' (2024-09-11)
  → 'github:NixOS/nixpkgs/1925c603f17fc89f4c8f6bf6f631a802ad85d784?narHash=sha256-J%2BPeFKSDV%2BpHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI%3D' (2024-09-26)
2024-09-29 00:25:33 +00:00
Rachel Powers
ed15a28eb3
fix : baking the redist into the installer breaks GPL, download at runtime instead
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-28 14:58:13 -07:00
Edgars Cīrulis
a897b012d9
chore: update Qt to 6.7.3
Only bug fixes no new / breaking changes 

Signed-off-by: Edgars Cīrulis <edgarsciruliss@gmail.com>
2024-09-28 12:11:25 +03:00
Rachel Powers
00f4221a83
reorg MSVC set(CMAKE_INSTALL_SYSTEM_RUNTIMES_LIBS_SKIP true) call
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-27 19:16:50 -07:00
Mason Rocha
b9c19fd3f7
fix: don't annoy when java tmpdir jvmarg is set & /tmp is noexec
Signed-off-by: Mason Rocha <mrocha@turretllc.us>

Got annoyed, didn't want to see it anymore.

Java tmpdir noexec warning modified to include information about
possible remedies available
2024-09-27 16:42:59 -05:00
Rachel Powers
8fa4467a36
use /norestart with redist install
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-27 13:29:00 -07:00
Rachel Powers
c5daca3b01
include vc_redist in portable build
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-27 00:57:28 -07:00
Rachel Powers
37d3b2a4f6
prevent the unauthorised reditribution of MSVC CRT files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-27 00:49:00 -07:00
Rachel Powers
2dc6f7504b
add vc_redist as a NSIS install section
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-27 00:18:35 -07:00
Alexandru Ionut Tripon
b9a6c13d47
Merge pull request #2861 from Cartrigger/FixStringCases
Fix case for Java strings
2024-09-26 20:35:14 +03:00
Cart
6475dc5786 Lots of J's for Java needed to be uppercased 2024-09-26 01:58:21 -04:00
Trial97
1b2e9b95e2
add prefix to non-standard packwiz fields
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-25 21:17:44 +03:00
seth
3e60713257
Merge pull request #2838 from Trial97/view_log
Always display Minecraft log tab
2024-09-24 20:00:54 -04:00
seth
48904c0d66
Merge pull request #2806 from Trial97/technic_client
Add Technic client ID
2024-09-24 19:55:21 -04:00
QazCetelic
f641f3acda Refactoring
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-24 12:32:49 +02:00
QazCetelic
b675406b1a Split set creation into a separate function for readability
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-24 10:16:26 +02:00
QazCetelic
a58e81d744 snake_case to camelCase
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-24 09:58:47 +02:00
Alexandru Ionut Tripon
4a40b53e5f
Merge pull request #2845 from Trial97/typo
fix updater typo
2024-09-22 19:09:40 +03:00
TheKodeToad
4a5749f4d9
Merge pull request #2844 from Trial97/fix_modrith_update
fix folder duplication for modrinth
2024-09-22 11:28:19 +01:00
Trial97
9567d763c1
fix java archive typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-21 22:17:44 +03:00
Trial97
3e1cf6b2a7
fix updater typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-20 16:58:22 +03:00
Trial97
1243328876
fix folder duplication for modrinth
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-20 16:53:36 +03:00
Trial97
77463c6d33
display minecraft log before instance run
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-18 21:17:15 +03:00
timoreo
dc67807894
Merge pull request #2825 from Trial97/skin_fix 2024-09-17 08:50:19 +02:00
Alexandru Ionut Tripon
926a6bc72a
Merge pull request #2583 from Trial97/metadata2
Generate updater metadata for mods added/updated using modpack updater/installer
2024-09-17 08:45:09 +03:00
Alexandru Ionut Tripon
d06f0529a0
Merge pull request #2830 from Trial97/login_wizard_retry
Show login dialog again if account login fails
2024-09-17 08:44:41 +03:00
Alexandru Ionut Tripon
53c3d99bdd
Merge pull request #2828 from Trial97/cmake_fields
Allow configuring more URLs through CMake
2024-09-17 08:44:24 +03:00
Alexandru Ionut Tripon
c57b1d4227
Merge pull request #2820 from Trial97/mac_java
Add extra step to macos java install
2024-09-17 08:44:09 +03:00
Tayou
1b00d61587
Merge pull request #2819 from Trial97/java_dir
add open java folder action
2024-09-16 20:41:34 +02:00
Trial97
3ca67cc388
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2 2024-09-16 20:08:43 +03:00
Trial97
2fd8685894
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into java_dir 2024-09-16 20:08:20 +03:00
Trial97
0af639c20b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_login 2024-09-16 20:07:18 +03:00
Trial97
7438c71fdd
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into login_wizard_retry 2024-09-16 20:06:50 +03:00
Trial97
b4ecb38ae5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into cmake_fields 2024-09-16 20:06:18 +03:00
Trial97
f36cfaf878
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_fix 2024-09-16 20:05:44 +03:00
Trial97
aab82705cd
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into mac_java 2024-09-16 20:05:18 +03:00
Alexandru Ionut Tripon
914ae6ead6
Use macOS 14 in CI (#2826)
* chore: fix mac CI build

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

* try what the error says

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

* set -DCMAKE_OSX_ARCHITECTURES=x86_64

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

---------

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 13:00:38 -04:00
Trial97
e53a5b3eca
replace TRANSLATIONS_BASE_URL with TRANSLATION_FILES_URL
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 17:51:35 +03:00
Alexandru Ionut Tripon
2e537e55de
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-09-16 17:47:58 +03:00
seth
7eac06cad9
Merge pull request #2829 from Trial97/ask_retry2
disable retry for translation files
2024-09-16 10:15:21 -04:00
Alexandru Ionut Tripon
8d14060ad1
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-09-16 16:46:01 +03:00
seth
8faebe320e
Merge pull request #2807 from Trial97/fix_server_launch
fix server launch
2024-09-16 09:42:54 -04:00
Trial97
580fc32518
split the auth loading screen
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 16:41:16 +03:00
Alexandru Ionut Tripon
db3c7d01fd
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-09-16 16:36:05 +03:00
seth
160d2962e6
Merge pull request #2827 from Trial97/prefix_option
add Launcher_ prefix to enable java option
2024-09-16 09:30:54 -04:00
Trial97
75756b49c3
reshow login dialog in case account login fails
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 16:15:36 +03:00
Trial97
81f30f0360
disable retry for translation files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 15:53:54 +03:00
Trial97
ca6b62c773
move some URLs in cmake
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 15:51:51 +03:00
Trial97
2c2defb266
add Launcher_ prefix to enable java option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 14:30:23 +03:00
Trial97
d2f0d1d8d5
Wrap FS::write in try catch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 12:42:09 +03:00
Trial97
d38e7fa142
Add more null protection for skin management
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-16 12:41:33 +03:00
QazCetelic
e35faa5522 Feedback I
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-15 09:04:23 +02:00
Alexandru Ionut Tripon
bee59c904a
Merge pull request #2773 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-09-15 08:49:07 +03:00
github-actions[bot]
8932a42644 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62?narHash=sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh%2BaRKoCdaAv5fiO0%3D' (2024-08-21)
  → 'github:NixOS/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f?narHash=sha256-IiA3jfbR7K/B5%2B9byVi9BZGWTD4VSbWe8VLpp9B/iYk%3D' (2024-09-11)
2024-09-15 00:24:43 +00:00
Alexandru Ionut Tripon
71dda06276
Merge pull request #5 from QazCetelic/java_dir_disable_alt
Disable folder action instead of hiding it and add additional informa…
2024-09-14 23:27:57 +03:00
QazCetelic
1c6bd74ed8 Disable folder action instead of hiding it and add additional information in the tooltip.
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-14 22:04:18 +02:00
Trial97
0afdce8a31
Add extra step to macos java install
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-14 21:18:20 +03:00
Alexandru Ionut Tripon
6492ad7076
Merge pull request #2813 from Trial97/fix_java_autodetect
fix java autodetect when instance settings are open
2024-09-14 20:19:15 +03:00
Alexandru Ionut Tripon
ad786fb983
Merge pull request #2811 from Trial97/fix_java_abort
fix download java abort being stuck
2024-09-14 20:19:02 +03:00
Alexandru Ionut Tripon
281621cfc0
Merge pull request #2808 from Trial97/fix_java_download_crash
fix java crash on refresh
2024-09-14 20:18:51 +03:00
Trial97
312009513d
add open java folder action
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-14 19:35:43 +03:00
Trial97
5073fc19d4
fix java autodetect when instance settings are open
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-14 00:36:31 +03:00
Alexandru Ionut Tripon
e59f90eca8
Update launcher/ui/pages/global/APIPage.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-09-14 00:19:48 +03:00
Trial97
22ebf7e961
fix download java abort being stuck
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-14 00:13:16 +03:00
Trial97
6706317f20
fix java crash on refresh
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-13 23:26:04 +03:00
Trial97
e18e9b0509
fix server launch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-13 22:57:08 +03:00
timoreo
f46b73acb5
Merge pull request #2789 from Trial97/fix_concurrent_task
Remove all the slowdown code from CocurrentTask
2024-09-13 21:10:30 +02:00
Trial97
40b10ecf30
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_concurrent_task 2024-09-13 21:38:29 +03:00
Trial97
1db122f1a2
fix typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-13 21:37:50 +03:00
Trial97
e34ebc1a0d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2 2024-09-13 21:14:48 +03:00
Alexandru Ionut Tripon
d20f24d96f
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-09-13 21:13:21 +03:00
seth
ef76894587
Merge pull request #2799 from PrismLauncher/renovate/determinatesystems-update-flake-lock-24.x
chore(deps): update determinatesystems/update-flake-lock action to v24
2024-09-13 14:03:42 -04:00
Alexandru Ionut Tripon
f1ef243617
Merge pull request #2803 from Trial97/java_setup
Improve wizzard page
2024-09-13 21:01:02 +03:00
Trial97
973b43ca7a
Add techinc client ID
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-13 20:01:45 +03:00
Trial97
c85294af9d
Improve wizzard page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-13 19:33:24 +03:00
QazCetelic
7b49fd6508 fixes for ci errors IV
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-11 10:07:05 +02:00
QazCetelic
f7f7c4b43e fixes for ci errors III
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-11 09:55:27 +02:00
QazCetelic
506ec64273 fixes for ci errors II
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-11 09:43:45 +02:00
QazCetelic
0a576a0f67 fixes for ci errors
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-11 09:31:16 +02:00
QazCetelic
40c3866f63 clang-tidy formatting
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-11 09:22:28 +02:00
QazCetelic
6b0007291b Added search and support for subdirectories to icon picker
Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-10 22:30:29 +02:00
Alexandru Ionut Tripon
fa68428a90
Merge pull request #2795 from Trial97/fix_mc_launch
Fix launch when no java is loaded
2024-09-10 18:57:09 +03:00
Alexandru Ionut Tripon
b17a688237
Merge pull request #2771 from Kurumi78/develop
Add webp to validIconExtensions
2024-09-10 12:27:02 +03:00
TheKodeToad
e3f78e0205
Merge pull request #2798 from QazCetelic/chronological-screenshot-list
Sort screenshots chronologically in descending order
2024-09-10 09:38:11 +01:00
renovate[bot]
7e49fa0426
chore(deps): update determinatesystems/update-flake-lock action to v24 2024-09-09 19:05:56 +00:00
QazCetelic
e2ef280da9 DCO Remediation Commit for QazCetelic <qaz.cetelic@protonmail.com>
I, QazCetelic <qaz.cetelic@protonmail.com>, hereby add my Signed-off-by to this commit: 7fbf0d3bf3

Signed-off-by: QazCetelic <qaz.cetelic@protonmail.com>
2024-09-09 16:24:40 +02:00
QazCetelic
7fbf0d3bf3 Sort files chronologically in descending order
Signed-off-by: Qaz <dev@malplena.net>
2024-09-09 15:40:31 +02:00
Trial97
2622d3daa9
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_mc_launch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-09 08:11:11 +03:00
TheKodeToad
01015a7345
Merge pull request #2547 from Ryex/fix/component-version-resolusion
Component version resolusion on Minecraft version change
2024-09-08 23:44:07 +01:00
Trial97
14fb54afd9
Fix launch when no java is loaded
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-08 09:10:29 +03:00
Alexandru Ionut Tripon
42eedd1afa
Merge pull request #2784 from Trial97/ensure_desktop
ensure that the shortcut destination exists
2024-09-08 08:52:53 +03:00
Rachel Powers
c2a2e95183
fix: Forge and neoforge conflict with quilt, not fabric twice
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-09-07 21:35:01 -07:00
Trial97
c5592a446a
Remove all the slowdown code from CocurrentTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-06 21:47:35 +03:00
Trial97
166207753c
ensure that the shortcut destination exists
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-09-05 09:36:45 +03:00
Kurumi78
4ea7132bdf
Add webp validIconExtensions
Add webp to list of valid file extensions for Icons

Signed-off-by: Kurumi78 <30587387+Kurumi78@users.noreply.github.com>
2024-08-30 02:08:07 -05:00
timoreo
828acef7e9
Merge pull request #2760 from Trial97/mangohid
fix mangohud detection for absolute path
2024-08-29 06:24:09 +02:00
Alexandru Ionut Tripon
685519d12f
Merge pull request #2758 from Edgars-Cirulis/improvements/instanceview-navigation
Improve left and right cursor navigation in Instances
2024-08-26 23:55:03 +03:00
Alexandru Ionut Tripon
74acb483af
Merge pull request #2757 from Trial97/hash_maybe
Add checksum validator to resource download
2024-08-26 23:54:29 +03:00
Alexandru Ionut Tripon
cf12365358
Merge pull request #2755 from Trial97/fix_java_typo
fix java 64 bit condition
2024-08-26 23:49:35 +03:00
Edgars Cirulis
630df29010
feat: Improve left and right cursor navigation in Instances
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-08-26 22:45:01 +03:00
Trial97
034e2a44ad
update thresholds each time java result changes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-26 17:43:49 +03:00
Trial97
c64b7cd693
fix mangohud detection for absolute path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-26 09:00:46 +03:00
Trial97
430013737a
add checksum validator
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-26 00:27:23 +03:00
Trial97
d55ebefac3
fix java 64 bit condition
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-25 21:42:40 +03:00
maskers
6a12c43c78 fix off by one error
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-25 16:02:32 +03:00
TheKodeToad
43fc9ba932
Confirm Truncate -> Truncation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-25 13:05:08 +01:00
TheKodeToad
23c69e7f94
Merge pull request #2018 from Trial97/coremods
Ensure that core mods tab is visible on correct versions
2024-08-25 13:01:27 +01:00
timoreo
70a0a71f10
Merge pull request #2753 from TheKodeToad/modrinth-hashes-parse-fix 2024-08-25 13:34:54 +02:00
TheKodeToad
ff9fa6aa4f
Stop accepting malformed hashes object
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-25 11:45:45 +01:00
seth
faf9086705
Merge pull request #2750 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-08-25 05:12:32 -04:00
Trial97
465c9498d4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-25 09:50:41 +03:00
Alexandru Ionut Tripon
44f589817f
Merge pull request #2749 from TheKodeToad/theme-bugfixes
Fix system theme detection
2024-08-25 08:58:42 +03:00
Alexandru Ionut Tripon
aa206f4c89
Merge pull request #2748 from TheKodeToad/gentoo-java-perf
Improve Java checking speed by using startsWith for gentoo paths
2024-08-25 08:58:22 +03:00
ZekeZ
1bb7f35ddb
Merge pull request #2751 from Ryex/security/modrith-hash-priority
Prefer stronger hashes from Modrinth
2024-08-25 13:53:04 +10:00
Rachel Powers
5f874330d5
security(modrinth) reorder hash algo priority, prefer stronger hashes.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-08-24 20:24:35 -07:00
github-actions[bot]
96414d7153 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c3aa7b8938b17aebd2deecf7be0636000d62a2b9?narHash=sha256-med8%2B5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c%3D' (2024-08-14)
  → 'github:NixOS/nixpkgs/c374d94f1536013ca8e92341b540eba4c22f9c62?narHash=sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh%2BaRKoCdaAv5fiO0%3D' (2024-08-21)
2024-08-25 00:22:51 +00:00
TheKodeToad
cbdacf81ee
Fix system theme detection
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-24 22:50:51 +01:00
TheKodeToad
d2304b6698
Improve Java checking speed by using startsWith for gentoo paths
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-24 22:13:18 +01:00
Sefa Eyeoglu
fac28a81ae
Merge pull request #2738 from getchoo/nix-omnibus 2024-08-23 10:08:59 +02:00
Trial97
2a86ceb5d6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2 2024-08-23 08:34:15 +03:00
Trial97
575cdb043b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix/component-version-resolusion
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-23 08:29:43 +03:00
Alexandru Ionut Tripon
eae5d70385
Merge pull request #2069 from Trial97/feature/java-downloader
Feature/java downloader
2024-08-23 08:17:15 +03:00
Trial97
92495494ca
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-23 08:16:59 +03:00
Alexandru Ionut Tripon
e4be8f97cd
Merge pull request #2740 from TheKodeToad/themeable-logs
Allow themes to modify log colours
2024-08-23 08:12:34 +03:00
seth
fd14d3e9b0
Merge pull request #2745 from TheKodeToad/fix-java-message
Fix invalid Java path message
2024-08-22 21:33:24 -04:00
seth
11927e9bf2
Merge pull request #2739 from PrismLauncher/renovate/korthout-backport-action-3.x
chore(deps): update korthout/backport-action action to v3.1.0
2024-08-22 21:32:03 -04:00
maskers
762d24bd02 don't mention prism in the middle of the log
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-22 21:44:53 +03:00
maskers
a910337e9d
apply suggestion from code review
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: maskers <97827489+maskersss@users.noreply.github.com>
2024-08-22 21:42:05 +03:00
TheKodeToad
89ed85182c
Fix invalid Java path message
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-22 19:07:15 +01:00
Trial97
5f64d7dc47
update adoptium icon
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-22 20:38:08 +03:00
Trial97
0b05c7cb07
fix bug with buton not updating corectly for java dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-22 18:59:09 +03:00
Trial97
7d9e47ac18
Change major java column name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-22 18:58:38 +03:00
Trial97
aa3a4585ee
Add icons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-22 18:58:04 +03:00
TheKodeToad
2ad34c724e
Make log colours themeable
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-08-21 22:19:50 +01:00
maskers
6d017b5f0b fix formatting
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-21 22:39:27 +03:00
maskers
65f8526152
add a Cancel option
Co-authored-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: maskers <97827489+maskersss@users.noreply.github.com>
2024-08-21 22:14:11 +03:00
renovate[bot]
7472233033
chore(deps): update korthout/backport-action action to v3.1.0 2024-08-21 17:22:09 +00:00
maskers
99bd4a8937
Apply suggestions from code review
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: maskers <97827489+maskersss@users.noreply.github.com>
2024-08-21 19:42:35 +03:00
maskers
cf914526bf add a warning about the log being too large
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-21 15:59:51 +03:00
Trial97
26ae608685
fix initial java dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-21 15:01:42 +03:00
Trial97
da7cc529f0
Enable auto-detect java if java path is not set
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-21 14:54:47 +03:00
seth
99ecab01fc
ci(garnix): explicitly declare systems
as we now create outputs for each system in `lib.systems.flakeExposed`,
we should ensure garnix only builds the systems we officially support

dev shells are also no longer built as they really don't need to be
"built" on the developer's machine in any case; everything should be
cached

Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 04:02:48 -04:00
seth
a49a58bc45
Revert "refactor(nix): nix-filter -> lib.fileset"
This reverts commit 8312713dc2.

See nix#9428. Path coercion like `"${./.}"` in flakes causes the path to
be copied to the store twice; using the `self` argument works around
this. However, as `lib.fileset` doesn't support using `self`, so we need
to go back to `nix-filter`

Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 04:01:32 -04:00
seth
13eedbb7de
doc(nix): prefer packages output
overlays can cause issues we don't run into upstream, especially when
used on stable channels for example. preferring the pure `packages`
output also encourages the use of our binary cache by users, who
probably don't like building the launcher all too much

Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 04:01:32 -04:00
seth
e29ea4efb0
build(nix): add formatting checks
Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 04:01:32 -04:00
seth
0ae421c265
chore(nix): drop flake-parts
The primary goals here include making the flake easier to contribute to
by having it follow the standard boilerplate, while also limiting the
size of our flake.lock to lower the chance of duplicate inputs for users

Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 04:01:30 -04:00
seth
e85b364748
refactor(nix): use final in overlay
this allows to implictly pass `prismlauncher-unwrapped`
it won't have an effect on our package set as directly inheriting from
the scope we create filters out the extra attributes usually introduced
with a scope

Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 03:49:37 -04:00
seth
271c38bc56
doc(nix): update package names and params
Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 03:49:36 -04:00
seth
7a83d0cea0
ci(nix): drop pre-commit-hooks
Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 03:49:36 -04:00
seth
4c81d8c53d
style(nix): format with nixfmt
Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 03:49:36 -04:00
seth
7dff77ca35
style(nix): alejandra -> nixfmt-rfc-style
Signed-off-by: seth <getchoo@tuta.io>
2024-08-21 03:49:36 -04:00
seth
1edfbeec8d
Merge pull request #2732 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-08-20 22:36:33 -04:00
maskers
858f6aa9b8 fix formatting
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-20 22:16:40 +03:00
maskers
e6f30c0ebe fix formatting
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-20 22:14:40 +03:00
maskers
014fc14291 truncate logs for mclo.gs upload to fit 25k line limit
Signed-off-by: maskers <97827489+mskrss@users.noreply.github.com>
2024-08-20 21:53:05 +03:00
timoreo
7f594a342e
Merge pull request #2735 from Trial97/force_load_java 2024-08-20 08:04:21 +02:00
Trial97
002fc71b8d
allways load java list on autodetect
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-20 01:18:37 +03:00
Trial97
ca298d1ed5
add automatic java switch on minecraft version switch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-20 01:08:03 +03:00
Trial97
7a66276838
fix conflicts
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-20 01:07:23 +03:00
Trial97
4d24213aa3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-08-20 00:02:14 +03:00
Trial97
23c06f23c3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix/component-version-resolusion 2024-08-19 22:35:11 +03:00
Alexandru Ionut Tripon
1b756b99bb
Merge pull request #2528 from Trial97/validate_metadata
validate metadata on instance launch
2024-08-19 22:34:13 +03:00
Trial97
38b5ee198a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into validate_metadata 2024-08-18 22:39:46 +03:00
Trial97
6bd8b72f68
fix meta not validating for specific versions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-18 22:38:45 +03:00
Alexandru Ionut Tripon
efac063797
Merge pull request #2729 from Trial97/currentTextChanged
replaced currentTextChanged with currentIndexChanged
2024-08-18 19:00:29 +03:00
TheKodeToad
e9791d6bc1
Merge pull request #2633 from Trial97/refactor_minecraft_update
refactor MinecraftUpdate Task
2024-08-18 11:44:44 +01:00
github-actions[bot]
91d6465d45 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b?narHash=sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI%3D' (2024-08-09)
  → 'github:NixOS/nixpkgs/c3aa7b8938b17aebd2deecf7be0636000d62a2b9?narHash=sha256-med8%2B5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c%3D' (2024-08-14)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/c7012d0c18567c889b948781bc74a501e92275d1?narHash=sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q%3D' (2024-08-09)
  → 'github:cachix/pre-commit-hooks.nix/bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba?narHash=sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc%3D' (2024-08-16)
2024-08-18 00:22:22 +00:00
Trial97
b5bbe93775 Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-17 00:20:40 +03:00
Trial97
b0cd412926 use index instead of currentIndex function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-16 15:41:31 +03:00
Trial97
e6bc61d6d0 add overload for qt5
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-16 14:44:57 +03:00
Trial97
6de026bfcf replaced currentTextChanged with currentIndexChanged
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-16 14:34:28 +03:00
Sefa Eyeoglu
d6a825dd47
Merge pull request #2707 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x 2024-08-12 10:40:26 +02:00
Sefa Eyeoglu
3d4be7ac8c
Merge pull request #2669 from PrismLauncher/update_flake_lock_action 2024-08-12 10:40:00 +02:00
Sefa Eyeoglu
af83fc84a7
Merge pull request #2585 from PrismLauncher/renovate/determinatesystems-update-flake-lock-23.x 2024-08-12 10:39:19 +02:00
Alexandru Ionut Tripon
6b07e8e72d
Merge pull request #2718 from cthbleachbit/develop
mangohud support: MangoHud::getLibraryString should return absolute path
2024-08-12 11:26:30 +03:00
Alexandru Ionut Tripon
d2daacf736
Merge pull request #2716 from Trial97/quickPlaySingleplayer
add setting for quickplay singleplayer
2024-08-12 11:25:25 +03:00
github-actions[bot]
96dad63173 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/9227223f6d922fee3c7b190b2cc238a99527bbb7?narHash=sha256-pQMhCCHyQGRzdfAkdJ4cIWiw%2BJNuWsTX7f0ZYSyz0VY%3D' (2024-07-03)
  → 'github:hercules-ci/flake-parts/8471fe90ad337a8074e957b69ca4d0089218391d?narHash=sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC%2Bx4%3D' (2024-08-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7e7c39ea35c5cdd002cd4588b03a3fb9ece6fad9?narHash=sha256-EYekUHJE2gxeo2pM/zM9Wlqw1Uw2XTJXOSAO79ksc4Y%3D' (2024-07-12)
  → 'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b?narHash=sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI%3D' (2024-08-09)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/8d6a17d0cdf411c55f12602624df6368ad86fac1?narHash=sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY%3D' (2024-07-09)
  → 'github:cachix/pre-commit-hooks.nix/c7012d0c18567c889b948781bc74a501e92275d1?narHash=sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q%3D' (2024-08-09)
2024-08-11 00:22:53 +00:00
Tianhao Chai
c2192cfa98
mangohud support: getLibraryString should return absolute path when possible
Some distros ship MangoHub vulkan layer json with bare shared object name
instead of an absolute path. This breaks environment config as
`MinecraftInstance::createLaunchEnvironment()` seems to require absolute
path of `libMangoHud.so`.

Since we already have `MangoHud::findLibrary()` lying around, use that to
figure out where `libMangoHud.so` really is. In case of a platform that
doesn't support `dlopen()`, fallback to old behavior and return the path
verbatim as it is recorded in vk layer json.

Signed-off-by: Tianhao Chai <cth451@gmail.com>
2024-08-09 14:11:44 -04:00
Trial97
dcca175b36
snake_case to m_camelCase
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-09 11:06:31 +03:00
Trial97
a9c7e95c66
fix widebar action removal
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-08 19:39:32 +03:00
Trial97
c9809fff6d
add setting for quickplay singleplayer
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-08 16:53:26 +03:00
Tayou
b41e730707
Merge pull request #2714 from Kationor/fix-local-installs
Improve Java auto-detection
2024-08-07 18:48:24 +02:00
Kationor
659fa7fbfb
fix/windows: Check registry for per-user java installations
Signed-off-by: Kationor <n96211028@gmail.com>
2024-08-07 18:00:42 +02:00
Sefa Eyeoglu
0215af828d
Merge pull request #2667 from unmojang/evan-goode/nix-sync 2024-08-07 09:18:03 +02:00
Tayou
7a5e4a4293
Merge pull request #2706 from Edgars-Cirulis/develop
Restore connect line for device authorization in MSADeviceCodeStep
2024-08-05 22:08:40 +02:00
renovate[bot]
128827cef5
chore(deps): update hendrikmuhs/ccache-action action to v1.2.14 2024-08-05 20:02:40 +00:00
Edgars Cirulis
ba7391308e
Restore connect line for device authorization in MSADeviceCodeStep
Parent PRs: https://github.com/PrismLauncher/PrismLauncher/pull/2617

Fixes https://github.com/PrismLauncher/PrismLauncher/issues/2705

Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-08-05 22:12:18 +03:00
Alexandru Ionut Tripon
0308710211
Merge pull request #2639 from Edgars-Cirulis/qt672
chore: update Qt to 6.7.2
2024-08-05 14:06:52 +03:00
Trial97
fe23e76714
fix codeql
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-05 12:04:08 +03:00
Trial97
af65eb17cf
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-08-05 11:54:58 +03:00
Alexandru Ionut Tripon
9d684dcb82
Merge pull request #2617 from Trial97/clean_net
remove duplicate code from net folder
2024-08-05 10:56:40 +03:00
Alexandru Ionut Tripon
e4967f8d08
Merge pull request #2694 from Trial97/zip_folder_permissions
ensure minimal folder permissions when extracting files
2024-08-05 10:56:06 +03:00
Alexandru Ionut Tripon
5702b8e3c2
Merge pull request #2692 from srcres258/pr
Fix a typo in comment
2024-08-05 10:55:24 +03:00
Alexandru Ionut Tripon
110efb7259
Merge pull request #2627 from Edgars-Cirulis/build-instructions
readme: build instructions
2024-08-05 10:54:47 +03:00
TheKodeToad
b77dc47c6c
Merge pull request #1526 from Trial97/disablemods
feat:Removed update disabled warning
2024-08-03 15:38:46 +01:00
Trial97
ca5df3ea60
ensure minimal folder permissions when extracting files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-30 01:32:46 +03:00
src_resources
61e62dce1b
Fix a typo in comment
Signed-off-by: src_resources <src.res.211@gmail.com>
2024-07-29 21:07:28 +08:00
Trial97
d5c5f5d4fc
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-24 11:47:45 +03:00
Trial97
2c0b17d107
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-24 11:40:23 +03:00
Trial97
0ac62f9ddf
Recommend java major
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-23 01:41:41 +03:00
Trial97
4928706d8c
Merge branch 'clean_net' of github.com:Trial97/PrismLauncher into clean_net 2024-07-22 22:06:27 +03:00
Trial97
63a380a039
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into clean_net
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-22 22:06:09 +03:00
Alexandru Ionut Tripon
33bf370d17
Update launcher/net/RawHeaderProxy.h
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-07-22 21:51:20 +03:00
Trial97
5d3549a5e9
Add tooltips and fix archive download task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-22 09:18:20 +03:00
Trial97
29a6db171f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-07-22 08:57:31 +03:00
Evan Goode
ff31e88cf8 nix: sync changes from nixpkgs
Brings in changes from the Prism Launcher derivation(s) in nixpkgs, notably
from https://github.com/NixOS/nixpkgs/pull/321851 and
https://github.com/NixOS/nixpkgs/pull/303880

Signed-off-by: Evan Goode <mail@evangoo.de>
2024-07-21 15:47:38 -04:00
Trial97
91d03b34ac
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into validate_metadata 2024-07-21 02:24:30 +03:00
Alexandru Ionut Tripon
6352362907
Merge pull request #2662 from Edgars-Cirulis/ui
ui: swap timeoutSecondsLabel and numberOfManualRetriesLabel order
2024-07-20 11:39:51 +03:00
Edgars Cirulis
fc2d013402
ui: swap timeoutSecondsLabel and numberOfManualRetriesLabel order
fixes: 7a200a337f
conflicted with 6078a771c1

Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-07-20 01:55:23 +03:00
Trial97
c666d060fc
fix merge issue
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-19 17:10:04 +03:00
Trial97
cae1fbc171
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix/component-version-resolusion
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-19 15:59:43 +03:00
Alexandru Ionut Tripon
0041d2a126
Merge pull request #2440 from Trial97/fix_retry_dialog
update retry netjob dialog
2024-07-19 15:47:12 +03:00
Alexandru Ionut Tripon
69c55d90ce
Merge pull request #2558 from Trial97/update_filters
Resolve issue with multiple loaders during mod update
2024-07-19 15:46:15 +03:00
Alexandru Ionut Tripon
ddcaf25149
Merge pull request #2650 from Trial97/help-pages
fix a few missing help pages
2024-07-19 15:45:57 +03:00
Alexandru Ionut Tripon
fcdedc795c
Merge pull request #2660 from benthetechguy/typo
Fix a few typos
2024-07-19 08:50:11 +03:00
Ben Westover
fb10cb5fdf
Fix a few typos
As part of packaging Prism Launcher for Debian, I have run a package linter
called lintian which found a few spelling errors throughout the source.

I am not a fan of contributions that only fix cosmetics like spelling errors,
but Debian encourages forwarding this stuff upstream instead of letting it get
fixed naturally over time.

Signed-off-by: Ben Westover <me@benthetechguy.net>
2024-07-18 22:08:18 -04:00
Tayou
dcc58c8b75
Merge pull request #2655 from Ryex/fix/json-parsing-validator-buffer-reset
fix(net/validators): ensure buffers are cleared and reset;
2024-07-18 09:11:29 +02:00
Rachel Powers
cb65f6dfb5
fix(net/validators): ensure buffers are cleared and reset;
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-07-17 23:05:45 -07:00
Alexandru Ionut Tripon
d7579319e0
Merge pull request #2653 from UnownPlain/patch-1
Fix dead link to Modrinth authentication docs
2024-07-18 08:40:59 +03:00
UnownPlain
e6019ab396
Fix dead link to Modrinth authentication docs
Signed-off-by: UnownPlain <38232575+UnownPlain@users.noreply.github.com>
2024-07-17 23:04:52 -04:00
Trial97
6d425717e9
fix a few missing help pages
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-16 14:42:23 +03:00
Sefa Eyeoglu
84263cd94c
Merge pull request #2644 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-07-14 09:31:41 +02:00
github-actions[bot]
303f3303f6 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9f4128e00b0ae8ec65918efeba59db998750ead6?narHash=sha256-rwz8NJZV%2B387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ%3D' (2024-07-03)
  → 'github:NixOS/nixpkgs/7e7c39ea35c5cdd002cd4588b03a3fb9ece6fad9?narHash=sha256-EYekUHJE2gxeo2pM/zM9Wlqw1Uw2XTJXOSAO79ksc4Y%3D' (2024-07-12)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07?narHash=sha256-F1h%2BXIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4%3D' (2024-06-24)
  → 'github:cachix/pre-commit-hooks.nix/8d6a17d0cdf411c55f12602624df6368ad86fac1?narHash=sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY%3D' (2024-07-09)
2024-07-14 00:22:27 +00:00
Alexandru Ionut Tripon
2df5d4012c
Merge pull request #2635 from Izder456/develop
FIX launcher/java/JavaUtils.cpp to properly autodetect JVM paths on …
2024-07-13 11:16:35 +03:00
Edgars Cirulis
d3ca8864c2
chore: update Qt to 6.7.2
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-07-12 23:54:22 +03:00
izder456
0a543cb66b FIX launcher/java/JavaUtils.cpp to properly autodetect JVM paths on OpenBSD and FreeBSD
Signed-off-by: izder456 <izder456@disroot.org>
2024-07-11 20:32:04 -05:00
Trial97
b989c5a36c
refactor MinecraftUpdate Task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-10 16:24:31 +03:00
Edgars Cirulis
3076e5b961
remove useless BUILD.md orphaned file
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-07-09 22:21:13 +03:00
Edgars Cirulis
e5b1fa1e3a
readme: build instructions
Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
2024-07-09 22:15:52 +03:00
Trial97
061fdc1ada
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into clean_net
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-09 18:36:23 +03:00
Alexandru Ionut Tripon
5f345cedea
Merge pull request #2596 from TayouVR/more-system-themes
Display all system themes in widget theme selector
2024-07-09 12:55:22 +03:00
timoreo
39b4293a62
Merge pull request #1752 from Trial97/fix_duplicate_mod 2024-07-09 10:32:56 +02:00
timoreo
ebd7974fcc
Merge pull request #2416 from Trial97/retry_auth 2024-07-09 09:57:32 +02:00
Trial97
71c7dd1c5d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_duplicate_mod
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-08 21:51:34 +03:00
Alexandru Ionut Tripon
ca2dda5547
Merge pull request #2626 from Trial97/remove_poly
remove some poly mentions from the code
2024-07-08 21:46:39 +03:00
Alexandru Ionut Tripon
aeb7f29a5b
Update launcher/InstanceList.cpp
Co-authored-by: Tayou <git@tayou.org>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-07-08 15:04:27 +03:00
Trial97
fdcd1068f3
remove some poly mentions from the code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-08 14:53:39 +03:00
Alexandru Ionut Tripon
08cab11cfe
Merge pull request #2554 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-07-07 08:01:42 +03:00
github-actions[bot]
e49e2622fc chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8?narHash=sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw%3D' (2024-06-01)
  → 'github:hercules-ci/flake-parts/9227223f6d922fee3c7b190b2cc238a99527bbb7?narHash=sha256-pQMhCCHyQGRzdfAkdJ4cIWiw%2BJNuWsTX7f0ZYSyz0VY%3D' (2024-07-03)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3f84a279f1a6290ce154c5531378acc827836fbb?narHash=sha256-u1fA0DYQYdeG%2B5kDm1bOoGcHtX0rtC7qs2YA2N1X%2B%2BI%3D' (2024-06-13)
  → 'github:NixOS/nixpkgs/9f4128e00b0ae8ec65918efeba59db998750ead6?narHash=sha256-rwz8NJZV%2B387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ%3D' (2024-07-03)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/cc4d466cb1254af050ff7bdf47f6d404a7c646d1?narHash=sha256-7XfBuLULizXjXfBYy/VV%2BSpYMHreNRHk9nKMsm1bgb4%3D' (2024-06-06)
  → 'github:cachix/pre-commit-hooks.nix/0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07?narHash=sha256-F1h%2BXIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4%3D' (2024-06-24)
2024-07-07 00:21:50 +00:00
Trial97
c07260e836
remove duplicate code from net folder
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-07 02:49:27 +03:00
Tayou
330c95e55b
Merge pull request #2612 from Trial97/lib_doc
add docs to Library.cpp
2024-07-06 14:21:28 +02:00
Trial97
a6ae078e7e
add docs to Library.cpp
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-06 09:30:26 +03:00
Trial97
c886111e18
format the code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-06 09:09:54 +03:00
Trial97
a09742a406
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-07-06 01:07:00 +03:00
Alexandru Ionut Tripon
5973c1c45e
Merge pull request #2607 from Kationor/noupdateprompt
Add ModpackUpdatePromptDisabled setting
2024-07-06 00:49:06 +03:00
Alexandru Ionut Tripon
9596e6fb01
Merge pull request #2609 from Trial97/crash_hash
fix crash with hash task
2024-07-06 00:48:19 +03:00
Trial97
5d8d1c4b90
transform hashFile to lambda
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-04 16:47:27 +03:00
Trial97
1dd21a5e4a
fix crash with hash task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-07-04 16:38:40 +03:00
Kationor
83a5fe1984
Rename setting to SkipModpackUpdatePrompt
Was ModpackUpdatePromptDisabled

Signed-off-by: Kationor <n96211028@gmail.com>
2024-07-03 23:13:39 +02:00
timoreo
219de66783
Merge pull request #2567 from Ryex/feat/ungrouped-group-persist-state 2024-07-03 18:21:54 +02:00
Kationor
9b172278f8
Add ModpackUpdatePromptDisabled setting
When creating an instance of a modpack that's already associated with
another instance, the user gets asked if they want to update that
instance instead. This commit introduces a setting to suppress the
prompt and directly create the new instance.

Signed-off-by: Kationor <n96211028@gmail.com>
2024-07-03 12:43:05 +02:00
Tayou
dbcfefca1b fix system theme
Signed-off-by: Tayou <git@tayou.org>
2024-07-01 23:05:54 +02:00
Tayou
d70be5121c tooltips
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 23:27:45 +02:00
Tayou
4f795eb6ef format
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 22:06:01 +02:00
Trial97
0f311453e1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-30 22:54:23 +03:00
Tayou
7104f8909d another oop
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 21:52:26 +02:00
Tayou
a184b26a00 #ifdef, not #if... I'm smort
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 21:47:52 +02:00
Trial97
4b4da8e6f6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_retry_dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-30 22:41:49 +03:00
Tayou
f0c9b52055 oop
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 21:41:37 +02:00
Tayou
046e3588af more system themes initial changes
Signed-off-by: Tayou <git@tayou.org>
2024-06-30 21:35:03 +02:00
Alexandru Ionut Tripon
fc445078cd
Merge pull request #2415 from Trial97/configure_timeout
Add config for transfer timeout
2024-06-30 22:26:19 +03:00
Alexandru Ionut Tripon
7ff173d72a
Merge pull request #2173 from Trial97/dependency_removal
Remove dependencies if review mods is rejected
2024-06-30 22:21:38 +03:00
Alexandru Ionut Tripon
aa24d70a24
Merge pull request #2590 from Trial97/env_dir
control Prism data directory via env variable
2024-06-30 20:45:22 +03:00
Alexandru Ionut Tripon
80243ab554
Merge pull request #2588 from Ryex/fix/updater-support-linux-nonportable
Fix linux non portable update
2024-06-30 07:54:05 +03:00
Alexandru Ionut Tripon
5d9f4f9ee7
Merge pull request #2589 from Trial97/portabledatadir2
make sure updater take into consideration UserData
2024-06-30 07:53:54 +03:00
Alexandru Ionut Tripon
de9df31efa
Merge pull request #2592 from Trial97/import_whitespace
trim input from import page
2024-06-30 07:53:39 +03:00
Rachel Powers
8488d11c69
review suggestions + spelling
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:10 -07:00
Trial97
492c78a570
format the code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-29 20:34:10 -07:00
Rachel Powers
c4cc1cfe4f
Warn about known conflicting modloaders
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:10 -07:00
Rachel Powers
4ed92a95c2
fix segfaults consistently set component problems
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:09 -07:00
Rachel Powers
a85d6cb1f2
move resolution into update actions in task.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:09 -07:00
Trial97
474effe7c7
clang-format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-29 20:34:09 -07:00
Rachel Powers
cf319649f9
fix qt5 lwjgl recommend + spelling
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:09 -07:00
Rachel Powers
a94a081b9c
add better profile logging properly resolve important dependencies
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:08 -07:00
Rachel Powers
ce280c2d04
fix misepellings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:08 -07:00
Rachel Powers
a791e22853
fix(instance components): resolve instance componants when changing minecraft version
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:34:08 -07:00
Rachel Powers
44bf0315ad
feat(components) recomend the correct lwjgl version for the minecraft version
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 20:33:51 -07:00
Trial97
25bae20db4
trim input from import page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-30 00:17:25 +03:00
Trial97
7a0b299be9
control Prism data directory via env variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-29 18:08:28 +03:00
Rachel Powers
ae3e4ed528
fix Build Artifact Checks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 04:29:19 -07:00
Rachel Powers
b4f5c3d241
Update launcher/updater/prismupdater/PrismUpdater.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 04:21:13 -07:00
Rachel Powers
9d1fffff27
reject zsync file as valid build artifact
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 04:21:13 -07:00
Rachel Powers
41bcfb3c07
Fix #2586
non portable linux update technically works even if not genraly a good idea.

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-29 04:21:06 -07:00
Alexandru Ionut Tripon
e6234b5086
Merge pull request #2504 from Trial97/auth3
update login flow
2024-06-29 14:09:49 +03:00
Trial97
eab53c6e42
make sure updater take into consideration UserData
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-29 14:02:09 +03:00
Trial97
f1a4a1e8ee
increase 'or' font size for login dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-29 08:41:35 +03:00
renovate[bot]
63a458ca0c
Update DeterminateSystems/update-flake-lock action to v23 2024-06-28 21:48:40 +00:00
Alexandru Ionut Tripon
196b2b5a3e
Merge pull request #2580 from Trial97/silent_background_update_check
do not display message that no update is avvailable if the check was …
2024-06-28 23:27:00 +03:00
Trial97
ebad11d34f
made sure const method is respected
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 22:04:11 +03:00
Trial97
06add2b0a8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_filters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:55:16 +03:00
Trial97
9d903175ab
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:52 +03:00
Trial97
cf220356b1
fixed panic with recursive eventloop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:28 +03:00
Trial97
715c99636d
fix offline mode for meta
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:28 +03:00
Trial97
0a95b57c0a
moved QEventLoops inside functions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:28 +03:00
Trial97
06e1cab41f
force online in case the offline load failed
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:28 +03:00
Trial97
2af6902b42
validate metadata on launch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:51:26 +03:00
Trial97
4f8b20437f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into auth3 2024-06-28 20:49:37 +03:00
Trial97
515baffb8e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_retry_dialog 2024-06-28 20:48:28 +03:00
Trial97
4ad19cded5
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:45:54 +03:00
Trial97
0b79abcdcd
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:45:30 +03:00
Trial97
90e756c041
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into coremods 2024-06-28 20:41:48 +03:00
Trial97
ddf1ea014c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_duplicate_mod 2024-06-28 20:39:37 +03:00
Alexandru Ionut Tripon
4aa2e5b85d
Merge pull request #2571 from Trial97/account_refresh
refresh account if it should refresh on instance launch
2024-06-28 20:38:05 +03:00
Trial97
55f740453c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods 2024-06-28 20:34:59 +03:00
Trial97
72dd3dfba5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into metadata2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:30:05 +03:00
Trial97
1021222c95
create mod meta information when importing modrinth pack
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 20:28:52 +03:00
Alexandru Ionut Tripon
2cd0223cff
Merge pull request #2578 from Trial97/clang-format
chore:increment clang-tools version
2024-06-28 19:33:18 +03:00
Trial97
09d258670a
create mod meta information when importing curseforge pack
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 19:26:11 +03:00
Trial97
2c02d02214
do not display message that no update is avvailable if the check was done in the background
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 14:11:27 +03:00
Trial97
bac678a7fc
format files outside launcher
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 12:54:37 +03:00
Trial97
147741e616
increment clang-tools version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-28 12:48:52 +03:00
seth
66e6fc04d3
Merge pull request #2520 from Trial97/metadata 2024-06-28 04:57:39 +00:00
Trial97
9d7c36c2fc
made identty certain if the login ended
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-27 15:35:44 +03:00
Alexandru Ionut Tripon
5928bc30e1
Merge pull request #2572 from Trial97/sdkman_macos
fix sdkman on macos
2024-06-27 13:20:10 +03:00
Alexandru Ionut Tripon
68292aff6c
Merge pull request #2574 from ajerick/develop
fix non-persistent user icon selection in NewInstanceDialog.cpp
2024-06-27 08:38:46 +03:00
seth
3f3351f89e
Merge pull request #1892 from Trial97/change_version
Added mod reinstall dialog
2024-06-27 02:12:00 +00:00
Aiden J Erickson
37388e1d48
fix non-persistent user icon selection in NewInstanceDialog.cpp
Signed-off-by: Aiden J Erickson <aiden.j.erickson@gmail.com>
2024-06-26 20:54:04 -04:00
Trial97
3b473b24d8
fix sdkman on macos
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-26 10:16:27 +03:00
Trial97
b1a86bec34
refresh account if it should refresh on instance launch
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-26 09:51:12 +03:00
Alexandru Ionut Tripon
3aaa36a2bc
Merge pull request #2566 from Trial97/mod_warning
add warnning when user closes the resource download dialog with selec…
2024-06-26 08:17:16 +03:00
Alexandru Ionut Tripon
8e2bb21e23
Merge pull request #2570 from porterporter/patch-1
add ~/Library/Java/JavaVirtualMachines/* to java installation detection
2024-06-26 08:16:37 +03:00
porter milton
2958691857
add ~/Library/Java/JavaVirtualMachines/* to java installation detection
Signed-off-by: porter milton <57007161+porterporter@users.noreply.github.com>
2024-06-25 23:16:26 +00:00
Trial97
7c38edc93d
Apply suggestion from code review
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-25 16:10:05 +03:00
Alexandru Ionut Tripon
555c4a7c59
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-06-25 15:33:11 +03:00
Alexandru Ionut Tripon
4e9e7212a6
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-06-25 15:22:30 +03:00
Alexandru Ionut Tripon
52839774e6
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-06-25 15:19:23 +03:00
Alexandru Ionut Tripon
1a66db78a9
Apply text change suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-06-25 15:17:51 +03:00
Rachel Powers
14b09549e1
feat(instanceList) persist "ungrouped" hidden state
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2024-06-25 01:55:54 -07:00
Trial97
2f88da9de2
add warnning when user closes the resource download dialog with selection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-25 09:50:33 +03:00
Alexandru Ionut Tripon
12db1efd20
Merge pull request #2561 from Trial97/fix_curseforge_logo
fix missing curseforge logo
2024-06-25 00:01:03 +03:00
Tayou
6b1c16b01a
Merge pull request #2562 from Trial97/fix_update_message
fix update message
2024-06-24 22:17:48 +02:00
Alexandru Ionut Tripon
1fcad8d427
Merge pull request #1886 from Trial97/time4
Fixed playtime recording
2024-06-24 23:07:41 +03:00
Trial97
096266c141
fix update message
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-24 21:31:26 +03:00
Trial97
73db320bff
fix missing curseforge logo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-24 21:13:21 +03:00
Trial97
00b83efb9a
fix build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-24 20:12:40 +03:00
Trial97
e57c2180da
Resolve issue with multiple loaders during update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-24 03:06:10 +03:00
Trial97
bb48d1ec9d
made sure that the retry dialog is not displayed offline
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-24 00:29:21 +03:00
Trial97
c04031ff00
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_retry_dialog 2024-06-23 23:40:12 +03:00
Alexandru Ionut Tripon
98d68bafeb
Merge pull request #2481 from DioEgizio/qt671
chore: update Qt to 6.7.1
2024-06-23 08:41:02 +03:00
seth
92b9f1a3e3
Merge pull request #2515 from Trial97/size_for_skin
force aspect ratio for skin preview
2024-06-22 19:21:59 -04:00
seth
e0063b1ee7
Merge pull request #2429 from Richard-Rogalski/GENTOOweloveyou
[Linux] Auto-detect Gentoo installed JDKs
2024-06-22 19:14:46 -04:00
seth
d8b47f5c8a
Merge pull request #2466 from PrismLauncher/renovate/determinatesystems-update-flake-lock-22.x
chore(deps): update determinatesystems/update-flake-lock action to v22
2024-06-22 19:11:20 -04:00
Alexandru Ionut Tripon
369d7d83f5
Merge pull request #2542 from leia-uwu/perf/async-print-servers
perf: print api servers asynchronously on instance launch
2024-06-23 01:51:53 +03:00
Alexandru Ionut Tripon
5f1d86d91a
Merge pull request #2553 from TayouVR/tr-file-types-in-dialogs
don't translate file types on file save/open, etc. dialogs
2024-06-23 01:51:27 +03:00
Trial97
2ac89c2378
add more states for account refresh fail
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-23 01:49:37 +03:00
Trial97
b0386a4c2f
added better error handling
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-23 00:47:48 +03:00
Trial97
24aa337a64
fixed offline accounts
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-23 00:27:49 +03:00
Trial97
27ee8374e7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into auth3 2024-06-22 22:54:38 +03:00
Tayou
178bd4a9c3 don't tr() file types on file save/open, etc. dialogs
Signed-off-by: Tayou <git@tayou.org>
2024-06-22 17:28:59 +02:00
leia uwu
c1d0560524
perf: print api servers asynchronously on instance launch
Doing this on the main thread can cause the launcher to freeze for up to
5 seconds when launching an instance on my system
so i moved it to a launch step where it gets all the servers info
asynchronously to print

Signed-off-by: leia uwu <leia@tutamail.com>
2024-06-20 17:58:00 -03:00
Alexandru Ionut Tripon
8014283bf4
Merge pull request #2536 from Trial97/refactor_hash
Refactor hash task
2024-06-18 22:55:32 +03:00
Trial97
888b22b4c7
rename variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 22:36:39 +03:00
Sefa Eyeoglu
8607dd46b5
Merge pull request #2361 from Scrumplex/fix/nix/drop-qt5 2024-06-18 21:32:31 +02:00
Trial97
97147f2d24
fix(nix): drop unsupported Qt 5 package
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 22:31:41 +03:00
Alexandru Ionut Tripon
5f3d3c3294
Merge pull request #2534 from DioEgizio/dataresourceupdate
fix: update datapack and resourcepack versions
2024-06-18 21:06:31 +03:00
DioEgizio
a63842c727 fix: add more datapack formats and clang-format it
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-06-18 18:05:34 +02:00
Trial97
ac8c7baff2
fix tipo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 17:49:07 +03:00
Trial97
9cbdbddb08
made hasing task async
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 17:27:17 +03:00
Trial97
766ddc80e3
refactored hassing task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 16:51:26 +03:00
Alexandru Ionut Tripon
3f68b68691
Merge pull request #2531 from Trial97/relax_fat
relax fat FS filename restrictions
2024-06-18 12:51:22 +03:00
DioEgizio
c07e791d7f chore: clang-format ResourcePack.cpp
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-06-18 10:17:48 +02:00
Alexandru Ionut Tripon
35e195b397
Merge pull request #2533 from Cartrigger/patch-1
Spelling mistake for Minecraft
2024-06-18 10:59:39 +03:00
DioEgizio
6af52c97c2 fix: update datapack and resourcepack versions
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-06-18 09:47:07 +02:00
Cart
c9827f8085
Spelling mistake
in m_column_names and translated it is Miecraft and not Minecraft

Signed-off-by: Cart <81428538+Cartrigger@users.noreply.github.com>
2024-06-17 23:12:07 -04:00
Trial97
a587de8553
relax fat FS filename restrictions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-17 13:35:23 +03:00
Trial97
2fb3e12492
fix auto java install
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 17:54:13 +03:00
Trial97
8d3e6667cd
fix java download tasks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 15:09:49 +03:00
Trial97
94fd02a34f
fix java download button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 14:26:19 +03:00
Alexandru Ionut Tripon
fdd302bc11
Merge pull request #2521 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-06-16 09:00:16 +03:00
github-actions[bot]
8dde773486 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d226935fd75012939397c83f6c385e4d6d832288?narHash=sha256-HV97wqUQv9wvptiHCb3Y0/YH0lJ60uZ8FYfEOIzYEqI%3D' (2024-06-07)
  → 'github:nixos/nixpkgs/3f84a279f1a6290ce154c5531378acc827836fbb?narHash=sha256-u1fA0DYQYdeG%2B5kDm1bOoGcHtX0rtC7qs2YA2N1X%2B%2BI%3D' (2024-06-13)
2024-06-16 00:21:16 +00:00
Trial97
bbf52e3549
renamed dialog and button action
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 01:59:50 +03:00
Trial97
d0584684f2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-06-16 01:17:01 +03:00
Trial97
2108ddcc1d
completly remove metadata on refresh
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 01:16:09 +03:00
Trial97
5fbbdb9707
fix merge issues
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 00:31:31 +03:00
Trial97
c01f3107a4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into change_version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-16 00:18:11 +03:00
Alexandru Ionut Tripon
978e96916d
Merge pull request #1728 from Trial97/filters
feat: add more filters to the mod download dialog
2024-06-16 00:05:42 +03:00
Trial97
f1d1c9e22c
forget sort keys
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-15 11:06:20 +03:00
Trial97
a121bfbb15
add size back to texture view
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-15 10:43:21 +03:00
Trial97
98f8bc526d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-06-15 10:21:53 +03:00
Trial97
d5fb9f0935
force aspect ratio for skin preview
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-15 10:21:21 +03:00
Trial97
8cdaf5d05f
fix tests
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 23:27:27 +03:00
Trial97
cfdf4a9e1f
Merge branch 'develop' of github.com:Trial97/PrismLauncher into feature/java-downloader 2024-06-14 22:50:20 +03:00
Trial97
1a84dc9bca
no need for extra exist check
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 22:47:42 +03:00
Trial97
b872f88617
do not double rename
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 22:46:39 +03:00
Trial97
d2510b851b
mark files as duplicate
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 22:45:15 +03:00
Trial97
2d51008304
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_duplicate_mod 2024-06-14 21:05:11 +03:00
Alexandru Ionut Tripon
3c4eed13a3
Merge pull request #1829 from Trial97/demo
Fixed demo mode
2024-06-14 18:41:02 +03:00
Trial97
9d16557328
simplify constructor
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 16:40:27 +03:00
Trial97
863ebe421c
randomize server port
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 16:38:41 +03:00
Trial97
52490743b4
revert desktop file creation
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 14:16:23 +03:00
Trial97
164d31dcb1
fix win build take#2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 13:09:22 +03:00
Trial97
3db4f4dc2b
fix build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 13:00:59 +03:00
Trial97
8db0b5f421
Register mime-type on the fly
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 12:48:37 +03:00
Trial97
f60d0135f7
made login link to open browser
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 12:47:44 +03:00
Trial97
74a86df53c
update the desktop file
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 12:41:37 +03:00
Trial97
1bd4e60e99
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into auth3 2024-06-14 11:23:52 +03:00
Trial97
c35461b314
remove aspect ratio
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 11:23:14 +03:00
Trial97
014721ca10
remove unused import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 11:19:54 +03:00
Trial97
712fbc3a4b
reverse login layout
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-14 11:15:40 +03:00
Alexandru Ionut Tripon
e9d681a088
Merge pull request #2509 from Scrumplex/fix/flatpak/glfw
fix(flatpak): disable docs for glfw
2024-06-14 08:57:50 +03:00
Sefa Eyeoglu
52338f0e88
fix(flatpak): disable docs for glfw
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-06-13 19:55:50 +02:00
Trial97
6e8dc6ccc0
add mouse interaction on microsoft link
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-13 19:20:32 +03:00
Alexandru Ionut Tripon
3fc5f56ed6
Merge pull request #2405 from Trial97/fix_missing_manifest
Fix portable if manifest is missing
2024-06-13 19:16:12 +03:00
Alexandru Ionut Tripon
ce5b2c54c5
Merge pull request #2439 from Trial97/fix_vanila_technic
fix vanilla technic modpacks
2024-06-13 19:15:43 +03:00
Trial97
f7c3e08ac8
add prismlauncher to plist
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-13 18:27:37 +03:00
Trial97
7fdc65eda8
add tooltip to url button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-13 08:51:11 +03:00
Trial97
2b229d7326
increase qr code size
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-13 00:20:16 +03:00
Trial97
80ea67f7cf
finish login dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-13 00:00:08 +03:00
Alexandru Ionut Tripon
a74bebb358
Merge pull request #2499 from Trial97/imgur3
update imgur upload
2024-06-12 23:45:17 +03:00
Trial97
125fb2eaf2
remove png qr code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-12 19:34:58 +03:00
Trial97
5f5296ef5e
update ui once again
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-12 19:34:19 +03:00
Trial97
bbbe7c879e
update callback
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-12 12:35:02 +03:00
Trial97
df142550fe
update Add account question
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-12 11:55:56 +03:00
Trial97
c4a65dd861
update login flow
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-12 00:34:39 +03:00
Tayou
6b1c4981e7
Merge pull request #2498 from LaoshuBaby/patch-1
fix(SkinManageDialog.cpp): typo
2024-06-10 13:21:51 +02:00
Trial97
c1c182fd0c
update imgur upload
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 12:38:59 +03:00
快乐的老鼠宝宝
1c1e296960
fix(SkinManageDialog.cpp): typo
Signed-off-by: 快乐的老鼠宝宝 <laoshubaby@protonmail.com>
2024-06-10 17:15:38 +08:00
Alexandru Ionut Tripon
7d418a32e7
Merge pull request #2425 from Trial97/win_char
improve invalid path name
2024-06-10 12:11:21 +03:00
Alexandru Ionut Tripon
93a0277479
Merge pull request #2450 from Trial97/remove_search
remove search button
2024-06-10 10:56:54 +03:00
Trial97
2ffabbdc6d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 10:00:52 +03:00
Trial97
11ae169087
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 09:34:48 +03:00
Alexandru Ionut Tripon
95e7f36732
Merge pull request #2054 from Trial97/add_configurable_updater_interval
Made updater interval configurable
2024-06-10 09:22:54 +03:00
Trial97
6607c3bfa4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 09:04:09 +03:00
Trial97
3f0fa54fe8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into retry_auth
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 09:03:04 +03:00
Trial97
e63f25c9e4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_retry_dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 09:01:01 +03:00
Alexandru Ionut Tripon
dc39698c48
Merge pull request #1609 from Trial97/skin_selector
Skin management
2024-06-10 08:43:37 +03:00
Alexandru Ionut Tripon
12e04c412b
Merge pull request #1776 from Trial97/resource_size
feat:added size column
2024-06-10 08:42:29 +03:00
Alexandru Ionut Tripon
154f4811c0
Merge pull request #2166 from Trial97/ftb2
Updated ftb app import instance detection
2024-06-10 00:45:22 +03:00
Trial97
29d32f0d9a
Update size order for folders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-10 00:18:21 +03:00
Trial97
242ddbb7e1
fix size column sorting
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-09 23:53:40 +03:00
Trial97
34e1a5e660
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into resource_size 2024-06-09 22:18:40 +03:00
Trial97
1e0db46728
add a more verbose error message in case user skin import fails
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-09 21:29:56 +03:00
Alexandru Ionut Tripon
6c76ba5163
Merge pull request #1032 from deadmeu/shorten-description
refactor: shorten desktop entry comment field
2024-06-09 20:59:23 +03:00
Trial97
04b2ac2efa
update fail url skin messagebox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-09 20:48:49 +03:00
Trial97
689b76885c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector 2024-06-09 20:13:09 +03:00
Trial97
6a99312df5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-06-09 19:57:16 +03:00
Trial97
ca369ac2b0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-09 19:52:37 +03:00
Alexandru Ionut Tripon
9560f9ed98
Merge pull request #2474 from coolguy1842/develop
simple fix for resizing too small causing an index out of range crash
2024-06-09 16:10:57 +03:00
Alexandru Ionut Tripon
d6a03d3f2c
Merge pull request #1554 from Trial97/instance_copy_progress
updated instance copy
2024-06-09 16:05:11 +03:00
Alexandru Ionut Tripon
3af4c94612
Merge pull request #2390 from Trial97/delete_tmp
Delete instaces tmp diectory on startup
2024-06-09 16:03:51 +03:00
Alexandru Ionut Tripon
55b6490530
Merge pull request #1617 from cullvox/components-resource-pack-fix
added functionality for components in resource pack descriptions.
2024-06-09 16:03:19 +03:00
Alexandru Ionut Tripon
7e5db651fd
Merge pull request #1823 from Trial97/refresh_cats
Added button to refresh themes and catpacks
2024-06-09 16:02:26 +03:00
Alexandru Ionut Tripon
6f6ddc00c8
Merge pull request #2486 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-06-09 16:01:15 +03:00
Alexandru Ionut Tripon
0e996270b7
Merge pull request #2055 from Trial97/show_minecraft_version_modrinth
Display minecraft version if not mentioned for modrinth/curse packs
2024-06-09 15:59:24 +03:00
github-actions[bot]
24cf671370 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/6132b0f6e344ce2fe34fc051b72fb46e34f668e0?narHash=sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY%3D' (2024-05-30)
  → 'github:nixos/nixpkgs/d226935fd75012939397c83f6c385e4d6d832288?narHash=sha256-HV97wqUQv9wvptiHCb3Y0/YH0lJ60uZ8FYfEOIzYEqI%3D' (2024-06-07)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/0e8fcc54b842ad8428c9e705cb5994eaf05c26a0?narHash=sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA%3D' (2024-05-20)
  → 'github:cachix/pre-commit-hooks.nix/cc4d466cb1254af050ff7bdf47f6d404a7c646d1?narHash=sha256-7XfBuLULizXjXfBYy/VV%2BSpYMHreNRHk9nKMsm1bgb4%3D' (2024-06-06)
2024-06-09 00:22:00 +00:00
TheKodeToad
3ef5cd20f4
Merge pull request #2428 from Fourmisain/semeru
add detection for IBM Semeru Java runtime and fix x86 detection on 64 bit Windows
2024-06-07 20:17:20 +01:00
DioEgizio
052ee0d71c chore: update Qt to 6.7.1
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-06-07 15:48:19 +02:00
ZekeZ
39b8451130
Merge pull request #2383 from Trial97/scroll_new_instance
Made Custom New Instance scrollable
2024-06-07 16:37:21 +10:00
Trial97
8ff53e47e8
Merge branch 'develop' of github.com:Trial97/PrismLauncher into feature/java-downloader 2024-06-07 00:22:54 +03:00
Alexandru Ionut Tripon
6e5c41fc8e
Merge pull request #2471 from Trial97/replace_auth_ping
replace auth server ping
2024-06-07 00:18:48 +03:00
Alexandru Ionut Tripon
e961cab352
Merge pull request #1409 from Trial97/import_zip
feat: refactored Instance ImportTask
2024-06-07 00:11:37 +03:00
Trial97
b096ee6a0c
fix file permisions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-06 14:12:55 +03:00
coolguy1842
aeb174fc55 DCO Remediation Commit for coolguy1842 <kian.goslett@protonmail.com>
I, coolguy1842 <kian.goslett@protonmail.com>, hereby add my Signed-off-by to this commit: 448ded2387

Signed-off-by: coolguy1842 <kian.goslett@protonmail.com>
2024-06-06 16:58:12 +10:00
coolguy1842
71b2c4b1fd fix formatting
Signed-off-by: coolguy1842 <kian.goslett@protonmail.com>
2024-06-06 16:32:49 +10:00
coolguy1842
448ded2387 simple fix for resizing too small causing an index out of range crash
Signed-off-by: coolguy1842 <coolguy1842.deport391@passfwd.com>
2024-06-06 16:18:47 +10:00
Trial97
b7008d2880
replace auth server ping
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-06 00:09:08 +03:00
Trial97
45463dcd75
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2024-06-04 11:04:02 +03:00
renovate[bot]
3263a706b4
chore(deps): update determinatesystems/update-flake-lock action to v22 2024-06-03 18:39:15 +00:00
Alexandru Ionut Tripon
080e64faaf
Merge pull request #2346 from SabrePenguin/list-image-append-fix
List image append
2024-06-02 18:53:17 +03:00
Sefa Eyeoglu
a6788a92cf
Merge pull request #2459 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-06-02 08:23:23 +02:00
github-actions[bot]
bbff31bcc0 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/8dc45382d5206bd292f9c2768b8058a8fd8311d9?narHash=sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78%3D' (2024-05-16)
  → 'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8?narHash=sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw%3D' (2024-06-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/47e03a624662ce399e55c45a5f6da698fc72c797?narHash=sha256-9dUxZf8MOqJH3vjbhrz7LH4qTcnRsPSBU1Q50T7q/X8%3D' (2024-05-25)
  → 'github:nixos/nixpkgs/6132b0f6e344ce2fe34fc051b72fb46e34f668e0?narHash=sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY%3D' (2024-05-30)
2024-06-02 00:20:40 +00:00
TheKodeToad
a70aeeea2b
Merge branch 'develop' into list-image-append-fix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-06-01 15:20:21 +01:00
Trial97
83883cadf9
fix qt5 build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 19:30:10 +03:00
Trial97
f350918186
force initial size for the Add Instance dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 19:03:40 +03:00
Trial97
c9c39b8203
fix double borders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 17:47:39 +03:00
Trial97
f7120a4f6f
Made Custom New Instance scrollable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 16:46:46 +03:00
Trial97
f4f0a61bf2
fix vanilla technic modpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 16:15:12 +03:00
Trial97
817ff1ecbd
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into change_version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 10:20:48 +03:00
Alexandru Ionut Tripon
2145f9f0ac
Merge pull request #1847 from Trial97/move_export2
Improvements to modlist export
2024-05-31 09:58:32 +03:00
timoreo
7ab8f8ef54
Merge pull request #2423 from Trial97/fix_time3
fix incorrect launch time
2024-05-31 08:17:07 +02:00
timoreo
da76b72800
Merge pull request #2438 from KernelFreeze/develop
Added support for bcachefs
2024-05-31 08:12:28 +02:00
Trial97
2635d7c3be
replaced grid with vertical layout on all add modpack pages
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-31 09:07:51 +03:00
Trial97
d1286bbe90
add some comments
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 21:54:32 +03:00
Trial97
eaccdca02d
added error message for import skin from user
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 16:21:08 +03:00
Trial97
75fbdc2df5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector 2024-05-30 14:25:51 +03:00
Trial97
44a16c1ca1
fix CI
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 14:20:35 +03:00
Trial97
a7a1b28765
improve invalid path name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 13:49:23 +03:00
Trial97
8704cd8402
remove duplicate proggress bar
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 11:49:09 +03:00
Trial97
e94243f99b
fix blocked mods api
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 09:56:55 +03:00
Trial97
a289e0c849
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_retry_dialog 2024-05-30 09:35:47 +03:00
Trial97
7fed5e9173
Capitalize the mod categories
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 08:51:36 +03:00
Trial97
5e36def18b
remove search button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 00:36:02 +03:00
Trial97
469f051e30
remove search button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-30 00:14:37 +03:00
Alexandru Ionut Tripon
6d60a6f4e3
Merge pull request #3 from TayouVR/filters
fix & clean ResourcePage.ui
2024-05-29 23:58:06 +03:00
Tayou
b8fe93efa3 fix & clean ResourcePage.ui
Qt is cursed.

Signed-off-by: Tayou <git@tayou.org>
2024-05-29 20:00:36 +02:00
Trial97
29444cfe0f
fix win combobox take#2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-29 17:19:15 +03:00
Trial97
660772d4d7
swap buttons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-29 01:06:11 +03:00
Trial97
b256d325f7
fix win combobox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-29 01:03:17 +03:00
Alexandru Ionut Tripon
f332503088
Apply suggestions from code review
Co-authored-by: Tayou <git@tayou.org>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-05-29 00:32:17 +03:00
Sefa Eyeoglu
f34c263964
Merge pull request #2441 from PrismLauncher/renovate/korthout-backport-action-3.x 2024-05-28 18:30:14 +02:00
renovate[bot]
4917287292
chore(deps): update korthout/backport-action action to v3 2024-05-28 14:35:10 +00:00
Trial97
5012178a98
trigger search on filter change
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-28 14:48:03 +03:00
Trial97
3f7847ad34
made ResourcePage elements resizable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-28 14:47:44 +03:00
Trial97
4b52c72629
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-05-27 22:35:38 +03:00
Trial97
59a8b91274
add spacing to retry modal
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-26 16:28:07 +03:00
Trial97
694ea65457
disable retry dialog for logo fetching
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-26 11:13:01 +03:00
Trial97
7a200a337f
update retry netjob dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-26 11:04:41 +03:00
Sefa Eyeoglu
764463ada7
Merge pull request #2436 from PrismLauncher/update_flake_lock_action 2024-05-26 09:29:18 +02:00
Celeste Peláez
f5f32e2c6e
Reformatted FileSystem.h
Signed-off-by: Celeste Peláez <KernelFreeze@users.noreply.github.com>
2024-05-26 01:40:31 -05:00
Celeste Peláez
a2b5ac73ff
Added support for bcachefs
Signed-off-by: Celeste Peláez <KernelFreeze@users.noreply.github.com>
2024-05-26 01:33:22 -05:00
github-actions[bot]
a8712f7126 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/02923630b89aa1ab36ef8e422501a6f4fd4b2016?narHash=sha256-OhysviwHQz4p2HZL4g7XGMLoUbWMjkMr/ogaR3VUYNA%3D' (2024-05-18)
  → 'github:nixos/nixpkgs/47e03a624662ce399e55c45a5f6da698fc72c797?narHash=sha256-9dUxZf8MOqJH3vjbhrz7LH4qTcnRsPSBU1Q50T7q/X8%3D' (2024-05-25)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/fa606cccd7b0ccebe2880051208e4a0f61bfc8c1?narHash=sha256-nacSOeXtUEM77Gn0G4bTdEOeFIrkCBXiyyFZtdGwuH0%3D' (2024-05-16)
  → 'github:cachix/pre-commit-hooks.nix/0e8fcc54b842ad8428c9e705cb5994eaf05c26a0?narHash=sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA%3D' (2024-05-20)
2024-05-26 00:20:28 +00:00
Trial97
eacd7758e9
fix pre-commit hook
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-22 22:49:28 +03:00
Trial97
2b949a8059
improve login account checking
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-22 10:53:24 +03:00
Richard-Rogalski
399071c717 Fix Java auto-detect so it finds Gentoo installed JDKs
Signed-off-by: Richard-Rogalski <rrogalski@tutanota.com>
2024-05-21 11:41:47 -05:00
Fourmisain
23095b70a4
please the pre-commit check
Signed-off-by: Fourmisain <8464472+Fourmisain@users.noreply.github.com>
2024-05-21 13:44:00 +02:00
Fourmisain
dbe4adc034
detect IBM Semeru Certified Edition on linux
Signed-off-by: Fourmisain <8464472+Fourmisain@users.noreply.github.com>
2024-05-21 10:51:37 +02:00
Trial97
f6a7fc215a
update java sorting by taking into consideration release time
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-21 08:33:26 +03:00
Fourmisain
af157c1613
fix x86 detection on 64 bit windows
Signed-off-by: Fourmisain <8464472+Fourmisain@users.noreply.github.com>
2024-05-20 23:13:44 +02:00
Fourmisain
08918be11e
add detection for IBM Semeru Java runtime
Signed-off-by: Fourmisain <8464472+Fourmisain@users.noreply.github.com>
2024-05-20 21:44:35 +02:00
Trial97
7a42fb284a
reverse java version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-20 18:33:40 +03:00
Trial97
0e239dfb2a
fix crash on first display with java downloader off
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-20 18:24:19 +03:00
Trial97
abb628edb3
remove OverrideJava
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-20 18:23:43 +03:00
Sefa Eyeoglu
0ecdceccd2
Merge pull request #2426 from Luk-ESC/develop 2024-05-20 17:18:25 +02:00
Lukas Eschbacher
201c4d2cc6 nix: replace mesa-demos with glxinfo
Signed-off-by: Lukas Eschbacher <eschbacher.lukas@gmail.com>
2024-05-20 14:39:24 +02:00
Alexandru Ionut Tripon
529dc7c6b7
Merge pull request #2412 from DioEgizio/update-upstreamflatpak
fix: update bundled flatpak to switch it to Qt 6
2024-05-19 22:54:35 +03:00
Trial97
428889a68d
removed + from bad chars in filenames
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-19 19:38:06 +03:00
Trial97
1b0e8260ac
fix zero launch time
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-19 15:36:39 +03:00
Sefa Eyeoglu
be66a91295
Merge pull request #2418 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-05-19 10:36:16 +02:00
Trial97
425a6e0919
Fix code format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-19 10:09:34 +03:00
Trial97
d9e2badf71
Rename timeout option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-19 08:54:19 +03:00
github-actions[bot]
d21597cf89 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e?narHash=sha256-yzcRNDoyVP7%2BSCNX0wmuDju1NUCt8Dz9%2BlyUXEI0dbI%3D' (2024-05-02)
  → 'github:hercules-ci/flake-parts/8dc45382d5206bd292f9c2768b8058a8fd8311d9?narHash=sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78%3D' (2024-05-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e4e7a43a9db7e22613accfeb1005cca1b2b1ee0d?narHash=sha256-FCi3R1MeS5bVp0M0xTheveP6hhcCYfW/aghSTPebYL4%3D' (2024-05-11)
  → 'github:nixos/nixpkgs/02923630b89aa1ab36ef8e422501a6f4fd4b2016?narHash=sha256-OhysviwHQz4p2HZL4g7XGMLoUbWMjkMr/ogaR3VUYNA%3D' (2024-05-18)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/2849da033884f54822af194400f8dff435ada242?narHash=sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk%3D' (2024-04-30)
  → 'github:cachix/pre-commit-hooks.nix/fa606cccd7b0ccebe2880051208e4a0f61bfc8c1?narHash=sha256-nacSOeXtUEM77Gn0G4bTdEOeFIrkCBXiyyFZtdGwuH0%3D' (2024-05-16)
• Removed input 'pre-commit-hooks/flake-utils'
• Removed input 'pre-commit-hooks/flake-utils/systems'
2024-05-19 00:20:26 +00:00
Trial97
76a656a017
retry auth step on fail
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 22:44:17 +03:00
Trial97
6078a771c1
add config for transfer timeout
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 21:46:05 +03:00
Alexandru Ionut Tripon
5cf7466e4c
Merge pull request #2404 from PrismLauncher/renovate/cachix-install-nix-action-27.x
Update cachix/install-nix-action action to v27
2024-05-18 19:49:58 +03:00
Alexandru Ionut Tripon
74c2f2599f
Merge pull request #1365 from Trial97/netjob_retry
Ask user to retry if netjob fails
2024-05-18 17:54:12 +03:00
Trial97
5a598db608
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods 2024-05-18 17:40:54 +03:00
Trial97
5bd28e2cc8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-05-18 17:11:41 +03:00
Trial97
e42dfbc391
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_duplicate_mod 2024-05-18 17:02:10 +03:00
Trial97
477d1408ad
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into resource_size 2024-05-18 16:53:14 +03:00
Trial97
83fdfe8091
fix regression
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 16:52:29 +03:00
Trial97
4d21f71ccf
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refresh_cats 2024-05-18 16:34:21 +03:00
Trial97
31d0cad377
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into demo 2024-05-18 16:24:22 +03:00
Trial97
c9c67ef79e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into change_version 2024-05-18 15:27:02 +03:00
Trial97
d77d1f3be3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into coremods 2024-05-18 14:44:33 +03:00
Trial97
b23b53d98d
Add missing header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 14:43:58 +03:00
Trial97
7a5348a179
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-05-18 14:14:31 +03:00
DioEgizio
3ba84cb844 fix: update bundled flatpak
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-05-18 12:57:09 +02:00
Trial97
633489884d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 13:27:31 +03:00
Alexandru Ionut Tripon
3887cfe5df
Merge pull request #1525 from Trial97/waitprofiler
Add wait profiler
2024-05-18 13:17:24 +03:00
Alexandru Ionut Tripon
7b39ec5048
Merge pull request #2377 from dqfan2012/AddSdkmanToMacOs
Adding sdkman java location to MacOs
2024-05-18 13:15:57 +03:00
Trial97
ba947993c2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2024-05-18 12:47:01 +03:00
Tayou
acd23ff163
Merge pull request #2402 from Trial97/refactor_auth
Improve Microsoft login
2024-05-18 11:07:16 +02:00
Alexandru Ionut Tripon
c8ff768d64
Merge pull request #1827 from Trial97/shader
fixed shader packs detection
2024-05-18 12:02:13 +03:00
Trial97
b6d87fc090
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into instance_copy_progress 2024-05-18 11:57:41 +03:00
Trial97
6aaf3a3ed4
Merge branch 'skin_selector' of github.com:Trial97/PrismLauncher into skin_selector 2024-05-18 11:57:06 +03:00
Trial97
2ac6efaa4a
Fix reggresion
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 11:56:43 +03:00
Trial97
23134d4b72
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector 2024-05-18 11:38:18 +03:00
Trial97
318819afc6
Made recommended button default
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-18 11:36:46 +03:00
Alexandru Ionut Tripon
eb0d0450e3
Merge pull request #2382 from Trial97/neoforge_technic
Add neoforge support for technic packs and atlauncher packs
2024-05-18 10:40:45 +03:00
Alexandru Ionut Tripon
0f2736306e
Update launcher/ui/dialogs/skins/SkinManageDialog.ui
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-05-18 10:36:15 +03:00
Trial97
639c6e7f80
Add cancel to Add account dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-17 00:49:00 +03:00
Trial97
78804b26ee
Maybe fix nix
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-17 00:34:39 +03:00
Trial97
75a457ebfa
Add custom page to land after microsoft login
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-17 00:31:04 +03:00
Trial97
ce09f06bda
Fix CI3
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-16 22:16:42 +03:00
Trial97
09c0c11033
Add back device code flow
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-16 21:58:25 +03:00
Alexandru Ionut Tripon
ab5f628453
Update launcher/updater/prismupdater/PrismUpdater.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-05-16 19:45:43 +03:00
Alexandru Ionut Tripon
051e788683
Update launcher/updater/prismupdater/PrismUpdater.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-05-16 19:45:00 +03:00
Trial97
2a58fb0ac5
Remove cobrandid
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-16 17:31:25 +03:00
Trial97
c15f6fcd2a
Fix portable if manifest is missing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-16 17:21:30 +03:00
Alexandru Ionut Tripon
898ee67a07
Update launcher/ui/dialogs/MSALoginDialog.cpp
Co-authored-by: Tayou <git@tayou.org>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-05-16 00:41:07 +03:00
renovate[bot]
1d384544d3
chore(deps): update cachix/install-nix-action action to v27 2024-05-15 19:40:15 +00:00
Trial97
8b051b97fd
Fix CI2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-15 17:54:35 +03:00
Trial97
abedc6a23c
Improve login UI
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-15 17:25:15 +03:00
Trial97
849c3faeb4
Fix CI
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-15 14:07:03 +03:00
Trial97
80d8e3ee06
Remove katabasis
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-15 12:53:06 +03:00
Trial97
c2ed50627d
Added back qt version check
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-14 00:36:35 +03:00
Trial97
e285a85fe8
Removed AccountTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-14 00:21:51 +03:00
Trial97
3336f8107c
Removed AuthRequest and NetAction
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-14 00:21:45 +03:00
Sefa Eyeoglu
93da066aa2
Merge pull request #2398 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-05-12 09:24:48 +02:00
github-actions[bot]
d74926e60d chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5fd8536a9a5932d4ae8de52b7dc08d92041237fc' (2024-05-03)
  → 'github:nixos/nixpkgs/e4e7a43a9db7e22613accfeb1005cca1b2b1ee0d' (2024-05-11)
2024-05-12 00:20:20 +00:00
Trial97
d795ba25e7
Delete instaces tmp diectory on startup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-10 20:55:26 +03:00
Alexandru Ionut Tripon
f15981d786
Merge pull request #2358 from DioEgizio/nosystem-portablewithqt
Remove prebuilt system tarballs on Linux, bundle Qt with Linux portable
2024-05-09 08:22:43 +03:00
Alexandru Ionut Tripon
c703babda9
Merge pull request #2379 from kthchew/fix/blocked-desc
Improve blocked mods dialog (permissions prompt, misc. fixes) on macOS
2024-05-09 08:17:03 +03:00
Alexandru Ionut Tripon
72e9d7b148
Merge pull request #2366 from Trial97/modrint_import2
Fix download packs with invalid characters
2024-05-09 08:16:16 +03:00
Alexandru Ionut Tripon
7bcb1777a1
Merge pull request #2341 from Trial97/image_size
Fix image width in project description
2024-05-09 08:15:35 +03:00
Alexandru Ionut Tripon
a4142573ac
Merge pull request #2311 from SolidStateDj/gen->ui
Rename object name "userInterfaceTab" from "generalTab"
2024-05-09 08:15:15 +03:00
Trial97
a95c1768a7
Add neoforge support for technic packs and atlauncher packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-08 14:16:12 +03:00
Kenneth Chew
e7c95c9ccb
Fix bug where watched directories are not clickable on macOS
Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-05-07 18:57:04 -04:00
Kenneth Chew
4787141698
Improved blocked mods dialog permissions prompt
Targeted to macOS (where `~/Downloads` is considered a sensitive location that the system protects behind a prompt even from non-sandboxed apps)

Signed-off-by: Kenneth Chew <79120643+kthchew@users.noreply.github.com>
2024-05-07 18:30:06 -04:00
Samuel Stidham
adf0cfdebf Fixed the code.
Signed-off-by: Samuel Stidham <dqfan2012@gmail.com>
2024-05-05 20:01:29 -04:00
Samuel Stidham
8e0af16de9 Add extra java locations for MacOs.
Signed-off-by: Samuel Stidham <dqfan2012@gmail.com>
2024-05-05 19:53:18 -04:00
Sefa Eyeoglu
5ce8cd6b84
Merge pull request #2375 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-05-05 08:09:00 +02:00
github-actions[bot]
5d36ed9cf9 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
  → 'github:hercules-ci/flake-parts/e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e' (2024-05-02)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d6f6eb2a984f2ba9a366c31e4d36d65465683450' (2024-04-27)
  → 'github:nixos/nixpkgs/5fd8536a9a5932d4ae8de52b7dc08d92041237fc' (2024-05-03)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/6fb82e44254d6a0ece014ec423cb62d92435336f' (2024-04-24)
  → 'github:cachix/pre-commit-hooks.nix/2849da033884f54822af194400f8dff435ada242' (2024-04-30)
2024-05-05 00:19:38 +00:00
SabrePenguin
0c76e7ab20 Made Regex static and const, removed dist
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-05-01 13:00:55 -04:00
SabrePenguin
ce873e4a0d
Regex correction
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: SabrePenguin <147069705+SabrePenguin@users.noreply.github.com>
2024-05-01 12:49:34 -04:00
SabrePenguin
814f84efab Fixed more clang formatting
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-05-01 00:21:32 -04:00
SabrePenguin
51f4ede797 Fixing CI format issues
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-05-01 00:11:53 -04:00
SabrePenguin
b9c010ffb2 Added patch to all setHtml calls
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-04-30 23:43:36 -04:00
SabrePenguin
e3d64608b9 Switched </ul> to a Regex expression
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-04-30 23:28:50 -04:00
SabrePenguin
cec27fd014 Moved html patch to StringUtils
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-04-30 23:14:26 -04:00
Trial97
30ce8ecb5f
Fixed imports
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-30 23:20:24 +03:00
Trial97
5400c24c73
Ensure valid file names for resource names
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-30 23:04:50 +03:00
Trial97
e068120375
Fix invalid characters filename download on windows
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-30 22:56:40 +03:00
Trial97
48f3ca56ba
Fixed NetRequest not failing on sink init
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-30 22:38:01 +03:00
Sefa Eyeoglu
bfac12604e
Merge pull request #2348 from TheKodeToad/single-click-hint 2024-04-30 07:55:48 +02:00
Sefa Eyeoglu
4dddf62e5e
Merge pull request #2345 from Jan200101/PR/ssdfixmegamescope 2024-04-30 07:54:17 +02:00
Sefa Eyeoglu
603d196dac
Merge pull request #2292 from ColonelGerdauf/develop 2024-04-30 07:53:32 +02:00
TheKodeToad
d2568333ed
Merge pull request #2048 from erikLundstedt/develop
fix a minor spelling error in Mod.cpp
2024-04-29 18:22:22 +01:00
Alexandru Ionut Tripon
9b70606d7e
Merge pull request #2353 from Trial97/fix_curseforge4
Fix CurseForge export caused by utf8 enabled
2024-04-29 19:30:01 +03:00
DioEgizio
cb9a83320c chore: make Qt 5 Linux use official Qt builds
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-04-29 15:51:31 +02:00
DioEgizio
be8ac0b5bb fix: make portable builds bundle Qt
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-04-29 15:08:10 +02:00
Trial97
a5b059ebad
Fixed curseforge export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-29 00:27:15 +03:00
Sefa Eyeoglu
23a38b19f2
Merge pull request #2351 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-04-28 10:42:34 +02:00
github-actions[bot]
890fd0b09c chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/fd16bb6d3bcca96039b11aa52038fafeb6e4f4be' (2024-04-20)
  → 'github:nixos/nixpkgs/d6f6eb2a984f2ba9a366c31e4d36d65465683450' (2024-04-27)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/40e6053ecb65fcbf12863338a6dcefb3f55f1bf8' (2024-04-12)
  → 'github:cachix/pre-commit-hooks.nix/6fb82e44254d6a0ece014ec423cb62d92435336f' (2024-04-24)
2024-04-28 00:20:12 +00:00
Alexandru Ionut Tripon
c14e6a67a8
Merge pull request #2349 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.13
2024-04-27 13:11:07 +03:00
DioEgizio
ccf0b01de7 chore!: make install_bundle work on linux, removed prebuilt tarballs
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-04-27 11:06:08 +02:00
renovate[bot]
46b291d02e
chore(deps): update hendrikmuhs/ccache-action action to v1.2.13 2024-04-27 07:16:54 +00:00
SabrePenguin
5348a90a15
Fix img tag allowing img....
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: SabrePenguin <147069705+SabrePenguin@users.noreply.github.com>
2024-04-26 18:21:17 -04:00
TheKodeToad
e3f55f6865
Use proxy style to force ActivateItemOnSingleClick off
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-26 22:08:45 +01:00
SabrePenguin
a988415028
Pleasing the format check
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: SabrePenguin <147069705+SabrePenguin@users.noreply.github.com>
2024-04-26 16:59:51 -04:00
SabrePenguin
6ecd2c7f31
Update launcher/Markdown.cpp
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: SabrePenguin <147069705+SabrePenguin@users.noreply.github.com>
2024-04-26 16:51:23 -04:00
Alexandru Ionut Tripon
3c9a207192
Update launcher/ui/widgets/VariableSizedImageObject.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-04-26 22:04:50 +03:00
TheKodeToad
60bd8104c4
Merge remote-tracking branch 'upstream/develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-26 01:53:51 +01:00
TheKodeToad
9ce10231ed
Remove redundant event handler
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-26 01:44:43 +01:00
TheKodeToad
803e26a401
Make actions more consistent
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-26 01:40:18 +01:00
Trial97
e1ed317c13
Updated CheckComboBox to look more like QComboBox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-26 00:16:48 +03:00
SabrePenguin
2cfe482298 Formatting and fixed img_pos allowed as negative
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-04-25 16:38:14 -04:00
SabrePenguin
dedea2c05d Added a naive implementation of a <br> inserter
Signed-off-by: SabrePenguin <lknofczynski@gmail.com>
2024-04-25 16:38:14 -04:00
Jan200101
a30c7193a2
remove server side decorations FIXME and document why its needed
Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2024-04-25 17:00:03 +02:00
Trial97
1961e2081f
Removed scroll from version checkbox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-25 00:48:40 +03:00
Trial97
e07e182e95
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-04-24 23:51:43 +03:00
Trial97
e33ddbadd2
Merge branch 'filters' of github.com:Trial97/PrismLauncher into filters 2024-04-24 23:51:33 +03:00
Alexandru Ionut Tripon
be15abda90
Merge pull request #2 from TheKodeToad/better-filters
Rework filter widget
2024-04-24 23:52:08 +03:00
Trial97
c902da4461
Fix image width in project description
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-24 22:02:55 +03:00
Sefa Eyeoglu
e777201187
Merge pull request #2337 from Trial97/java_path 2024-04-24 17:46:08 +02:00
Trial97
5ae98f4f90
Fixed windows bundled java path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-24 15:49:05 +03:00
Trial97
3a4f82ffd1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-24 00:21:39 +03:00
TheKodeToad
f6f0f3b08d
Merge pull request #2333 from Trial97/fix_bundled_java_mac
Fix Minecraft Launcher runtime detection on Windows and macOS
2024-04-23 17:19:37 +01:00
Trial97
10d1720da5
Removed duplicate local
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-23 19:08:14 +03:00
Trial97
73c3794c1b
Changed env variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-23 19:03:19 +03:00
Trial97
dac7027846
Fixed windows appdata path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-23 18:59:31 +03:00
Trial97
dbfd535b38
Fix bundled java detection on mac
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-23 08:52:17 +03:00
Tayou
5eeb3b7768
Merge pull request #2328 from Trial97/appimage
Removed java from appimage
2024-04-22 22:51:57 +02:00
Tayou
8e8877cf8c
Merge pull request #2327 from wagyourtail/patch-1
Add Gradle Toolchains to java scan list
2024-04-21 19:45:02 +02:00
Trial97
1c8d333bfd
Fixed build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-21 15:07:10 +03:00
Trial97
a96f957b02
Removed java from appimage
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-21 14:48:27 +03:00
William Gray
9f4654ede9
Update JavaUtils.cpp
Signed-off-by: William Gray <ruwagray@gmail.com>
2024-04-21 03:35:27 -05:00
Sefa Eyeoglu
de5de6f88f
Merge pull request #2325 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-04-21 09:49:14 +02:00
github-actions[bot]
210841606c chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9' (2024-04-12)
  → 'github:nixos/nixpkgs/fd16bb6d3bcca96039b11aa52038fafeb6e4f4be' (2024-04-20)
2024-04-21 00:19:37 +00:00
Trial97
89230c4f8a
Moved the export modlist out of the sub-menu
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-20 18:01:25 +03:00
Trial97
d88fb266a5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2024-04-20 17:42:58 +03:00
Sefa Eyeoglu
d185f6b856
Merge pull request #2319 from TheKodeToad/neoforge-mods-toml
Support mod info for NeoForge 20.5
2024-04-20 09:49:47 +02:00
TheKodeToad
252406ba3e
Support neoforge.mods.toml
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-19 21:19:36 +01:00
Alexandru Ionut Tripon
a8a234b666
Merge pull request #2294 from Trial97/import_crash
Fixed application close on open file dialog
2024-04-19 00:12:47 +03:00
Alexandru Ionut Tripon
0cae155380
Merge pull request #2304 from Trial97/modrint_import
Fixed modrinth pack update
2024-04-18 23:42:07 +03:00
DylanJOrr
77aead6470 Rename object name "userInterfaceTab" from "generalTab"
The "User Interface" tab was innacurately named "General" which I just
went in and fixed.

This also renamed the object for respective vertical spacers.

Signed-off-by: SolidStateDj <solidstatedj@proton.me>
2024-04-16 16:01:34 -04:00
seth
ef230b7ae4
Merge pull request #2305 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-04-15 18:24:42 +00:00
github-actions[bot]
cb8936ed68 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9e7f26f82acb057498335362905fde6fea4ca50a' (2024-04-06)
  → 'github:nixos/nixpkgs/a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9' (2024-04-12)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/e35aed5fda3cc79f88ed7f1795021e559582093a' (2024-04-02)
  → 'github:cachix/pre-commit-hooks.nix/40e6053ecb65fcbf12863338a6dcefb3f55f1bf8' (2024-04-12)
2024-04-14 00:21:24 +00:00
Trial97
8121a6536b
Fixed pack update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-12 23:45:31 +03:00
Trial97
9f48694eb2
Fixed application close on open file dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-09 08:28:09 +03:00
Alexandru Ionut Tripon
1a994e8aed
Merge pull request #2291 from Trial97/import_crash
Fixed crash on invalid curseforge link on import
2024-04-09 00:19:55 +03:00
ColonelGerdauf
a877f9146d
Change of parameters
To help deal with adjustments

Signed-off-by: ColonelGerdauf <ColonelGerdauf@users.noreply.github.com>
2024-04-07 16:53:53 -04:00
ColonelGerdauf
f91f97e56d
Renaming and removing redundancies
old's do not make sense here

Signed-off-by: ColonelGerdauf <ColonelGerdauf@users.noreply.github.com>
2024-04-07 16:49:39 -04:00
Trial97
9cc58fe62c
Fixed crash on invalid curseforge link on import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-07 21:25:08 +03:00
Trial97
1c3c9d2457
Added the new ftb settings path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-07 13:48:34 +03:00
Sefa Eyeoglu
70f7e0878e
Merge pull request #2287 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-04-07 10:49:43 +02:00
github-actions[bot]
74fcfbae32 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d' (2024-04-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d' (2024-03-29)
  → 'github:nixos/nixpkgs/9e7f26f82acb057498335362905fde6fea4ca50a' (2024-04-06)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/c11e43aed6f17336c25cd120eac886b96c455731' (2024-03-30)
  → 'github:cachix/pre-commit-hooks.nix/e35aed5fda3cc79f88ed7f1795021e559582093a' (2024-04-02)
2024-04-07 00:20:19 +00:00
timoreo
5bc415d512
Merge pull request #2225 from TheKodeToad/zip-utf8 2024-04-06 14:43:35 +02:00
Alexandru Ionut Tripon
a88cc2133c
Merge pull request #2277 from TheKodeToad/invalid-zip-files
Fix unicode characters being invalid in filenames
2024-04-06 15:41:51 +03:00
timoreo
9323dcb9dc
Merge pull request #2247 from Trial97/names 2024-04-06 14:35:06 +02:00
TheKodeToad
9986fe4c45
Fix unicode characters being invalid in filenames
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-06 13:33:13 +01:00
timoreo
363273a17b
Merge pull request #2275 from TheKodeToad/invalid-zip-files 2024-04-06 14:18:13 +02:00
TheKodeToad
8056a2fa46
Replace invalid characters when extracting ZIP
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-05 23:31:18 +01:00
Alexandru Ionut Tripon
44ea8cd885
Merge pull request #2268 from Scrumplex/fix/nix/jdk21
[Linux] Add jdk21 to Nix packages
2024-04-04 20:38:35 +03:00
TheKodeToad
df209c7b44
Merge pull request #2272 from DioEgizio/flatpakupdate
fix: update flatpak manifest for java 21
2024-04-04 17:38:07 +01:00
DioEgizio
e704fbbcec fix: update flatpak manifest for java 21
backport of https://github.com/flathub/org.prismlauncher.PrismLauncher/pull/54 for our CI builds

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-04-04 17:53:30 +02:00
Trial97
3ddcadcdd1
Moved getPathNameInLocal8bit inside FileSystem namespace
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-04 18:01:24 +03:00
Trial97
8ecab305ac
Moved the creation of natives folder in ExtractNatives task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-04 13:49:27 +03:00
Sefa Eyeoglu
0d372d2fbf
fix(nix): add jdk21
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-04-03 21:04:26 +02:00
Trial97
450b73328e
Fixed crash on non-latin instance name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-04-03 19:34:35 +03:00
Sefa Eyeoglu
90097f1309
Merge pull request #2263 from DioEgizio/update-qt670 2024-04-02 21:49:35 +02:00
DioEgizio
5f11b2e77f
chore: update to Qt 6.7.0
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-04-02 19:10:40 +02:00
TheKodeToad
186a6d0c52
Make filters vertical
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-01 17:00:10 +01:00
TheKodeToad
71904b52c1
Make option groups plural
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-01 15:31:18 +01:00
TheKodeToad
71998cb7d9
Rework filter widget
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-04-01 15:22:27 +01:00
Trial97
a0eba1ace6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-03-31 21:15:49 +03:00
Sefa Eyeoglu
a2d28f6872
Merge pull request #2257 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-03-31 11:23:57 +02:00
github-actions[bot]
f1351a143e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/20bc93ca7b2158ebc99b8cef987a2173a81cde35' (2024-03-23)
  → 'github:nixos/nixpkgs/807c549feabce7eddbf259dbdcec9e0600a0660d' (2024-03-29)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/e611897ddfdde3ed3eaac4758635d7177ff78673' (2024-03-20)
  → 'github:cachix/pre-commit-hooks.nix/c11e43aed6f17336c25cd120eac886b96c455731' (2024-03-30)
2024-03-31 00:20:10 +00:00
Alexandru Ionut Tripon
b7835036d4
Merge pull request #2255 from PrismLauncher/renovate/korthout-backport-action-2.x
chore(deps): update korthout/backport-action action to v2.5.0
2024-03-30 13:03:21 +02:00
renovate[bot]
e6a9badb73
chore(deps): update korthout/backport-action action to v2.5.0 2024-03-30 10:42:48 +00:00
Trial97
28cfd31269
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-29 10:30:42 +02:00
Trial97
1930689a27
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into dependency_removal
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-29 10:12:02 +02:00
Trial97
81874f22f7
Fixed tar extract
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-29 00:10:59 +02:00
Trial97
45028ddc61
Added java downloader to CI build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-28 14:58:05 +02:00
Alexandru Ionut Tripon
2012b2c243
Merge pull request #1977 from Trial97/resource_clear
Force clear the resource selection
2024-03-28 14:49:03 +02:00
Alexandru Ionut Tripon
b3abc052b5
Merge pull request #1529 from Trial97/portabledatadir
Added UserData as another posible path for portable builds
2024-03-28 14:48:34 +02:00
Alexandru Ionut Tripon
6b967d3f76
Merge pull request #1822 from Trial97/new_cats
Add random and slideshow modes to Catpacks
2024-03-28 14:48:18 +02:00
timoreo
e4742fdb3d
Merge pull request #2221 from Trial97/fix_curseforge3
Set Forge version correctly when exporting to CurseForge
2024-03-28 09:41:11 +01:00
Tayou
0f178270be
Merge pull request #1786 from Trial97/deps_improve
Make dependency checking more lax
2024-03-27 20:42:26 +01:00
Alexandru Ionut Tripon
93f6315b16
Update CMakeLists.txt
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-03-27 19:34:04 +02:00
Tayou
0e5727315b
Merge pull request #2243 from Trial97/quick-play2
Allow joining servers to work on 1.20 take 2
2024-03-27 18:20:22 +01:00
Trial97
f6572c1244
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into shader 2024-03-27 18:55:34 +02:00
Alexandru Ionut Tripon
e212c019a0
Merge pull request #2209 from chouzz/add-totalPlayTime-ftb-import
Add totalTimePlayed for FTBApp import
2024-03-27 16:20:21 +02:00
Alexandru Ionut Tripon
ccf3a1582d
Merge pull request #2231 from DioEgizio/bzip2-fix
fix: include libbz2.so.1.0
2024-03-27 16:19:53 +02:00
Alexandru Ionut Tripon
5117b21262
Merge pull request #1769 from Trial97/error_codes
added more microsoft error codes
2024-03-27 16:19:31 +02:00
Sefa Eyeoglu
5d72ee1c4f
Merge pull request #1837 from Trial97/import_ok 2024-03-27 10:50:58 +01:00
Trial97
765bdf67c9
Changed the trait name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-27 00:56:12 +02:00
Trial97
23bdccc91d
Merge branch 'develop' of github.com:Trial97/PrismLauncher into quick-play 2024-03-26 23:58:56 +02:00
Sefa Eyeoglu
df0280f52b
Merge pull request #2237 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-03-24 09:35:07 +01:00
github-actions[bot]
3a833b659a chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9af9c1c87ed3e3ed271934cb896e0cdd33dae212' (2024-03-15)
  → 'github:nixos/nixpkgs/20bc93ca7b2158ebc99b8cef987a2173a81cde35' (2024-03-23)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/5df5a70ad7575f6601d91f0efec95dd9bc619431' (2024-02-15)
  → 'github:cachix/pre-commit-hooks.nix/e611897ddfdde3ed3eaac4758635d7177ff78673' (2024-03-20)
• Updated input 'pre-commit-hooks/flake-utils':
    'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
• Updated input 'pre-commit-hooks/gitignore':
    'github:hercules-ci/gitignore.nix/43e1aa1308018f37118e34d3a9cb4f5e75dc11d5' (2023-12-29)
  → 'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394' (2024-02-28)
2024-03-24 00:19:57 +00:00
Trial97
3c12e27226
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2024-03-23 23:53:25 +02:00
Trial97
c0754b80a2
Add resize to last column
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-22 22:17:58 +02:00
Trial97
0b87e4c03b
Fiexed codeql warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-22 12:29:15 +02:00
Trial97
a7029a9e53
Fixed qMin
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-21 20:01:40 +02:00
Trial97
3046822272
Fixed buid
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-21 19:53:52 +02:00
Trial97
1a6dfd04d6
Made tar.gz parser
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-21 19:46:57 +02:00
DioEgizio
37d348e60e fix: include libbz2.so.1.0
fixes portable installs not working on fedora anymore

i did this only on portable builds and not system installs so that it doesn't create problems to people packaging them, as to fix system installs i would have to put it in bin/

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-03-21 10:39:12 +01:00
txtsd
794a60b684
Merge pull request #2224 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.0.2
2024-03-21 05:51:22 +00:00
Trial97
ab7fc2e46c
Fixed archive java download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-21 00:42:04 +02:00
Alexandru Ionut Tripon
93f19bda6e
Update launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-03-21 00:07:06 +02:00
Trial97
1c809f0fb1
Added more logs for auto java install
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-20 17:39:10 +02:00
Trial97
703470e57d
Hopefully fix codeql
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-20 08:24:40 +02:00
Trial97
5f8269f5e1
Small class rename
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-20 00:29:46 +02:00
Trial97
09c2c6793b
Improve UI
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-20 00:15:02 +02:00
TheKodeToad
d72bd70c05
Use UTF-8 for ZIP creation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-03-19 20:34:55 +00:00
renovate[bot]
7ffebcad72
chore(deps): update actions/cache action to v4.0.2 2024-03-19 17:41:32 +00:00
Trial97
ef4e5eb3cf
fixed java build option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-18 19:15:36 +02:00
Trial97
1322277ae6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-03-17 20:57:53 +02:00
Trial97
05487152fe
Fixed curesforge export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-17 20:53:26 +02:00
Sefa Eyeoglu
46616d1c5d
Merge pull request #2219 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-03-17 09:33:55 +01:00
github-actions[bot]
95c3daca59 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0e7f98a5f30166cbed344569426850b21e4091d4' (2024-03-09)
  → 'github:nixos/nixpkgs/9af9c1c87ed3e3ed271934cb896e0cdd33dae212' (2024-03-15)
2024-03-17 00:19:13 +00:00
Sefa Eyeoglu
e288ee6ddd
Merge pull request #2217 from AtomHare/develop 2024-03-16 13:04:18 +01:00
AtomHare
853e4a13ab
fix: Compressing typo
Signed-off-by: AtomHare <29772841+AtomHare@users.noreply.github.com>
2024-03-16 12:44:55 +01:00
Sefa Eyeoglu
3b0564f098
Merge pull request #2183 from PrismLauncher/update_flake_lock_action 2024-03-10 02:45:42 +01:00
github-actions[bot]
75628bf81e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/b253292d9c0a5ead9bc98c4e9a26c6312e27d69f' (2024-02-01)
  → 'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2' (2024-03-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/f63ce824cd2f036216eb5f637dfef31e1a03ee89' (2024-02-24)
  → 'github:nixos/nixpkgs/0e7f98a5f30166cbed344569426850b21e4091d4' (2024-03-09)
2024-03-10 00:19:11 +00:00
chouzz
92113e233a Add totalTimePlayed for FTBApp import
Signed-off-by: chouzz <zhouhua852@gmail.com>
2024-03-09 19:36:40 +08:00
Sefa Eyeoglu
51443fce8b
Merge pull request #2206 from PrismLauncher/renovate/softprops-action-gh-release-2.x 2024-03-08 22:41:23 +01:00
renovate[bot]
03def913ad
chore(deps): update softprops/action-gh-release action to v2 2024-03-08 21:26:24 +00:00
Alexandru Ionut Tripon
634ab279b0
Merge pull request #2204 from PrismLauncher/renovate/cachix-install-nix-action-26.x
chore(deps): update cachix/install-nix-action action to v26
2024-03-08 10:08:00 +02:00
renovate[bot]
6591379a8a
chore(deps): update cachix/install-nix-action action to v26 2024-03-08 07:47:18 +00:00
Trial97
9120848278
Made java downloader as a build option
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-03-06 19:33:14 +02:00
Alexandru Ionut Tripon
a0311780c1
Merge pull request #1866 from Trial97/supported_files
Added all supported files filter
2024-03-06 17:21:56 +02:00
TheKodeToad
27780cc7ae
Add update UI for all resource types
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-03-06 14:56:04 +00:00
Alexandru Ionut Tripon
fd9a4eed9e
Merge pull request #2196 from DioEgizio/bump-9.0
chore: bump develop to 9.0
2024-03-04 17:45:22 +02:00
DioEgizio
d6abcb73c5 chore: bump develop to 9.0
until it's too late lol

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-03-04 16:32:45 +01:00
Tayou
1627f3c63b
Merge pull request #2178 from TheKodeToad/mrpack-fixes
(More) mrpack fixes
2024-03-03 16:30:40 +01:00
Sefa Eyeoglu
0dc2bf2681
Merge pull request #2160 from TheKodeToad/temp_folder 2024-03-03 15:06:52 +01:00
txtsd
ad8c3ca54b
Merge pull request #2177 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4.0.1
2024-03-03 07:52:47 +00:00
TheKodeToad
4101fbb634
Allow multiline description
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-03-01 01:05:03 +00:00
TheKodeToad
138df66355
Fix server side mods being marked as unsupported on client
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-03-01 00:03:20 +00:00
renovate[bot]
e1146455a3
chore(deps): update actions/cache action to v4.0.1 2024-02-29 23:16:59 +00:00
Sefa Eyeoglu
850e48ec67
Merge pull request #2176 from PrismLauncher/renovate/determinatesystems-update-flake-lock-21.x 2024-02-29 19:06:29 +01:00
renovate[bot]
322a8899ed
chore(deps): update determinatesystems/update-flake-lock action to v21 2024-02-29 17:19:39 +00:00
Trial97
41d52dc347
Remove dependencies if review mods is rejected
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-29 00:06:28 +02:00
Trial97
27e76d0dcb
Removed static path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-27 17:11:19 +02:00
Trial97
24fd07861b
format code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-26 22:25:14 +02:00
Alexandru Ionut Tripon
da96172b0b
Apply suggestions from code review
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-02-26 22:00:40 +02:00
Trial97
344398f238
Updated ftb app import instance detection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-26 21:20:14 +02:00
Alexandru Ionut Tripon
fba2ce3c9f
Merge pull request #2161 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-02-25 12:46:12 +02:00
github-actions[bot]
1b89c63ad4 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/6e2f00c83911461438301db0dba5281197fe4b3a' (2024-02-17)
  → 'github:nixos/nixpkgs/f63ce824cd2f036216eb5f637dfef31e1a03ee89' (2024-02-24)
2024-02-25 00:18:54 +00:00
TheKodeToad
c0eb80947d
Fix build on Windows and formatting
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 21:50:51 +00:00
TheKodeToad
fccf857d8e
Fix a mistake
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 19:16:39 +00:00
TheKodeToad
bd0cd82826
Add upper-bound for randomisation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 18:41:45 +00:00
TheKodeToad
df60f5cc96
Add error when staging folder could not be created
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 18:41:35 +00:00
TheKodeToad
9574ebe480
Delete staging on abort
Previously instances would get "stuck" in the folder

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 18:41:35 +00:00
TheKodeToad
6a9f5540d3
Re-randomise key until it does not collide
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-24 13:38:19 +00:00
Trial97
aac6fea724
Updated application manifest
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-22 20:34:34 +02:00
Trial97
726b0ffb3b
Reduced temporary instance folder name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-22 19:40:24 +02:00
Sefa Eyeoglu
1cdb9bd5af
Merge pull request #2141 from crpz1/welcome_label_consistency 2024-02-22 12:36:00 +01:00
seth
02340f19a5
Merge pull request #2152 from PrismLauncher/getchoo-patch-1
ci: fix permissions for backport workflow
2024-02-22 06:15:57 -05:00
seth
f747ae949c
ci: fix permissions for backport workflow
Signed-off-by: seth <getchoo@tuta.io>
2024-02-22 06:13:27 -05:00
Sefa Eyeoglu
bff8d7220d
Merge pull request #2150 from DioEgizio/fix-ghactions-macos 2024-02-22 11:02:09 +01:00
DioEgizio
4421746c0e fix: fix sparkle signing
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-02-22 10:00:21 +01:00
DioEgizio
01c4e6a65c
Merge pull request #2137 from DioEgizio/zink 2024-02-21 17:42:11 +01:00
crpz1
9aa81cf005 Use empty list label code for welcome screen
Signed-off-by: crpz1 <8588315+crpz1@users.noreply.github.com>
2024-02-20 00:21:37 +11:00
Trial97
1c96ae5807
Fixed java refresh button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 22:32:54 +02:00
Trial97
889f604a41
Removed JavaExtraSearchPaths
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 21:38:31 +02:00
Trial97
a288779790
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-02-18 16:49:35 +02:00
Trial97
038d3e4596
Fixed asan complains
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 16:49:10 +02:00
DioEgizio
44327980db feat: add "use zink" button
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-02-18 13:30:55 +01:00
Trial97
b4f3a969b3
Updated strings that are displayed to user
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 14:30:38 +02:00
DioEgizio
99cbb5d0b2
Merge pull request #2110 from Trial97/fix_curseforge 2024-02-18 12:42:09 +01:00
DioEgizio
dbdd96edc3
Merge pull request #2130 from DioEgizio/updates 2024-02-18 12:41:49 +01:00
Trial97
4aafa98852
Improved the message boxes for java wizzard
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 12:58:34 +02:00
Trial97
2f489d1aec
Added auto java options to the java wizzard page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 11:34:54 +02:00
Sefa Eyeoglu
976f5f10cf
Merge pull request #2132 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-02-18 09:38:24 +01:00
Trial97
4c76f7afe0
Made auto java checkbox dependent
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 09:46:44 +02:00
Trial97
a7dad96a70
Added refresh button on managed java list
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-18 09:32:31 +02:00
github-actions[bot]
54bfbe562e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/442d407992384ed9c0e6d352de75b69079904e4e' (2024-02-09)
  → 'github:nixos/nixpkgs/6e2f00c83911461438301db0dba5281197fe4b3a' (2024-02-17)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/0db2e67ee49910adfa13010e7f012149660af7f0' (2024-02-07)
  → 'github:cachix/pre-commit-hooks.nix/5df5a70ad7575f6601d91f0efec95dd9bc619431' (2024-02-15)
2024-02-18 00:18:59 +00:00
Trial97
5232b3cd89
Added some logs and fixed natives extraction
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-17 12:17:00 +02:00
Trial97
ea2adf909d
Added progeess dialog to autodownload java
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-17 11:14:32 +02:00
seth
599a08d309
Merge pull request #2126 from TheComputerGuy96/mr/mangohud-fix
Use absolute path to load MangoHUD library
2024-02-16 19:57:12 -05:00
Trial97
2941307581
Added basic java auto-detect and auto-download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-16 23:42:39 +02:00
DioEgizio
25b69b4c0d fix: fix sparkle hash
:/ oops

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-02-16 17:29:49 +01:00
DioEgizio
94b48e9702 fix: remove cmark_static
cmark 0.31 removed CMARK_STATIC/CMARK_SHARED and replaced it with the native cmake BUILD_SHARED_LIBS

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-02-16 17:06:28 +01:00
DioEgizio
5d36067c74 chore: update libraries
updated qt to 6.6.2
updated some submodules
updated sparkle framework to the latest version

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-02-16 16:21:53 +01:00
Echo J
01180c20e1 Use absolute path to load MangoHUD library
This should finally fix the Arch Linux Java symbol issue with MangoHUD
enabled: https://bugs.archlinux.org/task/77183

Signed-off-by: Echo J <tcg96nougat@gmail.com>
2024-02-14 10:11:49 +02:00
Sefa Eyeoglu
e738b78044
Merge pull request #2112 from TheKodeToad/log-performance 2024-02-13 09:15:47 +01:00
Sefa Eyeoglu
b02eef9358
Merge pull request #2116 from TheKodeToad/use-after-free 2024-02-13 09:14:34 +01:00
TheKodeToad
8cf2a04f31
Fix formatting issues
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-12 15:24:56 +00:00
TheKodeToad
7f4c74ffbe
Fix immediate free in Exception.h
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-11 22:16:03 +00:00
Trial97
fdaaee64d1
Fixed curseforge neoforge export for 1.20.1
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-11 21:49:28 +02:00
TheKodeToad
ff989b4305
Fix ResourceModel error display
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-11 15:43:36 +00:00
TheKodeToad
ded77e6183
Fix NetJob use-after-free
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-11 15:43:36 +00:00
Sefa Eyeoglu
b0b77c2178
Merge pull request #2114 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-02-11 09:57:06 +01:00
github-actions[bot]
0f254c8425 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/79a13f1437e149dc7be2d1290c74d378dad60814' (2024-02-03)
  → 'github:nixos/nixpkgs/442d407992384ed9c0e6d352de75b69079904e4e' (2024-02-09)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf' (2024-01-28)
  → 'github:cachix/pre-commit-hooks.nix/0db2e67ee49910adfa13010e7f012149660af7f0' (2024-02-07)
2024-02-11 00:19:31 +00:00
Alexandru Ionut Tripon
29bf6cc68c
Update launcher/modplatform/flame/FlameInstanceCreationTask.cpp
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-02-10 23:15:26 +02:00
Trial97
830ce246e1
Fixed curseforge neoforge import for 1.20.1 versions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-10 13:48:02 +02:00
Trial97
f3600972a0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into instance_copy_progress
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-10 11:09:45 +02:00
Trial97
031a9f4738
Replaced QFile::remove with FS::deletePath
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-10 11:03:51 +02:00
Trial97
5099061a5c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-10 11:02:29 +02:00
Trial97
c0fb053ccc
Added warning for x86 java
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-09 23:14:49 +02:00
Trial97
27d662e642
Added management for downloaded javas from prism
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-09 22:47:39 +02:00
Trial97
0a3303bcbd
Added button to add extra java path to the Java Wizzard
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-09 21:07:12 +02:00
Trial97
379f1a70e9
Leave headers alone
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-08 22:37:57 +02:00
Trial97
b3fc07d444
Added extra java search paths
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-08 21:47:59 +02:00
Trial97
3d29da916d
Made Java path configurable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-08 20:15:19 +02:00
Trial97
ba990e075b
Added JavaPath function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-08 19:45:46 +02:00
TheKodeToad
7cac8ad2b4
Use QTextFragment for inserting log lines
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-02-06 20:42:18 +00:00
Sefa Eyeoglu
6935c0dc3b
Merge pull request #2089 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-02-04 10:01:20 +01:00
github-actions[bot]
15670cc27b chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/07f6395285469419cf9d078f59b5b49993198c00' (2024-01-11)
  → 'github:hercules-ci/flake-parts/b253292d9c0a5ead9bc98c4e9a26c6312e27d69f' (2024-02-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4fddc9be4eaf195d631333908f2a454b03628ee5' (2024-01-25)
  → 'github:nixos/nixpkgs/79a13f1437e149dc7be2d1290c74d378dad60814' (2024-02-03)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/f56597d53fd174f796b5a7d3ee0b494f9e2285cc' (2024-01-20)
  → 'github:cachix/pre-commit-hooks.nix/7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf' (2024-01-28)
2024-02-04 00:19:10 +00:00
Trial97
82b15268bc
preparing java autodownload
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-03 00:11:05 +02:00
Trial97
0384e652fb
Finished up the download dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-02 22:42:42 +02:00
Trial97
3c58fb0677
Moving files around
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-02-02 15:51:32 +02:00
Tayou
5d223f6f93
Merge pull request #2050 from TheKodeToad/default-game-dir
Use `minecraft` instead of `.minecraft` for better accessibility
2024-02-01 18:16:14 +01:00
Trial97
6c5bb3817b
Cleaned some code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-31 18:07:28 +02:00
Trial97
5afe75e821
Fixed some codeql warnings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-30 12:37:34 +02:00
seth
b0a473a5ce
Merge pull request #2073 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-01-27 23:34:12 -05:00
github-actions[bot]
901cc4e4dd chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e5d1c87f5813afde2dda384ac807c57a105721cc' (2024-01-19)
  → 'github:nixos/nixpkgs/4fddc9be4eaf195d631333908f2a454b03628ee5' (2024-01-25)
2024-01-28 00:19:08 +00:00
Trial97
7317105e4d
Code spaghetti and more chaos
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-27 22:47:28 +02:00
Trial97
b54410b48c
Added gameVersion for curseforge mod packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-26 19:10:39 +02:00
Trial97
ad98f600d5
corecly display core mods tab
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-26 18:36:31 +02:00
Alexandru Ionut Tripon
cff2f4b6ff
Merge pull request #2070 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.12
2024-01-26 09:57:49 +02:00
renovate[bot]
ab4974629c
chore(deps): update hendrikmuhs/ccache-action action to v1.2.12 2024-01-26 07:12:13 +00:00
TheKodeToad
82d0f204e2
De-OOP ProviderCapabilities
There was no reason for it to be a class, and imo it created quite a code-smell needing to initialise it everywhere.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-26 03:06:05 +00:00
TheKodeToad
97ee0a19b5
Refactor updating mechanisms to work with all resources
Summary:
- It compiles
- I need to go to bed

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-26 02:53:57 +00:00
Trial97
4cd236ed80
missing header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-26 00:31:43 +02:00
Trial97
81282bf7e0
Autodetect Java?
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-26 00:22:05 +02:00
Trial97
f36be3f0e3
Cleanup downloaders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-25 22:58:12 +02:00
Trial97
e897032383
Added java metadata
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-25 22:22:21 +02:00
TheKodeToad
2c18d0f1a5
Store current version in packwiz metadata (temporarily using x-prismlauncher-version-number)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-25 15:41:34 +00:00
Trial97
25bca28707
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader 2024-01-24 18:26:48 +02:00
Trial97
a0e7729aa6
Started workin on stuff
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-24 18:26:43 +02:00
Alexandru Ionut Tripon
1c3d63981b
Merge pull request #2063 from DioEgizio/no-alpha-mr
fix: remove alpha notice on modrinth packs
2024-01-24 18:13:15 +02:00
DioEgizio
8de1060bfb fix: remove alpha notice on modrinth packs
with the modrinth app being released for quite a while now it's weird to still have this (tbh they've never been truly alpha)

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2024-01-24 16:43:38 +01:00
seth
1075a94034
Merge pull request #2040 from getchoo/nix/filesets
[Linux/MacOS] Replace nix-filter with lib.fileset
2024-01-24 03:05:30 -05:00
TheKodeToad
35b5c8097c
Merge branch 'develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-23 23:20:40 +00:00
seth
8312713dc2
refactor(nix): nix-filter -> lib.fileset
with our own use of `map`, this is basically a drop-in replacement for
nix-filter, but already in nixpkgs!

Signed-off-by: seth <getchoo@tuta.io>
2024-01-23 16:10:41 -05:00
Sefa Eyeoglu
7bce88e83e
Merge pull request #2060 from PrismLauncher/renovate/korthout-backport-action-2.x 2024-01-23 20:45:36 +01:00
renovate[bot]
72e6218df9
chore(deps): update korthout/backport-action action to v2.4.1 2024-01-23 19:21:30 +00:00
Sefa Eyeoglu
e60235cb88
Merge pull request #2053 from Trial97/fix_open_path_take_two 2024-01-23 09:29:57 +01:00
Sefa Eyeoglu
913f6d8563
Merge pull request #2052 from PrismLauncher/renovate/korthout-backport-action-2.x 2024-01-22 22:32:38 +01:00
Trial97
6b637a8797
Display minecraft version if not mentioned for modrinth packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-22 22:32:42 +02:00
Trial97
9bbeb5ef3a
Made updater interval configurable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-22 21:26:46 +02:00
Trial97
12bf913764
Fixed open path a second time
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-22 20:36:57 +02:00
renovate[bot]
0dc4a10f48
chore(deps): update korthout/backport-action action to v2.4.0 2024-01-22 17:26:37 +00:00
Trial97
f77749e448
Resized Refresh theme button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-21 21:24:47 +02:00
Sefa Eyeoglu
78482d0d3e
Merge pull request #2049 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-01-21 08:28:49 +01:00
Alexandru Ionut Tripon
e4306d5cb6
Update launcher/ui/themes/CatPack.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2024-01-21 08:52:49 +02:00
TheKodeToad
f54ac25614
Use minecraft instead of .minecraft for better accessibility
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-21 02:28:55 +00:00
github-actions[bot]
c7cd8b7877 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/c843418ecfd0344ecb85844b082ff5675e02c443' (2023-12-04)
  → 'github:numtide/nix-filter/3449dc925982ad46246cfc36469baf66e1b64f17' (2024-01-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/eabe8d3eface69f5bb16c18f8662a702f50c20d5' (2024-01-09)
  → 'github:nixos/nixpkgs/e5d1c87f5813afde2dda384ac807c57a105721cc' (2024-01-19)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/274ae3979a0eacae422e1bbcf63b8b7a335e1114' (2024-01-12)
  → 'github:cachix/pre-commit-hooks.nix/f56597d53fd174f796b5a7d3ee0b494f9e2285cc' (2024-01-20)
• Updated input 'pre-commit-hooks/flake-utils':
    'github:numtide/flake-utils/a1720a10a6cfe8234c0e93907ffe81be440f4cef' (2023-05-31)
  → 'github:numtide/flake-utils/4022d587cbbfd70fe950c1e2083a02621806a725' (2023-12-04)
• Updated input 'pre-commit-hooks/gitignore':
    'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14)
  → 'github:hercules-ci/gitignore.nix/43e1aa1308018f37118e34d3a9cb4f5e75dc11d5' (2023-12-29)
2024-01-21 00:20:26 +00:00
erik.lundstedt
30913fdb2b fix a minor spelling misstake in Mod.cpp
closes https://github.com/PrismLauncher/PrismLauncher/issues/2047

Signed-off-by: erik.lundstedt <erik@lundstedt.it>
2024-01-21 00:31:00 +01:00
Trial97
0303b1cc7f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refresh_cats 2024-01-20 00:27:30 +02:00
Alexandru Ionut Tripon
4cda04271f
Merge pull request #1913 from Trial97/dialog
Fixed askIfShouldUpdate dialog on mac
2024-01-18 22:02:04 +02:00
Sefa Eyeoglu
bc75bcdcca
Merge pull request #1768 from Trial97/toggle_deps2 2024-01-18 18:18:31 +01:00
Sefa Eyeoglu
a62eaba702
Merge pull request #1825 from Trial97/ftb_import 2024-01-18 18:18:17 +01:00
Sefa Eyeoglu
2c0274159f
Merge pull request #2034 from Scrumplex/feat/macos-signing 2024-01-18 16:56:39 +01:00
Sefa Eyeoglu
b2c2bf1460
Merge pull request #2039 from PrismLauncher/renovate/actions-cache-4.x
chore(deps): update actions/cache action to v4
2024-01-17 23:48:16 +01:00
renovate[bot]
bfd1262c14
chore(deps): update actions/cache action to v4 2024-01-17 20:29:50 +00:00
Sefa Eyeoglu
0b3e91ac62
Merge pull request #1954 from Scrumplex/fix/open-paths-immediately 2024-01-17 15:18:46 +01:00
Sefa Eyeoglu
de9232783e
chore: remove cachix auth token secret
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-17 13:12:38 +01:00
Sefa Eyeoglu
27c52eff8b
feat: add macOS notarization
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-17 13:12:36 +01:00
Sefa Eyeoglu
baebef982e
feat: add macOS code signing
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-17 13:10:14 +01:00
Sefa Eyeoglu
67d088dc53
fix: simplify openPath calls
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-14 11:36:17 +01:00
Sefa Eyeoglu
5a0240e709
Merge pull request #2030 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-01-14 09:50:59 +01:00
github-actions[bot]
96c714de6e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/88a2cd8166694ba0b6cb374700799cec53aef527' (2024-01-01)
  → 'github:hercules-ci/flake-parts/07f6395285469419cf9d078f59b5b49993198c00' (2024-01-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/63143ac2c9186be6d9da6035fa22620018c85932' (2024-01-02)
  → 'github:nixos/nixpkgs/eabe8d3eface69f5bb16c18f8662a702f50c20d5' (2024-01-09)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/9d3d7e18c6bc4473d7520200d4ddab12f8402d38' (2023-12-30)
  → 'github:cachix/pre-commit-hooks.nix/274ae3979a0eacae422e1bbcf63b8b7a335e1114' (2024-01-12)
2024-01-14 00:20:26 +00:00
Sefa Eyeoglu
f931890e95
Merge pull request #2029 from PrismLauncher/renovate/cachix-install-nix-action-25.x 2024-01-12 19:14:02 +01:00
renovate[bot]
9c610b616a
chore(deps): update cachix/install-nix-action action to v25 2024-01-12 18:02:43 +00:00
Sefa Eyeoglu
c38f584fe9
Merge pull request #2026 from PrismLauncher/renovate/actions-cache-3.x
chore(deps): update actions/cache action to v3.3.3
2024-01-11 23:22:42 +01:00
renovate[bot]
b0f65476d9
chore(deps): update actions/cache action to v3.3.3 2024-01-11 18:59:17 +00:00
Sefa Eyeoglu
7549bf7da6
Merge pull request #2024 from getchoo/flake-fixups 2024-01-11 09:43:58 +01:00
seth
839adfc90b
nix: add garnix cache to nixConfig
Signed-off-by: seth <getchoo@tuta.io>
2024-01-11 03:20:20 -05:00
seth
26474d1374
nix: deduplicate nixpkgs input
Signed-off-by: seth <getchoo@tuta.io>
2024-01-11 03:06:37 -05:00
Alexandru Ionut Tripon
dbdec15ddb
Merge pull request #1771 from Trial97/account
Try refreshing account on launch if needed
2024-01-10 16:07:09 +02:00
Trial97
a7d293b3f2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into deps_improve
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-10 09:17:52 +02:00
Trial97
a0ebd0714d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refresh_cats 2024-01-10 09:09:19 +02:00
Trial97
57913f1943
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into demo 2024-01-07 22:31:25 +02:00
Trial97
d94e641900
Load versions on first edit
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-07 22:00:31 +02:00
Sefa Eyeoglu
43dd929214
Merge pull request #2016 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2024-01-07 09:43:56 +01:00
github-actions[bot]
2cb07d3e38 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
  → 'github:hercules-ci/flake-parts/88a2cd8166694ba0b6cb374700799cec53aef527' (2024-01-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58?dir=lib' (2023-11-29)
  → 'github:NixOS/nixpkgs/b0d36bd0a420ecee3bc916c91886caca87c894e9?dir=lib' (2023-12-30)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870' (2023-12-25)
  → 'github:nixos/nixpkgs/63143ac2c9186be6d9da6035fa22620018c85932' (2024-01-02)
2024-01-07 00:20:13 +00:00
Tayou
35ad4448d9
Merge pull request #2012 from Trial97/openal_settings
Fixed openAL placeholder
2024-01-07 00:21:21 +01:00
TheKodeToad
f285c3fe13
Merge pull request #1972 from lumiscosity/feature/cat_opacity
Add a cat opacity option
2024-01-06 19:42:17 +00:00
Trial97
219e2862f9
Fixed openAL placeholder
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-05 23:02:42 +02:00
TheKodeToad
d56d21f928
Merge pull request #1983 from tildejustin/develop
remove legacy processArguments code
2024-01-05 12:26:58 +00:00
seth
7783ef9285
Merge pull request #2005 from Trial97/develop
Format java code
2024-01-04 15:18:40 -05:00
Alexandru Ionut Tripon
b76c413936
Merge pull request #1 from theMackabu/refresh_cats
add: refresh on load
2024-01-03 22:56:43 +02:00
Trial97
048d34dc9d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refresh_cats 2024-01-03 22:53:36 +02:00
Trial97
786e03571b
Format java code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-01-03 22:50:55 +02:00
Alexandru Ionut Tripon
57a589367f
Merge pull request #1979 from lumiscosity/feature/mod_page_improvements
Mod downloader page improvements
2024-01-03 22:43:18 +02:00
Sefa Eyeoglu
9523a2d77b
Merge pull request #1999 from TheKodeToad/more-legacy-fixes 2024-01-03 18:16:41 +01:00
Sefa Eyeoglu
e5b608447a
chore: improve param name
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-03 18:15:03 +01:00
Sefa Eyeoglu
f454333cc5
Merge pull request #1998 from TheKodeToad/happy-new-year 2024-01-03 18:13:14 +01:00
TheKodeToad
345cdf5c9d
Pass proxy
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-02 19:10:41 +00:00
TheKodeToad
05e4533096
Add online mode fix for legacy versions; minor refactors in legacy
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-02 18:11:54 +00:00
TheKodeToad
1130fe8510
Happy new year :D
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-02 18:04:42 +00:00
Alexandru Ionut Tripon
0cf9b6537b
Merge pull request #1996 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.11
2024-01-02 13:28:27 +02:00
renovate[bot]
73f956c897
chore(deps): update hendrikmuhs/ccache-action action to v1.2.11 2024-01-02 07:30:12 +00:00
Sefa Eyeoglu
b280a6d36d
Merge pull request #1991 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-12-31 12:28:20 +01:00
github-actions[bot]
ad01102bad chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d6863cbcbbb80e71cecfc03356db1cda38919523' (2023-12-21)
  → 'github:nixos/nixpkgs/e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870' (2023-12-25)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/007a45d064c1c32d04e1b8a0de5ef00984c419bc' (2023-12-13)
  → 'github:cachix/pre-commit-hooks.nix/9d3d7e18c6bc4473d7520200d4ddab12f8402d38' (2023-12-30)
2023-12-31 00:20:06 +00:00
timoreo
0ce0769842
Merge pull request #1978 from Trial97/double_links 2023-12-28 19:48:34 +01:00
tildejustin
eca5d88576 remove legacy processArguments code
Signed-off-by: tildejustin <spacepepper3.14@gmail.com>
2023-12-24 22:20:06 -05:00
Sajjaad Farzad
b0a4af7412
Merge branch 'PrismLauncher:develop' into refresh_cats 2023-12-24 16:03:13 -08:00
Sefa Eyeoglu
dbbbf5aa93
Merge pull request #1980 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-12-24 11:22:58 +01:00
github-actions[bot]
ea38f8168a chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/aa9d4729cbc99dabacb50e3994dcefb3ea0f7447' (2023-12-14)
  → 'github:nixos/nixpkgs/d6863cbcbbb80e71cecfc03356db1cda38919523' (2023-12-21)
2023-12-24 00:19:31 +00:00
lumiscosity
c29af83dc3 fix styling
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-23 14:16:29 +01:00
lumiscosity
1e48bf838d move simplify call to drawing
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-23 12:05:07 +01:00
lumiscosity
1bf386603d Strip newlines in mod descriptions
Mirrors Modrinth page behaviour.

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-23 11:27:19 +01:00
Trial97
9a33bdcf50
Fixed openURL cast for resource
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-23 01:02:04 +02:00
Trial97
526e580fbb
Force clear the resource selection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-23 00:33:38 +02:00
Trial97
13d29ac6f4
Updated the size sort code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-22 23:35:48 +02:00
lumiscosity
358cf5b348 add archived project warning
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-22 22:04:33 +01:00
lumiscosity
43306350e0 Add cat opacity
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-22 15:02:41 +01:00
TheKodeToad
e39a03421a
Merge pull request #1964 from Scrumplex/fix/dont-log-katabasis
Don't log Microsoft refresh tokens
2023-12-19 11:24:45 +00:00
Sefa Eyeoglu
a1e3901b3f
fix: don't log katabasis by default
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-12-17 12:39:17 +01:00
Sefa Eyeoglu
2993306226
Merge pull request #1963 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-12-17 10:19:15 +01:00
github-actions[bot]
74e2e49134 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/09dc04054ba2ff1f861357d0e7e76d021b273cd7' (2023-12-08)
  → 'github:nixos/nixpkgs/aa9d4729cbc99dabacb50e3994dcefb3ea0f7447' (2023-12-14)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/e5ee5c5f3844550c01d2131096c7271cec5e9b78' (2023-11-25)
  → 'github:cachix/pre-commit-hooks.nix/007a45d064c1c32d04e1b8a0de5ef00984c419bc' (2023-12-13)
2023-12-17 00:20:10 +00:00
Sefa Eyeoglu
e227826a90
Merge pull request #1955 from PrismLauncher/renovate/actions-download-artifact-4.x
chore(deps): update actions/download-artifact action to v4
2023-12-16 17:27:02 +01:00
Sefa Eyeoglu
211e62cedb
Merge pull request #1956 from PrismLauncher/renovate/actions-upload-artifact-4.x
chore(deps): update actions/upload-artifact action to v4
2023-12-16 17:26:28 +01:00
Sefa Eyeoglu
7382d33430
Merge pull request #1961 from PrismLauncher/renovate/korthout-backport-action-2.x
chore(deps): update korthout/backport-action action to v2.3.0
2023-12-16 17:25:53 +01:00
Tayou
1fcf405c88
Merge pull request #1960 from lumiscosity/fix/minor_spelling
Minor spelling fixes
2023-12-16 16:34:21 +01:00
renovate[bot]
8f29cdf195
chore(deps): update korthout/backport-action action to v2.3.0 2023-12-16 15:27:48 +00:00
Sefa Eyeoglu
a8220cd296
chore: remove unused methods
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-12-16 13:12:12 +01:00
Sefa Eyeoglu
213963257c
chore: remove maybe_unused
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-12-16 13:11:24 +01:00
lumiscosity
eb8e150fa8
one more
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-16 13:00:22 +01:00
lumiscosity
56397446db
Update ModFolderPage.cpp
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-16 12:53:59 +01:00
lumiscosity
8cbdecc454
Update GetModDependenciesTask.cpp
Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2023-12-16 12:52:59 +01:00
renovate[bot]
317d52b44a
chore(deps): update actions/upload-artifact action to v4 2023-12-14 20:23:30 +00:00
renovate[bot]
d0fe700b53
chore(deps): update actions/download-artifact action to v4 2023-12-14 20:23:26 +00:00
Sefa Eyeoglu
0ccdcd23e3
fix: open paths directly
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-12-14 13:02:29 +01:00
Trial97
f33110ee0c
Renamed function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-14 00:19:22 +02:00
Trial97
9580f16c33
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into netjob_retry
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-14 00:16:29 +02:00
Trial97
400b518bc2
Removed auto reauthenticate
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-14 00:02:15 +02:00
Sefa Eyeoglu
32a9c37ecd
Merge pull request #1951 from guihkx/sync-flatpak 2023-12-13 19:32:56 +01:00
guihkx
3d50bef10c
chore: sync nightly flatpak manifest with flathub's
Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2023-12-13 15:17:19 -03:00
Sefa Eyeoglu
608a09d211
Merge pull request #1950 from PrismLauncher/renovate/github-codeql-action-3.x 2023-12-13 18:25:59 +01:00
renovate[bot]
469aaf6051
chore(deps): update github/codeql-action action to v3 2023-12-13 16:16:06 +00:00
Trial97
6a61900328
Fixed curseforge version filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-13 17:48:11 +02:00
Trial97
763eab6b96
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2023-12-13 14:48:31 +02:00
Trial97
4498d32cc0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2023-12-13 14:37:02 +02:00
Trial97
d10b075677
Sort mods before export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-13 14:36:58 +02:00
timoreo
a382754b1e
Merge pull request #1947 from theMackabu/patch-minimized 2023-12-13 11:10:39 +01:00
TheKodeToad
2391ad200f
Revert change to .gitignore
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-12-12 23:21:34 +00:00
theMackabu
648aa18e6f
add: refresh on load
Signed-off-by: theMackabu <theMackabu@gmail.com>
2023-12-12 14:26:45 -08:00
theMackabu
7c33a8e448
remove: maidfile.toml (local build tool)
Signed-off-by: theMackabu <theMackabu@gmail.com>
2023-12-12 13:37:24 -08:00
theMackabu
201c9783d5
clang-format: fix formatting
Signed-off-by: theMackabu <theMackabu@gmail.com>
2023-12-12 13:31:18 -08:00
theMackabu
836f74cd46
#1945 resolve issue on windows
Signed-off-by: theMackabu <theMackabu@gmail.com>
2023-12-12 13:26:44 -08:00
theMackabu
3567369d44
#1945 resolve minimized windows pull from dock
Signed-off-by: theMackabu <theMackabu@gmail.com>
2023-12-12 13:26:44 -08:00
timoreo
4612607803
Merge pull request #1712 from Trial97/current_time 2023-12-11 15:40:06 +01:00
Sefa Eyeoglu
a39e2a1145
Merge pull request #1916 from PrismLauncher/renovate/korthout-backport-action-2.x 2023-12-11 11:10:04 +01:00
Sefa Eyeoglu
79218cf13b
Merge pull request #1738 from Trial97/some_removals 2023-12-11 11:08:26 +01:00
Sefa Eyeoglu
f8a6a099c7
Merge pull request #1732 from Trial97/update_file2 2023-12-11 11:08:07 +01:00
Sefa Eyeoglu
9467b11897
Merge pull request #1694 from Trial97/concurrent 2023-12-11 11:07:03 +01:00
Sefa Eyeoglu
bcaeab1ddc
Merge pull request #1857 from Trial97/copy_time 2023-12-11 10:58:21 +01:00
Sefa Eyeoglu
f8db991727
Merge pull request #1908 from DioEgizio/update-qt661 2023-12-11 10:57:56 +01:00
Sefa Eyeoglu
ad6ca1c6ea
Merge pull request #1931 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-12-10 10:16:00 +01:00
github-actions[bot]
d7cb139235 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/41fd48e00c22b4ced525af521ead8792402de0ea' (2023-09-16)
  → 'github:numtide/nix-filter/c843418ecfd0344ecb85844b082ff5675e02c443' (2023-12-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/f5c27c6136db4d76c30e533c20517df6864c46ee' (2023-11-30)
  → 'github:nixos/nixpkgs/09dc04054ba2ff1f861357d0e7e76d021b273cd7' (2023-12-08)
2023-12-10 00:20:06 +00:00
TheKodeToad
4db00897c6
Merge pull request #1922 from IceCryptonym/togglable-status-bar
Add togglable status bar
2023-12-07 20:37:36 +00:00
Sefa Eyeoglu
e408a047ed
Merge pull request #1923 from TayouVR/more-instance-group-seperator 2023-12-07 21:34:41 +01:00
Tayou
877eb4172a
add line back to group separator
Signed-off-by: Tayou <git@tayou.org>
2023-12-07 17:26:47 +01:00
Archy
faedd0fd65 Add togglable status bar
Signed-off-by: Archy <59789660+IceCryptonym@users.noreply.github.com>
2023-12-06 23:40:22 +10:00
renovate[bot]
132344df1c
chore(deps): update korthout/backport-action action to v2.2.0 2023-12-04 12:06:39 +00:00
Trial97
657416fe30
Removed header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-03 21:29:02 +02:00
Trial97
577c737d68
Fixed askIfShouldUpdate dialog on mac
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-12-03 20:00:50 +02:00
Sefa Eyeoglu
c721fa795d
Merge pull request #1912 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-12-03 10:51:26 +01:00
github-actions[bot]
8b4b0f2f01 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/8c9fa2545007b49a5db5f650ae91f227672c3877' (2023-11-01)
  → 'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5' (2023-12-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/0cbe9f69c234a7700596e943bfae7ef27a31b735?dir=lib' (2023-10-29)
  → 'github:NixOS/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58?dir=lib' (2023-11-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0bd59c54ef06bc34eca01e37d689f5e46b3fe2f1' (2023-11-24)
  → 'github:nixos/nixpkgs/f5c27c6136db4d76c30e533c20517df6864c46ee' (2023-11-30)
2023-12-03 00:19:28 +00:00
DioEgizio
eb011e6729 chore: update qt to qt 6.6.1
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-12-02 17:42:24 +01:00
Sefa Eyeoglu
4c59a1ba1b
Merge pull request #1882 from bit69tream/notify-user-if-tmp-is-noexec 2023-11-28 21:57:23 +01:00
Sefa Eyeoglu
5291268565
Merge pull request #1900 from PrismLauncher/renovate/cachix-install-nix-action-24.x 2023-11-28 21:53:57 +01:00
renovate[bot]
a74c3d57b4
chore(deps): update cachix/install-nix-action action to v24 2023-11-28 20:27:48 +00:00
Trial97
463ff4c6ae
Removed assert permanantly
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-27 11:30:07 +02:00
Trial97
6f6b6312a5
Moved the button up
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-27 09:39:31 +02:00
seth
6fa8e07d62
Merge pull request #1897 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-11-27 03:44:43 +00:00
Trial97
2d91bd09d4
Fixed crash on abort function not initialized
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-26 23:49:56 +02:00
github-actions[bot]
67b51b7a18 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/7414e9ee0b3e9903c24d3379f577a417f0aae5f1' (2023-11-16)
  → 'github:nixos/nixpkgs/0bd59c54ef06bc34eca01e37d689f5e46b3fe2f1' (2023-11-24)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/e558068cba67b23b4fbc5537173dbb43748a17e8' (2023-11-15)
  → 'github:cachix/pre-commit-hooks.nix/e5ee5c5f3844550c01d2131096c7271cec5e9b78' (2023-11-25)
2023-11-26 00:19:22 +00:00
Trial97
f4e098f7f5
Formated file
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-25 09:36:55 +02:00
Trial97
1a0fd5f993
Added mod reinstall dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-25 00:18:10 +02:00
Trial97
20e0cb43b9
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into concurrent 2023-11-23 23:58:47 +02:00
Trial97
2db5677281
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2023-11-23 23:57:44 +02:00
Trial97
ff5a968de0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_file2 2023-11-23 23:57:20 +02:00
Trial97
1650237c8f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into some_removals 2023-11-23 23:37:13 +02:00
Trial97
e0d776e551
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fix_duplicate_mod 2023-11-23 23:29:10 +02:00
Trial97
403a7f5d46
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into toggle_deps2 2023-11-23 23:21:11 +02:00
Trial97
af628be648
Merge branch 'error_codes' of github.com:Trial97/PrismLauncher into error_codes 2023-11-23 23:20:27 +02:00
Trial97
3c75d761a2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into error_codes 2023-11-23 23:11:11 +02:00
Trial97
b47ec7f2dc
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into resource_size 2023-11-23 17:14:50 +02:00
Trial97
3234bb5a8c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into deps_improve 2023-11-23 17:05:37 +02:00
Trial97
bb9df1684b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into new_cats 2023-11-23 16:58:42 +02:00
Trial97
0d44c0df1d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refresh_cats 2023-11-23 16:50:53 +02:00
Trial97
c5cdebb42f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into ftb_import 2023-11-23 16:43:33 +02:00
Trial97
2318a83881
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into shader 2023-11-23 16:33:57 +02:00
Trial97
be67067fa2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into demo 2023-11-23 16:23:56 +02:00
Alexandru Ionut Tripon
7f6027498e
Merge pull request #1871 from Trial97/cat_day
changed prism aniversary
2023-11-23 14:14:04 +00:00
Trial97
9c13504b06
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_ok 2023-11-23 16:13:09 +02:00
deadmeu
ac223a29ef
refactor: shorten desktop entry comment field
Signed-off-by: deadmeu <dmu@duck.com>
2023-11-24 00:03:33 +10:00
Trial97
afcdb7595c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2023-11-23 16:01:54 +02:00
Trial97
f71e622f71
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into copy_time 2023-11-23 15:51:54 +02:00
Trial97
4f49a56e4d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into supported_files 2023-11-23 15:40:31 +02:00
Trial97
85e875fe08
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into cat_day 2023-11-23 15:32:48 +02:00
Trial97
944ed48a61
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into time4 2023-11-23 14:58:05 +02:00
Trial97
e503d44c54
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into current_time 2023-11-23 14:47:47 +02:00
Trial97
908072710a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-23 14:34:56 +02:00
bit6tream
d414599974 (#1693) Use a better approach to detect a noexec mount option
Signed-off-by: bit6tream <megapixel483@gmail.com>
2023-11-23 15:23:03 +03:00
Trial97
e43a557a0b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into instance_copy_progress 2023-11-23 14:08:49 +02:00
Trial97
7d4778ffd6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into portabledatadir 2023-11-23 13:54:36 +02:00
Trial97
80383d237a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods 2023-11-23 13:38:11 +02:00
Trial97
1095d0698a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into waitprofiler 2023-11-23 13:25:12 +02:00
Trial97
c2fc2d330b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2023-11-23 12:57:31 +02:00
Trial97
f16f0ed93e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into netjob_retry 2023-11-23 12:47:52 +02:00
Trial97
9345416361
Fixed localization stuff
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-23 12:36:40 +02:00
Trial97
2268e46b91
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into account 2023-11-23 12:22:41 +02:00
Trial97
ceb88a170e
Extracted reauthenticateCurrentAccount as a separate function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-23 12:22:31 +02:00
Sefa Eyeoglu
a2aa303770
Merge pull request #1843 from Trial97/fix_not_found_dep 2023-11-23 11:02:16 +01:00
Sefa Eyeoglu
a966289944
Merge pull request #1852 from Trial97/war_ning 2023-11-23 11:01:53 +01:00
Sefa Eyeoglu
7c9c3d2c5f
Merge pull request #1815 from Trial97/fix_mangohub 2023-11-23 11:00:57 +01:00
Trial97
d8c5ed55c2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_file2 2023-11-23 12:00:18 +02:00
Trial97
6169af70db
Added back the FIXME comment
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-23 11:59:35 +02:00
Sefa Eyeoglu
2b17a61d38
Merge pull request #1589 from Trial97/instance_reload
Fully reload the instance list once the folder is changed
2023-11-23 10:48:01 +01:00
Sefa Eyeoglu
d60d089cbc
Merge pull request #1751 from LocalSpook/account_type 2023-11-23 10:27:06 +01:00
Alexandru Ionut Tripon
5d6334ef95
Merge pull request #1762 from LocalSpook/const-in-declarations
Remove top-level `const` qualifiers in function declarations
2023-11-23 08:53:01 +00:00
Trial97
6b3b54f061
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-23 10:48:11 +02:00
Trial97
e11b7e3770
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2023-11-23 10:46:27 +02:00
Trial97
670a0c1442
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into resource_size 2023-11-23 10:46:03 +02:00
Trial97
d5d8b7be8d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2023-11-23 10:45:35 +02:00
Trial97
673f82e884
Merge branch 'war_ning' of github.com:Trial97/PrismLauncher into war_ning 2023-11-23 10:45:06 +02:00
Trial97
f18f7147b5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into war_ning 2023-11-23 10:44:49 +02:00
Trial97
721a08462c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into copy_time 2023-11-23 10:44:26 +02:00
Trial97
f0cff15d56
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into supported_files 2023-11-23 10:43:43 +02:00
Trial97
a1ac3ef7ae
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into cat_day 2023-11-23 10:43:15 +02:00
Trial97
a7be21733f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector 2023-11-23 10:41:55 +02:00
Trial97
66decbb180
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into current_time 2023-11-23 10:41:06 +02:00
Trial97
4ef626dab3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into time4 2023-11-23 10:40:30 +02:00
Sefa Eyeoglu
48e9753fb5
Merge pull request #1880 from Trial97/link 2023-11-23 09:07:34 +01:00
Sefa Eyeoglu
b42434bcb6
Merge remote-tracking branch 'upstream/develop' into const-in-declarations 2023-11-23 09:06:23 +01:00
Sefa Eyeoglu
364fb9808e
Merge pull request #1347 from HyperSoop/reduce-min-memory 2023-11-23 08:58:58 +01:00
Sefa Eyeoglu
389d75594a
Merge pull request #1887 from PrismLauncher/getchoo-patch-2 2023-11-23 08:58:00 +01:00
seth
d1c33392e7
chore: disable x86_64-darwin in garnix
this is currently broken on garnix's end, but hopefully we will be able to enable this again in the future

Signed-off-by: seth <getchoo@tuta.io>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-11-23 08:51:30 +01:00
Trial97
e3af4f9a78
Fixed playtime recording
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-22 20:34:12 +02:00
Trial97
85b4e1f24f
Made column hidden by default
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-22 19:23:24 +02:00
Trial97
140a55810d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2023-11-22 14:20:30 +02:00
bit6tream
681e76c551 (#1693) Notify user if /tmp directory has noexec mount option
Minecraft versions starting from 1.19 would not start at all if /tmp is mounted as `noexec`.

Signed-off-by: bit6tream <megapixel483@gmail.com>
2023-11-22 01:48:31 +03:00
Trial97
196d24330a
Fixed open link on settings page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-21 17:47:59 +02:00
Trial97
54c308e5b5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 21:15:12 +02:00
Sefa Eyeoglu
e499aa4783
Merge pull request #1873 from guihkx/sync-flatpak-manifest 2023-11-19 19:57:47 +01:00
guihkx
e3b7aed76b
chore: sync local flatpak manifest with flathub's
Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2023-11-19 11:08:52 -03:00
Tayou
24f2102596
Merge pull request #1869 from Trial97/icons_folder
Added more open folder actions
2023-11-19 15:06:30 +01:00
Trial97
26931475ae
made folder size reflect the number of elements
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 15:58:30 +02:00
Trial97
80c85aef99
fixed const stuff
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 15:37:18 +02:00
Alexandru Ionut Tripon
76216335b1
Update launcher/ui/pages/modplatform/ImportPage.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-19 15:26:47 +02:00
Sefa Eyeoglu
71ee0e750c
Merge pull request #1868 from PrismLauncher/update_flake_lock_action 2023-11-19 10:38:56 +01:00
Trial97
a8aa214c0e
changed prism aniversary
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 09:01:59 +02:00
Trial97
e99926ea94
Added more open folder actions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 02:40:25 +02:00
github-actions[bot]
69a49e85d0 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ec750fd01963ab6b20ee1f0cb488754e8036d89d' (2023-11-07)
  → 'github:nixos/nixpkgs/7414e9ee0b3e9903c24d3379f577a417f0aae5f1' (2023-11-16)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/ea758da1a6dcde6dc36db348ed690d09b9864128' (2023-11-06)
  → 'github:cachix/pre-commit-hooks.nix/e558068cba67b23b4fbc5537173dbb43748a17e8' (2023-11-15)
2023-11-19 00:19:30 +00:00
Trial97
f7e478c755
Added all supported files filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-19 02:02:02 +02:00
TheKodeToad
40cfa145ee
Merge pull request #1860 from Trial97/env_vars2
Add custom env vars to pre/post launch commands
2023-11-18 11:15:49 +00:00
Trial97
1a06a1424b
Added custom env vars to pre/post launch commands
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-18 10:53:38 +02:00
Trial97
9f39e45b28
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into current_time 2023-11-18 10:45:24 +02:00
Trial97
4e3132e8b2
reseted the setting
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-17 22:40:36 +02:00
Trial97
6b777653a5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into resource_size
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-17 22:38:17 +02:00
Trial97
2bfb5fc138
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-17 22:26:17 +02:00
Trial97
53c6493b9a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2023-11-17 21:56:23 +02:00
TheKodeToad
7ef2bda269
Improve description
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-11-17 19:49:48 +00:00
Alexandru Ionut Tripon
1150249cec
Merge pull request #1746 from Trial97/toggle_deps
separated dependecy check from mod update
2023-11-17 19:42:22 +00:00
Tayou
b5f8054d8c
Merge pull request #1849 from Trial97/column_size
Made resource columns resizable
2023-11-17 20:19:02 +01:00
Trial97
a531f32b69
fixed settings saving
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-16 13:26:29 +02:00
Trial97
215465e833
added subdirectories to iteration
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-15 14:11:34 +02:00
Trial97
4d93f4adb1
Fixed folder size
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-15 12:10:47 +02:00
Trial97
890965746f
Added warning on mods update while running
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-15 11:07:46 +02:00
Trial97
361329d5d1
Made resource columns resizable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-14 23:21:53 +02:00
Trial97
bedb4da869
Added filename to the modlist export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-14 19:37:23 +02:00
Trial97
6804e2ba59
moved export to list to the mods page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-14 18:40:45 +02:00
Trial97
99fbcbee4c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into move_export2 2023-11-14 18:12:48 +02:00
Trial97
c05c001ab2
Remove the dep if it fails for any reason
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-13 23:49:49 +02:00
Alexandru Ionut Tripon
a3445cbbdd
Merge pull request #1704 from Leafeling/develop
Add game category to generated Linux shortcuts
2023-11-13 07:32:33 +00:00
Trial97
0e57eeca69
Added missing variable from lambda capture
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-13 09:28:59 +02:00
Alexandru Ionut Tripon
32a8d9b9c6
Update launcher/ui/pages/instance/ModFolderPage.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-13 09:23:56 +02:00
TheKodeToad
f4940e26c6
Merge remote-tracking branch 'upstream/develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-11-12 19:02:14 +00:00
Trial97
17916dbd24
Fixed inconsistent Ok in instance import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-12 20:27:55 +02:00
Tayou
a991d48c76
Merge pull request #1798 from Trial97/java
[Windows] Autodetect Java from the Microsoft Store version of the official launcher
2023-11-12 15:39:17 +01:00
Alexandru Ionut Tripon
94d67b827e
Merge pull request #1832 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-11-12 06:28:26 +00:00
github-actions[bot]
cb648c180c chore(nix): update lockfile
Flake lock file updates:

• Updated input 'libnbtplusplus':
    'github:PrismLauncher/libnbtplusplus/a5e8fd52b8bf4ab5d5bcc042b2a247867589985f' (2023-07-22)
  → 'github:PrismLauncher/libnbtplusplus/23b955121b8217c1c348a9ed2483167a6f3ff4ad' (2023-11-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9d5d25bbfe8c0297ebe85324addcb5020ed1a454' (2023-11-04)
  → 'github:nixos/nixpkgs/ec750fd01963ab6b20ee1f0cb488754e8036d89d' (2023-11-07)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/dec10399e5b56aa95fcd530e0338be72ad6462a0' (2023-11-01)
  → 'github:cachix/pre-commit-hooks.nix/ea758da1a6dcde6dc36db348ed690d09b9864128' (2023-11-06)
2023-11-12 00:18:56 +00:00
Tayou
e7b2dbdd00
Merge pull request #1828 from Trial97/swap
Fixed modrinth sort swap
2023-11-11 18:34:53 +01:00
Trial97
50a4d61ded
Fixed demo mode
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-10 23:26:41 +02:00
Trial97
926942a973
Fixed modrinth sort swap
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-10 20:00:35 +02:00
Trial97
463608b289
fixed shader packs detection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-10 19:37:11 +02:00
Trial97
5e2eb7bbbb
Added button to select the FTBApp instances directory
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-09 23:30:30 +02:00
Trial97
b4bfc03e8b
Added button to refresh themes and catpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-09 21:48:46 +02:00
Trial97
7532a41043
Improvements to catpack
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-09 21:38:38 +02:00
Tayou
913d81e371
Merge pull request #1821 from TheKodeToad/group-click-fix
Only open/close groups on left button
2023-11-09 19:18:12 +01:00
TheKodeToad
0f68a2dd61
Only open/close groups on left button
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-11-09 16:40:23 +00:00
TheKodeToad
a30292009a
Merge pull request #1819 from Desoroxxx/patch-1
Improve name and tooltip of mod dependency management option
2023-11-08 20:47:56 +00:00
Desoroxxx
6093399f5c
Update LauncherPage.ui
Signed-off-by: Desoroxxx <desoroxxx@gmail.com>
2023-11-08 17:32:30 +01:00
Trial97
ae62e48c7c
Moved some buttons around
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-08 12:25:56 +02:00
Trial97
a7bfe385ea
Renamed Remove Metadata button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-08 12:10:39 +02:00
Trial97
e4fecd1f97
Made sure mangoHub libs are present
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-08 11:55:38 +02:00
Sefa Eyeoglu
403c4bad86
Merge pull request #1799 from Trial97/improve_login 2023-11-08 08:51:13 +01:00
seth
1d56bb8513
Merge pull request #1805 from PrismLauncher/renovate/korthout-backport-action-2.x
chore(deps): update korthout/backport-action action to v2.1.1
2023-11-08 07:25:45 +00:00
Alexandru Ionut Tripon
7313630615
Update launcher/java/JavaUtils.cpp
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-08 09:01:31 +02:00
Alexandru Ionut Tripon
9d653f172a
Update launcher/ui/dialogs/MSALoginDialog.cpp
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-08 08:56:48 +02:00
renovate[bot]
d4b479a186
chore(deps): update korthout/backport-action action to v2.1.1 2023-11-07 23:55:40 +00:00
Trial97
4dc9e65875
Formated the suggestion
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-07 20:41:45 +02:00
Alexandru Ionut Tripon
54187a505f
Update launcher/ui/dialogs/MSALoginDialog.cpp
Co-authored-by: Tayou <git@tayou.org>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-07 20:39:12 +02:00
Hazel Hofmann
1dea83580e
DCO Remediation Commit for Hazel Hofmann <hazel@theopensource.company>
I, Hazel Hofmann <hazel@theopensource.company>, hereby add my Signed-off-by to this commit: 9ada8d906d

Signed-off-by: Hazel Hofmann <hazel@theopensource.company>
2023-11-07 15:05:56 +01:00
Hazel Hofmann
9ada8d906d
Use same categories as main desktop entry 2023-11-07 14:54:04 +01:00
Trial97
8897f16d1d
simplify microsoft login
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-07 10:52:52 +02:00
Trial97
c78d35d699
added additional minecraft java path for windows
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-07 10:20:53 +02:00
Trial97
5d5adbd7da
add update menu conditionaly
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-07 09:48:07 +02:00
Trial97
6506e93e4a
Removed some buttons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-07 09:44:27 +02:00
Trial97
011e87b421
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into toggle_deps
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-06 23:38:14 +02:00
Trial97
7a0b2a316a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-06 23:19:58 +02:00
TheKodeToad
baa988ec81
Merge pull request #1739 from Trial97/mod_icons
fixed squished mod icons
2023-11-06 20:49:05 +00:00
Alexandru Ionut Tripon
8eac0d34bd
Merge pull request #1796 from Trial97/dep_global_toggle
Added Global Dependenicies toggle
2023-11-06 20:48:51 +00:00
Alexandru Ionut Tripon
0b1dcb3ea7
Merge pull request #1760 from LocalSpook/sorting
Localize sorting options for resource and shader packs
2023-11-06 20:45:52 +00:00
Alexandru Ionut Tripon
3d529b0c3e
Merge pull request #1772 from Trial97/pixmap_crash
Fix crash with mod icon caching
2023-11-06 20:44:27 +00:00
seth
a2ab4804dd
Merge pull request #1788 from Trial97/readme
Updated the readme
2023-11-06 16:41:56 +00:00
Trial97
ca226d2ab5
Fixed comparation warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-06 11:24:19 +02:00
Trial97
670e91cb60
Increased the step to around 10MB
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-06 11:08:18 +02:00
Trial97
cc291219f9
apply suggested changes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-06 10:51:34 +02:00
Sefa Eyeoglu
0eda2447dc
Merge pull request #1797 from Trial97/fix_mangohub
[Linux] Fix loading MangoHud
2023-11-06 08:14:55 +01:00
Trial97
867e6223ce
Fixed mangoHub loading
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-05 23:48:26 +02:00
Alexandru Ionut Tripon
3e7f9083ca
Update launcher/ui/pages/instance/ModFolderPage.cpp
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-05 23:41:54 +02:00
Alexandru Ionut Tripon
902e861fc6
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-05 23:41:26 +02:00
seth
36d2109a15
Merge pull request #1792 from PrismLauncher/renovate/korthout-backport-action-2.x
chore(deps): update korthout/backport-action action to v2.1.0
2023-11-05 21:29:01 +00:00
TheKodeToad
bd9d5e0990
Reword
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-11-05 20:31:48 +00:00
Trial97
9a8667e99c
Added Global Dependenicies toggle
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-05 22:22:49 +02:00
Trial97
710a48fcaf
changed type form double long to long long
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-05 21:41:10 +02:00
TheKodeToad
52807ab279
Merge pull request #1793 from Edgars-Cirulis/develop
visual: Fix spacing.
2023-11-05 17:50:01 +00:00
Edgars Cīrulis
d2a85cb580 visual: Fix spacing.
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-11-05 17:43:12 +00:00
Alexandru Ionut Tripon
d13db1109f
Merge pull request #1789 from acdpsn/develop
Fixed link to Fulmine's website
2023-11-05 16:15:36 +00:00
renovate[bot]
64bbcb2834
chore(deps): update korthout/backport-action action to v2.1.0 2023-11-05 15:57:06 +00:00
Trial97
1d67fc6646
added special case for windows
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-05 17:35:49 +02:00
Alexandru Ionut Tripon
070d83d887
Merge pull request #1791 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-11-05 07:03:37 +00:00
Alex
cf4144cb50 Fixed link to Fulmine's website
Signed-off-by: Alex <akim8@emich.edu>
2023-11-05 00:46:05 -04:00
github-actions[bot]
40ebae394a chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4' (2023-10-03)
  → 'github:hercules-ci/flake-parts/8c9fa2545007b49a5db5f650ae91f227672c3877' (2023-11-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/f5892ddac112a1e9b3612c39af1b72987ee5783a?dir=lib' (2023-09-29)
  → 'github:NixOS/nixpkgs/0cbe9f69c234a7700596e943bfae7ef27a31b735?dir=lib' (2023-10-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/808c0d8c53c7ae50f82aca8e7df263225cf235bf' (2023-10-26)
  → 'github:nixos/nixpkgs/9d5d25bbfe8c0297ebe85324addcb5020ed1a454' (2023-11-04)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/bd38df3d508dfcdff52cd243d297f218ed2257bf' (2023-10-25)
  → 'github:cachix/pre-commit-hooks.nix/dec10399e5b56aa95fcd530e0338be72ad6462a0' (2023-11-01)
2023-11-05 00:18:56 +00:00
Trial97
5afe6600ee
use fs::move instead of qt rename
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-04 16:49:35 +02:00
Trial97
0f95bf1e42
Updated readme
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-04 12:08:49 +02:00
Trial97
f828ea8929
updated the texture pack tooltips
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-04 11:49:05 +02:00
Trial97
79e299123c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2023-11-04 00:15:09 +02:00
Trial97
a4978946d5
disabled lax deps
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-04 00:07:51 +02:00
Trial97
2b6d8b8a2d
updated tooltip messages
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-03 23:02:17 +02:00
Trial97
cbb453a0ed
minimize the permisions for extracted files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-03 22:55:10 +02:00
TheKodeToad
b446bdf4a9
Merge pull request #1783 from Trial97/visual_bug
Fixed visual bug with Modlist export
2023-11-03 15:20:57 +00:00
Sefa Eyeoglu
ef40ba8439
Merge pull request #1782 from Trial97/warn_remove_account 2023-11-03 12:56:13 +01:00
Trial97
1b2654bfa6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2023-11-03 12:53:23 +02:00
Alexandru Ionut Tripon
1bd69ecbb2
Update launcher/ui/pages/global/AccountListPage.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-11-03 11:42:40 +02:00
Trial97
b18082376d
Fixed visual bug with Modlist export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-03 11:04:13 +02:00
Trial97
127a31ba3a
Added warning for remove account
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-03 10:31:40 +02:00
Trial97
4081c51573
made dependency check more lax
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-02 23:52:12 +02:00
Trial97
220a1de99a
made sure that we do not relay for undefined behavior
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-02 22:41:56 +02:00
Trial97
3cbc63bb9f
added size column
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-02 12:18:24 +02:00
Trial97
2349f29be0
jsut a overflow protection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-11-02 01:26:04 +02:00
Alexandru Ionut Tripon
f8bb1a872a
Merge pull request #1766 from TheKodeToad/groups-fix
Fix group issues
2023-11-01 15:26:41 +00:00
Tayou
86e2f6c58c
Merge pull request #1685 from Trial97/java
Autodetect Java bundled with official launcher
2023-10-31 18:03:41 +01:00
Trial97
2863a691ef
moved refresh out of the loop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-31 08:45:08 +02:00
Alexandru Ionut Tripon
60fd7f0ae6
Update launcher/minecraft/auth/steps/XboxAuthorizationStep.cpp
Co-authored-by: Tayou <git@tayou.org>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-10-31 08:43:26 +02:00
Trial97
7166d68736
fixed account refresh after sleep
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-31 00:45:18 +02:00
Trial97
e42a2404a9
added more microsoft error codes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-30 22:55:23 +02:00
Trial97
1490193402
added button to disable dependencies on the mod review
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-30 22:14:26 +02:00
TheKodeToad
2526275c5e
Better check
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-30 09:51:37 +00:00
TheKodeToad
5a54d80c6e
Fix group issues
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-30 09:26:38 +00:00
Sefa Eyeoglu
ea7dd9cfcc
Merge pull request #1761 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-10-29 09:31:28 +01:00
Alexandru Ionut Tripon
eb3f1ee27a
Merge pull request #1758 from IThundxr/patch-1
[Windows] Remove Windows 7/8 support from app manifest
2023-10-29 07:12:40 +00:00
LocalSpook
0de4d8902e Remove top-level const qualifiers in function declarations
Signed-off-by: LocalSpook <56512186+LocalSpook@users.noreply.github.com>
2023-10-28 22:12:09 -07:00
github-actions[bot]
55ac17c45b chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/44881e03af1c730cbb1d72a4d41274a2c957813a' (2023-10-21)
  → 'github:nixos/nixpkgs/808c0d8c53c7ae50f82aca8e7df263225cf235bf' (2023-10-26)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/8cc349bfd082da8782b989cad2158c9ad5bd70fd' (2023-10-19)
  → 'github:cachix/pre-commit-hooks.nix/bd38df3d508dfcdff52cd243d297f218ed2257bf' (2023-10-25)
2023-10-29 00:18:11 +00:00
LocalSpook
54305397e4 Localize sorting options for resource and shader packs
Signed-off-by: LocalSpook <56512186+LocalSpook@users.noreply.github.com>
2023-10-28 12:50:40 -07:00
Sefa Eyeoglu
736246e6c8
Merge pull request #1759 from PrismLauncher/renovate/korthout-backport-action-2.x 2023-10-28 18:50:45 +02:00
renovate[bot]
9dcb7e9759
chore(deps): update korthout/backport-action action to v2 2023-10-28 16:03:11 +00:00
Tayou
69c2720872
Merge pull request #1691 from Trial97/no_color
Add no_color env variable
2023-10-28 18:02:53 +02:00
IThundxr
364cb4ff6a
chore: remove windows 7/8 support
With 8.0 windows legacy support was dropped, this just removes it from the manifest

Signed-off-by: IThundxr <contact@ithundxr.dev>
2023-10-28 07:39:32 -04:00
Tayou
df2a92d5f4
Merge pull request #1742 from TayouVR/fix-resourcepack-crash
fix switch/case fallthrough in resource parse tasks
2023-10-28 12:44:40 +02:00
Trial97
33cf7066b4
formated the code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-27 21:51:35 +03:00
Trial97
2256850cb6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feature/java-downloader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-27 00:12:50 +03:00
LocalSpook
9d972ccc63 Localize account type in account list
Signed-off-by: LocalSpook <56512186+LocalSpook@users.noreply.github.com>
2023-10-26 13:32:33 -07:00
Sefa Eyeoglu
3719ea21b0
Merge pull request #1355 from TheKodeToad/env-vars
Custom environment variables
2023-10-26 22:10:26 +02:00
TheKodeToad
bd11b93a0c
Use hidden tab bar like other pages
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-26 21:01:24 +01:00
Trial97
12d567a9b8
made env vars behave like the rest of the settings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 22:51:38 +03:00
Trial97
60a7628dbb
delete duplicate mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 20:43:26 +03:00
Trial97
3d84635b24
Remove file on mod duplication
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 20:09:12 +03:00
Trial97
321bbf1fa8
fixed asan stuff
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 19:06:38 +03:00
Trial97
dba54332fb
fixed some asan stuf
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 18:31:52 +03:00
Trial97
04acd27dab
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into concurrent 2023-10-26 13:45:47 +03:00
Trial97
8b8ea2d270
ensured that the variant is allways uppercase
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 13:37:25 +03:00
Trial97
44cdf3f697
Fixed skin variant
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-26 13:33:00 +03:00
Trial97
263dc5af67
Fixed remane and delete of selected skin
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-25 19:56:26 +03:00
Trial97
a5938a7de9
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-25 19:26:05 +03:00
txtsd
38d77b58cd
Merge pull request #1748 from LocalSpook/using 2023-10-25 16:08:42 +00:00
Trial97
d4d345ee7d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into toggle_deps 2023-10-24 23:40:36 +03:00
Tayou
a161f5cfe2
Merge pull request #1747 from Trial97/fix_initial_java
fix: java memory not set on initial setup
2023-10-24 19:04:56 +02:00
LocalSpook
5be80df1ee Replace typedef with using
Signed-off-by: LocalSpook <56512186+LocalSpook@users.noreply.github.com>
2023-10-24 01:36:27 -07:00
Trial97
6a19f2dae8
fixed icon import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-24 11:19:19 +03:00
Trial97
694840937b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2023-10-24 10:32:09 +03:00
Trial97
87f2f88d4c
fix: java memory not set on initial setup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-23 23:38:03 +03:00
Trial97
f7c9972db0
separated dependecy check from mod update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-23 19:46:30 +03:00
Sefa Eyeoglu
b376888f43
Merge pull request #1515 from TheKodeToad/sysprops 2023-10-22 21:57:11 +02:00
Tayou
0fe3241df6
remove now unneeded Q_ASSERTs
Signed-off-by: Tayou <git@tayou.org>
2023-10-22 21:25:06 +02:00
Tayou
7d5206818b
fix switch/case fallthrough
Signed-off-by: Tayou <git@tayou.org>
2023-10-22 21:25:00 +02:00
Sefa Eyeoglu
db19362a97
feat: add launcher brand and version props
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-10-22 21:19:44 +02:00
Trial97
2aeb829176
removed the concurent task destructor behaivior
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-22 19:58:10 +03:00
Trial97
0ca3873f1c
small fix
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-22 17:48:19 +03:00
Trial97
a748f49362
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into concurrent 2023-10-22 11:34:55 +03:00
Trial97
932cd9e262
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-22 11:32:05 +03:00
Sefa Eyeoglu
cefb96e812
Merge pull request #1743 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-10-22 09:40:49 +02:00
github-actions[bot]
e7e80e704f chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/01441e14af5e29c9d27ace398e6dd0b293e25a54' (2023-10-11)
  → 'github:nixos/nixpkgs/44881e03af1c730cbb1d72a4d41274a2c957813a' (2023-10-21)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/42e1b6095ef80a51f79595d9951eb38e91c4e6ca' (2023-10-09)
  → 'github:cachix/pre-commit-hooks.nix/8cc349bfd082da8782b989cad2158c9ad5bd70fd' (2023-10-19)
2023-10-22 00:18:23 +00:00
Trial97
10ae808da9
fixed codeql
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-22 00:06:08 +03:00
Trial97
d151e97e3a
Fixed some headers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 22:40:37 +03:00
Trial97
41c9ca4f8a
Added categories filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 22:15:07 +03:00
Trial97
35d62cc5f2
Updated dependencies
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 19:05:31 +03:00
Trial97
9aac8e389f
made release type visible
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 18:48:55 +03:00
Trial97
9e85297f7a
Connected filters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 18:28:33 +03:00
Alexandru Ionut Tripon
2c4af7e793
Merge pull request #1290 from Trial97/refactor/NetActions
Refactor ImgurUpload
2023-10-21 12:32:16 +01:00
Trial97
4850434c67
added releaseType?
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-21 12:16:02 +03:00
Alexandru Ionut Tripon
f0fd1bd5e5
Merge pull request #1737 from Trial97/fix_ftb_app_import_icon
Fixed FTBApp import icon
2023-10-21 07:48:21 +01:00
Trial97
5d926582c7
added Image column size hint
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 19:08:56 +03:00
Trial97
7b62d14683
fixed squished mod icons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 17:15:12 +03:00
Trial97
a9d7af9096
removed some unused stuff
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 16:44:37 +03:00
Trial97
80723eeca1
Fixed FTBApp import icon
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 16:41:32 +03:00
TheKodeToad
e9fd02baca
Fix code style
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-20 13:12:16 +01:00
TheKodeToad
db4a7ce239
Fix code style
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-20 13:11:17 +01:00
Trial97
35a8ab2393
Removed processEvents
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 10:32:45 +03:00
Trial97
6883c19579
Fixed the version combobox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-20 00:44:36 +03:00
Trial97
55946c8923
first attempt at a combobox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-19 23:53:26 +03:00
Alexandru Ionut Tripon
7ad48d8677
Merge pull request #1692 from Trial97/msa_account
Fix wrong account selection
2023-10-19 20:09:28 +01:00
Tayou
9a0cfbc648
Merge pull request #1733 from Dnyanu76/patch-1
Remove typo
2023-10-19 21:07:51 +02:00
Indrale Dnyaneshwar
1f2483c39e
Remove typo
Signed-off-by: Indrale Dnyaneshwar <118615488+Dnyanu76@users.noreply.github.com>
2023-10-20 00:31:47 +05:30
Trial97
1ac9757a86
Added back the processEvents
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-19 21:51:51 +03:00
Tayou
b9c1dc7325
Merge pull request #1374 from Trial97/welcome_background
Added welcome screen
2023-10-19 20:42:47 +02:00
Trial97
03a27d5b5a
Updated Managed Packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-19 19:47:48 +03:00
TheKodeToad
cf33927f21
Merge remote-tracking branch 'upstream/develop' into sysprops
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-19 11:28:07 +01:00
Trial97
8d4f508cc6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into concurrent 2023-10-18 18:08:48 +03:00
Trial97
30f73a0696
Merge branch 'fail_concurrent_task' of github.com:Trial97/PrismLauncher into concurrent
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-18 18:08:31 +03:00
TheKodeToad
c638a63a03
Merge pull request #1726 from Trial97/contrib
Added Trial97 as maintainer in about dialog
2023-10-18 09:34:12 +01:00
Sefa Eyeoglu
2081fcd3f5
Merge pull request #1722 from Scrumplex/fix/readonly-themes 2023-10-18 09:25:48 +02:00
Sefa Eyeoglu
90ebbd8e91
Merge pull request #1724 from getchoo/no-default-updater 2023-10-18 09:17:58 +02:00
Trial97
165d218300
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into contrib 2023-10-18 09:07:36 +03:00
Trial97
fea4c4eba8
Updated filters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-18 09:00:45 +03:00
seth
069bc887f1
fix: don't always build updater on platforms besides mac
Signed-off-by: seth <getchoo@tuta.io>
2023-10-17 19:12:00 -04:00
Trial97
b54376062e
Added mcVersion column
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-17 19:25:01 +03:00
Trial97
9001d9eb75
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into filters 2023-10-17 18:32:18 +03:00
Alexandru Ionut Tripon
5aa2b88861
Merge pull request #1721 from Trial97/develop
fixed code signing for appImage
2023-10-17 10:20:44 +01:00
Sefa Eyeoglu
d348f20dd9
fix: allow loading themes with missing resources folder
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-10-17 10:00:17 +02:00
Trial97
b1bd0ceade
fixed code signing for appImage
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-17 09:29:47 +03:00
Trial97
cc66350286
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into concurrent
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-16 23:42:19 +03:00
Trial97
9400879242
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-16 23:32:24 +03:00
Trial97
b6f48f6fe0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into netjob_retry
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-16 23:13:53 +03:00
Trial97
869f654a10
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-16 22:46:11 +03:00
Alexandru Ionut Tripon
8f2f99801e
Merge pull request #1717 from DioEgizio/update-qt660
chore: bump Qt to Qt 6.6.0
2023-10-16 18:59:29 +01:00
Tayou
aae65e3e4e
Merge branch 'develop' into update-qt660
Signed-off-by: Tayou <git@tayou.org>
2023-10-16 19:57:05 +02:00
Tayou
436db23ffc
Merge pull request #1268 from Ryex/feat/launcher-updater
Feat: Windows (And portable linux / appimage) Auto Updater
2023-10-16 19:53:50 +02:00
DioEgizio
6c9856b9dc chore: bump Qt to Qt 6.6.0
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-10-16 15:42:16 +02:00
Alexandru Ionut Tripon
0927035a26
Merge pull request #1549 from Trial97/atlauncher_browser
added suport for atlauncher browser download
2023-10-16 06:39:12 +01:00
Tayou
5985d8b118
Merge pull request #1383 from TheKodeToad/rename-groups
Rename groups
2023-10-15 23:38:27 +02:00
TheKodeToad
cc990c4f94
Merge branch 'develop' into env-vars
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-15 21:57:20 +01:00
TheKodeToad
c4882e7162
Merge pull request #443 from TheKodeToad/skinfix
Add legacy skin fix
2023-10-15 21:46:29 +01:00
Trial97
0ff98c5876
allways enable dependencies
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 21:22:59 +03:00
Trial97
fe14e48d72
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods 2023-10-15 21:06:40 +03:00
Trial97
9d15255e0a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into atlauncher_browser 2023-10-15 20:52:38 +03:00
Trial97
ca9b593483
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions 2023-10-15 20:44:45 +03:00
Trial97
ef0813754b
added explicit qt version for linux portable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 20:23:46 +03:00
Trial97
6bbff310bc
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/launcher-updater 2023-10-15 17:42:39 +03:00
Trial97
52c94eb568
reset the setting if is under 0
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 16:47:23 +03:00
TheKodeToad
6fb7a98901
Fix small mistake 😭
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-15 14:45:05 +01:00
Tayou
9705e6325a
Merge pull request #1673 from Trial97/win_attr
fix folder attributes on windows copy
2023-10-15 15:15:36 +02:00
TheKodeToad
7112d04df5
Mark setting as optional
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-15 14:11:08 +01:00
Trial97
b075711be0
ensured totalTimePlayed is allways greater than 0
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 16:03:14 +03:00
Alexandru Ionut Tripon
2ab48a43dd
Merge pull request #1706 from Trial97/develop
removed the better release for modrinth modpacks
2023-10-15 12:24:20 +01:00
Alexandru Ionut Tripon
682134435d
Merge pull request #1684 from Trial97/remove_legacy
removed windows legacy builds
2023-10-15 12:22:35 +01:00
Alexandru Ionut Tripon
05d7cc31bf
Merge pull request #1709 from Trial97/arch_build
Fix compatibility with Qt 6.6
2023-10-15 12:19:47 +01:00
Trial97
749975e8ef
made side and loaders visible to user
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 12:46:23 +03:00
Trial97
ab725eeb18
corected side and added loaders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-15 11:52:28 +03:00
Sefa Eyeoglu
c498ad1787
Merge pull request #1711 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-10-15 08:55:36 +02:00
github-actions[bot]
4939a33456 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2de1be5b51c3d6fa833f1c1f222dc867dd054b31' (2023-10-07)
  → 'github:nixos/nixpkgs/01441e14af5e29c9d27ace398e6dd0b293e25a54' (2023-10-11)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/66c352d33e0907239e4a69416334f64af2c685cc' (2023-10-05)
  → 'github:cachix/pre-commit-hooks.nix/42e1b6095ef80a51f79595d9951eb38e91c4e6ca' (2023-10-09)
2023-10-15 00:18:39 +00:00
Trial97
023b3e3c39
Fixed arch build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-14 09:41:04 +03:00
Tayou
7015b8f7b2
Merge pull request #1563 from Trial97/modrinth_pack
Pack import fixes and improvements
2023-10-13 16:38:37 +02:00
Trial97
32eaaa25d9
removed the better release for modrinth modpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-13 00:04:36 +03:00
Hazel
e66c3b9419
Add game category to generated Linux shortcuts
Signed-off-by: Hazel <hazel@theopensource.company>
2023-10-11 23:19:14 +02:00
Trial97
5d56ac7cf2
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip 2023-10-10 21:15:31 +03:00
Trial97
5f7513d61c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into disablemods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-10 19:49:40 +03:00
Trial97
0b6373e4df
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-10 19:46:27 +03:00
Alexandru Ionut Tripon
ca4b58d5d7
Merge pull request #1405 from Trial97/update_file
Allow updating managed packs from local file
2023-10-10 16:17:08 +01:00
Alexandru Ionut Tripon
4eb8db16f1
Merge pull request #1543 from Trial97/packwiz
refactor packwiz file write
2023-10-10 16:16:57 +01:00
Alexandru Ionut Tripon
a7842ecc33
Merge pull request #1591 from Trial97/ftb_import_fix
fix: make cached instead of file for ftb pack import
2023-10-10 16:16:40 +01:00
Alexandru Ionut Tripon
6150908025
Merge pull request #1658 from Trial97/neoforge_version
Added version check for neoforge filter
2023-10-10 16:16:21 +01:00
Trial97
5cb6d93136
fixed updater build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-09 22:25:45 +03:00
Trial97
7e6a08548d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/launcher-updater 2023-10-09 19:58:43 +03:00
Sefa Eyeoglu
11a0241b5c
Merge pull request #1699 from GitMuslim/develop 2023-10-09 17:25:11 +02:00
Muslim
8eb8f167ab
oops
Signed-off-by: Muslim <42213155+GitMuslim@users.noreply.github.com>
2023-10-09 18:02:56 +03:00
Muslim
5f5214e5dd
add fullstop
Signed-off-by: Muslim <42213155+GitMuslim@users.noreply.github.com>
2023-10-09 17:00:57 +03:00
Trial97
8dd640819d
removed processEvents from ConcurrentTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-09 01:50:14 +03:00
Sefa Eyeoglu
04a7275280
Merge pull request #1695 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-10-08 09:31:17 +02:00
github-actions[bot]
05caa874bc chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-compat':
    'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17)
  → 'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/7f53fdb7bdc5bb237da7fefef12d099e4fd611ca' (2023-09-01)
  → 'github:hercules-ci/flake-parts/c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4' (2023-10-03)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/3e52e76b70d5508f3cec70b882a29199f4d1ee85?dir=lib' (2023-08-31)
  → 'github:NixOS/nixpkgs/f5892ddac112a1e9b3612c39af1b72987ee5783a?dir=lib' (2023-09-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bd9b686c0168041aea600222be0805a0de6e6ab8' (2023-09-29)
  → 'github:nixos/nixpkgs/2de1be5b51c3d6fa833f1c1f222dc867dd054b31' (2023-10-07)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/cb770e93516a1609652fa8e945a0f310e98f10c0' (2023-09-24)
  → 'github:cachix/pre-commit-hooks.nix/66c352d33e0907239e4a69416334f64af2c685cc' (2023-10-05)
2023-10-08 00:18:30 +00:00
Trial97
47dbb09115
Improvements to concurrent task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-07 00:21:40 +03:00
Trial97
dc74ea7382
fixed wrong account selection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-06 19:27:26 +03:00
Trial97
8d0a53273f
Add no_color env variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-06 18:42:54 +03:00
Alexandru Ionut Tripon
bca5e8f395
Update launcher/minecraft/PackProfile.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-10-06 16:16:03 +03:00
TheKodeToad
d49f81d132
Drop leftover mod loader settings
I messed up the merge.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-10-06 11:27:04 +01:00
Trial97
82461b1113
rename for windows
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-06 08:51:45 +03:00
Trial97
4f1ee85424
check for minecraft java runtime
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-06 00:21:37 +03:00
Trial97
b67c2c71d1
removed windows legacy builds
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-05 22:44:49 +03:00
Sefa Eyeoglu
a7bdfb5f6b
Merge pull request #1682 from romangraef/addmorejavas
Add more Java installation dirs
2023-10-05 00:44:16 +02:00
nea
c6c17036e3
Add more Java installation dirs
Signed-off-by: nea <nea@nea.moe>
2023-10-04 21:20:59 +02:00
Trial97
e913f61305
added a more strict condition for neoforge forge support
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-04 19:29:37 +03:00
Trial97
c78d4e7bb6
added version test for snapshot
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-04 19:16:21 +03:00
Tayou
024c474658
Merge pull request #1678 from Trial97/release_order
fixed quilt dependencies
2023-10-04 10:28:45 +02:00
Sefa Eyeoglu
03ad430699
Merge pull request #1537 from Trial97/warnings 2023-10-04 09:40:38 +02:00
Trial97
ac38585a2a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into release_order 2023-10-04 09:41:49 +03:00
Trial97
3cba5adb5a
updated dependency cycle
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-04 09:41:40 +03:00
Sefa Eyeoglu
d186c34385
Merge pull request #1676 from Trial97/release_order
revert back the release order
2023-10-04 07:43:21 +02:00
Trial97
77979b4c95
revert back the release order
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-03 17:23:26 +03:00
Trial97
8069de29b2
fix folder attributes on windows copy
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-02 21:53:08 +03:00
Tayou
540fc7d2a8
Merge pull request #1670 from Trial97/seg_fault
Don't update mods if no mod loader is installed
2023-10-02 17:05:07 +02:00
Sefa Eyeoglu
d612ab94a7
Merge pull request #1672 from Trial97/skin_refresh
refresh default account when list changes
2023-10-02 16:06:12 +02:00
Sefa Eyeoglu
bfa9613373
Merge pull request #1657 from Trial97/shader_txt 2023-10-02 11:56:50 +02:00
Trial97
93be8b0735
refresh default account when list changes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-02 09:13:02 +03:00
Trial97
2cea7454ef
fix: do not update mods if no mod loader is selected
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-01 23:04:19 +03:00
cullvox
87f34f07d7
Merge branch 'develop' into components-resource-pack-fix
Signed-off-by: cullvox <68567525+cadenmiller@users.noreply.github.com>
2023-10-01 11:58:44 -04:00
Sefa Eyeoglu
eab1180f68
Merge pull request #1090 from Ryex/feat/acknowledge_release_type 2023-10-01 14:32:58 +02:00
Sefa Eyeoglu
e3a147f56d
Merge pull request #1656 from Trial97/remove_mojang2 2023-10-01 14:32:42 +02:00
Sefa Eyeoglu
898a719d3e
Merge pull request #1668 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-10-01 09:28:57 +02:00
github-actions[bot]
be8a9f6541 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e12483116b3b51a185a33a272bf351e357ba9a99' (2023-09-21)
  → 'github:nixos/nixpkgs/bd9b686c0168041aea600222be0805a0de6e6ab8' (2023-09-29)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/4f883a76282bc28eb952570afc3d8a1bf6f481d7' (2023-09-10)
  → 'github:cachix/pre-commit-hooks.nix/cb770e93516a1609652fa8e945a0f310e98f10c0' (2023-09-24)
2023-10-01 00:19:50 +00:00
Sefa Eyeoglu
589ab24f7e
Merge pull request #1666 from getchoo/driverlink
[Linux] Use addOpenGLRunpath.driverLink in Nix wrapper
2023-09-30 23:50:36 +02:00
Alexandru Ionut Tripon
317c7b5544
Update launcher/minecraft/auth/AccountList.cpp
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-10-01 00:32:17 +03:00
Alexandru Ionut Tripon
00bbbdc6e9
Update launcher/LaunchController.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-10-01 00:31:51 +03:00
seth
84269f9596
refactor(nix): use addOpenGLRunpath.driverLink in wrapper
Signed-off-by: seth <getchoo@tuta.io>
2023-09-30 12:50:26 -04:00
Trial97
2e4fcd6aa3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 23:26:15 +03:00
Trial97
09a10a916b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into netjob_retry
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 23:23:42 +03:00
Trial97
34294383eb
added version type to dep update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 23:18:23 +03:00
Trial97
4802f6950e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/acknowledge_release_type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 23:06:18 +03:00
Sefa Eyeoglu
531b58093e
Merge pull request #1263 from Trial97/develop 2023-09-28 22:03:14 +02:00
Sefa Eyeoglu
2ff9ef0620
Merge pull request #1363 from Trial97/download_threads 2023-09-28 22:02:57 +02:00
Trial97
5b7c5607a9
removed flame consturctor
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 22:53:40 +03:00
Trial97
9acbf98f94
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/acknowledge_release_type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 22:50:12 +03:00
Trial97
bef701eba8
chaged folder again
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 21:27:11 +03:00
Trial97
742384909f
updated portable update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 21:24:31 +03:00
Trial97
606c12ffeb
more fixing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 18:47:21 +03:00
Trial97
498c9db1ce
fixed appImageUpdate
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-28 15:14:59 +03:00
Sefa Eyeoglu
59e565ef96
Merge pull request #1643 from bolli24/develop 2023-09-27 17:34:32 +02:00
seth
f370f0d749
chore: cleanup a few more mentions of mojang accounts
Signed-off-by: seth <getchoo@tuta.io>
2023-09-27 05:34:48 -04:00
Trial97
b8d9c3d779
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-26 20:19:35 +03:00
Trial97
ebde563648
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/launcher-updater 2023-09-26 20:16:46 +03:00
Trial97
4ee6a6711d
Added version check for neoforge filter
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-25 23:04:21 +03:00
Trial97
86b47b3421
Do not display invalid shaders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-25 22:33:36 +03:00
Trial97
7c636d4608
Removed mojang
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-25 17:44:04 +03:00
TheKodeToad
0406e168e7
Merge pull request #1655 from 0xallie/minecraft-wiki-migration
Update links to Minecraft Wiki
2023-09-25 15:26:37 +01:00
alexia
1684cff7ac
Update links to Minecraft Wiki
Minecraft Wiki has officially moved from Fandom to their own wiki.
I updated some links I found in comments.

Signed-off-by: alexia <me@alexia.lol>
2023-09-25 15:49:12 +02:00
Sefa Eyeoglu
ad9fb7349f
Merge pull request #1647 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-09-24 09:02:43 +02:00
bolli24
14af7044be
Update launcher/ui/dialogs/ModUpdateDialog.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: bolli24 <9805065+bolli24@users.noreply.github.com>
2023-09-24 03:01:47 +02:00
github-actions[bot]
fa65ac3ff7 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nix-filter':
    'github:numtide/nix-filter/ac030bd9ba98e318e1f4c4328d60766ade8ebe8b' (2023-09-04)
  → 'github:numtide/nix-filter/41fd48e00c22b4ced525af521ead8792402de0ea' (2023-09-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/46688f8eb5cd6f1298d873d4d2b9cf245e09e88e' (2023-09-15)
  → 'github:nixos/nixpkgs/e12483116b3b51a185a33a272bf351e357ba9a99' (2023-09-21)
2023-09-24 00:18:03 +00:00
bolli24
f3c089792a Skip folders when updating mods.
Previously the mod updater would fail, reporting "The mod updater was aborted!", when trying to update a folder.

Signed-off-by: bolli24 <4827765-bolli24@users.noreply.gitlab.com>
2023-09-22 21:36:19 +02:00
Alexandru Ionut Tripon
81a3ba18bc
Update launcher/minecraft/mod/tasks/GetModDependenciesTask.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-09-20 18:45:23 +03:00
Sefa Eyeoglu
98bc102f5b
Merge pull request #1618 from getchoo/cool-nix-stuff
filter source in flake & add controller support
2023-09-20 07:47:22 +02:00
seth
97da8892b9
chore(nix): add meta.mainProgram attribute
Signed-off-by: seth <getchoo@tuta.io>
2023-09-19 16:41:40 -04:00
seth
97ced1f459
fix(nix): include libusb1 as a runtime dependency
Signed-off-by: seth <getchoo@tuta.io>
2023-09-19 16:41:37 -04:00
Trial97
a49851cb40
updated blocked mods with empty hash
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-19 15:48:12 +03:00
Sefa Eyeoglu
d72c3aba80
Merge pull request #1632 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-09-17 09:30:30 +02:00
github-actions[bot]
9afe80b0e0 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b200e0df08f80c32974a6108ce431d8a8a5e6547' (2023-09-07)
  → 'github:nixos/nixpkgs/46688f8eb5cd6f1298d873d4d2b9cf245e09e88e' (2023-09-15)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa' (2023-08-17)
  → 'github:cachix/pre-commit-hooks.nix/4f883a76282bc28eb952570afc3d8a1bf6f481d7' (2023-09-10)
2023-09-17 00:18:04 +00:00
Sefa Eyeoglu
00af385619
Merge pull request #1572 from Trial97/catpacks2 2023-09-16 18:22:13 +02:00
Sefa Eyeoglu
bf6dc10f35
Merge pull request #1605 from TheKodeToad/flame-shaders 2023-09-16 18:20:45 +02:00
Trial97
0e41ceffc4
removed missed header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-16 19:18:58 +03:00
Trial97
01e98a6ce8
simplify the raw json parsing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

Fixed Tests

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-16 19:12:09 +03:00
cullvox
4053229544 DCO Remediation Commit for cullvox <cullvox@outlook.com>
I, cullvox <cullvox@outlook.com>, hereby add my Signed-off-by to this commit: c81689d393

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-15 20:55:34 -04:00
cullvox
07645984b5 Merge branch 'components-resource-pack-fix' of https://github.com/cadenmiller/PrismLauncher into components-resource-pack-fix 2023-09-15 20:41:27 -04:00
cullvox
c81689d393 fixes html elide issue with InfoFrame 2023-09-15 20:41:21 -04:00
cullvox
e96d0b6caf DCO Remediation Commit for cullvox <cullvox@outlook.com>
I, cullvox <cullvox@outlook.com>, hereby add my Signed-off-by to this commit: ee7016fa54

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-13 14:31:04 -04:00
cullvox
ee7016fa54 use clang-format
Signed-off-by: cullvox <cullvox@outlook.com
2023-09-13 14:28:56 -04:00
cullvox
e1dda6c005 DCO Remediation Commit for cullvox <cullvox@outlook.com>
I, cullvox <cullvox@outlook.com>, hereby add my Signed-off-by to this commit: ddf0c28b1b

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-12 21:50:33 -04:00
cullvox
ddf0c28b1b clang-format fixes 2023-09-12 21:45:29 -04:00
cullvox
a4e6530513 added tests, fixed issues with overriding/format
In the documentation it states that child values can override the parent
values. Originally this code did not support that but now it does. Also
added in testing inspired by the previous tests.

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-12 21:34:42 -04:00
cullvox
df88ccd419 clean up and add review suggestions, links open
Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-11 15:49:01 -04:00
cullvox
b16085f66c attempt to fix clang-format and ubuntu build.
Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-11 02:05:05 -04:00
cullvox
fbe4043651 fix formatting and add more proper errors.
Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-11 01:34:53 -04:00
cullvox
58bd6d929f added formatting with colors.
This is somewhat dirty implementation and I will clean it up soon.
Using the HTML rich text features of Qt, made it much easier to
understand what was needed.

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-10 23:37:26 -04:00
seth
4cb424470b
Merge pull request #1619 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-09-10 15:57:03 -04:00
Trial97
9445a555e4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into packwiz
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-10 16:24:59 +03:00
Trial97
47d1f23568
added side for modrinth mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-10 16:22:57 +03:00
cullvox
7a7c3015f4 fix not properly reading json text.
The text now displays properly in the GUI of Prism.

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-09 20:25:49 -04:00
github-actions[bot]
82a0a5bca1 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/bfb7dfec93f3b5d7274db109f2990bc889861caf' (2023-09-02)
  → 'github:nixos/nixpkgs/b200e0df08f80c32974a6108ce431d8a8a5e6547' (2023-09-07)
2023-09-10 00:17:57 +00:00
cullvox
1261908ef7 remove space for clang-format
Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-09 19:55:55 -04:00
cullvox
ef1dc2afac DCO Remediation Commit for cullvox <cullvox@outlook.com>
I, cullvox <cullvox@outlook.com>, hereby add my Signed-off-by to this commit: 05f4214cc5

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-09 19:50:59 -04:00
cullvox
05f4214cc5 fix clang-format failing 2023-09-09 19:50:13 -04:00
cullvox
04aa0155bf DCO Remediation Commit for cullvox <cullvox@outlook.com>
I, cullvox <cullvox@outlook.com>, hereby add my Signed-off-by to this commit: d2e662ddbb

Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-09 19:45:30 -04:00
cullvox
093d09efe3 fix style, and use qWarning instead of throw.
Signed-off-by: cullvox <cullvox@outlook.com>
2023-09-09 19:03:33 -04:00
seth
10192c540b
feat(nix): add source filtering
this - along with garnix - should mostly eliminate unneeded (re)builds

Signed-off-by: seth <getchoo@tuta.io>
2023-09-09 15:25:41 -04:00
seth
6aa821df9c
refactor(nix): match inputs value in flake
Signed-off-by: seth <getchoo@tuta.io>
2023-09-09 15:25:39 -04:00
seth
89e434bd5b
refactor(nix): don't concat final attr in fixed point
Signed-off-by: seth <getchoo@tuta.io>
2023-09-09 15:25:33 -04:00
cullvox
d2e662ddbb added support for components in resource pack descriptions.
Signed-off-by: Caden Miller <me@cadenmiller.dev>
2023-09-09 12:35:34 -04:00
Sefa Eyeoglu
78f8a31cd6
Merge pull request #1613 from PrismLauncher/renovate/actions-cache-3.x 2023-09-08 23:28:03 +02:00
renovate[bot]
e7d6be531f
chore(deps): update actions/cache action to v3.3.2 2023-09-08 17:22:12 +00:00
Trial97
6ec1cf6e49
made skin upload more generic
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-08 19:50:46 +03:00
Trial97
8c8e4329d7
fix codeql
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-05 23:45:32 +03:00
Trial97
8bad255a91
added more import options
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-05 20:13:16 +03:00
Trial97
ab648e58ce
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into skin_selector 2023-09-05 00:18:45 +03:00
Trial97
c86b8b0f70
added skin manage dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-05 00:18:36 +03:00
Sefa Eyeoglu
ba3a1b6280
Merge pull request #1606 from PrismLauncher/renovate/actions-checkout-4.x 2023-09-04 17:11:45 +02:00
Sefa Eyeoglu
d483b613b1
Merge pull request #1578 from TheKodeToad/antialiasing 2023-09-04 17:05:29 +02:00
Sefa Eyeoglu
cf599865f6
Merge pull request #1581 from getchoo/old-gcc 2023-09-04 17:04:10 +02:00
Sefa Eyeoglu
546d49e183
Merge pull request #1530 from Trial97/metadata_delete 2023-09-04 17:02:52 +02:00
renovate[bot]
7dd2530027
chore(deps): update actions/checkout action to v4 2023-09-04 15:02:01 +00:00
Sefa Eyeoglu
e9ecdd05b9
Merge pull request #1574 from Scrumplex/refactor-flake 2023-09-04 17:02:01 +02:00
Sefa Eyeoglu
ad6f15f293
Merge pull request #1604 from PrismLauncher/renovate/cachix-install-nix-action-23.x 2023-09-04 17:01:43 +02:00
TheKodeToad
94c1cd6bcf
CurseForge shader downloading
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-04 14:15:37 +01:00
renovate[bot]
e155844671
chore(deps): update cachix/install-nix-action action to v23 2023-09-04 10:22:11 +00:00
Sefa Eyeoglu
2918d61b16
refactor(nix): use pre-commit flake module
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-09-04 08:53:10 +02:00
seth
bbf4e3b04d
refactor(nix): use fixed points over rec
Signed-off-by: seth <getchoo@tuta.io>
2023-09-03 19:07:39 -04:00
Sefa Eyeoglu
caf925cbad
Merge pull request #1601 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-09-03 09:42:31 +02:00
github-actions[bot]
88f3e19f81 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/59cf3f1447cfc75087e7273b04b31e689a8599fb' (2023-08-01)
  → 'github:hercules-ci/flake-parts/7f53fdb7bdc5bb237da7fefef12d099e4fd611ca' (2023-09-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/9e1960bc196baf6881340d53dccb203a951745a2?dir=lib' (2023-08-01)
  → 'github:NixOS/nixpkgs/3e52e76b70d5508f3cec70b882a29199f4d1ee85?dir=lib' (2023-08-31)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/cddebdb60de376c1bdb7a4e6ee3d98355453fe56' (2023-08-27)
  → 'github:nixos/nixpkgs/bfb7dfec93f3b5d7274db109f2990bc889861caf' (2023-09-02)
2023-09-03 00:17:45 +00:00
TheKodeToad
19b5a5e00b
Remove final conflict - kept by mistake
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-02 22:38:14 +01:00
TheKodeToad
347228a246
Legacy settings override default -> false
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-02 22:29:26 +01:00
TheKodeToad
1213a5ab46
Merge remote-tracking branch 'upstream/develop' into skinfix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-02 22:27:57 +01:00
TheKodeToad
179abfa03e
Resource provider column
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-01 22:05:44 +01:00
Trial97
9ad029e028
added skins directory
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 23:10:33 +03:00
Trial97
abbac5c26c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fail_concurrent_task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 22:28:59 +03:00
Trial97
17f696bffc
small tweaks to atl icons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 22:25:15 +03:00
Trial97
e095780cc3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into modrinth_pack
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 21:36:28 +03:00
Trial97
609eaa67ab
refactored skin apis
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 21:23:51 +03:00
TheKodeToad
ad16d61208
Resource metadata writing
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-01 17:42:05 +01:00
TheKodeToad
c01e95b79c
Merge pull request #1592 from kumquat-ir/desktop-open-fix
Fix opening files from curseforge:// and file:// links etc on linux
2023-09-01 16:13:48 +01:00
kumquat-ir
984e870bca actually it can handle multiple files just fine
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-09-01 10:32:35 -04:00
kumquat-ir
eb66e37b83 fix opening files from curseforge: links on linux
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-09-01 10:29:56 -04:00
Trial97
30ff417074
fix: make cached instead of file for ftb pack import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-09-01 16:25:49 +03:00
TheKodeToad
6aecbfc38f
Fix crashes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-01 12:50:20 +01:00
TheKodeToad
ee48766996
More generalistaion for ResourceFolderModels
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-01 00:27:05 +01:00
Trial97
c2b03d0f71
Fully reload the instance list once the folder is changed
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-31 20:35:56 +03:00
TheKodeToad
93876e27f8
Generalise resource metadata
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-31 17:54:22 +01:00
Trial97
7e65aea2ef
format json
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-31 19:04:41 +03:00
Trial97
6cfe2dbc50
moved catpack data to testdata
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-31 17:34:05 +03:00
TheKodeToad
25ce11d85d
Merge pull request #1539 from Trial97/refactor_modpack_ux
Improvements to modpack UX
2023-08-31 14:58:54 +01:00
Sefa Eyeoglu
707da5a25a
fix(nix): include udev dependency
See https://github.com/NixOS/nixpkgs/pull/252425

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-30 21:59:42 +02:00
seth
584e800279
fix: remove -Wextra-semi
this flag is unavailable on gcc versions < 8. we could detect the
version of the compiler here, but i don't think we lose much in this
flags removal and this is a simpler option

Signed-off-by: seth <getchoo@tuta.io>
2023-08-30 11:14:49 -04:00
TheKodeToad
befa3baa6a
Merge branch 'develop' into feat/launcher-updater
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-30 11:47:33 +01:00
TheKodeToad
f23a8e4b4b
Enable antialiasing for mod and pack icons
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-29 23:34:19 +01:00
TheKodeToad
8c30cb3706
Fix CI
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-29 13:27:06 +01:00
TheKodeToad
c1855c6ce3
Merge branch 'develop' into rename-groups
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-29 12:41:40 +01:00
Sefa Eyeoglu
b83fdbd1b7
Merge pull request #1575 from TheKodeToad/more-pack-export-fixes 2023-08-28 22:18:58 +02:00
TheKodeToad
0e67686295
Hide index folder in pack export dialog
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-28 17:25:07 +01:00
TheKodeToad
e98bca4749
Fix cancelling pack save
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-28 17:09:40 +01:00
Sefa Eyeoglu
bdc2fca711
refactor(nix): don't instantiate nixpkgs
See https://zimbatm.com/notes/1000-instances-of-nixpkgs

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-28 15:18:10 +02:00
Trial97
211865a1e1
handle gracefully the upload abort
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-28 13:31:19 +03:00
Trial97
311e36b5d6
added new line
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-28 11:52:26 +03:00
Sefa Eyeoglu
fbf6833124
Merge pull request #1519 from TheKodeToad/better-export-pack 2023-08-28 10:29:32 +02:00
Sefa Eyeoglu
e4e4c4a430
Merge pull request #1573 from PrismLauncher/renovate/lock-file-maintenance 2023-08-28 10:14:45 +02:00
Sefa Eyeoglu
97d932db62
Revert "chore(deps): enable nix lockfile maintenance for renovate"
This reverts commit 5d14724e66.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-28 10:14:21 +02:00
Trial97
5d70f4dbca
removed if
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-28 08:50:10 +03:00
renovate[bot]
66cbbfec0c
chore(deps): lock file maintenance 2023-08-28 00:23:14 +00:00
Trial97
07d8598638
added catpacks tests
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 23:40:32 +03:00
Trial97
79652799bd
Made text smaller
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 21:30:46 +03:00
Trial97
630145a1d0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into welcome_background 2023-08-27 21:03:21 +03:00
Trial97
0680d2dceb
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 20:41:56 +03:00
TheKodeToad
9110fbf282
Merge pull request #1560 from Trial97/curse_multiple_loaders2
Add suport for flame multiple loaders
2023-08-27 18:21:14 +01:00
TheKodeToad
e3b04d10cf
Merge pull request #1536 from Trial97/time3
Allow showing playtime in hours
2023-08-27 18:14:04 +01:00
Trial97
8c607ae734
removed extra if
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 20:02:12 +03:00
Trial97
c5aac24a93
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse_multiple_loaders2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 15:53:35 +03:00
Trial97
4036cecfc0
Added progress widget to some modpack providers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-27 15:04:42 +03:00
Sefa Eyeoglu
df14f88307
Merge pull request #1532 from Trial97/curseforge-url-handle 2023-08-27 12:26:57 +02:00
seth
29736b3b1f
Merge pull request #1570 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-08-27 01:47:58 -04:00
github-actions[bot]
9735e46a7e chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ca3c9ac9f4cdd4bea19f592b32bb59b74ab7d783' (2023-08-19)
  → 'github:nixos/nixpkgs/c66ccfa00c643751da2fd9290e096ceaa30493fc' (2023-08-26)
2023-08-27 00:17:22 +00:00
TheKodeToad
479335dfe0
Rewrite optional mod dialog
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-27 00:50:33 +01:00
TheKodeToad
d1566f2610
Merge branch 'develop' into env-vars
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-26 23:12:02 +01:00
Trial97
a2d44744fe
do not update the metadata if mod is invalid
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-26 23:36:46 +03:00
Trial97
288d0d1fd4
Added back api loader filtering if just one is selected
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-26 22:26:01 +03:00
Trial97
abfd1a4205
minor dependency crash fix
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-25 18:35:25 +03:00
Sefa Eyeoglu
094cee8ec6
Merge pull request #1561 from Scrumplex/nix-miscs 2023-08-25 10:08:53 +02:00
Trial97
c54fecf5d9
added condition for empty loader type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-25 09:05:04 +03:00
Trial97
172680abf8
removed aditional header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 13:42:36 +03:00
Trial97
5f3e9672cd
made the loaders check more generic
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 13:31:57 +03:00
Trial97
f897b14e3e
changed technic icon name retrival
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 13:05:27 +03:00
Trial97
bb4b89470d
fixed icon importing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 12:46:23 +03:00
Trial97
2990c5d0c9
Added optional mods dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 12:44:11 +03:00
Trial97
ea384d59fb
use qt separtor for file path
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-24 12:41:37 +03:00
Sefa Eyeoglu
3e448904a3
Merge pull request #1562 from PrismLauncher/renovate/determinatesystems-update-flake-lock-20.x
chore(deps): update determinatesystems/update-flake-lock action to v20
2023-08-24 08:11:30 +02:00
renovate[bot]
783af2c06a
chore(deps): update determinatesystems/update-flake-lock action to v20 2023-08-24 04:32:25 +00:00
Trial97
6c0492c0d1
return 0 for any
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 21:09:32 +03:00
Trial97
1515607060
updated getMappedModLoader
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 20:16:51 +03:00
Sefa Eyeoglu
41bd008f5d
chore(nix): remove pre-commit tools from shell
use `pre-commit` CLI instead!

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-23 13:49:10 +02:00
Sefa Eyeoglu
d7b6450613
fix(nix): reload direnv if parts change
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-23 13:47:04 +02:00
Sefa Eyeoglu
85c23b26de
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-23 13:46:23 +02:00
Sefa Eyeoglu
095de5ed4b
chore(nix): update clang-format to clang-tools 16
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-23 13:46:04 +02:00
Trial97
6178e5a975
reverted change for optional
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 13:55:38 +03:00
Trial97
aa065f2b51
Updated dependency resolution
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 13:28:23 +03:00
Sefa Eyeoglu
59ec0135d7
Merge pull request #1559 from Scrumplex/nix-canonicalize-jars 2023-08-23 12:23:26 +02:00
Sefa Eyeoglu
2283498ccb
Merge pull request #1552 from Trial97/memory_quick_setup 2023-08-23 11:56:53 +02:00
Trial97
e6ba2f4970
Added loaders check on versions load
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 12:52:51 +03:00
Sefa Eyeoglu
b93cd88292
fix(nix): add canonicalize-jars-hook
See https://github.com/NixOS/nixpkgs/pull/250757

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-23 11:52:32 +02:00
Trial97
f8f9ffa118
added loaders for flame version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 11:33:45 +03:00
Trial97
4704c522e0
moved modloaderTypes to ModPlatform
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-23 10:26:57 +03:00
TheKodeToad
f7951f6082
Merge pull request #1548 from Trial97/version_label
Reset status label when deleting instance
2023-08-22 15:14:02 +01:00
Alexandru Ionut Tripon
eed7e996da
Update launcher/ui/widgets/JavaSettingsWidget.cpp
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-22 16:17:05 +03:00
Alexandru Ionut Tripon
06dbd381f8
Update launcher/ui/pages/instance/InstanceSettingsPage.cpp
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-22 16:16:57 +03:00
Alexandru Ionut Tripon
3574d89e0f
Update launcher/ui/pages/global/JavaPage.cpp
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-22 16:16:50 +03:00
TheKodeToad
0e96111116
Merge pull request #1556 from Trial97/metacache
Gracefully handle invalid cache metadata
2023-08-22 14:09:44 +01:00
Trial97
09aca7a0b5
Added warning to settings page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-22 10:52:35 +03:00
Sefa Eyeoglu
b1783d8fb1
Merge pull request #1557 from Trial97/curse_crash 2023-08-21 23:04:45 +02:00
Trial97
c3d03f0c33
added check for valid query items in curse url install
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 22:20:33 +03:00
Trial97
7acfe36a62
fixed httpmetacache load
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 21:30:44 +03:00
Trial97
bf810053b7
updated instance copy
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 17:54:16 +03:00
Trial97
45dad27a6d
fixed check
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 17:46:50 +03:00
TheKodeToad
fff378b643
Merge pull request #1553 from TheKodeToad/list-fixes
A few boring list-related fixes
2023-08-21 15:33:16 +01:00
TheKodeToad
d7dadabfbf
List fixes
Double-click to toggle profile components.
Restore double-click to toggle resources.
Fix clicking on checkbox to select account.
Double-click to select account.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-21 14:44:46 +01:00
Trial97
1eb75b6852
fixed build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 15:34:45 +03:00
Trial97
492bf373c6
updated memory allocation on quick setup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 15:00:11 +03:00
Trial97
02264f67f3
Fixed codeql
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 14:15:51 +03:00
Sefa Eyeoglu
fcb436f1f4
Merge pull request #1551 from dannydorazio/develop 2023-08-21 08:29:25 +02:00
Danny Dorazio
e2e0a7af45 DCO Remediation Commit for Danny Dorazio <danny@dorazio.me>
I, Danny Dorazio <danny@dorazio.me>, hereby add my Signed-off-by to this commit: 8092c321a9
I, Danny Dorazio <danny@dorazio.me>, hereby add my Signed-off-by to this commit: 3638fc0a7d
I, Danny Dorazio <danny@dorazio.me>, hereby add my Signed-off-by to this commit: c50c3eaa94

Signed-off-by: Danny Dorazio <danny@dorazio.me>
2023-08-21 01:24:23 -04:00
Danny Dorazio
c50c3eaa94 DCO Remediation Commit for Danny Dorazio <hello@dorazio.me>
I, Danny Dorazio <hello@dorazio.me>, hereby add my Signed-off-by to this commit: 8092c321a9
I, Danny Dorazio <hello@dorazio.me>, hereby add my Signed-off-by to this commit: 3638fc0a7d

Signed-off-by: Danny Dorazio <hello@dorazio.me>
2023-08-21 01:21:48 -04:00
Danny Dorazio
3638fc0a7d Update “Welcome” message on account list page 2023-08-20 23:00:50 -04:00
Danny Dorazio
8092c321a9 Replace instances of “Minecraft account” 2023-08-20 23:00:25 -04:00
Trial97
8e5be6f420
added suport for atlauncher browser download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-21 00:09:46 +03:00
Trial97
19316e22b4
fixed status label after instance remove
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-20 22:46:44 +03:00
Sefa Eyeoglu
5c95448f1f
Merge pull request #1485 from getchoo/nix-darwin 2023-08-20 21:20:09 +02:00
Trial97
254444470f
renamed enum type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-20 16:40:58 +03:00
TheKodeToad
0aaea9bf5d
Merge pull request #1547 from Scrumplex/revert-quilt-beacon
Remove Quilt Beacon toggle
2023-08-20 12:43:49 +01:00
Sefa Eyeoglu
5b4dcae7d9
Revert "feat: add toggle for quilt beacon"
This reverts commit 89aaedc06c.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-20 13:23:11 +02:00
Sefa Eyeoglu
963627fe98
Revert "chore: better explain quilt loader beacon"
This reverts commit a2a09ffe01.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-20 13:23:08 +02:00
Sefa Eyeoglu
232bb568da
Merge pull request #1544 from PrismLauncher/update_flake_lock_action 2023-08-20 12:01:37 +02:00
github-actions[bot]
d3c7850f53 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/f0451844bbdf545f696f029d1448de4906c7f753' (2023-08-12)
  → 'github:nixos/nixpkgs/ca3c9ac9f4cdd4bea19f592b32bb59b74ab7d783' (2023-08-19)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a' (2023-08-11)
  → 'github:cachix/pre-commit-hooks.nix/7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa' (2023-08-17)
2023-08-20 00:16:56 +00:00
TheKodeToad
ebbc8838a8
Merge pull request #1541 from Trial97/neoforge_search
feat:neoforge can download forge mods
2023-08-19 23:10:56 +01:00
Trial97
d25e89a4c1
refactor packwiz file write
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-20 00:48:46 +03:00
TheKodeToad
f99b04bd16
Merge pull request #1320 from TheKodeToad/better-launch
Combine launch buttons in instance window, persist profiler
2023-08-19 11:08:02 +01:00
Sefa Eyeoglu
acf586ef82
chore: add fixme about UI code in Minecraftinstance
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-19 10:21:46 +02:00
Trial97
0138cd65cb
feat:neoforge can download forge mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-19 09:00:59 +03:00
Trial97
ab6301d5a1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-08-19 00:38:40 +03:00
Sefa Eyeoglu
3098aecf97
Merge pull request #1498 from Scrumplex/neoforge 2023-08-18 22:56:55 +02:00
Trial97
05094b7382
more fixes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 22:24:30 +03:00
Trial97
58efd3e9e2
fixed code scaning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 21:43:57 +03:00
Trial97
4c52b18bdd
replaced removeFirst with mid
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 20:19:51 +03:00
Trial97
44ff247f5f
feat:refactored modpack ux
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 20:03:02 +03:00
Trial97
fecc1e087a
Add Trial97 to contribuitors list
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 13:35:50 +03:00
Trial97
d3acac16e6
added -Wno-gnu-zero-variadic-macro-arguments and fixed more warnings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 13:10:13 +03:00
Alexandru Ionut Tripon
28ffa8bf44
Update launcher/ui/pages/global/MinecraftPage.ui
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-18 12:57:08 +03:00
TheKodeToad
eb4efa5a9c
Merge pull request #1535 from Scrumplex/fix-skin-browse-btn
Fix browse button size in Skin Upload dialog
2023-08-18 10:47:42 +01:00
Trial97
6d1c67663d
feat:added option to show playtime in hours
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 12:24:28 +03:00
Sefa Eyeoglu
f4ebeedc21
fix: fix browse button size in skin upload dialog
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-18 09:01:57 +02:00
Trial97
907c2fd19c
added missing header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-18 09:16:17 +03:00
Sefa Eyeoglu
be2888d6fb
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-17 22:23:50 +02:00
Trial97
7ab391904a
Flame support for neoforge
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-17 22:23:34 +02:00
Sefa Eyeoglu
aac734d174
fix: add theoretical support for NeoForge in FTB modpacks
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-17 22:21:12 +02:00
TheKodeToad
ffd8ed550f
Reformat
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-17 18:53:32 +01:00
Trial97
c5bac475e8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-08-17 17:29:57 +03:00
Sefa Eyeoglu
e88418ab7f
Merge pull request #1392 from Scrumplex/feat-native-override 2023-08-17 16:09:16 +02:00
Trial97
42b06674bb
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-17 15:29:11 +03:00
Trial97
bc0934a19c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curseforge-url-handle 2023-08-17 15:25:32 +03:00
Trial97
044ce4df32
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_file 2023-08-17 15:24:14 +03:00
Trial97
758999fa64
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into welcome_background 2023-08-17 15:23:22 +03:00
Trial97
71fd02e50e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into netjob_retry 2023-08-17 15:22:45 +03:00
Trial97
4a1d85f999
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-08-17 14:23:37 +03:00
TheKodeToad
6da2e7d3f6
I was forced
/j

Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-17 10:12:38 +01:00
Sefa Eyeoglu
85f36ebed7
Merge pull request #981 from Ryex/curseforge-url-handle 2023-08-17 09:24:35 +02:00
Trial97
f8ffb14619
Merge branch 'curseforge-url-handle' of github.com:Trial97/PrismLauncher into curseforge-url-handle 2023-08-17 00:25:38 +03:00
Trial97
5e2d1ffdfb
removed line
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-17 00:23:53 +03:00
TheKodeToad
3e2733d840
Merge branch 'develop' into better-launch
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-16 22:23:38 +01:00
Trial97
bad44ea264
feat:added flame install mod metadata
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-17 00:14:49 +03:00
Trial97
f0da16a758
removed line
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-17 00:13:12 +03:00
Trial97
b0e197de38
removed warning for one mod selected
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-16 21:26:43 +03:00
Alexandru Ionut Tripon
6c2c724bd9
Update launcher/ui/pages/instance/ExternalResourcesPage.ui
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-16 21:03:09 +03:00
Sefa Eyeoglu
c88088c91a
Merge pull request #1524 from PrismLauncher/renovate/korthout-backport-action-1.x 2023-08-16 19:28:41 +02:00
Trial97
f919d363b7
made safe for vegetarians
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-16 20:02:32 +03:00
Trial97
589d8b6923
feat:Added remove metadata button
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-16 19:53:39 +03:00
Trial97
8fbc665acb
Added UserData as another posible path for portable builds
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-16 18:28:46 +03:00
TheKodeToad
f3baa420b2
Fix broken tab order
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-16 13:45:22 +01:00
TheKodeToad
8778313170
Merge remote-tracking branch 'upstream/develop' into feature/java-downloader
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-16 13:39:14 +01:00
Sefa Eyeoglu
a5e7aedb4f
Merge pull request #1523 from Trial97/atlauncher
Fix crash when installing some ATLauncher packs
2023-08-16 07:18:34 +02:00
Trial97
c41c39b5d8
cleanup the mod name checking
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 23:55:09 +03:00
Trial97
fa164aa081
rename to GenericProfiler
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 22:18:28 +03:00
Trial97
f7f7bc6865
Removed update disabled warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 20:52:17 +03:00
Trial97
c28d9161cf
added unused
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 18:54:22 +03:00
Trial97
748a644e2c
added wait profiler
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 18:50:32 +03:00
renovate[bot]
07f25d6cca
chore(deps): update korthout/backport-action action to v1.4.0 2023-08-15 14:19:42 +00:00
Trial97
c22eec8f27
fixed crash on atlauncher pack install
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 17:03:51 +03:00
Trial97
1faf741004
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/launcher-updater
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 13:29:42 +03:00
TheKodeToad
8cff7c4de6
Merge branch 'develop' into rename-groups
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-15 11:03:19 +01:00
Trial97
38d92bbcf1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 12:59:25 +03:00
Trial97
42a6c670c7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fail_concurrent_task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 12:52:59 +03:00
Trial97
cf27d2f9ab
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into download_threads
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 12:49:21 +03:00
Trial97
6c362afc21
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 12:41:46 +03:00
Trial97
c94ee67077
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curseforge-url-handle3
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 12:16:00 +03:00
Sefa Eyeoglu
62c14cea2a
fix: allow NeoForge in resource APIs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 11:06:14 +02:00
Sefa Eyeoglu
01c3750835
feat: support NeoForge mrpack modpacks
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 11:06:14 +02:00
Sefa Eyeoglu
52e5ee7111
feat: add NeoForge to UIs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 11:06:14 +02:00
Sefa Eyeoglu
3a0aa353cc
feat: add NeoForge to ModLoaderType
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 11:06:13 +02:00
Sefa Eyeoglu
8f5bb982cd
Merge pull request #1513 from lumiscosity/fix/skin_transparency_bug 2023-08-15 10:54:07 +02:00
Sefa Eyeoglu
a360ddbe0b
Merge pull request #1508 from comp500/fix/allow-empty-lines 2023-08-15 10:53:43 +02:00
Sefa Eyeoglu
06aba530d7
fix: add missing header
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:52:40 +02:00
Sefa Eyeoglu
c2d6a137ab
fix: only add native library overrides if files exist
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:52:08 +02:00
Sefa Eyeoglu
b927e58126
fix: improve debug message
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:52:08 +02:00
Sefa Eyeoglu
f1c3da6583
fix: fix typo
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:52:08 +02:00
Sefa Eyeoglu
4c446ccd50
fix: remove meta OpenAL workaround
LWJGL 2 doesn't have a separate zip for OpenAL. So there is no reason
for this code.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:51:48 +02:00
Sefa Eyeoglu
83aa0062c7
feat: add custom native library path settings
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:51:21 +02:00
Sefa Eyeoglu
ff67fd10c3
feat: implement override for GLFW/OpenAL with split natives
Fixes PrismLauncher/PrismLauncher#513

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:50:38 +02:00
Sefa Eyeoglu
7ba1e7d356
Merge pull request #1407 from TheKodeToad/icon-indexing 2023-08-15 10:43:29 +02:00
Sefa Eyeoglu
f533173b95
Merge pull request #1516 from Trial97/abort_connect 2023-08-15 10:40:12 +02:00
Sefa Eyeoglu
14d5fd7edb
Merge pull request #1520 from PrismLauncher/update_flake_lock_action 2023-08-15 10:39:08 +02:00
Sefa Eyeoglu
740ca54c87
Merge pull request #1462 from getchoo/labels 2023-08-15 10:38:28 +02:00
Sefa Eyeoglu
6ce7e426d2
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 10:38:04 +02:00
Sefa Eyeoglu
0c753619a4
Merge pull request #1467 from Scrumplex/update-nix-docs 2023-08-15 10:36:38 +02:00
Sefa Eyeoglu
4b06255cc2
Merge pull request #1486 from PrismLauncher/staging 2023-08-15 10:36:09 +02:00
Sefa Eyeoglu
1939e3e6ed
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-15 09:02:15 +02:00
Trial97
9546c77113
Some warnings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 00:52:34 +03:00
Trial97
0ba88ff138
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into staging
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-15 00:33:24 +03:00
Sefa Eyeoglu
215d7dbb74
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-14 18:17:05 +02:00
Sefa Eyeoglu
91ba4cf75e
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-14 18:16:53 +02:00
Sefa Eyeoglu
779f70057b
Merge commit 'ce2ca13815' into staging 2023-08-14 18:16:13 +02:00
TheKodeToad
a44cb6430e
Merge pull request #1107 from Ryex/chore/add-compiler-warnings
Introduce more strict compiler warnings and fix them
2023-08-13 13:10:58 +01:00
github-actions[bot]
1aadaa208d chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0d2fb29f5071a12d7983319c2c2576be6a130582' (2023-08-05)
  → 'github:nixos/nixpkgs/f0451844bbdf545f696f029d1448de4906c7f753' (2023-08-12)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/3139c4d1f7732cab89f06492bdd4677b877e3785' (2023-08-05)
  → 'github:cachix/pre-commit-hooks.nix/c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a' (2023-08-11)
2023-08-13 00:16:46 +00:00
TheKodeToad
6d070e8607
"Format"
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-12 21:50:02 +01:00
TheKodeToad
983c943eef
Merge branch 'develop' into quick-play
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-12 21:48:41 +01:00
TheKodeToad
5056a51c18
Improvements and refinements to pack export
- Persist fields
- Toggle optional files

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-12 21:20:51 +01:00
TheKodeToad
3c209ba502
theme -> catpacks
Co-authored-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-12 19:04:34 +01:00
Trial97
71890707c0
format and apply the sugestion
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-12 13:08:39 +03:00
Alexandru Ionut Tripon
b3b2e9df35
Merge branch 'develop' into feat/acknowledge_release_type
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-12 12:42:30 +03:00
Sefa Eyeoglu
3aba7f8fec
Merge pull request #1518 from Scrumplex/asan-develop 2023-08-12 11:38:01 +02:00
Alexandru Ionut Tripon
d6e4fe7c1f
Update CMakeLists.txt
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-12 11:29:08 +02:00
Trial97
c9d628bf18
revert asan on debug on by default
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-12 11:29:08 +02:00
Sefa Eyeoglu
35358f8180
Merge remote-tracking branch 'upstream/staging' into chore/add-compiler-warnings 2023-08-12 11:17:11 +02:00
Sefa Eyeoglu
019e5ca3e8
fix: use ApiDownload for CF URL handling
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-12 11:11:58 +02:00
Sefa Eyeoglu
6423edaa76
Merge remote-tracking branch 'upstream/staging' into curseforge-url-handle 2023-08-12 10:58:27 +02:00
Sefa Eyeoglu
44153a28e3
Merge pull request #1517 from Trial97/revert_asan 2023-08-12 10:57:29 +02:00
Alexandru Ionut Tripon
bcf0635efd
Update CMakeLists.txt
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-12 10:55:53 +02:00
Trial97
92dbe1684e
revert asan on debug on by default
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-12 10:55:53 +02:00
seth
7879091cea
Merge pull request #1512 from Trial97/curseforge_import
Fix importing Quilt/Fabric packs from CurseForge
2023-08-11 10:16:17 -04:00
Sefa Eyeoglu
73adac2501
fix: use QColorConstants in Qt 5.14+
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-11 15:57:12 +02:00
Trial97
d801151d5c
connect the abort signal in concurent task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-11 15:41:41 +03:00
Sefa Eyeoglu
ea43d0f687
fix: fix more warnings
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-11 10:57:57 +02:00
Sefa Eyeoglu
396f812496
Merge pull request #1230 from TheKodeToad/better-component-installation
Revamp loader installation UI
2023-08-11 08:24:14 +02:00
TheKodeToad
f6d8c9659c
Rework
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-11 00:39:05 +01:00
TheKodeToad
e2d77f21ba
More system properties because yes!! 🎉
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-11 00:02:48 +01:00
Sefa Eyeoglu
ef6f9487f4
Merge remote-tracking branch 'upstream/staging' into chore/add-compiler-warnings 2023-08-10 20:38:32 +02:00
Sefa Eyeoglu
8140374e26
chore: add licensing info to loader logos
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-10 20:18:28 +02:00
Sefa Eyeoglu
d67277a668
chore: replace LiteLoader logo with high quality version
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-10 20:18:16 +02:00
maple!
97ef8e8d0e Fix transparency in skin icon
QPainter has a bug where drawing transparency to a freshly initialized, empty QPixmap causes garbage data to be drawn. This broke the rendering of the skin icon. The fix is simply to fill the QPixmap with empty transparent pixels beforehand.

Signed-off-by: maple! <averyrudelphe@gmail.com>
2023-08-10 15:32:47 +02:00
Sefa Eyeoglu
2090f958c8
Merge pull request #1324 from leia-uwu/ui-tweaks 2023-08-10 12:24:41 +02:00
Sefa Eyeoglu
8731f4ba27
chore: add comment about _kde_side_panel_view
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-10 12:24:33 +02:00
Trial97
b3da35be74
Fixed curseforge import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-10 12:19:38 +03:00
comp500
1c3449e5a2 Remove unnecessary #if
Signed-off-by: comp500 <comp500@users.noreply.github.com>
2023-08-09 23:04:44 +01:00
comp500
a351d1834a Allow empty lines in log output
Preserving empty lines in the game log ensures that crash reports and debugging information has necessary whitespace - the previous behaviour made crash reports hard to read.

Signed-off-by: comp500 <comp500@users.noreply.github.com>
2023-08-09 20:48:02 +01:00
Sefa Eyeoglu
31ffe79a29
Merge pull request #1505 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.10
2023-08-09 07:32:11 +02:00
renovate[bot]
d9cd6f9c50
chore(deps): update hendrikmuhs/ccache-action action to v1.2.10 2023-08-08 18:20:26 +00:00
TheKodeToad
e079cbb055
Fix actions
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-07 13:51:26 +01:00
Sefa Eyeoglu
7004388105
Merge pull request #1227 from Ryex/packaging/appimage-updates 2023-08-07 13:18:06 +02:00
Tayou
9afa7cc91f
Merge branch 'develop' into icon-indexing
Signed-off-by: Tayou <31988415+TayouVR@users.noreply.github.com>
2023-08-07 10:32:38 +02:00
Rachel Powers
9a9a4fcfd4
Apply suggestions from code review
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-08-06 13:16:30 -07:00
Sefa Eyeoglu
74fe2fb2a6
Merge remote-tracking branch 'upstream/staging' into curseforge-url-handle 2023-08-06 21:54:00 +02:00
seth
eeb5fdbc9f
feat(nix): add darwin support
Signed-off-by: seth <getchoo@tuta.io>
2023-08-06 15:52:32 -04:00
Sefa Eyeoglu
a83e5be8f2
fix: makeShared for QByteArray
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-06 21:51:03 +02:00
seth
75c7df46a7
Merge pull request #1493 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-08-06 15:41:48 -04:00
seth
efaf4024ab
Merge pull request #1464 from Ryex/fix/windows-console-attach
[Windows] Fix attaching logs to console
2023-08-06 15:37:44 -04:00
Sefa Eyeoglu
99fd1e622c
chore: replace fabricmc icons with SVG
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-06 17:46:33 +02:00
github-actions[bot]
37e5f6af48 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/8e8d955c22df93dbe24f19ea04f47a74adbdc5ec' (2023-07-04)
  → 'github:hercules-ci/flake-parts/59cf3f1447cfc75087e7273b04b31e689a8599fb' (2023-08-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/4bc72cae107788bf3f24f30db2e2f685c9298dc9?dir=lib' (2023-06-29)
  → 'github:NixOS/nixpkgs/9e1960bc196baf6881340d53dccb203a951745a2?dir=lib' (2023-08-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d2b52322f35597c62abf56de91b0236746b2a03d' (2023-07-29)
  → 'github:nixos/nixpkgs/0d2fb29f5071a12d7983319c2c2576be6a130582' (2023-08-05)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/1e2443dd3f669eb65433b2fc26a3065e05a7dc9c' (2023-07-29)
  → 'github:cachix/pre-commit-hooks.nix/3139c4d1f7732cab89f06492bdd4677b877e3785' (2023-08-05)
2023-08-06 00:17:51 +00:00
Sefa Eyeoglu
5b8c997180
Merge pull request #1456 from Trial97/icons 2023-08-05 22:50:52 +02:00
Sefa Eyeoglu
7c547f6452
Merge pull request #1370 from Trial97/pack_changelog 2023-08-05 22:50:38 +02:00
Trial97
f7e8ec1855
format files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 21:17:38 +03:00
Trial97
72de2d5254
Added missing header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 21:08:16 +03:00
TheKodeToad
f25d0a4e0e
Merge branch 'develop' into env-vars
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-05 18:01:53 +01:00
Trial97
1d3f2674d1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 19:21:37 +03:00
Trial97
f9ebcb5d2e
Merge branch 'refactor/net-split-headers-to-proxy-class' of https://github.com/Ryex/PrismLauncher into refactor/NetActions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 19:16:57 +03:00
Trial97
57692d6ce6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 19:13:08 +03:00
Trial97
b2fdd83594
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into download_threads
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 19:09:10 +03:00
Trial97
24b47e4ec6
Merge branch 'fail_concurrent_task' of github.com:Trial97/PrismLauncher into fail_concurrent_task 2023-08-05 19:06:26 +03:00
Trial97
5981e7815a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fail_concurrent_task 2023-08-05 19:06:01 +03:00
Trial97
91eb30f037
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into pack_changelog 2023-08-05 19:04:53 +03:00
Trial97
d936b25868
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into welcome_background
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 19:04:15 +03:00
Trial97
e7c2274893
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_file 2023-08-05 19:02:11 +03:00
Trial97
377fc0352a
Merge branch 'staging' of https://github.com/PrismLauncher/PrismLauncher into icons 2023-08-05 19:00:12 +03:00
Trial97
939a2d67ed
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop12
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-08-05 18:21:09 +03:00
Sefa Eyeoglu
304e294ea7
Merge pull request #1102 from Ryex/refactor/net-split-headers-to-proxy-class 2023-08-04 20:31:43 +02:00
Sefa Eyeoglu
ae793f6cf1
Merge pull request #1459 from Scrumplex/format 2023-08-04 19:42:36 +02:00
Sefa Eyeoglu
1d638e018a
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-04 19:41:47 +02:00
seth
50c7d39e08
Merge pull request #1483 from DioEgizio/update-qt652
[macOS,Windows] Update to Qt 6.5.2
2023-08-04 12:05:45 -04:00
TheKodeToad
c5bffed21e
Merge branch 'PrismLauncher:develop' into skinfix 2023-08-04 16:29:30 +01:00
TheKodeToad
d48dd7eb6a
Use override-based setting for online fixes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-04 16:00:02 +01:00
DioEgizio
b013133cc1 chore: update to qt 6.5.2
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-08-03 09:24:47 +02:00
TheKodeToad
1bafa36c17
icon -> iconName
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-02 20:33:01 +01:00
TheKodeToad
afaf6f894c
Merge branch 'PrismLauncher:develop' into better-component-installation 2023-08-02 20:27:37 +01:00
TheKodeToad
8b3c465a50
Use protected inheritance for BasePageProvider
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-02 20:24:15 +01:00
TheKodeToad
40c614b3a5
Pressed -> Clicked (doh)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-02 20:23:30 +01:00
Sefa Eyeoglu
ac36a2289f
Merge pull request #1452 from getchoo/sparkle-disable 2023-08-02 19:28:01 +02:00
Sefa Eyeoglu
fa2b784f7e
Merge branch 'develop' into sparkle-disable
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 19:27:48 +02:00
Sefa Eyeoglu
01e17806f6
Merge pull request #1391 from Trial97/prism_export2 2023-08-02 19:27:14 +02:00
Sefa Eyeoglu
f561e7febf
Merge pull request #1476 from Scrumplex/fix-saving-metaurl 2023-08-02 19:24:24 +02:00
Sefa Eyeoglu
39d4f0df66
fix: don't reset meta url on launch
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:56:54 +02:00
Sefa Eyeoglu
1d468ac35a
chore: reformat
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:35 +02:00
Sefa Eyeoglu
ce2ca13815
fix: add missing headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:08 +02:00
TheKodeToad
f256b836f4
Make more options generic
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-02 18:35:08 +02:00
TheKodeToad
71fb38c91f
Fix alignment properties
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-02 18:35:08 +02:00
Sefa Eyeoglu
076c189948
fix: format all languages using clang-format
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:08 +02:00
Sefa Eyeoglu
9f66f6495a
fix: fix undisciplined multiple inheritance
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:07 +02:00
Sefa Eyeoglu
c07a857359
fix: remove irregular enum initialization
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:07 +02:00
Sefa Eyeoglu
76df836378
fix: simplify switch statement
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:07 +02:00
Sefa Eyeoglu
a545f67a21
fix: take JavaCheckResult by const reference
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:07 +02:00
Sefa Eyeoglu
9d5818916a
fix(nix): enable clang-format
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-08-02 18:35:07 +02:00
Sefa Eyeoglu
ea56ff255d
Merge pull request #1339 from TheKodeToad/remove-direct-launch 2023-08-02 18:31:27 +02:00
Sefa Eyeoglu
01d3eea379
Merge pull request #1359 from Trial97/import 2023-08-02 18:25:51 +02:00
Alexandru Ionut Tripon
f13eccb03d
Update launcher/ui/pages/modplatform/import_ftb/ImportFTBPage.h
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-08-02 19:24:58 +03:00
Sefa Eyeoglu
39d7bc6c24
Merge pull request #1294 from ashuntu/develop 2023-08-02 18:24:54 +02:00
ashuntu
6a7f63166d DCO Remediation Commit for ashuntu <101582426+ashuntu@users.noreply.github.com>
I, ashuntu <101582426+ashuntu@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 10678096e5
I, ashuntu <101582426+ashuntu@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 51d7a6289e
I, ashuntu <101582426+ashuntu@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 1467072f3d

Signed-off-by: ashuntu <101582426+ashuntu@users.noreply.github.com>
2023-08-02 10:04:53 -05:00
Rachel Powers
bae59a8c07
refactor(windows console): reduce code duplication
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-08-02 06:19:43 -07:00
TheKodeToad
bb039d4bc7
Merge pull request #1445 from Trial97/curse
feat: removed flame quilt warning
2023-08-02 12:55:49 +01:00
Sefa Eyeoglu
92b2f463e3
Merge pull request #1474 from apix0n/develop 2023-08-02 12:08:34 +02:00
Apix
16e6a01881
fix: fix copyright year
Signed-off-by: Apix <apix0n@outlook.com>
2023-08-02 11:35:54 +02:00
Rachel Powers
81bc9e488f
DCO Remediation Commit for Rachel Powers <508861+Ryex@users.noreply.github.com>
I, Rachel Powers <508861+Ryex@users.noreply.github.com>, hereby add my Signed-off-by to this commit: b4ae6e9774

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-08-01 20:27:39 -07:00
Rachel Powers
e64e4d7ef7
Fix: always false comparison
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-08-01 18:57:35 -07:00
Rachel Powers
f19e8dd086
Apply suggestions from code review
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-08-01 18:53:51 -07:00
Rachel Powers
b4ae6e9774
fix(compiler warnings): suppress omtimisation flag conflict warnings. leave optimisation to Byild type defaults
- enable ASan for RelWithDebInfo builds
2023-07-31 23:25:49 -07:00
Rachel Powers
5a9f780cf8
fix(FlameInstanceCreationTask): include Net::Apidownload
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-31 22:36:13 -07:00
Rachel Powers
2d1197f59f
Merge branch 'develop' into refactor/net-split-headers-to-proxy-class
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-31 22:26:20 -07:00
Sefa Eyeoglu
d8f2a1354f
chore: update Nix docs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-31 19:16:32 +02:00
TheKodeToad
b572f75dba
Merge branch 'PrismLauncher:develop' into icon-indexing 2023-07-31 14:40:27 +01:00
Rachel Powers
14e16db01e
refactor(filelink): drop moved funciton
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 16:02:37 -07:00
Rachel Powers
7091bc81c2
chore(rename): fix unfinshed renames from deshadow changes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:56:38 -07:00
Rachel Powers
1e947ca893
fix(flame creation task): import ApiDownload
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:42:15 -07:00
Rachel Powers
b9fe37aec1
Merge branch 'develop' into chore/add-compiler-warnings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:33:46 -07:00
Rachel Powers
5d68a4c992
fix: religate export zip to launcher app only
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

fix(MMCZip): include QUrl

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

fix(FileLink): drop FreeConsole

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

fix(filelink exe): add console sources

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:24:50 -07:00
Rachel Powers
760b80934f
fix(filelink exe): add console sources
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:22:18 -07:00
Rachel Powers
6d564628b7
fix(FileLink): drop FreeConsole
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 15:11:00 -07:00
Rachel Powers
f03924478b
Merge branch 'fix/windows-console-attach' into feat/launcher-updater
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

# Conflicts:
#	launcher/Application.cpp
#	launcher/CMakeLists.txt
#	launcher/filelink/FileLink.cpp
2023-07-30 14:30:16 -07:00
Rachel Powers
7c1a465ec9
Merge branch 'develop' into feat/launcher-updater
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 14:19:31 -07:00
Rachel Powers
a7ef663735
fix(windows console): use new logic in FileLink exe
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 14:03:20 -07:00
Rachel Powers
186211244d
refactor(windows console): move to external file
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 13:38:47 -07:00
Rachel Powers
5740ee0444
fix(windows console): properly bind windows console
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-30 13:38:47 -07:00
seth
945939ba68
chore(actions): add new labels to update-flake
Signed-off-by: seth <getchoo@tuta.io>
2023-07-30 04:46:44 -04:00
seth
9137721e8e
Merge pull request #1461 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-07-30 04:45:10 -04:00
Sefa Eyeoglu
566425166b
Merge pull request #1449 from Trial97/tehnic
Reintroduce parsing of INI files
2023-07-30 09:47:40 +02:00
github-actions[bot]
d1513732be chore(nix): update lockfile
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/f465da166263bc0d4b39dfd4ca28b777c92d4b73' (2023-07-22)
  → 'github:nixos/nixpkgs/d2b52322f35597c62abf56de91b0236746b2a03d' (2023-07-29)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/eb433bff05b285258be76513add6f6c57b441775' (2023-07-18)
  → 'github:cachix/pre-commit-hooks.nix/1e2443dd3f669eb65433b2fc26a3065e05a7dc9c' (2023-07-29)
2023-07-30 00:20:33 +00:00
ashuntu
1467072f3d Removed snapcraft.yaml in favor of dedicated repo: https://github.com/ashuntu/prismlauncher-snap 2023-07-28 16:25:32 -05:00
Ash
d133b40b25
Merge branch 'PrismLauncher:develop' into develop 2023-07-28 21:22:35 +00:00
TheKodeToad
5538c1d0af
Fix compilation (actually this time!), incorporating new changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-28 15:11:24 +01:00
TheKodeToad
d4ea9c2717
Merge branch 'develop' into feature/java-downloader
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-28 14:50:59 +01:00
TheKodeToad
ce6a36c8b5
Deduplicate fix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-28 14:31:58 +01:00
Trial97
c3eb17db74
removed unneded if condition
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 13:22:04 +03:00
Trial97
4789708cc2
added missing )
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 13:16:57 +03:00
Alexandru Ionut Tripon
83fce74bb1
Update launcher/ui/dialogs/NewInstanceDialog.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-28 13:11:56 +03:00
Trial97
fcac98b367
removed comment
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 10:05:22 +03:00
Trial97
97ff7afbe7
keep the icon suffix
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 08:37:45 +03:00
Trial97
7e58b965b7
refactor icon list
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 01:20:05 +03:00
Trial97
1ca7e5efe9
added license header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 01:20:05 +03:00
Trial97
d460986de0
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-28 01:20:05 +03:00
Sefa Eyeoglu
bdec11c501
Merge pull request #1437 from LostLuma/instance-export-ignore-caches-2 2023-07-27 09:40:31 +02:00
Sefa Eyeoglu
b1aa9e5846
refactor: introduce internal Launcher_ENABLE_UPDATER variable
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-27 09:37:56 +02:00
seth
51bfda937d
chore: don't include sparkle when not enabled
Signed-off-by: seth <getchoo@tuta.io>
2023-07-27 02:19:21 -04:00
LostLuma
4a9ea832ff
Ignore cache files entirely, also apply to modpack export
Signed-off-by: LostLuma <lilly@lostluma.net>
2023-07-27 01:42:14 +02:00
seth
a8498b0dab
chore: make INSTALL_BUNDLE a cached variable
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 19:03:14 -04:00
seth
48e5040196
feat: disable sparkle when update url is empty
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 19:01:39 -04:00
seth
928e18b66d
Merge pull request #1446 from getchoo/nix-fixes
disable darwin in flake + cleanup garnix.yaml + fix markdownlint warnings
2023-07-26 17:10:07 -04:00
Trial97
6768501db1
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import_zip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-27 00:09:18 +03:00
Trial97
62aa7a52c4
fiexed conflicts
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-27 00:07:38 +03:00
Trial97
3c472fd7e0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into prism_export2 2023-07-27 00:05:59 +03:00
Trial97
b15f689ccf
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions 2023-07-27 00:03:42 +03:00
Sefa Eyeoglu
d960effb99
Merge pull request #1447 from getchoo/typomoment
fix: typo in task.h
2023-07-26 22:56:31 +02:00
Trial97
1e82cb6a7c
fix: add support for QByteArray inifile
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-26 23:56:01 +03:00
Alexandru Ionut Tripon
31b62203a7
Update launcher/ui/MainWindow.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-26 23:44:35 +03:00
seth
af59c41713
fix: typo in task.h
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 16:20:30 -04:00
seth
f7ffbcca6c
chore(docs): correct markdownlint warnings
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 14:49:09 -04:00
seth
342a0d0091
fix(nix): disable x86_64-darwin
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 14:49:09 -04:00
seth
1974bb7e59
chore(ci): cleanup garnix.yaml
Signed-off-by: seth <getchoo@tuta.io>
2023-07-26 14:49:05 -04:00
Trial97
e6b4fc9182
removed quilt warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-26 21:36:40 +03:00
Trial97
c778dcbc9c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-07-26 21:33:15 +03:00
Sefa Eyeoglu
a0944dab7a
Merge pull request #1438 from Scrumplex/update-docs 2023-07-26 20:30:04 +02:00
TheKodeToad
719d87de3b
Update MainWindow.ui
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-26 17:21:12 +01:00
TheKodeToad
816acc9c76 Open catpak folder action
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-26 17:19:39 +01:00
LostLuma
a9fefb2eeb
Address review comments
Signed-off-by: LostLuma <lilly@lostluma.net>
2023-07-26 15:22:22 +02:00
Sefa Eyeoglu
4ad448993c
fix: fix typo in README
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-26 14:48:53 +02:00
Sefa Eyeoglu
bcadffa0e3
Merge pull request #1434 from getchoo/garnix 2023-07-26 14:47:14 +02:00
TheKodeToad
ce2d2c9f32
Merge pull request #1427 from tjw123hh/develop
Add some missing strings to translations
2023-07-26 13:41:54 +01:00
Sefa Eyeoglu
6f652e1d2f
chore: update information for downstreams
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-26 14:38:34 +02:00
LostLuma
361583edfc
Ignore cache files when exporting instances
Signed-off-by: LostLuma <lilly@lostluma.net>
2023-07-26 04:23:01 +02:00
seth
fbf29274e8
chore(ci): remove nix job
we're using garnix now

Signed-off-by: seth <getchoo@tuta.io>
2023-07-25 19:23:17 -04:00
seth
3c35d647b8
feat(ci): init garnix.yaml
Signed-off-by: seth <getchoo@tuta.io>
2023-07-25 19:18:30 -04:00
TheKodeToad
b4159d30fc Revert permission change
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-25 15:17:20 +01:00
tjw123hh
f843d0732b Merge branch 'develop' of https://github.com/tjw123hh/PrismLauncher into develop 2023-07-25 17:36:38 +08:00
tjw123hh
280f041acb Delete some incorrect notr="true" tags
Signed-off-by: tjw123hh <tjw123hh@outlook.com>
2023-07-25 17:35:31 +08:00
Sefa Eyeoglu
4f00012268
Merge pull request #1426 from TheKodeToad/token-censor-fix 2023-07-24 20:41:23 +02:00
tjw123hh
4ab630b832
Update org.prismlauncher.PrismLauncher.desktop.in
Signed-off-by: tjw123hh <56749271+tjw123hh@users.noreply.github.com>
2023-07-24 20:50:11 +08:00
tjw123hh
a32ca43288 DCO Remediation Commit for tjw123hh <tjw123hh@outlook.com>
I, tjw123hh <tjw123hh@outlook.com>, hereby add my Signed-off-by to this commit: 6a01c277e8

Signed-off-by: tjw123hh <tjw123hh@outlook.com>
2023-07-24 20:48:27 +08:00
TheKodeToad
f505d43fc0 Fix token "0" being replaced
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-24 13:43:26 +01:00
tjw123hh
6a01c277e8 Delete some incorrect tags 2023-07-24 20:41:22 +08:00
Sefa Eyeoglu
684c2ec47a
Merge pull request #1420 from PrismLauncher/update_flake_lock_action 2023-07-23 11:45:31 +02:00
seth
273d75fd51
Merge pull request #1419 from pandaninjas/update-libnbtplusplus
Update libnbtplusplus submodule
2023-07-22 20:41:27 -04:00
github-actions[bot]
6f6b0b9661 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'libnbtplusplus':
    'github:PrismLauncher/libnbtplusplus/2203af7eeb48c45398139b583615134efd8d407f' (2022-04-15)
  → 'github:PrismLauncher/libnbtplusplus/a5e8fd52b8bf4ab5d5bcc042b2a247867589985f' (2023-07-22)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/46ed466081b9cad1125b11f11a2af5cc40b942c7' (2023-07-15)
  → 'github:nixos/nixpkgs/f465da166263bc0d4b39dfd4ca28b777c92d4b73' (2023-07-22)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/5e28316db471d1ac234beb70031b635437421dd6' (2023-07-14)
  → 'github:cachix/pre-commit-hooks.nix/eb433bff05b285258be76513add6f6c57b441775' (2023-07-18)
2023-07-23 00:21:25 +00:00
PandaNinjas
2253100ac6 Update libnbtplusplus submodule
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-22 14:26:49 -04:00
Trial97
b31644e228
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-22 18:16:03 +03:00
TheKodeToad
57430fd189
Merge branch 'develop' into better-launch
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-22 11:26:02 +01:00
TheKodeToad
6ffcfcd7e9
Merge pull request #1402 from Trial97/flame_import
feat:made flame instace creation use metadata for recommended version
2023-07-22 11:14:12 +01:00
TheKodeToad
516ddb22ae More catpack changes :3
This is just embarrasing

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-22 11:05:58 +01:00
Trial97
0b74b3833a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import 2023-07-21 19:30:06 +03:00
Trial97
ef21879df4
replaced require with ensure for jvmArgs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-21 19:30:00 +03:00
Trial97
ad92c30472
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into welcome_background
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-21 19:12:16 +03:00
TheKodeToad
bfafbdc51e
Merge branch 'develop' into env-vars
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-21 14:30:24 +01:00
TheKodeToad
1a7c5693cc Remove redundant methods
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-21 13:01:01 +01:00
TheKodeToad
f8b935ab37 Merge remote-tracking branch 'upstream/develop' into icon-indexing 2023-07-21 12:48:05 +01:00
TheKodeToad
8705e88e91
Fix build on Windows
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-21 11:19:55 +01:00
TheKodeToad
0be4db30eb
Merge branch 'PrismLauncher:develop' into better-component-installation 2023-07-21 11:02:57 +01:00
Sefa Eyeoglu
821dd8400b
Merge pull request #1253 from Trial97/catpacks 2023-07-21 11:11:12 +02:00
TheKodeToad
c37e1fb9f1
Merge branch 'develop' into skinfix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-20 18:11:27 +01:00
TheKodeToad
5088d33fd2 Finish things :P
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-20 14:17:01 +01:00
TheKodeToad
39f7bea53e
Revert accidental change in MainWindow
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-20 14:13:29 +01:00
TheKodeToad
842f08dcfc (UX) Add open folder button next to combo boxes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-20 11:54:15 +01:00
Trial97
f8d9cd9a03
use range for
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-19 23:08:16 +03:00
TheKodeToad
960093700a Better theme reset
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 20:57:08 +01:00
TheKodeToad
54d393632d Automatically create theme folders, and add an action to open them
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 16:29:52 +01:00
TheKodeToad
c633c6d083 Colors->Widgets
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 14:19:28 +01:00
TheKodeToad
96ebdfc9a8 Sorting and invalid reset
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 14:12:39 +01:00
TheKodeToad
f55120654a
Merge branch 'PrismLauncher:develop' into icon-indexing 2023-07-19 12:51:26 +01:00
TheKodeToad
44ca7c7d22 Licenses
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 12:29:51 +01:00
TheKodeToad
58c2059e10 Remove recursion
It will add icon packs which aren't available - as QIcon's search paths are not recursed!

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-19 10:38:56 +01:00
Trial97
b7bccb9058
removed subdirectory flag
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-19 12:27:02 +03:00
Trial97
f046bd7d50
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks 2023-07-19 12:26:12 +03:00
TheKodeToad
593f452986
Merge pull request #1399 from Scrumplex/offline-uuid
fix: generate predictable UUIDs for offline accounts
2023-07-19 10:16:27 +01:00
Trial97
43cc04433d
feat: refactored Instance ImportTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-19 11:58:27 +03:00
TheKodeToad
97662f5c8e Multiple icon themes!
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-18 22:51:34 +01:00
seth
f8d88cc83d
Merge pull request #1372 from PrismLauncher/update_flake_lock_action
chore(nix): update lockfile
2023-07-18 21:19:58 +00:00
Trial97
f393aa684e
wait to load metadata
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-18 23:59:43 +03:00
Trial97
4c319c8f4f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into flame_import 2023-07-18 23:49:52 +03:00
Trial97
477b72ad33
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into prism_export2 2023-07-18 23:48:02 +03:00
Sefa Eyeoglu
3728cbb62a
Merge pull request #1397 from Gaming32/develop 2023-07-18 22:47:55 +02:00
Trial97
015f88bf83
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-18 23:46:19 +03:00
Trial97
02082cda09
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into update_file 2023-07-18 23:40:11 +03:00
Trial97
5eec0f5901
feat:managed packs can update from file
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-18 23:40:03 +03:00
Sefa Eyeoglu
3fbc25155b
Merge pull request #1362 from Trial97/fix_warning 2023-07-18 22:28:27 +02:00
Sefa Eyeoglu
ecac05b2fc
Merge pull request #1378 from Trial97/prism_export
Added progress bar to Prism instance export
2023-07-18 22:26:56 +02:00
seth
5b54475d3e
Merge pull request #1385 from orowith2os/flatpak-updates
Update Flatpak manifest
2023-07-18 20:12:39 +00:00
Trial97
391497645f
feat:made flame instace creation use metadata for recommended version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-18 22:33:39 +03:00
Sefa Eyeoglu
f8fcb98c68
fix: generate predictable UUIDs for offline accounts
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-18 10:07:35 +02:00
Dallas Strouse
2eff1de560
Update Flatpak manifest
Signed-off-by: Dallas Strouse <dastrouses@gmail.com>
2023-07-17 22:38:12 -05:00
Josiah Glosson
1fbb41f5e2
Make Launch Offline not launch online in 1.6+
Signed-off-by: Josiah Glosson <soujournme@gmail.com>
2023-07-17 17:07:06 -05:00
TheKodeToad
01afa8957f
Merge pull request #1387 from Scrumplex/fix-quilt-beacon
Check if any modloader is installed
2023-07-17 17:40:42 +01:00
Trial97
5162203c7d
Merge branch 'prism_export' of github.com:Trial97/PrismLauncher into prism_export2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 17:58:42 +03:00
Trial97
b0940d696b
Added QFutureWatcher
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

abort

forgot

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 17:52:00 +03:00
Trial97
fe73d696cb
replace emplace with insert
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 17:24:29 +03:00
Trial97
2ea4a78541
Upgraded ExportToZipTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 17:24:23 +03:00
Trial97
f5891940e0
translate strings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 17:22:35 +03:00
Trial97
cd9310afed
replace emplace with insert
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 16:57:52 +03:00
Trial97
64041a84a2
handle file removal in ExportToZipTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 16:55:26 +03:00
Trial97
78ee63af38
simplify modrinth export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 16:40:01 +03:00
Trial97
455c495338
simplify flame export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

s
2023-07-17 16:27:08 +03:00
Trial97
0bf70d677e
Upgraded ExportToZipTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 16:24:43 +03:00
Sefa Eyeoglu
2be630904f
fix: don't take modloaders by reference
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-17 14:33:01 +02:00
TheKodeToad
49cebc2da4 More consistent behaviour
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-17 12:49:12 +01:00
TheKodeToad
049abc9b1a Merge remote-tracking branch 'upstream/develop' into rename-groups 2023-07-17 12:13:58 +01:00
Tayou
e8c44e700d
Merge pull request #1286 from TayouVR/better-instance-group-separator 2023-07-17 11:55:31 +02:00
Sefa Eyeoglu
54a091ca59
fix: check if any modloader is installed
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-17 10:09:01 +02:00
Trial97
ec32618e11
reveted back to add years
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-17 10:20:22 +03:00
Sefa Eyeoglu
aaf1726965
Merge pull request #1357 from getchoo/quilt-beacon
feat: add toggle for quilt beacon
2023-07-17 06:42:46 +02:00
seth
6b970954d6
Merge pull request #1381 from getchoo/backporting-docs
chore(docs): add backporting info to CONTRIBUTING.md
2023-07-16 18:36:51 -04:00
TheKodeToad
fb5aefffb2 Reduce bugginess
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-16 23:36:01 +01:00
TheKodeToad
20e2c70464 Rename groups and janky reference counting map
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-16 23:23:33 +01:00
seth
ed2f680202
chore(docs): add backporting info to CONTRIBUTING.md
Signed-off-by: seth <getchoo@tuta.io>
2023-07-16 17:28:52 -04:00
seth
5e0df9b696
Merge pull request #1276 from Scrumplex/print-build-platform
Print build platform on launch
2023-07-16 17:15:55 -04:00
Alexandru Ionut Tripon
ec41252535
Update launcher/MMCZip.h
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-16 23:47:54 +03:00
Alexandru Ionut Tripon
4df9df03ab
Update launcher/MMCZip.cpp
Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-16 23:47:47 +03:00
Trial97
7441974d9d
Removed icon
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 21:23:22 +03:00
Trial97
79222a56e3
use shared pointer
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>

use shared pointer
2023-07-16 21:14:39 +03:00
Trial97
cadb7142f0
Added progress bar to Prism instance export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 20:57:57 +03:00
Trial97
251055302e
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 20:53:58 +03:00
Sefa Eyeoglu
b54d1651ab
Merge pull request #1373 from Scrumplex/backport-bot 2023-07-16 19:42:09 +02:00
Trial97
9d0175b81a
Added welcome screen
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 17:46:00 +03:00
Trial97
002430db46
added path to flatpack
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 15:43:47 +03:00
Trial97
de30a72c4e
made the date a object
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 15:16:16 +03:00
TheKodeToad
5f37e339fb
Merge branch 'develop' into feature/java-downloader
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-16 12:32:31 +01:00
Trial97
0a956bbc73
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks 2023-07-16 14:18:26 +03:00
Trial97
1e9a596908
simplified code in cat packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 14:18:17 +03:00
Sefa Eyeoglu
b9568279dc
Merge pull request #1010 from TayouVR/add_default_editorconfig 2023-07-16 12:30:22 +02:00
Sefa Eyeoglu
fcdd9ea986
Merge pull request #1246 from Trial97/export 2023-07-16 12:24:42 +02:00
Sefa Eyeoglu
c145bfa524
Merge pull request #1369 from Trial97/autoselect 2023-07-16 12:21:17 +02:00
Sefa Eyeoglu
18ebc858fd
feat(actions): add backport action
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-16 11:47:54 +02:00
github-actions[bot]
6597a5c860 chore(nix): update lockfile
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/267149c58a14d15f7f81b4d737308421de9d7152' (2023-07-01)
  → 'github:hercules-ci/flake-parts/8e8d955c22df93dbe24f19ea04f47a74adbdc5ec' (2023-07-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/cd99c2b3c9f160cd004318e0697f90bbd5960825' (2023-07-01)
  → 'github:nixos/nixpkgs/46ed466081b9cad1125b11f11a2af5cc40b942c7' (2023-07-15)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/42587d3414d1747999a5f71e92a83cf6547b62da' (2023-07-03)
  → 'github:cachix/pre-commit-hooks.nix/5e28316db471d1ac234beb70031b635437421dd6' (2023-07-14)
2023-07-16 00:23:55 +00:00
Trial97
a3ffa64550
Upgraded pack changelog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-16 01:59:08 +03:00
Alexandru Ionut Tripon
f42514a1a3
Update launcher/tasks/ConcurrentTask.cpp
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-16 00:38:39 +03:00
Tayou
a6305ac891
Merge pull request #1368 from Trial97/crash_curse_import 2023-07-15 23:13:00 +02:00
Trial97
06fc8358d9
auto focus search line on resource download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 23:57:32 +03:00
Trial97
c346d875a2
make FileResolvingTask accept empty modlist
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 23:26:52 +03:00
seth
a2a09ffe01
chore: better explain quilt loader beacon
Signed-off-by: seth <getchoo@tuta.io>
2023-07-15 14:25:05 -04:00
Trial97
21ffed3bf5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 20:35:11 +03:00
Trial97
fd7aab466b
Merge branch 'refactor/net-split-headers-to-proxy-class' of https://github.com/Ryex/PrismLauncher into refactor/NetActions 2023-07-15 20:33:48 +03:00
Trial97
6cf7c0a647
Connected last fail signals
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 20:17:16 +03:00
Alexandru Ionut Tripon
da87e825a1
Update launcher/ui/dialogs/ExportToModListDialog.ui
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-15 15:59:19 +03:00
Trial97
a7e0c9db96
connected failed event for some tasks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 12:01:07 +03:00
Trial97
0880d4d37b
made sure abort signal is catched in cocurent task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 09:16:37 +03:00
Trial97
b54e093313
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into fail_concurrent_task 2023-07-15 09:04:22 +03:00
Trial97
7befd63cce
fixed settings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 00:28:58 +03:00
Alexandru Ionut Tripon
2c2c39b42c
Update launcher/modplatform/import_ftb/PackInstallTask.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-15 00:17:48 +03:00
Alexandru Ionut Tripon
0692cbe701
Update launcher/modplatform/import_ftb/PackInstallTask.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-07-15 00:17:32 +03:00
Trial97
68b5fdf748
Ask user to retry if netjob fails
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-15 00:03:11 +03:00
Trial97
ab10524cd7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:45:40 +03:00
Trial97
1ccfba13eb
renames
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:41:51 +03:00
Trial97
b9ed8283b7
Added buttons
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:41:45 +03:00
Trial97
1495bfb73e
Made custom template enabled all time
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:41:37 +03:00
Trial97
9b02c31f8d
escaped text for html export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:35:18 +03:00
Trial97
50dae9d4f3
Moved to separate functions
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:34:28 +03:00
Trial97
9a3931dac6
Added json and csv format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:34:21 +03:00
Trial97
515197fba2
fix: html sintax for modlist export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:34:03 +03:00
Trial97
149b6d59cf
fixed tests
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 23:22:11 +03:00
Rachel Powers
37fb52aada
Merge pull request #1351 from Trial97/ftb_import
fixed substatus on ftb_import
2023-07-14 12:41:21 -07:00
Trial97
db9f5f44e0
Split in two the options
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 22:26:22 +03:00
seth
094af0f78f
Merge pull request #1336 from Ryex/packaging/fix-duplicate-share-directories
packaging: fix duplicate share directories (use only lowercase)
2023-07-14 14:19:44 -04:00
Trial97
d3dc00dcab
made concurent task fail
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 21:07:53 +03:00
Trial97
7f4665e3cc
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 21:07:34 +03:00
Trial97
cebb4dd17a
made the number of concurrent tasks configurable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 20:39:53 +03:00
Rachel Powers
3487e1cb64
Update launcher/Application.cpp
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-14 03:56:18 -07:00
Trial97
440afcedb0
fixed warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 13:32:18 +03:00
Trial97
b0a21c9389
insert header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 13:31:28 +03:00
Trial97
fc4a1ef193
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 13:31:13 +03:00
Trial97
c8533c0b0d
fixed substatus on ftb_import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 12:29:03 +03:00
Trial97
b0a018d823
format
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 12:28:23 +03:00
Sefa Eyeoglu
3becd4386b
Merge pull request #1306 from Ryex/ci/address-sanitiser_on_debug_builds 2023-07-14 10:11:34 +02:00
seth
3099a70edc
Merge pull request #1335 from Ryex/fix/gh-1322-old-zip-mods-in-wrong-place
fix(flame install): don't assume .zip is a resource pack. default to mod
2023-07-14 00:16:43 -04:00
Rachel Powers
cde85947c7
Update launcher/minecraft/mod/tasks/LocalResourceParse.cpp
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-13 21:12:12 -07:00
Rachel Powers
5d10045cc8
Merge pull request #1352 from Trial97/crash_after_abort
Do not reset shared pointer if it's already empty
2023-07-13 21:11:47 -07:00
Rachel Powers
520594e529
Merge branch 'develop' into chore/add-compiler-warnings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-13 20:05:16 -07:00
Rachel Powers
95b300f1ea
packaging: use PascalCase folder name instead
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-13 19:56:36 -07:00
Trial97
bd6e8533ad
send by reference
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-13 19:58:08 +03:00
Trial97
843c2d67eb
Added FTBAPP Import
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-13 18:41:29 +03:00
seth
89aaedc06c
feat: add toggle for quilt beacon
Signed-off-by: seth <getchoo@tuta.io>
2023-07-12 21:10:48 -04:00
Tayou
94d4d12ee0
Merge pull request #1345 from Trial97/time2
feat:Added option to use system locale
2023-07-13 01:56:12 +02:00
TheKodeToad
997a3709d4 Custom environment variables UI and implementation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-12 19:21:38 +01:00
Trial97
76cc8ce043
renamed setting
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-12 21:05:13 +03:00
Rachel Powers
9499066375
Merge pull request #1350 from Trial97/fix_managed_pack_crash
fixed crash if no version is loaded on managed page
2023-07-12 09:55:31 -07:00
Trial97
25f7cf23d3
the other place
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-12 19:55:11 +03:00
Trial97
9ee68b9268
small pointer check
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-12 18:12:31 +03:00
leo78913
1208300ddf
i forgor to change skin upload browse button
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-07-12 10:57:40 -03:00
Sefa Eyeoglu
06a7d447f6
Merge pull request #1333 from Ryex/fix/null_instance_edit_crash 2023-07-12 15:53:46 +02:00
Trial97
766e833a73
fixed crash if no version is loaded
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-12 16:25:05 +03:00
Rachel Powers
6d5a2ceefe
fix(flameapi): getFile use shared_ptr
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-11 21:45:23 -07:00
Rachel Powers
149bc8e9ce
cleanup: pull out data object so I'm not repeating myself
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-11 21:42:34 -07:00
Rachel Powers
9957aeb003
Merge branch 'develop' into curseforge-url-handle 2023-07-11 21:42:29 -07:00
HyperSoop
bca120e798 Reduce mininmum memory amounts
Signed-off-by: HyperSoop <pasha.mirus@gmail.com>
2023-07-11 21:25:26 +03:00
Trial97
634612ae81
added missing header
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-11 18:20:44 +03:00
Trial97
f0d2aab784
feat:Added option to use system locale
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-11 18:05:43 +03:00
TheKodeToad
4c69290381
Merge branch 'develop' into better-component-installation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-11 11:14:06 +01:00
seth
640aaa8c23
Merge pull request #1331 from TheKodeToad/hungry-trash
Fix updating trashing resources
2023-07-10 16:31:43 -04:00
Rachel Powers
1aa5fa03f9
Update launcher/ui/MainWindow.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-10 12:05:01 -07:00
Nathan
99ba02afb6
Shortcuts on macOS (#1081)
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-10 20:26:25 +02:00
TheKodeToad
9aedb5afff
Merge pull request #1334 from TheKodeToad/litemod-dl
LiteMod downloading
2023-07-10 16:42:38 +01:00
TheKodeToad
e21756ea8c Remove direct launch
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-10 16:22:37 +01:00
Trial97
35ccfdb799
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-10 16:25:15 +03:00
TheKodeToad
91c9082d19
Merge pull request #1249 from Trial97/curse
Curseforge modpack export
2023-07-10 14:20:29 +01:00
TheKodeToad
4f4ccdaa59
Merge pull request #1338 from Trial97/unlockVersionPage
feat:unlocked versions page
2023-07-10 13:06:32 +01:00
Rachel Powers
01e058d8c1
Merge pull request #1337 from getchoo/fix-flake-workflow
fix(actions): give update-flake content write perms
2023-07-09 14:11:33 -07:00
TheKodeToad
f816e3cd3f
Merge pull request #1241 from Trial97/settings
Allow editing of running instances
2023-07-09 22:10:43 +01:00
Rachel Powers
49109b9213
Merge pull request #1332 from TheKodeToad/widebar-pain
Fix crash when editing instance and prevent similar crashes in future
2023-07-09 14:07:34 -07:00
Rachel Powers
d43399c2b4
Merge pull request #1321 from TheKodeToad/mr-optional
Optional mods in mrpack export
2023-07-09 14:03:47 -07:00
Trial97
308877aa8f
removed redundant code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-09 23:18:38 +03:00
Trial97
159f14c076
feat:unlocked versions page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-09 22:47:38 +03:00
seth
8e4de055b8
chore(actions): only run update-flake in our repo
Signed-off-by: seth <getchoo@tuta.io>
2023-07-09 15:43:54 -04:00
Trial97
d7f4e40f85
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-07-09 19:38:17 +03:00
TheKodeToad
6e2fcc9e11 Replace string manipulation in favour of QFileInfo
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-09 12:08:15 +01:00
seth
0d31e31282
fix(actions): give update-flake content write perms
Signed-off-by: seth <getchoo@tuta.io>
2023-07-09 01:56:21 -04:00
Rachel Powers
4dc4c589ba
packaging: fix duplicate share directories (use only lowercase)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-08 15:44:09 -07:00
TheKodeToad
d53d58a5d4 LiteMod downloading
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-08 22:16:43 +01:00
Rachel Powers
e704072892
fix(flame install): don't assume .zip is a resource pack. default to mod
let identifier move it if needed

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-08 13:38:00 -07:00
Rachel Powers
a54bbae622
fix(instance edit): don't allow editing if no selected instance or instance doesn't support editing
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-08 12:59:55 -07:00
TheKodeToad
08c140b9b4 Fix actionVisitItemPage insersion, and prevent widebar segfault
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-08 20:55:30 +01:00
TheKodeToad
0c6362f28d Make trash hungry
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-08 18:51:28 +01:00
seth
67d473aab7
Merge pull request #1329 from Ryex/fix/progress_dialog_centering
fix(progress dialog): if there is a parent center on creation
2023-07-08 07:50:13 -04:00
Rachel Powers
20c781b23b
fix(progress dialog): if there is a parent center on creation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-08 02:28:37 -07:00
Rachel Powers
7f138e3538
Merge branch 'develop' into ci/address-sanitiser_on_debug_builds 2023-07-08 01:27:30 -07:00
Rachel Powers
3211b265d7
Merge pull request #1302 from Ryex/fix/progress-dialog-segfault
fix: segfault in progress dialog
2023-07-07 21:25:14 -07:00
Trial97
bc2940e16a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into settings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-08 00:14:05 +03:00
Tayou
1131038fdb
Merge pull request #1120 from Trial97/visit_mod_page 2023-07-07 22:23:59 +02:00
seth
d1528c1044
Merge pull request #1325 from Scrumplex/validate-meta-url
Validate Meta URL
2023-07-07 14:31:22 -04:00
ashuntu
51d7a6289e Fix URL open crash (#596) 2023-07-07 13:24:31 -05:00
ashuntu
10678096e5 Persist app data between install versions 2023-07-07 13:20:15 -05:00
Sefa Eyeoglu
51e62761ee
fix: improve QUrl construction
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-07 19:25:12 +02:00
leo78913
d1cceac7d1
disable hiding enable and name columns on folder models
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-07-07 12:37:24 -03:00
TheKodeToad
b8482a5d89
Update ModFolderPage.cpp
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-07 15:53:50 +01:00
Trial97
3139af8487
Made action text simpler
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-07 17:12:10 +03:00
Sefa Eyeoglu
6fcdac0d36
fix: reset invalid meta url on launch
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-07 15:57:25 +02:00
Sefa Eyeoglu
073cb91f88
fix(ui): validate meta override url
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-07 15:56:07 +02:00
leo78913
3154c2644a
enable tear off on widebar context menu
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-07-07 10:30:18 -03:00
Sefa Eyeoglu
e225a72180
Merge pull request #1128 from pandaninjas/fix-implicit-fallthrough 2023-07-07 15:19:00 +02:00
TheKodeToad
ec85266860
Memory leak fixes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-07 12:18:04 +01:00
TheKodeToad
4c25e3ce75 Add keyboard shortcut to Kill action
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-06 21:04:21 +01:00
TheKodeToad
8ae67b84db Optional mods in mrpack export
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-06 20:04:26 +01:00
TheKodeToad
440dcdf022 Import QActionGroup properly :P
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-06 18:31:59 +01:00
TheKodeToad
22327bbe71 Combine launch buttons in Instance window, persist profiler
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-06 18:07:45 +01:00
flow
b8b8c8d4ac fix(tests): Fix abort of Task test on Linux
Not sure exactly what caused the issue, though I suppose using QThread's
exec instead of our own thingie is nice. I can't remember why I didn't
use that before, so I hope there's no issue with that! :^)

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-07-06 09:49:07 -07:00
Trial97
93870c315f
better url handling
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-06 18:46:59 +03:00
PandaNinjas
13d67c6524
Keep formatting consistent
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-06 08:51:42 -04:00
leo78913
e8dc1564b6
add _kde_side_panel_view property to page container
With this the sidebars look better with the breeze theme

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-07-06 01:39:59 -03:00
leo78913
f9578066d6
make "browse" buttons and java pages more consistent
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-07-06 01:39:59 -03:00
Rachel Powers
71e73bb6f8
fix(tests): linux big task memory leak.
- move big_task into function scope

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-05 21:18:49 -07:00
Rachel Powers
8638076aa1
fix(test): tasks test memmory leak. don't store local task copy.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-05 20:19:22 -07:00
Rachel Powers
965ee5687a
fix(test): task test memory leak *again*
- put Big thread on the stack so stack will clean it up.

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-05 20:05:18 -07:00
seth
2cb22ad280
Merge pull request #1310 from getchoo/autoupdate-flake
feat(actions): add update-flake-lock
2023-07-05 23:25:12 +00:00
Rachel Powers
4dbcedd03f
fix: Task test memory leaks again
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-05 11:51:37 -07:00
Sefa Eyeoglu
5ba13297c6
Merge pull request #1284 from Ryex/fix/properly-track-failed-copies-and-clones 2023-07-05 19:26:07 +02:00
Rachel Powers
5fe9a7a6c3
fix: extra } in CXX args
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-05 03:02:20 -07:00
Rachel Powers
a028894855
Apply suggestions from code review
Co-authored-by: seth <getchoo@tuta.io>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-04 23:43:39 -07:00
Rachel Powers
183ed7b90b
chore: cleanup compiler type branches
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-04 19:43:22 -07:00
seth
24b9ed106f
feat(actions): add update-flake-lock
Signed-off-by: seth <getchoo@tuta.io>
2023-07-04 18:49:22 -04:00
seth
7c8a010378
Merge pull request #1304 from Scrumplex/chore-flake-update-1
flake.lock: Update
2023-07-04 22:43:00 +00:00
PandaNinjas
817ecf8225
Fix VersionProxyModel.cpp
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-04 17:19:08 -04:00
PandaNinjas
4509fde410
Merge branch 'develop' into fix-implicit-fallthrough
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-04 16:41:34 -04:00
PandaNinjas
34cf28712c
Replace break with return true;
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-04 16:39:24 -04:00
PandaNinjas
1fbc17d275
Remove break and add fallthrough comment in WorldListPage.cpp
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-07-04 16:38:04 -04:00
Trial97
908ac813e0
escaped modlist inner html
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-04 15:16:54 +03:00
Rachel Powers
3c96d5e0d5
fix: memory leaks in tests
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-03 20:28:03 -07:00
Rachel Powers
c5705705d5
fix: memory leaks in ResourceModel Test
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-03 18:35:42 -07:00
Rachel Powers
03a1d68b74
fix: memory leaks in filesystem test
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-03 18:18:48 -07:00
Rachel Powers
50eff80ca1
build: optimize address-sanitizer
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-03 18:07:59 -07:00
Rachel Powers
96c118779d
build: enable address sanitiser in debug builds
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-03 17:48:44 -07:00
TheKodeToad
64c591b234 Better parent version filtering; handle old fabric :P
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-03 20:48:37 +01:00
TheKodeToad
0e5c377680 Various tweaks
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-03 17:39:09 +01:00
Trial97
6d758795af
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-03 17:00:56 +03:00
Tayou
dedc9e4edc
Merge pull request #1127 from Trial97/scale_cat 2023-07-03 15:46:56 +02:00
Trial97
fa7cfc77d8
fixed template
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-03 16:08:20 +03:00
Sefa Eyeoglu
14692eed40
flake.lock: Update
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/006c75898cf814ef9497252b022e91c946ba8e17' (2023-05-08)
  → 'github:hercules-ci/flake-parts/267149c58a14d15f7f81b4d737308421de9d7152' (2023-07-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/da45bf6ec7bbcc5d1e14d3795c025199f28e0de0?dir=lib' (2023-04-30)
  → 'github:NixOS/nixpkgs/4bc72cae107788bf3f24f30db2e2f685c9298dc9?dir=lib' (2023-06-29)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/aeb75dba965e790de427b73315d5addf91a54955' (2023-05-25)
  → 'github:nixos/nixpkgs/cd99c2b3c9f160cd004318e0697f90bbd5960825' (2023-07-01)
• Updated input 'pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/61e567d6497bc9556f391faebe5e410e6623217f' (2023-05-23)
  → 'github:cachix/pre-commit-hooks.nix/42587d3414d1747999a5f71e92a83cf6547b62da' (2023-07-03)
• Updated input 'pre-commit-hooks/flake-utils':
    'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02)
  → 'github:numtide/flake-utils/a1720a10a6cfe8234c0e93907ffe81be440f4cef' (2023-05-31)
• Added input 'pre-commit-hooks/flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-07-03 14:27:02 +02:00
Trial97
f0aab541f8
fixed typo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-03 15:09:35 +03:00
Trial97
026293f773
updated option text
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-03 14:17:39 +03:00
Trial97
5d5f1b86fd
fixed logic regarding range over multiple years
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-03 09:21:25 +03:00
Trial97
ba159ba971
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks 2023-07-03 09:01:22 +03:00
Rachel Powers
e5b9bfb2e7
fix: update if new size is larger
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-02 22:30:25 -07:00
Rachel Powers
8cb8273e67
fix: update if new size is larger
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-02 22:29:45 -07:00
Rachel Powers
73d8343914
fix: header <qpoint.h> -> <QPoint>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-02 22:27:24 -07:00
Rachel Powers
3960eb7d32
fix: properly calculate min size for progress dialog, apply it at creation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-02 21:24:43 -07:00
Rachel Powers
4004e0faee
fix: segfault in progress dialog
- dialog tries to resize after unhiding the subtask scroll area
- after resize attempts to recenter on parent
  - `calls parentWidget()->{x|y}()`
  - what if there is no parent? nullptr->() = segfault

- recenter on last pos, don't access parent

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-02 20:22:25 -07:00
Rachel Powers
b47993b736
Merge pull request #3 from Trial97/netRefactor3
Fail NetRequest on connection close from QT
2023-07-02 19:32:47 -07:00
Rachel Powers
ca061080c1
Merge pull request #2 from Trial97/feat/acknowledge_release_type
Feat/acknowledge release type
2023-07-02 19:32:25 -07:00
Trial97
f1bd9700f7
Fail NetRequest on connection close from QT
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-02 22:49:58 +03:00
Trial97
5f63c781b4
resolved local vaiables names
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-02 18:50:29 +03:00
TheKodeToad
43e6f05ed5
Merge pull request #1232 from telans/screenshots-update
ScreenshotsPage fixes
2023-07-02 16:44:54 +01:00
Trial97
aad5ca5474
fixed typos
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-02 16:45:15 +03:00
Trial97
cf2393a509
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into settings 2023-07-02 15:56:39 +03:00
Tayou
81c0a1c4bd
antialiasing for all painting, make hitbox fullwidth
Signed-off-by: Tayou <tayou@gmx.net>
2023-07-02 14:01:56 +02:00
Trial97
6fc745e98c
Merge branch 'catpacks' of github.com:Trial97/PrismLauncher into catpacks 2023-07-02 13:34:41 +03:00
Trial97
7579fff532
Added more options for variants planing
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-02 13:34:04 +03:00
Trial97
7ac2a23bc8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks 2023-07-02 13:14:19 +03:00
Trial97
6c4cf085e0
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-02 12:50:45 +03:00
Sefa Eyeoglu
b51f1f1d41
Merge pull request #1298 from TurboWafflz/develop 2023-07-02 09:52:59 +02:00
Rachel Powers
8d7dcdfc5b
chore: fix shadowed member and signed/unsigned mismatch
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: supress unused with [[maybe_unused]]

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: unshadow ^&^& static_cast implicit return

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: deshadow and mark unused in parse task

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: mark unused in folder models

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: deshadow and mark unused with instances

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: more deshadow and unused

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: remove uneeded simicolons

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: mark unused

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

chore: prevent shadow

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 23:39:38 -07:00
Finian Wright
3fe518ff2b Fix compiling on OpenBSD
Signed-off-by: Finian Wright <turbowafflz@gmail.com>
2023-07-02 00:36:21 -04:00
Rachel Powers
98d6904e4a
chore: fix propagate mispelling
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 17:03:12 -07:00
Rachel Powers
d7d2d9f612
chore: remove WARNINGS_AS_ERRORS
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 17:03:11 -07:00
Rachel Powers
2a5d291bd9
fix: toml without exceptions usage
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 17:03:11 -07:00
Rachel Powers
e2a65a7077
feat: ensure MSVC using stack unwind semantics
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 17:03:11 -07:00
Rachel Powers
671d3c1c80
Merge branch 'develop' into chore/add-compiler-warnings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-07-01 17:03:11 -07:00
TheKodeToad
6cc3587da2 Disable as intended
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 20:10:38 +01:00
TheKodeToad
9f9b5254a2 Double-click to install/change version
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 19:39:04 +01:00
TheKodeToad
284e374ae8 Nop
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 19:39:04 +01:00
TheKodeToad
4cdf669154 Modify "Change Version" to use "Install Loader" dialog
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 19:39:04 +01:00
TheKodeToad
4332b62a62 Fix search focusing
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 19:39:04 +01:00
TheKodeToad
7138425c85
Merge branch 'develop' into better-component-installation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-07-01 13:05:55 +01:00
Rachel Powers
b67844e74c
fix(windows installer): old installers didn't uninstall first.
now they do so ensure shortcuts stay selected by default

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 23:04:55 -07:00
Rachel Powers
cea285f5f5
fix(updater): fix bad exe_name on linux
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 21:33:22 -07:00
Rachel Powers
1fd90e9dd0
fix(updater): ensure updater knows binaries are in ./bin/ on linux and can find them
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 21:24:30 -07:00
seth
c523765c19
Merge pull request #1292 from Trial97/export5
Removed logs from instance export
2023-07-01 04:14:35 +00:00
Rachel Powers
cd527c44a4
fix(updater): build atrifact fix on linux ci + add qt-ver to artifact name
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 18:17:06 -07:00
Rachel Powers
6476023cf7
fix(updater): check the app root dir for binary
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 10:57:53 -07:00
Rachel Powers
a01a48793c
fix(updater): force asInvoker for updater on windows
- use `__COMPAT_LAYER` env var in windows to bypass Installer Detection and run as a normal user anyway
  - set up updater directly after main windows is created
  - check update locks before main window

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 03:19:21 -07:00
Trial97
18e628e873
removed extra condition
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-30 12:10:00 +03:00
Rachel Powers
00f75e2d54
fix(updater): avoid windows installer detection with "asInvoker" in xml exe.manifest
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-30 00:54:29 -07:00
Trial97
81207c6502
Made sure the logs are ignored when collecting files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-30 10:52:10 +03:00
Rachel Powers
8dd3a02747
Update launcher/Application.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 23:49:31 -07:00
Rachel Powers
3db83a189c
fix(updater): include updater in setup.exe
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 22:38:16 -07:00
ashuntu
b6e9a54951 Add snap github action
Signed-off-by: ashuntu <101582426+ashuntu@users.noreply.github.com>
2023-06-29 21:15:07 -05:00
ashuntu
6c374f5f08 Add snapcraft.yaml
Signed-off-by: ashuntu <101582426+ashuntu@users.noreply.github.com>
2023-06-29 21:09:31 -05:00
Rachel Powers
4320830a86
fix(updater): Explicit conversion to string for QByteArray
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 17:59:14 -07:00
Rachel Powers
603e3e7e2e
fix(updater): set minimum dialog / msgbox sizes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 15:56:44 -07:00
Rachel Powers
109ae5bae0
fix(updater): convert int to string
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 15:42:36 -07:00
Rachel Powers
41cb8d7ec6
fix: adjust dialog size, add parent to msgboxes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 15:31:12 -07:00
flow
494483fd2b
fix(updater): add parent to dialog to fix issues in tilling WMs
QProgressDialog without parents in Qt tend to cause graphical issues on
some systems, so we add the main window as a parent here!

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-06-29 15:31:11 -07:00
Rachel Powers
a6c8a37a5d
fixa(updater): better update timer logs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 14:06:14 -07:00
Trial97
87efa700ab
Removed logs from instance export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-30 00:01:36 +03:00
Rachel Powers
e38adf6006
fix(updater) fixes form first round of testing
- reset update time after check

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-29 14:01:11 -07:00
Trial97
25ffc4c4b0
Refactor ImgurUpload
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-29 17:58:09 +03:00
Tayou
8211befc29
removed magic 5, removed unnecessary QPainter function calls
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 23:24:57 +02:00
Tayou
1dc7f80034
4 clang-tidy changes, update copyright info
while already at it I updated all my emails to use one from my domain
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 23:08:04 +02:00
Rachel Powers
cb7ff81ade
fix: copy needs to overwrite
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 13:51:58 -07:00
Rachel Powers
400a2f7201
fix: final fixes
- use `done(code)` for offer dialog

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 12:46:28 -07:00
Rachel Powers
c123558314
fix: add build config header & trimlines form stdout
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 11:25:59 -07:00
Rachel Powers
f287d9deac
fix add NetRequest source
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 11:09:59 -07:00
Tayou
534d156b12
format VisualGroup.cpp file
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 20:06:17 +02:00
Tayou
54d88e4dbf
use QString.isEmpty()
oops
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 20:05:28 +02:00
Rachel Powers
95969e87a1
Merge branch 'refactor/net-split-headers-to-proxy-class' into feat/launcher-updater 2023-06-28 11:05:11 -07:00
Rachel Powers
e29126ca26
fix: add split markdown source
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 10:56:16 -07:00
Rachel Powers
1b5c78b066
Merge branch 'develop' into feat/launcher-updater 2023-06-28 10:54:39 -07:00
Trial97
1c3402d081
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into refactor/NetActions 2023-06-28 20:23:35 +03:00
Tayou
6b3b119db0
give ungrouped instances a group header
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 18:50:44 +02:00
Tayou
66461ac500
some positioning adjustments, deleted the line
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 18:42:49 +02:00
Rachel Powers
46e840fdf1
fix: add thread sleep to wait for resources - add detail text from logs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 09:18:07 -07:00
Tayou
7033e28572
update instance group header to more modern style
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-28 18:00:40 +02:00
Trial97
0008b22d8b
Renamed function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-28 18:41:47 +03:00
Trial97
8f9bd9617f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into scale_cat 2023-06-28 18:29:04 +03:00
Trial97
0f64ee6a5f
Added warnings for running instances
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-28 18:28:25 +03:00
Trial97
c23bf2fd22
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into settings 2023-06-28 17:46:01 +03:00
Trial97
3ad559ab22
Added version type to review message dialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-28 17:43:09 +03:00
Trial97
5f1074471d
Corected variable name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-28 13:35:42 +03:00
Trial97
c04cee7ff7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into feat/acknowledge_release_type
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-28 13:21:00 +03:00
Rachel Powers
4123343130
no need for pre release tag
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-28 00:25:09 -07:00
Sefa Eyeoglu
faec21d572
Merge pull request #1266 from TheKodeToad/smol-tweaks 2023-06-28 08:47:53 +02:00
Rachel Powers
cb35fb8d0e
add optional pre-release tag
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-27 20:37:42 -07:00
seth
213f03351f
Merge pull request #1280 from Trial97/shortcut
Fixed illegal characters in shortcuts name
2023-06-27 20:01:48 +00:00
Rachel Powers
00be211169
Update launcher/FileSystem.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-27 13:01:28 -07:00
seth
90fc720190
Merge pull request #1281 from Trial97/screenshot
Added more information to the screenshot upload warning
2023-06-27 20:01:18 +00:00
Rachel Powers
23b3711f96
fix(filesystem): track failed copies and clones
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-27 12:41:36 -07:00
Rachel Powers
6aa30d334c
Merge pull request #1 from Trial97/refactor/net-split-headers-to-proxy-class
Simplify Upload and Download
2023-06-27 12:08:41 -07:00
Trial97
54cb077b40
Added more information to the screenshot upload warning
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-27 19:31:36 +03:00
Trial97
92847b9774
omit icon remove on macos
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-27 19:15:20 +03:00
Trial97
6e5716f097
Fixed illegal characters in shortcuts name
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-27 19:05:32 +03:00
Rachel Powers
6f7454243e
fix: prep for changes in #1276
- sign updater

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-26 23:25:07 -07:00
Trial97
45c39d078f
More clenup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-27 09:23:24 +03:00
Trial97
385babb458
Simplify Upload and Download
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-27 08:51:17 +03:00
TheKodeToad
904b128afe
Merge pull request #1277 from Trial97/remove_mojang
Removed unused files
2023-06-26 23:09:27 +01:00
Trial97
dffffc784e
Removed unused files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-26 22:33:10 +03:00
Sefa Eyeoglu
40fb387185
fix(actions): set all build platforms to official
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 11:58:47 +02:00
Sefa Eyeoglu
63acf0a7b4
fix: set default platform to "unknown"
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 11:55:48 +02:00
Sefa Eyeoglu
fce000206f
feat: print build platform in application log
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 11:55:23 +02:00
Sefa Eyeoglu
f5e4171df4
feat: print build platform in log
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 11:54:22 +02:00
Sefa Eyeoglu
0aaec9ae4f
chore: remove obsolete macOS warning
We don't support that macOS version. This check also never worked, as we
never set the platform to that value.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 11:53:48 +02:00
Sefa Eyeoglu
d25452a64e
Merge pull request #1274 from TheKodeToad/java-signature 2023-06-26 11:19:53 +02:00
Sefa Eyeoglu
41d0f74750
Merge pull request #1275 from Scrumplex/git-blame-ignore 2023-06-26 10:56:26 +02:00
Alexandru Ionut Tripon
22bb260ae3
Update launcher/ui/dialogs/ExportToModListDialog.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-26 11:45:26 +03:00
Alexandru Ionut Tripon
d82ae31fc1
Update launcher/ui/dialogs/ExportToModListDialog.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-26 11:45:05 +03:00
Alexandru Ionut Tripon
cf5c01a5b1
Update launcher/ui/dialogs/ExportToModListDialog.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-26 11:44:55 +03:00
Alexandru Ionut Tripon
f2015eee80
Update launcher/ui/MainWindow.ui
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-26 11:44:47 +03:00
Rachel Powers
c0f0462550
fix(updater): logs/ folder
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-26 01:41:51 -07:00
Rachel Powers
1f70589deb
feat(updater): tie in part 2, let there be UI!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-26 01:22:33 -07:00
Sefa Eyeoglu
f8f1c3cf23
chore: add Git Blame ignore file
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 09:08:03 +02:00
Sefa Eyeoglu
ed4dce2fb6
fix: install logo to multimc theme in genicons.sh
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-26 08:59:48 +02:00
Sefa Eyeoglu
4d49486cc9
Merge pull request #1065 from leo78913/gamescope-close-button 2023-06-26 08:45:28 +02:00
Rachel Powers
b7dd32274c
Proper capture on windows
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 22:30:20 -07:00
Rachel Powers
d8e0b14dc4
feat(updater): tie in updater part 1
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 21:37:47 -07:00
TheKodeToad
8bebd7f042 Generate special signature composed of multiple elements instead of relying on timestamp for Java version cache invalidation
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-26 01:30:47 +01:00
Rachel Powers
90da57a806
Merge branch 'refactor/net-split-headers-to-proxy-class' into feat/launcher-updater 2023-06-25 16:13:51 -07:00
Rachel Powers
b142407b21
fix: ensure finished signal is emited
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 16:13:26 -07:00
Rachel Powers
10266f65e4
fix: include ^<optional^> updater doesn't need to know about mods
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 16:10:06 -07:00
seth
c49ee87857
fix(net): fix emit signals in download & upload task
Signed-off-by: seth <getchoo@tuta.io>
2023-06-25 18:56:54 -04:00
Rachel Powers
5b04a17730
Merge branch 'refactor/net-split-headers-to-proxy-class' into feat/launcher-updater 2023-06-25 14:43:45 -07:00
Rachel Powers
4ea0a567bc
DCO Remediation Commit for Rachel Powers <508861+Ryex@users.noreply.github.com>
I, Rachel Powers <508861+Ryex@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 1ba08f4641

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 14:42:16 -07:00
Rachel Powers
8aeec1d52d
fix: use new shared pointer for repsonse buffer
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 14:36:20 -07:00
Rachel Powers
f39d2de0cc
Merge branch 'refactor/net-split-headers-to-proxy-class' into feat/launcher-updater 2023-06-25 14:31:16 -07:00
Rachel Powers
1ba08f4641
fixup! Merge remote-tracking branch 'upstream/develop' into refactor/net-split-headers-to-proxy-class 2023-06-25 14:25:07 -07:00
Rachel Powers
4b65315cdc
chore: add license to headers
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 14:21:55 -07:00
seth
903fae94be
Merge pull request #1272 from Trial97/fix_selected
fix: Page container extra info set on logs page
2023-06-25 21:16:18 +00:00
Rachel Powers
275351e19c
Merge branch 'packaging/appimage-updates' into feat/launcher-updater 2023-06-25 13:51:01 -07:00
Rachel Powers
35c233d4c5
DCO Remediation Commit for Rachel Powers <508861+Ryex@users.noreply.github.com>
I, Rachel Powers <508861+Ryex@users.noreply.github.com>, hereby add my Signed-off-by to this commit: f5729d9a7c

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:32 -07:00
Rachel Powers
e099a3f7e8
feat(updater): packaging - know the updater git repo
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:32 -07:00
Rachel Powers
4313466589
feat(updater): final step for portable install
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:32 -07:00
Rachel Powers
d2a3acd493
fix: filter archive assets from windows non-portable installs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:31 -07:00
Rachel Powers
516dd6bd1a
support windows console
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:31 -07:00
Rachel Powers
44bc60021d
feat(updater): unpack portable archive
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:31 -07:00
Rachel Powers
50d5eb0621
feat(updater): download new & back up old
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:31 -07:00
Rachel Powers
3d3acb7a92
Merge branch 'packaging/appimage-updates' into feat/launcher-updater 2023-06-25 13:47:31 -07:00
Rachel Powers
bee88b1c7f
feat(updater) select valid asset
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:30 -07:00
Rachel Powers
98174b7a37
refactor: use Net tasks for github api download
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:47:30 -07:00
Rachel Powers
5d03919b59
Merge branch 'packaging/file-manifest-in-portable-install' into feat/windows-updater 2023-06-25 13:47:30 -07:00
Rachel Powers
2357d167b8
Merge branch 'packaging/windows-installer-uninstall-previous' into feat/windows-updater 2023-06-25 13:46:28 -07:00
Rachel Powers
013a26aafe
fix: add ApiUpload to CMakeLists.txt
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 13:23:43 -07:00
Rachel Powers
fe9927d10d
Merge branch 'refactor/net-split-headers-to-proxy-class' into feat/windows-updater 2023-06-25 12:44:25 -07:00
Rachel Powers
df4fd7df7f
Merge remote-tracking branch 'upstream/develop' into refactor/net-split-headers-to-proxy-class 2023-06-25 12:43:48 -07:00
Rachel Powers
c8ff812ab8
feat(net): ApiUpload ^& fix unfired finished signals
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 12:02:46 -07:00
Trial97
6d0e255ca1
fix: Page container extra info set on logs page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 22:00:33 +03:00
Rachel Powers
3105f314cb
fix: class rename (lsp acitons undid the first rename :P)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 11:09:26 -07:00
Rachel Powers
6db906d623
chore: format
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 11:09:26 -07:00
Rachel Powers
418677ef31
refactor: override / mask static make functions for ApiDownload
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 11:09:25 -07:00
Rachel Powers
9c10965997
refactor: split out setting api headers for downloads
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-25 11:09:25 -07:00
TheKodeToad
1bd778d0ae
Merge pull request #1270 from TheKodeToad/fix-unchecked-value
Fix unsafe usage of std::optional::value in FlameAPI
2023-06-25 18:24:29 +01:00
Trial97
87155e346c
Complicated a little task progress
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 19:44:18 +03:00
Trial97
52dd09bdf7
Merge branch 'curse' of github.com:Trial97/PrismLauncher into curse 2023-06-25 17:51:30 +03:00
Trial97
d344ffe370
Removed some setProgress calls
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 17:50:56 +03:00
TheKodeToad
4745ab64cd Deduplicate launcher icon
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 15:02:25 +01:00
TheKodeToad
288ea3d19b Remove metaurl function
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 14:52:33 +01:00
TheKodeToad
8ade44c9a3 Simplify
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 14:40:22 +01:00
Trial97
fa3a46498f
Removed dupliacte code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 16:23:50 +03:00
Leo
953a2590e2
Add fixme comment for no SSD detection
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Leo <leo3758@riseup.net>
2023-06-25 10:11:58 -03:00
TheKodeToad
02b628653b Fix markdown header
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 13:43:03 +01:00
Trial97
3546f57a42
Use internal markdown implementation
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 15:17:09 +03:00
Trial97
8d3bc6b6b9
Added markdown QT version check
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 14:58:54 +03:00
TheKodeToad
c75ba0f855
Fix big mistake :iea:
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 12:46:07 +01:00
Trial97
d1603f1945
Made it more similar to mrpack export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 14:43:11 +03:00
Trial97
84c63f4f01
Added plantxt export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 14:11:41 +03:00
TheKodeToad
514080653f Fix unsafe usage of std::optional::value in FlameAPI
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 11:56:28 +01:00
TheKodeToad
603ed22015 Replace accidental usages of QAbstractButton::pressed
This signal is not usually what you want, and creates an inconsistent experience.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-25 10:36:54 +01:00
Trial97
ef0752972a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into export 2023-06-25 12:26:54 +03:00
Trial97
fd5b155ee7
Added error message when exporting snapshots with curseforge
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 12:24:59 +03:00
Trial97
40fbae8ff6
Fixed links tooltip
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 11:36:37 +03:00
Trial97
ce4a86fbcd
Made custom url function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 10:41:29 +03:00
Trial97
54d7477679
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into visit_mod_page 2023-06-25 10:12:29 +03:00
Trial97
6f7d901a1f
removed extra variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 09:17:28 +03:00
TheKodeToad
5eb71fc6a9 Revert "feat(Mods): hide 'Provider' column when no mods have providers"
With Ryex's change, this causes issues. Apparently you need to sign off reverts! That's just weird...

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-24 23:36:32 +01:00
TheKodeToad
8a3aba1634 Fix Open Global Settings, why not
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-24 23:30:51 +01:00
TheKodeToad
bb8e6ef35e Fix flat white launcher icon
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-24 23:27:01 +01:00
TheKodeToad
529e2054ea A few tweaks, with inspiration from Zeke :3
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-24 23:26:27 +01:00
Trial97
158b07a39e
moved getRequiredBy
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-25 00:24:08 +03:00
Trial97
932531c8ba
fixed authors
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 23:48:18 +03:00
Trial97
69c21454ec
removed projectID
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 22:15:18 +03:00
Trial97
564e394ec8
feat:Update mods now fills missing dependencies
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 21:48:12 +03:00
Trial97
f0e4e07c05
Updated url function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 20:43:45 +03:00
Trial97
df932c6587
Updated authors string in modlist
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 20:22:18 +03:00
Trial97
81c1a95166
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-06-24 20:04:56 +03:00
TheKodeToad
bcf45c74a1
Merge pull request #986 from Trial97/develop
Mod dependencies
2023-06-24 14:04:27 +01:00
Trial97
8b576fd2bd
Added translation
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 15:59:55 +03:00
Trial97
7fdd68d768
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-06-24 15:58:55 +03:00
Trial97
f825d7753a
Updated copyright headers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 15:11:15 +03:00
Trial97
19cb6ad588
Updated Modrinth esport messages
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 15:04:18 +03:00
Trial97
4a84084d9d
Added condition for modlist
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 15:02:00 +03:00
Trial97
25579fbedc
Renamed ExportMrPackDialog to ExportPackDialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 14:54:39 +03:00
Trial97
59e1e51903
Removed unused files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 14:51:12 +03:00
Trial97
30ef5475c7
Made sure CurseForge string is corect
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 14:50:05 +03:00
Trial97
9804996db6
Added resource packs to export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 14:37:02 +03:00
Trial97
b774817ada
Merge branch 'curse' of github.com:Trial97/PrismLauncher into curse 2023-06-24 13:24:54 +03:00
Trial97
8939096db6
Fixed windows build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 13:24:40 +03:00
Sefa Eyeoglu
df6d46de9e
Merge pull request #1261 from telans/modrinthexport-url 2023-06-24 10:51:14 +02:00
Alexandru Ionut Tripon
a325d814e2
Update launcher/modplatform/flame/FlamePackExportTask.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-24 11:13:08 +03:00
Trial97
cd1e8dc8cc
Removed modlist checkbox
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 11:12:23 +03:00
Trial97
377707d3db
Merge branch 'curse' of github.com:Trial97/PrismLauncher into curse 2023-06-24 11:02:40 +03:00
Trial97
7ebc8c48a8
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-06-24 11:02:13 +03:00
Alexandru Ionut Tripon
42bc04a0d2
Update launcher/ui/MainWindow.cpp
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-24 11:01:23 +03:00
Rachel Powers
4322222acc
Merge pull request #1255 from Trial97/export4
Added Thumbs.db to excluded files in MrPackExport
2023-06-23 21:40:55 -07:00
seth
cce6a54701
Merge pull request #1258 from leo78913/resources-pack-page-crash-fix
fix: fix crash when hiding columns on resource packs page
2023-06-24 00:39:47 -04:00
Rachel Powers
68865353cf
Merge pull request #1259 from PrismLauncher/update-devs
Update developers
2023-06-23 21:38:16 -07:00
Rachel Powers
0e7f435921
echo to correct var for summary
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-23 20:56:07 -07:00
James Beddek
20ba6e5fb5
modrinth: use encoded url when exporting pack
Ensures that necessary url components such as spaces are encoded.
Prevents an error when submitting the resulting file to modrinth.

See https://discord.com/channels/734077874708938864/1120070731242410024

Fixes: #1226
Signed-off-by: James Beddek <telans@posteo.de>
2023-06-24 15:42:58 +12:00
Trial97
cf94adb363
Added some warnings
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-24 01:05:49 +03:00
TheKodeToad
d74a23d5b2
Update developers
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-23 21:00:55 +01:00
leo78913
750209b8bb
fix: fix crash when hiding columns on resource packs page
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-06-23 16:55:51 -03:00
Trial97
31aaa6d1da
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-06-23 22:41:06 +03:00
Trial97
823cd3862d
Fixed hash checking
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 22:41:01 +03:00
TheKodeToad
741c23a72a
Merge pull request #1256 from Trial97/fix11
Fixed hashers
2023-06-23 19:53:44 +01:00
Trial97
28de461067
Fixed hashers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 21:38:41 +03:00
Trial97
69c709b05a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 20:01:17 +03:00
Trial97
222a10891c
Fixed merge
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 19:41:55 +03:00
Trial97
cb2671a02c
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-06-23 19:35:47 +03:00
Trial97
0a56631831
Added curseforge search
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 19:35:41 +03:00
Rachel Powers
046d510134
Merge pull request #1200 from Trial97/net_job_crash
Made ByteSynkArray to use shared_ptr
2023-06-23 09:13:52 -07:00
Trial97
90df092174
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse 2023-06-23 17:29:58 +03:00
Trial97
85bbab0e92
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into net_job_crash 2023-06-23 14:38:30 +03:00
Trial97
67db141203
Renamed getResults to resultsReady
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 14:38:23 +03:00
Alexandru Ionut Tripon
c5ea8367aa
Update launcher/ui/themes/CatPack.cpp
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
2023-06-23 14:25:21 +03:00
Trial97
f8adb508ab
Made catpack id optional in catpack.json
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 11:44:40 +03:00
Trial97
6613deca0f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into catpacks 2023-06-23 11:42:28 +03:00
Trial97
763b3c3236
Added Thumbs.db to excluded files in MrPackExport
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 10:38:26 +03:00
Trial97
718aca3d06
Fixed date constructor
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 09:24:18 +03:00
Trial97
bf95cfb30e
Added CatPacks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 01:37:28 +03:00
seth
8df5ab8aa7
Merge pull request #1251 from getchoo/github-clarify
chore: add 'suggest a feature' message in help
2023-06-22 17:13:00 -04:00
seth
83efdccfe1
Merge pull request #1252 from getchoo/import-hehe
chore: avoid confusion in file/url import dialog
2023-06-22 17:12:35 -04:00
Rachel Powers
f1ebec641a
Merge pull request #1058 from Ryex/feature/images-for-resource-page
Feature: image coumn for Mod, Resource Pack, and Texturepack pages
2023-06-22 13:26:47 -07:00
seth
a4521ac0bb
chore: avoid confusion in file/url import dialog
Signed-off-by: seth <getchoo@tuta.io>
2023-06-22 16:15:03 -04:00
Tayou
c5f16276d7
Merge pull request #1235 from ChrisLane/java-check-debug-msg-fix 2023-06-22 22:03:30 +02:00
seth
03361e51ef
chore: add 'suggest a feature' message in help
Signed-off-by: seth <getchoo@tuta.io>
2023-06-22 15:58:53 -04:00
Trial97
85495c794d
changed map tipe
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 21:12:02 +03:00
Trial97
049b02cee4
finished up the curesforge export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 21:06:01 +03:00
TheKodeToad
05d2c1f0b0 Dynamic button text
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-22 18:18:33 +01:00
Trial97
3c9c39cb89
Updated slug for url
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 20:04:23 +03:00
Trial97
377f27b16f
Updated slug for url
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 20:04:06 +03:00
Trial97
58321f3491
Added curseforge export
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 20:03:44 +03:00
Trial97
4e07f9574a
Use slug for url
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 18:11:25 +03:00
Trial97
da6f846a49
Use slug for url
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 18:11:03 +03:00
Trial97
9ad356d66f
Added ExportModsToStringTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 17:44:12 +03:00
Trial97
836e8d2e28
Fixed code quality
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 17:39:57 +03:00
Trial97
b84dc8551a
Fixed trigger function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 16:49:19 +03:00
Trial97
f7d502c68c
Added ExportModsToStringDialog
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 16:08:04 +03:00
Trial97
9d2516a199
Added ExportModsToStringTask
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-22 16:07:55 +03:00
TheKodeToad
e7ad373d89
Merge branch 'PrismLauncher:develop' into better-component-installation 2023-06-22 13:22:44 +01:00
TheKodeToad
dea33a3c1d Make selectedPage const 🤦‍♀️
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-22 13:13:25 +01:00
TheKodeToad
1f16380efc Fix
I could use rvalue references and fix my brain fart, but i think regular references are more readable and safer here.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-22 12:56:47 +01:00
Sefa Eyeoglu
05a8232a8f
Merge pull request #1243 from Trial97/export
Added regex expresion to exclude .DS_Store files
2023-06-22 08:09:31 +02:00
Trial97
0063d52952
Merge branch 'settings2' of github.com:Trial97/PrismLauncher into settings 2023-06-21 23:25:37 +03:00
Trial97
2e82c1d40c
Added regex expresion to exclude .DS_Store files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-21 23:22:25 +03:00
Trial97
820892d7cc
Made settings editable when instance is running
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-21 22:42:08 +03:00
Trial97
0d2105dec4
Made buttons on ModsFolderPage enabled all the time
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-21 21:34:40 +03:00
Trial97
480faca559
Removed unused variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-21 21:17:17 +03:00
TheKodeToad
0975dbc3dd
Merge pull request #1228 from Trial97/curent_pack_crash
Fixes #1212
2023-06-21 15:35:09 +01:00
DioEgizio
8aa02320e0
Merge pull request #1231 from telans/modrinth-default-icon
Modrinth: use default icon for non-managed packs
2023-06-21 12:25:26 +02:00
Rachel Powers
470518eb3a
fix: resize columns on hide ^& uniform heights
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-21 02:31:40 -07:00
Trial97
ba609f3600
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into visit_mod_page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-21 09:14:58 +03:00
seth
ca659136e2
Merge pull request #1119 from Trial97/mods_txt
Added dynamic page extra info
2023-06-20 19:56:38 -04:00
seth
f1a6dc5332
Merge pull request #1184 from clickdevin/develop
Fix bugs when updating curseforge modpacks
2023-06-20 19:55:48 -04:00
seth
4eaa7dc8b1
Merge pull request #1234 from Szowisz/develop
Fix compiling on FreeBSD
2023-06-20 19:55:03 -04:00
TheKodeToad
94510edd72 Rework icons (Fabric is blurry now but looks better)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-20 19:57:15 +01:00
Chris Lane
9ad29e8d85
Remove extra spaces in one more Java checker debug
Signed-off-by: Chris Lane <git@chrislane.com>
2023-06-20 15:51:31 +01:00
Chris Lane
07f3d27fb8
Clean up 'Running java checker' debug msg code
Signed-off-by: Chris Lane <git@chrislane.com>
2023-06-20 15:36:25 +01:00
Chris Lane
f2692e60f3
Add missing space in java checker debug message
Signed-off-by: Chris Lane <git@chrislane.com>
2023-06-20 12:44:44 +01:00
James Beddek
009623823d
Modrinth: use default icon for non-managed packs
Fixes: #317
Signed-off-by: James Beddek <telans@posteo.de>
2023-06-20 23:00:13 +12:00
Jakub Wroński
a32a3e25ad
Fix compiling on FreeBSD
Signed-off-by: Jakub Wroński <kubawronski161@gmail.com>
2023-06-20 12:59:47 +02:00
Trial97
3e3be9ae6f
Added fallback for quilt if the API or Kotilin is not present
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-20 13:28:57 +03:00
TheKodeToad
3c648ff9fd
Merge pull request #1233 from p2js/ui-consistency-fix
Remove inconsistent/unneeded question marks in UI
2023-06-20 11:05:26 +01:00
Alfio
f769b0b4c6 Remove inconsistent/unneeded question marks in UI
Signed-off-by: P2 <tomarchioalfio5@gmail.com>
2023-06-20 10:40:27 +02:00
James Beddek
75bd626f33
Screenshots: do not retry image thumbnailing on null result
This causes the thumbnailing thread pool to spend a lot of time attempting to
retry an image that failed. A null result is common where the image is too large
to be allocated (>128MiB alloc).

The repeated retries continue after page delete, causing hangs if a user
tries to exit the application.

Fixes: #1201
Signed-off-by: James Beddek <telans@posteo.de>
2023-06-20 16:59:59 +12:00
James Beddek
f2471f0f68
Screenshots: clear the thumbnailing pool on page delete
Removes pending QThreadPool jobs which linger after page delete.
May help with #1201 by allowing the pool to finish earlier.

Signed-off-by: James Beddek <telans@posteo.de>
2023-06-20 16:54:15 +12:00
James Beddek
d9b24f7705
Screenshots: remove path from watcher if it no longer exists
Signed-off-by: James Beddek <telans@posteo.de>
2023-06-20 16:52:57 +12:00
TheKodeToad
a389983d7d Just use the old ordering
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-20 00:28:42 +01:00
TheKodeToad
82d3755e25 License all the things
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-19 23:36:20 +01:00
TheKodeToad
6ccc7e77f9 Basic, unfinished & broken impl
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-19 22:42:30 +01:00
Trial97
b62e4c0cc7
Fixed build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 21:32:19 +03:00
Trial97
f6f0fbbd9f
Fixed removeIf
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 21:23:48 +03:00
Trial97
c13a90540c
Added overide for Quilt/Fabric
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 21:20:35 +03:00
Trial97
6fd729e285
Fixed regresion regarding modrinth project_id in dependence array
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 17:42:16 +03:00
Trial97
8ad9692daa
Changed qWarning to qDebug for raw data
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 14:10:29 +03:00
Trial97
d02858040e
Fixes #1212
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 13:09:37 +03:00
Trial97
3ee0fec729
Removed mods from lambda
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 12:22:22 +03:00
Trial97
ec063470d7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into mods_txt 2023-06-19 12:20:50 +03:00
Trial97
b2ed2bf810
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into net_job_crash 2023-06-19 12:01:35 +03:00
Rachel Powers
f8a02a5c9b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into packaging/appimage-updates 2023-06-19 01:41:14 -07:00
Rachel Powers
6685810081
packaging: sign appimages with gpg
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-19 01:34:14 -07:00
Rachel Powers
53d40df292
packaging: add appimage update capability
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

packaging(linux): use vars when refrencing qt install dir

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

packaging(appimage): dont use rsync

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

packaging: use runner.workspace when copying files

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

packaging(appimage): put zsync in relase:x

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

use with:token insted of env for GITHUB_TOKEN (which is depricated)

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

fix: appimage zsync needs consistant filenames across verisons

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

upload proper zsync

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>

fix: non versioned appimage filename

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-19 00:49:03 -07:00
Sefa Eyeoglu
af6bf11793
Merge pull request #1224 from DioEgizio/add-appstream 2023-06-19 09:35:56 +02:00
DioEgizio
d5b5f0503c chore: change xml name to what linuxdeploy wants
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-06-19 09:17:15 +02:00
DioEgizio
555cb40efd chore: install appstream in appimage
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-06-19 09:17:15 +02:00
seth
9d22fce53f
Merge pull request #1214 from PrismLauncher/renovate/cachix-install-nix-action-22.x
chore(deps): update cachix/install-nix-action action to v22
2023-06-18 22:06:47 -04:00
seth
aee0999daa
Merge pull request #1210 from getchoo/opengl-appimage
fix(appimage): bundle generic opengl lib
2023-06-18 22:06:03 -04:00
Trial97
1bdde1f947
Small fixes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-19 00:36:37 +03:00
Trial97
319ce8c19f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-06-19 00:06:44 +03:00
Trial97
4e66f55d84
Removed extra headers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-18 23:32:17 +03:00
Trial97
6826f1d605
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into net_job_crash 2023-06-18 23:27:41 +03:00
Trial97
0161520b33
Fixed leaks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-18 23:27:26 +03:00
Sefa Eyeoglu
12cd8a7bea
Merge pull request #1218 from flowln/bad_commit_string_in_bundled_package
Hide the Git commit entry on the About dialog when the build doesn't have git stuff support
2023-06-17 18:04:54 +02:00
flow
2d00a727f6
fix: hide git commit when the build doesn't have git stuff support
This fixes the Git commit string being "GITDIR-NOTFOUND" on the About
page when building a package from the bundled source archive.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-06-17 11:09:05 -03:00
renovate[bot]
b123f4f948
chore(deps): update cachix/install-nix-action action to v22 2023-06-16 21:58:32 +00:00
seth
fd9a8d1551
Merge pull request #1110 from TheKodeToad/version-search
Add a search bar to version lists
2023-06-16 14:47:39 -04:00
seth
6bc1150ad0
Merge pull request #1187 from getchoo/rel-8.0
chore: bump to 8.0
2023-06-16 14:46:25 -04:00
seth
45cce1d19a
fix(appimage): bundle generic opengl lib
Signed-off-by: seth <getchoo@tuta.io>
2023-06-16 14:34:44 -04:00
DioEgizio
412349ac58
Merge pull request #1135 from Trial97/installed_mods 2023-06-16 09:56:51 +02:00
Sefa Eyeoglu
000f4386a2
Merge pull request #1192 from Trial97/pre-lauch 2023-06-16 09:46:24 +02:00
Sefa Eyeoglu
5d3329b1ef
Merge pull request #1198 from TheKodeToad/remove-a-space 2023-06-16 09:42:41 +02:00
Trial97
147366bc0a
Made ByteSynkArray to use shared_ptr
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 22:59:41 +03:00
TheKodeToad
13804f80de Fix trailing space in instance name
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-15 16:37:03 +01:00
Trial97
1d354df1f8
Fix tests for window
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 16:51:58 +03:00
Trial97
1b42b9a08e
Fixed tests
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 14:25:58 +03:00
Trial97
535fb2c4d6
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into pre-lauch 2023-06-15 14:13:30 +03:00
Trial97
98a07da39b
Renamed variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 14:12:29 +03:00
TheKodeToad
8bf5ba2836
Merge pull request #1195 from Scrumplex/fix-javavendor-instance
Add JavaVendor as an instance override
2023-06-15 12:11:32 +01:00
Sefa Eyeoglu
798e1abb58
Merge pull request #1159 from getchoo/fix-devshell 2023-06-15 12:49:58 +02:00
Sefa Eyeoglu
90a4f622d2
Merge pull request #1063 from RedsonBr140/feat/RootFolder 2023-06-15 12:49:21 +02:00
Sefa Eyeoglu
6812823b55
fix: simplify resolving of data path
Co-authored-by: TheKodeToad <TheKodeToad@proton.me>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-15 12:48:22 +02:00
Sefa Eyeoglu
7ad9abf9bc
fix: add JavaVendor as an instance override
This should suppress a critical error that gets printed every time an
instance gets launched, as JavaCheck wants to store the vendor in the
instance settings.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-15 12:45:03 +02:00
Trial97
cb52be433d
Made the installed mods more apparent
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 13:20:08 +03:00
Trial97
1f2b0ad698
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into installed_mods 2023-06-15 12:39:20 +03:00
Trial97
6667ff9330
Updated text and fixed mod page text update
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 12:32:48 +03:00
Trial97
5bf091149d
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into mods_txt 2023-06-15 11:46:44 +03:00
Trial97
be0df38453
Added tooltip for name label
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 11:40:39 +03:00
Trial97
fcfb3d2df7
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into visit_mod_page 2023-06-15 10:37:10 +03:00
Trial97
1ff8136f98
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into scale_cat 2023-06-15 10:36:05 +03:00
Trial97
182e19eae3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-06-15 10:35:26 +03:00
seth
9908e115aa
Merge pull request #1067 from RedsonBr140/feat/dont-hide-settings
feat: Don't hide the settings tab when an instance is running
2023-06-15 02:20:00 -04:00
Trial97
811c79423f
Fixed version comparation
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 00:43:05 +03:00
Trial97
cf4c1605eb
Fixed qt5 build
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 00:37:32 +03:00
Trial97
e0b901169a
Added new migration for special characters
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-15 00:27:20 +03:00
seth
3f1548ae0e
Merge pull request #1099 from Trial97/logdir
store logs in seperate directory
2023-06-14 15:38:47 -04:00
TheKodeToad
3526d00a23
Merge branch 'develop' into feat/dont-hide-settings
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-14 20:05:02 +01:00
seth
e8b0a7c6f0
chore: bump to 8.0
Signed-off-by: seth <getchoo@tuta.io>
2023-06-14 12:45:08 -04:00
clickdevin
d4f2059b78 Fix bugs when updating curseforge modpacks
Signed-off-by: clickdevin <git@clickdevin.me>
2023-06-14 10:42:37 -04:00
DioEgizio
a4502f44c2
Merge pull request #1145 from Trial97/net_job_crash 2023-06-14 12:46:00 +02:00
TheKodeToad
18c436c2bc
Merge pull request #1174 from Trial97/pre-lauch 2023-06-14 11:32:55 +01:00
Trial97
b77fb05908
Added back the INIFile read function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-13 21:07:05 +03:00
seth
703f7698c1
Merge pull request #1140 from guihkx/ci-exclude-git-folder-from-sources-tarball
CI: Exclude `.git` directory from the source code tarball
2023-06-13 12:47:35 -04:00
DioEgizio
69bfb55397
Merge pull request #1166 from TheKodeToad/mrpack-export-oops 2023-06-13 18:00:44 +02:00
TheKodeToad
180ed0cc1a
Merge branch 'PrismLauncher:develop' into skinfix 2023-06-13 11:08:21 +01:00
Tayou
b174f82261
Merge pull request #1162 from leo78913/i-hate-naming-branches 2023-06-12 21:41:17 +02:00
Tayou
9406022e70
Merge pull request #1151 from TayouVR/rainbow-konami 2023-06-12 21:25:17 +02:00
TheKodeToad
f4a814b5e6
Remove unnecessary code
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-12 15:46:15 +01:00
TheKodeToad
94ddc8bbf7
Could this work?
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-12 14:14:50 +01:00
TheKodeToad
aaab95ba55 Basic Quick Play support
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-12 12:08:57 +01:00
leo78913
d6c7b4e813 add icons to export menu
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-06-11 21:50:29 -03:00
seth
ad0493390b
fix(nix): use prismlauncher-unwrapped in devShell
Signed-off-by: seth <getchoo@tuta.io>
2023-06-11 14:02:36 -04:00
Tayou
5aa1c340dc
rainbow konami & toggle
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-11 01:58:37 +02:00
Trial97
47372c2fbd
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into installed_mods 2023-06-10 22:04:12 +03:00
Trial97
ae9e8dbafd
Removed const specification
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-10 22:04:08 +03:00
TheKodeToad
b7d82354cb [ci skip] License headers!! (yay)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-10 14:43:58 +01:00
Trial97
b3d743635c
Updated the messages
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-09 21:29:12 +03:00
Trial97
f2932c6d03
Fixed some crashes
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-09 21:23:41 +03:00
guihkx
93436b0940
ci: exclude .git directory from the source code tarball
Reduces the its final size from 17.1 MiB down to 7.9 MiB.

Signed-off-by: guihkx <626206+guihkx@users.noreply.github.com>
2023-06-09 00:56:17 -03:00
Trial97
f96b135ef7
Higlight installed mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-08 20:26:09 +03:00
DioEgizio
bfe7e3afed
Merge pull request #1133 from DioEgizio/bump-mac-11.0 2023-06-08 18:11:59 +02:00
DioEgizio
75b1eaed0c
chore: bump macOS requirement to 11.0
Noticed only now that Qt 6.5 bumps the macOS requirement to macOS 11.
This was basically already effective in prism since with the Qt 6.5 bump pr macOS 10.15 user's wouldn't be able to run this, but updating the requirement here makes it more clear for the end user trying to run prism on macOS 10.15

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-06-08 17:12:49 +02:00
Sefa Eyeoglu
7fb4c8358b
Merge pull request #1131 from DioEgizio/revert-to-qt650 2023-06-08 16:20:22 +02:00
PandaNinjas
95f6860005
Apply suggestions from code review
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-08 10:12:27 -04:00
DioEgizio
5b3431b268
chore: revert macOS Qt version back to 6.5.0
Qt 6.5.1 seems to cause issues with Rectangle

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-06-08 14:55:09 +02:00
PandaNinjas
e6872aba75
Readd deleted line
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 22:15:44 -04:00
PandaNinjas
11cbeb8f96
Fix shadowing and add copyright header
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 22:13:57 -04:00
PandaNinjas
886b372ade
Fix accidentally renamed variable
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 20:03:58 -04:00
PandaNinjas
534328f16d
Remove unnecessary switch statement
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>

DCO Remediation Commit for PandaNinjas <admin@malwarefight.wip.la>

I, PandaNinjas <admin@malwarefight.wip.la>, hereby add my Signed-off-by to this commit: 318d11481d

Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 19:46:36 -04:00
PandaNinjas
318d11481d
Resolve other switch fallthrough issues 2023-06-07 19:37:54 -04:00
PandaNinjas
5d425ecc02
Fix the AccountList code
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 18:14:05 -04:00
PandaNinjas
c225ecbb55
Add sensible defaults in AccountList.cpp
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 18:01:39 -04:00
TheKodeToad
0b4807dc1f Questionable fix two
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-07 22:55:37 +01:00
Trial97
d33de2e427
Made cat scalable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-08 00:54:32 +03:00
TheKodeToad
1191c33c2b Remove flawed implementation
This seems to add the latest icon (bug) as a fallback if not provided...
but it mainly seems to cause problems... 🤷

I swear I did `git add .`.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-07 22:45:21 +01:00
TheKodeToad
52054469cd Fix *bug* lol
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-07 22:39:23 +01:00
PandaNinjas
a90eaafa70
Make it clear that the statements are meant to fall through in Murmur hash
Signed-off-by: PandaNinjas <admin@malwarefight.wip.la>
2023-06-07 15:18:59 -04:00
Trial97
bbd9e4de9b
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into mods_txt 2023-06-07 20:18:56 +03:00
Trial97
8abe6b6732
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into visit_mod_page 2023-06-07 20:18:36 +03:00
Tayou
9b9d439fce
Merge pull request #1111 from Trial97/requires 2023-06-07 18:57:46 +02:00
Sefa Eyeoglu
62d1bc87ae
Merge pull request #1117 from leo78913/update-pack-formats 2023-06-07 17:49:52 +02:00
Tayou
51ed39804f
Merge pull request #1125 from Ryex/fix/link-crash-1118 2023-06-07 16:14:53 +02:00
Rachel Powers
d12110b47b
fix #1118 : use filePath not path on QFileInfo
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-07 06:26:58 -07:00
Sefa Eyeoglu
accf0cd40e
Merge pull request #1115 from leo78913/fix-resource-downloader-crash 2023-06-07 08:47:19 +02:00
Trial97
e936bc4c60
Added custom text for multiple selection
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-07 01:38:10 +03:00
Trial97
f724059b88
Added visit mod's page
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-07 01:23:53 +03:00
Trial97
1e702ee40f
Added dynamic page extra info
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-07 00:16:23 +03:00
leo78913
a9302468e7 update resource and data pack pack_format_versions
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-06-06 16:10:15 -03:00
Tayou
3b9d822d72
Merge pull request #1073 from leo78913/accounts-menus-fixes 2023-06-06 20:34:41 +02:00
Tayou
f3a7de6b76
fix: save meta custom url as string, not QUrl (#1114) 2023-06-06 20:25:29 +02:00
leo78913
a807b231a7 fix: fix crash when selecting resource/texture/shader packs
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-06-06 15:17:13 -03:00
TheKodeToad
a2d0d5a71d Allow arrow key movement, fix auto-focus
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-06 18:26:26 +01:00
leo78913
d59a06344a fix main toolbar accounts toolbutton name
previously it was not using the selected account name when opening the launcher

and i also added an action group to the menu items so it uses radio buttons instead of checkboxes :p

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-06-06 14:21:41 -03:00
Tayou
e884341795
save meta custom url as string, not QUrl
Signed-off-by: Tayou <tayou@gmx.net>
2023-06-06 18:15:26 +02:00
Rachel Powers
3a068970f9
Packaging: file manifest in portable install (#1101) 2023-06-06 16:03:13 +02:00
TheKodeToad
c343036d3b Simplify
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-06 12:24:53 +01:00
Trial97
1043d29dd5
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into requires 2023-06-06 10:34:36 +03:00
Trial97
6505a62801
Renamed requires fields
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-06 10:34:05 +03:00
Sefa Eyeoglu
7e016c44c1
Merge pull request #1093 from getchoo/use-flake-parts
Refactor Nix Flake
2023-06-06 08:10:39 +02:00
TheKodeToad
7c5047b2ac cAsE iNsEnSiTiVe
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-05 23:12:47 +01:00
TheKodeToad
961285d6ab Add a search bar to version lists
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-05 22:47:42 +01:00
DioEgizio
e1b37f3cd3
Merge pull request #1108 from Ryex/fix/memory-leak-translation 2023-06-05 20:34:56 +02:00
DioEgizio
0c24827a52
Merge pull request #1103 from Ryex/fix/1.120-allowed_symlinks.txt 2023-06-05 20:32:30 +02:00
Sefa Eyeoglu
e6eee82fb9
Merge pull request #1100 from Ryex/packaging/windows-installer-uninstall-previous 2023-06-05 20:30:57 +02:00
Sefa Eyeoglu
c5cf78205a
Merge pull request #1109 from TheKodeToad/mrpack-export-validate 2023-06-05 19:44:45 +02:00
TheKodeToad
37b4f606c8 Validate input lengths on mrpack export
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-05 17:54:24 +01:00
Rachel Powers
5824047ffa fix(memory leak): cyclic refrence in translations model dl task
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-05 01:12:16 -07:00
Rachel Powers
df18d8560d chore: fix test & clean up one last warning
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 22:46:05 -07:00
Rachel Powers
3dccc38f42
Merge pull request #904 from TheKodeToad/mrpack-export
mrpack export
2023-06-04 19:01:50 -07:00
Rachel Powers
3531c5bb8c packaging(appimage): put zsync in relase:x
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 16:58:46 -07:00
Rachel Powers
cc41b039e6 chore: clean up after new compiler warnings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 14:59:48 -07:00
Rachel Powers
7e0e1ec51d chore: add better default compiler warnings
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 14:10:17 -07:00
Rachel Powers
ab41816265 packaging: use runner.workspace when copying files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 12:27:01 -07:00
Rachel Powers
2c95973446 packaging(appimage): dont use rsync
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-04 10:36:34 -07:00
Rachel Powers
89d8f9b829 packaging(linux): use vars when refrencing qt install dir
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-03 22:43:41 -07:00
Rachel Powers
0bda885bbf packaging: add appimage update capability
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-03 21:56:46 -07:00
Rachel Powers
f613b03efd
Typo fix
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-03 08:28:49 -07:00
TheKodeToad
3c87e5d31e Make mcInstance mutable
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-03 13:48:15 +01:00
TheKodeToad
e26827b849 Optimised icons
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-06-03 13:39:42 +01:00
Rachel Powers
8eb10e991f fix: use isSymLink (i've made this mistake before but I've made it again)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-02 16:14:38 -07:00
Rachel Powers
f6f32914de fix: add origonal instance path to allowed_symlinks.txt when copying via symlinks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-02 16:04:27 -07:00
Trial97
9ca74cd009
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-03 00:48:13 +03:00
Trial97
d50bd096a4
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into logdir 2023-06-03 00:44:53 +03:00
Alexandru Ionut Tripon
1840505a0f
Fix crash when selecting same mod from different providers (#1029) 2023-06-02 18:04:06 -03:00
seth
29e532c096
fix(nix): fix prismlauncher-qt5
Signed-off-by: seth <getchoo@tuta.io>
2023-06-02 11:53:09 -04:00
Sefa Eyeoglu
0f0cbd4c1f
refactor(nix): introduce unwrapped packages
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-06-02 12:41:18 +02:00
Sefa Eyeoglu
0ece0b5b27
Merge pull request #1086 from TayouVR/fix-qt6_5-brown-system-theme 2023-06-02 12:18:37 +02:00
Rachel Powers
74d4a98864 refactor: split out setting api headers for downloads
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-01 16:39:04 -07:00
Trial97
17691ab515
Made use of moveFile function
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-02 01:22:25 +03:00
Rachel Powers
f619a04fe7 refactor: rename app class
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-01 14:55:20 -07:00
Trial97
3a6657596b
Added migration for old logs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-01 23:48:48 +03:00
Rachel Powers
5627b4a9c5 refactor: rename updater files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-01 13:45:36 -07:00
Rachel Powers
6a4fb6a271 packaging: remove redundant "do you want to uninstall previous version"
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-06-01 12:40:08 -07:00
Rachel Powers
46a13c8767 packaging: fix typo ; in middle of line
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 20:16:58 -07:00
Rachel Powers
3bbe33132a packaging: convert msys paths
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 19:39:14 -07:00
Rachel Powers
b48540dc32 packaging: trim leading working dir from manifest paths
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 16:27:53 -07:00
Rachel Powers
4e0a08345d packaging: add manifest.txt to linux tarballs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 16:07:29 -07:00
Rachel Powers
9b1e0eb57d packaging: msys2 shell is bash
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 16:01:31 -07:00
Rachel Powers
4cbae0a751 packaging: trim manfest paths to be relative
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 15:36:25 -07:00
Rachel Powers
68c2833552 packaging: use powershell name
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 14:55:13 -07:00
Rachel Powers
dbe14c6be5 packaging: ensure all files are in manifest
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 14:54:06 -07:00
Rachel Powers
4593538fc8 fix: typo - space before comment
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 14:36:24 -07:00
Rachel Powers
7c85462ff3 packaging: include file manifest in portable install
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 14:31:38 -07:00
Rachel Powers
8db4a2a5b9 Merge branch 'packaging/windows-installer-uninstall-previous' into feat/windows-updater 2023-05-31 13:57:56 -07:00
Rachel Powers
2dce08caf1 fix: typo - space before comment
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 13:54:13 -07:00
Rachel Powers
f5729d9a7c Revert "fix: typo - no space before comment"
This reverts commit 0b2044e9a4.
2023-05-31 13:53:44 -07:00
Rachel Powers
0b2044e9a4 fix: typo - no space before comment
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 13:52:23 -07:00
Rachel Powers
03b66ba7a5 packaging: make windows nsis installer run the uninstaller for previous install before installing
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-31 13:25:14 -07:00
Trial97
6c082403c4
Fixed comments
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-31 20:23:23 +03:00
Trial97
29c3dc40ef
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into logdir 2023-05-31 20:12:12 +03:00
Rachel Powers
1c91d2f242 feat: paliminary updater
- can check for need to update
- can select a version to update to
- perform update: TODO

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-30 23:03:44 -07:00
Rachel Powers
5fe9e30f39 fix: use instance settings, make image column user resizeable, fix memory leak
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 14:53:15 -07:00
Rachel Powers
4eb9083ddc refactor: column names as class property, use string names in setting
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 13:00:08 -07:00
Rachel Powers
b28f682ad9 Merge branch 'develop' into feature/images-for-resource-page 2023-05-28 12:01:49 -07:00
Rachel Powers
eb079c8060
cleanup: msgbox msg editor
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 11:13:53 -07:00
Tayou
c0f9ccc5b5
Use slash_star comment style in .editorconfig
Signed-off-by: Tayou <31988415+TayouVR@users.noreply.github.com>
2023-05-28 19:57:08 +02:00
Trial97
51c39ec681
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop 2023-05-28 19:16:14 +03:00
Trial97
10436ed70c
Fixed code quality
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 19:15:41 +03:00
Trial97
775236a1b3
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 18:27:54 +03:00
Trial97
b9503ff15f
Added Q_DECLARE_METATYPE(ModPlatform::IndexedPack::Ptr)
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 18:27:02 +03:00
Trial97
b4dff181f7
Fixed Ptr logic
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 18:22:55 +03:00
Trial97
737fc1a2a4
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 18:01:39 +03:00
Trial97
bdff8591aa
Removed extra loop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 17:54:46 +03:00
Trial97
27c3775f99
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into Fix_Assert
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 17:44:23 +03:00
Trial97
bf0a577fb9
Fixed repaint issue
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-28 16:57:35 +03:00
flow
954d4d701a
Merge pull request #1034 from kerichdev/patch-1 2023-05-28 10:56:44 -03:00
flow
ce2d58bb7d
Merge pull request #1083 from Ryex/fix/memory-leaks-develop 2023-05-28 10:11:43 -03:00
Rachel Powers
7af116fb00 refactor: function scope statics
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 05:06:28 -07:00
Rachel Powers
0357921284 cleanup: move qstyle getInstance decl inline
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 04:37:09 -07:00
TheKodeToad
86974b046e
Clarify comment
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-28 11:48:09 +01:00
Rachel Powers
a04a6f1e0d fix(memory leak): don't give shared pointers out to foldermodels (causes cyclic refrence)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-28 02:15:39 -07:00
Rachel Powers
37420405c7 fix(memory leak): refactor NoBigComboStyle -> singleton
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-27 23:22:40 -07:00
seth
acf1946dac
chore(nix): update sources
Signed-off-by: seth <getchoo@tuta.io>
2023-05-27 19:25:58 -04:00
seth
a52574b026
chore(nix): add nil
Signed-off-by: seth <getchoo@tuta.io>
2023-05-27 19:25:49 -04:00
seth
5d14724e66
chore(deps): enable nix lockfile maintenance for renovate
Signed-off-by: seth <getchoo@tuta.io>
2023-05-27 19:17:44 -04:00
seth
d582bf7f1f
feat(nix): flake-utils -> flake-parts
Signed-off-by: seth <getchoo@tuta.io>
2023-05-27 19:14:50 -04:00
Trial97
7d79abb607
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into Fix_Assert 2023-05-27 23:06:55 +03:00
Rachel Powers
c81cb59b4b fix(memory leak): don't capture job and create cyclic refrence
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 21:21:10 -07:00
Rachel Powers
ff03dd22fe fix(memory leak): don't override default deconstructor + reset shared_ptr + ensure modal get's cleaned up
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 21:10:49 -07:00
Rachel Powers
aae892dfd1 fix(memory leak): IndexedPack too large to live inside a qlist without pointers ()
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 19:21:07 -07:00
Rachel Powers
2680dba0aa fix: use <= when compareing release types
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 17:16:50 -07:00
Rachel Powers
832a61f886 fix: make codeQl happy
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 16:34:30 -07:00
Rachel Powers
cf4df19986 feat: display release type
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 16:23:43 -07:00
Rachel Powers
c156034069 feat: add verion_type / release_type to IndexedVersion
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-26 13:50:22 -07:00
Sefa Eyeoglu
f24211e8b5
Merge pull request #1088 from DioEgizio/update-qt651
chore: update to Qt 6.5.1
2023-05-26 07:31:18 +02:00
Rachel Powers
e61d8e4dc8 fix: katabasis and QStyle leaks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-25 16:16:58 -07:00
flow
403279e926
Merge pull request #1087 from PrismLauncher/renovate/cachix-install-nix-action-21.x 2023-05-25 19:08:16 -03:00
DioEgizio
70983c7269 chore: update to Qt 6.5.1
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-05-25 16:38:24 +02:00
Rachel Powers
086a7e19f0 feat: Column on left, hideable
- columns are hideable (saves to settings)
- image column moved to left
- datamodals can provide resize modes

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-24 20:15:34 -07:00
renovate[bot]
42f9eccb17
chore(deps): update cachix/install-nix-action action to v21 2023-05-24 14:21:39 +00:00
Tayou
3c937532f2
fix System theme colors on windows
Signed-off-by: Tayou <tayou@gmx.net>
2023-05-24 15:18:08 +02:00
TheKodeToad
863027cbe8 Enable size grip
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-22 11:56:54 +01:00
Rachel Powers
6b8fe283f0 fix: memory leak, set parent so it's in tree to get cleaned up.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-21 01:49:13 -07:00
Rachel Powers
7983977156 feat: Qt 5.15 adds transfer timeouts. at least use it for downloads
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-21 01:48:34 -07:00
Rachel Powers
21cb459899 fix: memory leak NetJob wans't getting cleaned up. ensure lambda capture of job doens;t increase refcount or it will be cyclic
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-21 01:47:54 -07:00
Rachel Powers
1b3ff96ffd fix: memory leak with NetJob and responce not getting cleaned up
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-21 01:46:28 -07:00
Trial97
2f37cb31d9
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-05-20 13:36:05 +03:00
Trial97
e5534cd1f3
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into Fix_Assert 2023-05-20 13:35:47 +03:00
flow
42ceaa0015
Merge pull request #1080 from Scrumplex/update-social-links 2023-05-19 16:37:03 -03:00
Sefa Eyeoglu
90b330d4ba
chore: update social links
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-05-19 18:34:54 +02:00
leo78913
4f0ec908ec feat: add a close button to the main toolbar when running on gamescope
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-05-17 00:57:28 -03:00
Rachel Powers
bd1ea64d02
cleanup
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-16 00:01:52 -07:00
Rachel Powers
649753e97e cleanup: remove unneeded headers
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-15 16:40:56 -07:00
Rachel Powers
fc656b6927 fix: when given a remost resource, download and identify it before import.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-15 16:34:33 -07:00
Kode
3be18b58bb
Better variable name :p
Signed-off-by: Kode <TheKodeToad@proton.me>
2023-05-15 19:15:56 +01:00
TheKodeToad
22aaf56855 De-hardcode .index
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-15 18:48:49 +01:00
leo78913
7537ea1ef5 make instance settings account selector a comboBox
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-05-14 16:33:41 -03:00
Trial97
94cd831e8d
Made sure the metadata is valid when checking mod deps
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-14 22:13:53 +03:00
Keri
2078133493
fix: remove unnecessary keywords from desktop file
this messes with apps that use tag search like rofi

Signed-off-by: Keri <kerichuudev@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-05-14 14:38:19 +02:00
Trial97
ffcc58cb3e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-05-14 14:20:24 +03:00
Trial97
8c7fd3327e
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into Fix_Assert 2023-05-14 14:20:04 +03:00
Kode
f60562c5a2
Merge branch 'develop' into mrpack-export
Signed-off-by: Kode <TheKodeToad@proton.me>
2023-05-13 19:07:03 +01:00
TheKodeToad
18cfe219fe Hopefully This Works™
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-13 18:58:05 +01:00
TheKodeToad
129e959a3b Move setAbortable(true)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-13 18:28:51 +01:00
TheKodeToad
e1b6020b76 Make some changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-13 18:24:01 +01:00
Sefa Eyeoglu
d5c6a1b4d1
Merge pull request #1007 from Ryex/fix/network_and_signals 2023-05-13 19:06:47 +02:00
Redson
79ce7eb1fc
fix: shouldDisplay() is now redundant.
Signed-off-by: Redson <redson@riseup.net>
2023-05-13 09:00:10 -03:00
Rachel Powers
b1ffc8ddab refactor: normalize url fn & cleanup
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-12 16:37:45 -07:00
Kode
5b8d025440
ty!
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Kode <TheKodeToad@proton.me>
2023-05-12 14:43:55 +01:00
Rachel Powers
3e11d94829
spelling suggestions from code review
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-12 01:47:18 -07:00
Rachel Powers
6b6d6a01dc
Merge branch 'develop' into fix/network_and_signals
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-12 01:13:17 -07:00
Rachel Powers
82287e0407 Merge branch 'develop' into curseforge-url-handle 2023-05-12 01:00:26 -07:00
Sefa Eyeoglu
c5aff7cc1e
Merge pull request #961 from Ryex/better-tasks 2023-05-12 09:47:19 +02:00
Rachel Powers
b16829b0f9
Gib -> GiB
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-12 00:21:37 -07:00
Rachel Powers
f27716656c fix: remove qt < 5.6 support process error signal
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-11 16:32:00 -07:00
Redson
37a6ef95f0
feat: Don't hide the settings tab when an instance is running
Signed-off-by: Redson <redson@riseup.net>
2023-05-10 08:25:13 -03:00
Redson
475761b295
fix: Prism sets the data dir to the working directory.
Signed-off-by: Redson <redson@riseup.net>
2023-05-09 06:36:21 -03:00
Redson
0b251fa754
feat: Add the launcher root folder to the Folders menu
Signed-off-by: Redson <redson@riseup.net>
2023-05-08 19:57:30 -03:00
Rachel Powers
30cf73a22f typo fix
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-07 13:23:59 -07:00
Rachel Powers
884ac73078 Merge remote-tracking branch 'upstream/develop' into better-tasks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-07 13:21:21 -07:00
Trial97
ef6cbdfa2a
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-05-07 19:01:20 +03:00
Rachel Powers
718abaae0e doc fixes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-06 19:18:39 -07:00
Rachel Powers
62a402d05a refactor: move functions to utils + code-review fixes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-06 19:10:58 -07:00
Sefa Eyeoglu
ce5bb29c44
Merge pull request #1054 from Ryex/more-lax-block-mods-filename-check 2023-05-06 09:54:59 +02:00
Sefa Eyeoglu
d535f73a58
Merge pull request #950 from DioEgizio/resize-settings
fix: divide minecraftpage into tabs
2023-05-06 08:28:46 +02:00
DioEgizio
d38696f411
Update launcher/ui/pages/global/MinecraftPage.ui
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-05-06 07:15:14 +02:00
Rachel Powers
a3173b5371 fix: ensure Application accepts URLs and local files form cmd args
refactor: Move curseforge:// url scheme detection to Import Page
feat: pass along extra CF pack info so pack metadata is established.

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 15:05:17 -07:00
timoreo
54fb799d95 Fix command line args
Signed-off-by: timoreo <contact@timoreo.fr>
2023-05-05 15:05:17 -07:00
timoreo
565202c990 Added a protection against giving a mod url
Signed-off-by: timoreo <contact@timoreo.fr>
2023-05-05 15:05:17 -07:00
timoreo
63c21c53af Added url handler for curseforge
Signed-off-by: timoreo <contact@timoreo.fr>
2023-05-05 15:05:17 -07:00
Rachel Powers
d0b6f0124b change: don't search appdata locaiton for logging rules if using custom data dir
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 14:13:34 -07:00
Rachel Powers
b266068644
Apply suggestions from code review
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 14:07:10 -07:00
Rachel Powers
74e7c13a17 feat: display license and issue tracker
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 13:46:38 -07:00
Rachel Powers
3cfcc83ea9 change: don't toggle a resource's enabeling just by selecting it. only if they are on the checkbox.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 13:46:01 -07:00
Rachel Powers
ee94be624e use 32x32 images for image column
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 11:28:19 -07:00
Rachel Powers
2fe3dc5960 fix: fix qchar conversion and codeql
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-05 11:13:36 -07:00
Rachel Powers
fd7338d3f3 fix: grow pixmapcache if it is evicting too fast
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 23:47:27 -07:00
Rachel Powers
ed185f047f feat(resourcePackPage): icon column
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 23:46:00 -07:00
Rachel Powers
d384d991fa feat(texturepackPage): icon column
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 23:45:24 -07:00
Rachel Powers
9913080a82 feat(modpage): mod icon in description and column
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 23:44:28 -07:00
Rachel Powers
ec157b766e feat(mod parsing): load extra mod details
- (image, license, issuetracker)

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 23:42:42 -07:00
Trial97
469ef3e06d
Fixed code error
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-05 00:04:24 +03:00
Trial97
107b470289
Updated required_by as dependency
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-04 23:54:46 +03:00
Rachel Powers
e0635955df fix: super lax compare
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-04 13:30:39 -07:00
Trial97
8b14b946e2
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-04 22:35:16 +03:00
Trial97
f7b912fc9d
Fixed comments
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-04 22:25:05 +03:00
Trial97
9fbec3793f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop 2023-05-04 20:29:33 +03:00
Rachel Powers
5ec4cbf1cb fix add an addtion lax file name match with replaced with +
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-03 20:31:15 -07:00
Trial97
e4449a0ba3
Initialized variable
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-03 09:09:07 +03:00
Trial97
42dc3ed03f
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into Fix_Assert 2023-05-03 00:56:26 +03:00
Trial97
f6ed2036b3
Removed comment
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-03 00:55:18 +03:00
Trial97
f8bf71e152
Moved the selected resources to one list
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-05-03 00:49:54 +03:00
TheKodeToad
e0380960fd Change to use future
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-05-02 14:23:31 +01:00
Sefa Eyeoglu
64ba5e4ed1
Merge pull request #833 from Ryex/advanced_copy_instance 2023-05-02 12:11:41 +02:00
Rachel Powers
733619ca74 feat: estimate remining time on downloads
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
9f9c829bc5 fix: prevent logspam, fix MacOS theme artifacts
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
236764adf6 refactor: Qt can handle const& in signals and slots
While most Qt types cna use implicit data sharing
pasing our own structs means copies. const& ensure
it's only copied as needed by Qt.

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
a80b425551 fix: no need for const bool
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
d7032d975c fix: no need to loop all sub tasks
pathc by flowin

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
96decbac27 feat: default qtlogging.ini file
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
0fb6a2836b refactor: propogate only only one StepProgress at a time
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
fe36471b8d refactor: logging.h -> Logging.h
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
6b28af6cc5 fix: clean up license headers for Tasks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
6306fb564b feat: add UID to debug lines of upload tasks
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
cdccb25fe3 feat: add download size to download details alongside speed
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:48:00 -07:00
Rachel Powers
b6452215c1 feat: add details signal to Task
feat: add details to mod pack downloading
feat: add logging rule sloading form `ligging.ini at data path root
feat: add `launcher.task` `launcher.task.net` and `launcher.task.net.[down|up]load` logging categories
fix: add new subtask progress to the end of the lay out not the beginning (cuts down on flickering)

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:47:50 -07:00
Rachel Powers
f1028fa66d fix: properly map progress range
- doument PCRE used for URL compacting

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:47:31 -07:00
Rachel Powers
9d2f0e4dc8 feat: Propogated subtask progress
Oh boy this is big.

> TaskStepProgress struct is now QMetaObject compatabile and can be sent through signals
> Task now has a method to propogates sub task progress it must be signal bound by each task containing a task wishing to report progress of it's children.
> Downloads report speed
> Tasks now have UUIDS to track them
  - use when reporting
  - use when logging
  - use when storeing them or objects related to them

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:47:20 -07:00
Rachel Powers
f997529cd4 feat: better task tracking
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:45:34 -07:00
Rachel Powers
495103f72e fix: set x-xbl-contract-version header during xbox auth step
Refrencing GDlauncher and ATLauncher code for auth as well as https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/reference/live/rest/additional/httpstandardheaders
it is possible some of microsoft's server's are rejecting our request because of this missing header?

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01 10:43:31 -07:00
Rachel Powers
d80dee2a54 refactor: pass instance ptr to resource models. use it to find instance root.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-29 19:55:37 -07:00
Rachel Powers
788fa40c2a refactor: Move ini to use QSettings && drop get/setList functions
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-29 19:55:24 -07:00
Sefa Eyeoglu
ae75585b52
Merge pull request #1040 from Scrumplex/remove-modpacksch
Remove FTB modpack support
2023-04-29 08:04:53 +02:00
Sefa Eyeoglu
ff07714e8c
chore: remove FTB modpack support
We have been contacted by Feed the Beast to drop support for the FTB
modpack browser from Prism Launcher.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-04-28 11:35:20 +02:00
Sefa Eyeoglu
f54fc16718
Merge pull request #1025 from japa4551/lastLaunchTimeDate 2023-04-27 10:09:53 +02:00
Trial97
61a2355618
Removed formated but not used files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-27 01:41:26 +03:00
Trial97
248920a221
Removed extra code
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-27 01:33:46 +03:00
Japa
7298f9c273
Fixed typo
Signed-off-by: Japa <japa4551@protonmail.com>
2023-04-26 16:06:17 -03:00
Trial97
b2ecb9ac09
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop 2023-04-22 22:28:08 +03:00
Trial97
f738d7566e
Fixed code qulity
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-22 22:27:33 +03:00
Japa
672f5cf160
Update launcher/minecraft/MinecraftInstance.cpp
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Japa <japa4551@protonmail.com>
2023-04-21 19:46:33 -03:00
Trial97
1d167f8fda
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-22 01:32:33 +03:00
Trial97
460e83207f
Fixed removeIf for Qt version
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-22 01:18:27 +03:00
Trial97
75116364c6
Small Cleanup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-22 00:55:11 +03:00
Trial97
f7931c2ee2
Better version handling
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-22 00:47:51 +03:00
Kode
dfc2b9c76a
thanks flowln! :P
Signed-off-by: Kode <TheKodeToad@proton.me>
2023-04-21 20:49:47 +01:00
Trial97
22bbf1bd1f
Merge branch 'Fix_Assert' of github.com:Trial97/PrismLauncher into develop
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 21:11:09 +03:00
Trial97
10aac4fe17
Fixed assert
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 21:03:01 +03:00
Trial97
42bc91463e
Updated links
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 20:37:17 +03:00
Trial97
b4fa6e120a
Fixed tipo
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Trial97
2c744da9f7
More cleanup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Trial97
ffaa47bf54
Small cleanup
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Trial97
63c4469475
Merge branch 'develop' of github.com:Trial97/PrismLauncher into develop 2023-04-21 18:42:06 +03:00
Trial97
c1490cd627
Refator task to work with multiple providers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Alexandru Ionut Tripon
1a390b6043
Merge branch 'PrismLauncher:develop' into develop 2023-04-21 18:42:06 +03:00
Trial97
fac33498db
Made some copy by reference
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Trial97
31e84780a8
Hope to fix windows build errors
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:06 +03:00
Trial97
f3f8f3574a
Small headers removal
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Trial97
7bd26ce468
Semi fixed the Modrinth dependency implementation
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Trial97
bcea19b957
Tried to fix codeQL
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Trial97
5079ce8d64
Fixed headers
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Alexandru Ionut Tripon
f231a33f6e
Merge branch 'PrismLauncher:develop' into develop 2023-04-21 18:42:05 +03:00
Trial97
4fe497cd68
First working version with curseforge mods
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Trial97
5655a33515
Added Dependency API
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-21 18:42:05 +03:00
Japa
92cda68480
Update launcher/minecraft/MinecraftInstance.cpp
Co-authored-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: Japa <japa4551@protonmail.com>
2023-04-21 11:18:17 -03:00
Japa
f41426f394
Instance Description displays the last launch date
Initial Draft using the Standard C++ Library, still requires testing.

Signed-off-by: Japa <japa4551@protonmail.com>
2023-04-21 00:30:38 -03:00
Tayou
87db723008
add global .editorconfig for doxygen comment style
Signed-off-by: Tayou <tayou@gmx.net>
2023-04-18 20:25:45 +02:00
DioEgizio
8dc3267925
Merge pull request #994 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x 2023-04-18 18:54:11 +02:00
TheKodeToad
709736d3f9 Make response const
I don't think the segfault fix was ideal :P
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-18 09:28:10 +01:00
Rachel Powers
12f0d51c0c Fix: signal/slot macro -> func pointer & network fixes
- convert qt connect calls to use function pointers instead of the signal/slot macros wherever practical (UI classes were mostly left alone, target was tasks and processes)
- give signals an explicit receivers to use the static method over the instance method wherever practical
- ensure networks tasks are using the `errorOccured` signal added in Qt5.15 over the deprecated `error` signal
- ensure all networks tasks have an sslErrors signal connected
- add seemingly missing `MinecraftAccount::authSucceeded` connection for `MSAInteractive` login flow

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-17 18:23:18 -07:00
TheKodeToad
2e9403a324 This was moved
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-17 13:19:59 +01:00
TheKodeToad
ba17efa381 Smol fixes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-17 13:18:25 +01:00
TheKodeToad
b8e0c8ebc6 Boring changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-17 10:16:03 +01:00
Sefa Eyeoglu
1b05303250
Merge pull request #946 from Ryex/subfolder-watch 2023-04-14 17:10:25 +02:00
renovate[bot]
51095c5a27
chore(deps): update hendrikmuhs/ccache-action action to v1.2.9 2023-04-14 06:31:06 +00:00
Rachel Powers
a02f67ed0e refactor: rename watch_subdirectories -> watch_recurisve (prevent confusion of behavior)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-12 11:30:02 -07:00
Trial97
11f8d25d94
Added missing character
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-12 00:49:50 +03:00
Trial97
4fbd5abe41
Added task to load dependencies
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-12 00:45:44 +03:00
Trial97
d524935b67
Added task to load local mod information
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-11 20:55:10 +03:00
Trial97
6d5c629b43
Added dependencies to the APIs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-04-10 00:04:35 +03:00
Kode
3a7961834a
Remove seek
Don't need it if the data is already in a byte array.

Signed-off-by: Kode <TheKodeToad@proton.me>
2023-04-09 21:28:40 +01:00
DioEgizio
95842ee25f
Merge pull request #983 from DioEgizio/update-qt650-win 2023-04-08 22:14:26 +02:00
DioEgizio
371c839573 chore: update Qt to 6.5.0 on Windows
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-04-08 19:38:46 +02:00
DioEgizio
1b8b044b52
Merge pull request #982 from Scrumplex/fix-theming-style 2023-04-08 19:26:43 +02:00
Sefa Eyeoglu
a988111507
fix: do not apply system theme on launch
Closes PrismLauncher/PrismLauncher#490

Regression introduced by PrismLauncher/PrismLauncher#249

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-04-08 18:48:05 +02:00
Rachel Powers
c56db0408b fix: load setting state with page. don't translate "..."
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-08 07:26:56 -07:00
Rachel Powers
2321d9c065 fix: canonical*File*Path()
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-07 18:36:35 -07:00
flow
ed085630db
Merge pull request #968 from Scrumplex/nix/sync-2023-04-02 2023-04-07 06:51:14 -07:00
flow
74d5c7c1a4
Merge pull request #972 from DioEgizio/update-qt650 2023-04-07 06:50:02 -07:00
TheKodeToad
813ccc1381 How did i-
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-07 11:03:11 +01:00
TheKodeToad
b65f4c9536 Better collectFileListRecursively error
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-06 19:59:24 +01:00
TheKodeToad
012d8bb468 Revert concurrent syntax
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-06 19:58:09 +01:00
TheKodeToad
d7a137ad13 Remove more prototype not good code
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-06 19:24:19 +01:00
TheKodeToad
073aaf9b3b Remove "prototype" field
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-06 19:19:41 +01:00
TheKodeToad
871d647c93 Use local metadata
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-04-06 19:18:36 +01:00
Rachel Powers
0ce3049579 fix: sysinfo libs needed too
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 18:48:28 -07:00
Rachel Powers
de20258aa7 fix: filelink needs network for local socket
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 18:30:28 -07:00
Rachel Powers
41c5e523b2 fix: add back QT::Widgets link
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 18:09:01 -07:00
Rachel Powers
197be9cfd0 fix: remove fixed datastream version
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 18:00:56 -07:00
Rachel Powers
5b50b806ec refactor: remove data duplication in statis FS Names
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 17:14:06 -07:00
Rachel Powers
62c59820cf fix: harden watchPath. NO DUPLICATES! >:(
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-03 15:26:26 -07:00
DioEgizio
0cf1fc72a3 chore: update to qt 6.5.0 on macos
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-04-03 18:01:23 +02:00
Rachel Powers
5ce7874280 fix: no loops in watch paths! >:(
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-02 18:55:21 -07:00
Rachel Powers
ba2b5c3a65
fix: Apply suggestions from code review
-expand columspan on new UI element
-improve tooltip

Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-04-02 16:39:13 -07:00
Sefa Eyeoglu
0a9081cb87
Merge pull request #965 from getchoo/update-manoghud-detection 2023-04-02 17:55:19 +02:00
flow
eea1e3b800
Merge pull request #967 from PrismLauncher/renovate/flatpak-flatpak-github-actions-6.x 2023-04-02 08:03:02 -07:00
Sefa Eyeoglu
70364884a9
feat(nix): add support for GameMode
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-04-02 11:35:35 +02:00
Sefa Eyeoglu
ea7f03770c
refactor(nix): use qtWrapperArgs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-04-02 11:33:04 +02:00
txtsd
bc1a7d2890
Merge pull request #966 from getchoo/use-ninja
use ninja in nix builds
2023-04-02 14:06:35 +05:30
renovate[bot]
732bc53692
chore(deps): update flatpak/flatpak-github-actions action to v6 2023-04-02 03:14:42 +00:00
seth
4055e34320
chore: use system architecture to detect vulkan layers
Signed-off-by: seth <getchoo@tuta.io>
2023-04-01 13:09:09 -04:00
seth
81b1406290
feat(nix): use ninja for builds
Signed-off-by: seth <getchoo@tuta.io>
2023-04-01 13:06:53 -04:00
Rachel Powers
538092b727 fix: typos, CamelCase to camelCase the new names
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-31 20:31:27 -07:00
Rachel Powers
4df4b43900
fix: Apply suggestions from code review (string changes)
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-31 18:25:29 -07:00
seth
3e3b92d4c1
chore: improve detection of newer vulkan layers
i've been scrump'd

Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: seth <getchoo@tuta.io>
2023-03-31 20:09:26 +00:00
seth
c7dc115365
fix: search for newer mangohud vulkan layers
Signed-off-by: seth <getchoo@tuta.io>
2023-03-31 15:49:09 -04:00
TheKodeToad
e42050cc8a Skip lookup if no files and fail if zipping fails
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-28 14:22:28 +01:00
Rachel Powers
df17f5e899 fix: use QDir::Filter::NoDotAndDotDot
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-27 19:11:26 -07:00
Rachel Powers
a0045ece07 feat: add setting to watch recursively
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-27 19:01:53 -07:00
DioEgizio
4c013e59f0 divide minecraftpage into tabs
this way small screen users can use the launcher settings without having window a bigger than their actual screens
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-03-25 13:12:50 +01:00
Sefa Eyeoglu
09d607f39c
Merge pull request #945 from Scrumplex/fix-logging-newlines 2023-03-25 10:37:02 +01:00
Sefa Eyeoglu
9418c62d95
refactor: reprocess log lines per instance
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-22 10:32:17 +01:00
Rachel Powers
ef50e5595e fix: don't try to watch the entier filesystem by watching parent links
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-21 12:17:01 -07:00
Rachel Powers
02bf086c09 feat: watch sub directories for mods
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-21 11:07:20 -07:00
Sefa Eyeoglu
77932061bc
chore: update ignores for Nix
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-21 18:33:41 +01:00
Sefa Eyeoglu
44bf32e729
fix: handle partial lines in LoggedProcess
Fixes PrismLauncher/PrismLauncher#930

Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-21 18:30:46 +01:00
Rachel Powers
0c986ba4d0 spelling and formatting
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 16:38:40 -07:00
Rachel Powers
a28193430c fix: adjust geometry and add missing tooltip
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
0bec0046bb format: clang-format to fix windows fallout
it looked fine over in vscod on windows but
as soon as I opened it on linux via Helix
the chaos was clear

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
a96519cbdc workflow: add filelink.exe to SignTool call
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
458c2f38bc cleanup: code review sugestions
clean up translation strings

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
dc5402349e refactor: use UUID toString mode
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
ae289c923c fix: clean up initial review comments (flowin)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
e0ef86340f feat: connect new help button help-pages/instance-copy
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:33 -07:00
Rachel Powers
1ca2c59f2e feat: track instance copies that use links
confirm deleations when other instances link to it

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
3ec92acfe7 fix: use noexcept overload of std::filesystem::hard_link_count
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
656bfd36f6 fix: ensure filelink.exe is included in setup.exe
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
562ae676a5 fix: mingw still missing typedefs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
72292f4e03 fix: windows compile broke
move winapi defs into #ifndef blocks don't check explicitly for __mingw__ define
function name win_ioctl_clone didn't get updated in teh last commit

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
536da704fc refactor: cleanupFilesystem.cpp
* remove now redundant reflink/clone code for windows
* remove unnessacery debug code that could slow things down

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
a0e03c41c0 fix: typos
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
a1053a4c5a feat: warnings when instance resources are linked
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
9f441a9678 feat: Add UAC icon when symlinking on windows.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
7870cf28e5 fix: add missing mingw defs
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
9939367db7 feat(reflink): ioctl_clone for winbtrfs & ReFS
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
1210c3256d fix: macos compat after refactor of clonefile
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
2e8d04aad0 feat: support reflink on windows via winbtrfs!
https://github.com/maharmstone/btrfs

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
3a0e4546c2 fix: windows test compat
fix: compiler warning on int qint32 compare

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
cd2419137d fix: better test compareison (also qt5 compat)
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
34ac8b3ec3 fix: Qt < 5.14.0 compat
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
2837236d81 fix: intelegent recursive links & symlink follow on export
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
bc8336a4b1 fix: cleanup UI, detect FAT and turn off links
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
397e7f0363 feat(reflink): hook up relink / clone on the copy dialog
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
c5bbe42b57 feat: reflink / Clone support!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
c9105e525e fix: follow symlinks when exporting
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
1bed7754e0 feat(symlinks): make recursive links explicit
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
5978882378 feat(symlinks&hardlinks): linkup copy dialog
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
8ba51c7900 refactor: make complete list of links to make and send that.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
6d160a7b7e feat: successful process elevation and comunication!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
32409a361b fix CMakeLits.txt for non MSVC windows builds
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
2ceefea5f3 qt5 compatability
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
485f156e57 working outside windows
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:32 -07:00
Rachel Powers
f794e49bb6 we want to make links!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-03-20 14:56:27 -07:00
TheKodeToad
46f448dfba Improve invokeMethod syntax
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-19 21:26:25 +00:00
TheKodeToad
710156b9f1 Replace native file separator - this was accidentally brought to my attention on Modrinth's guild
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-19 21:25:12 +00:00
txtsd
6dcf34acdc
Merge pull request #937 from DioEgizio/update-qt6 2023-03-19 22:17:26 +05:30
DioEgizio
d2f674e08f chore: update qt6 to 6.4.3 on windows and macos
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-03-19 17:11:16 +01:00
TheKodeToad
ec8cb056bf QRegExp -> QRegularExpression :P
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-19 11:49:24 +00:00
TheKodeToad
1893871a99
Merge branch 'PrismLauncher:develop' into mrpack-export 2023-03-18 14:02:05 +00:00
TheKodeToad
8837f06e4e Only add summary if not empty
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-18 14:01:41 +00:00
TheKodeToad
5346dfc782 Use first line of notes for summary
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-18 12:57:44 +00:00
TheKodeToad
ddca838e46 Info and error dialogs
TODO: is there a better approach?

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-18 12:24:18 +00:00
Sefa Eyeoglu
45b0367d14
Merge pull request #931 from Janrupf/feature/custom-downloads-dir 2023-03-14 13:53:51 +01:00
Sefa Eyeoglu
dce86edff0
Merge pull request #934 from heftymouse/develop 2023-03-14 13:52:44 +01:00
Sefa Eyeoglu
84e91ec3b5
Merge pull request #888 from Scrumplex/nix-stuff 2023-03-14 13:52:31 +01:00
Sefa Eyeoglu
05b6969ee5
fix: add mnemonic to downloads directory setting
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 13:35:16 +01:00
TheKodeToad
3390e84a9f
Merge branch 'PrismLauncher:develop' into skinfix 2023-03-14 12:07:05 +00:00
Nikhil B
af949f5cdd Add visual studio files to gitignore
Signed-off-by: Nikhil B <59918974+heftymouse@users.noreply.github.com>
2023-03-14 16:52:06 +05:30
Sefa Eyeoglu
7707af08e3
chore(nix): update sources
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 11:19:23 +01:00
Sefa Eyeoglu
5db4fabcad
chore(nix): add deadnix
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:59:43 +01:00
Sefa Eyeoglu
cfca82ceb3
chore(nix)!: use overlays.default
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:58:41 +01:00
Sefa Eyeoglu
a1130dace0
chore: format markdown files
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:54:50 +01:00
Sefa Eyeoglu
95a0bd61a9
feat(nix): add pre-commit-hooks.nix
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:53:51 +01:00
Sefa Eyeoglu
b324778be7
feat(nix): add devShell
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:51:47 +01:00
Sefa Eyeoglu
950f921c09
refactor(nix): use flake-utils
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:50:07 +01:00
Sefa Eyeoglu
9dff1bac83
chore(nix): format code using alejandra
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-14 10:48:19 +01:00
Janrupf
c17f6e37e5 feat: Add setting for downloads directory
Closes #641

Signed-off-by: Janrupf <business.janrupf@gmail.com>
2023-03-13 21:58:22 +01:00
Sefa Eyeoglu
e0e26a37b5
Merge pull request #927 from kthchew/fix/mingw-build 2023-03-13 21:24:48 +01:00
Sefa Eyeoglu
15a0c03664
Merge pull request #928 from PrismLauncher/renovate/actions-cache-3.x
chore(deps): update actions/cache action to v3.3.1
2023-03-13 18:14:35 +01:00
txtsd
7642e75b28
Merge pull request #929 from Scrumplex/drop-snap 2023-03-13 22:37:16 +05:30
Sefa Eyeoglu
4b36d1e3ea
chore: drop Snap packaging
We do not have a lot of expertise dealing with Snap and as it is
currently breaking our CI, it might be good to drop support for it.

This does not mean that it won't come back in the future, but as it
stands, it was effectively unmaintained and was only used for nightly
builds anyway.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-13 15:33:23 +01:00
renovate[bot]
20525bec29
chore(deps): update actions/cache action to v3.3.1 2023-03-13 10:50:27 +00:00
Kenneth Chew
430369feb8
fix: explicit conversion to C string to fix MinGW g++ 10 build
Signed-off-by: Kenneth Chew <kenneth.c0@protonmail.com>
2023-03-12 18:33:48 -04:00
Kenneth Chew
5ac3e5c958
Update tomlplusplus library
Fix build on MinGW g++ 10

Signed-off-by: Kenneth Chew <kenneth.c0@protonmail.com>
2023-03-12 18:33:48 -04:00
TheKodeToad
2e1c123c05
Merge branch 'PrismLauncher:develop' into skinfix 2023-03-10 11:17:06 +00:00
TheKodeToad
83c5264598 Stupidly small skinfixfix as requested by DioEgizio
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-10 11:04:15 +00:00
txtsd
abc2a529fb
Merge pull request #919 from PrismLauncher/renovate/actions-cache-3.x 2023-03-09 20:54:31 +05:30
renovate[bot]
c638fd9056
chore(deps): update actions/cache action to v3.3.0 2023-03-09 14:41:24 +00:00
Sefa Eyeoglu
1dd96898e1
Merge pull request #896 from TheKodeToad/modrinth-token 2023-03-09 15:10:40 +01:00
TheKodeToad
2cc9b0df06 Only select some paths by default - again!
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-08 18:10:52 +00:00
txtsd
3bd4ad7c93
Merge pull request #918 from Scrumplex/qt6-default 2023-03-08 21:18:53 +05:30
Sefa Eyeoglu
a8ffdeca2b
chore!: switch to Qt 6 by default
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-08 11:22:30 +01:00
TheKodeToad
59b15c5f08
Fix another duplicate name 🤦
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-07 21:03:09 +00:00
TheKodeToad
59cf8f678f
(hopefully) Fix duplicates names
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-07 20:50:19 +00:00
TheKodeToad
088be050b2
Apply flowln's suggestion :)
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-07 20:46:27 +00:00
TheKodeToad
5d5fcae501 Further reduce buggy behaviour
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-06 17:24:04 +00:00
TheKodeToad
970ec8187c More refactoring
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-05 18:25:57 +00:00
TheKodeToad
76f66148db Apply flowln's suggestion
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-05 18:21:24 +00:00
Sefa Eyeoglu
6bdd6ce571
Merge pull request #912 from Scrumplex/bump-ghc-filesystem
Bump ghc-filesystem
2023-03-05 17:25:38 +01:00
Sefa Eyeoglu
dd96e1819d
fix: remove unneeded alias for ghc_filesystem
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-05 14:24:40 +01:00
Sefa Eyeoglu
07702d3be7
fix: drop unneeded GHC_FILESYSTEM_WITH_INSTALL
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-05 14:23:40 +01:00
Sefa Eyeoglu
b9dfcf6d2f
chore: bump ghc-filesystem
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-05 14:21:07 +01:00
Sefa Eyeoglu
f3f0652d2b
Merge pull request #853 from kumquat-ir/nil
NilLoader mod metadata support
2023-03-05 13:39:00 +01:00
Sefa Eyeoglu
aae60334d1
Merge pull request #911 from flowln/fix_zip_extract_windows 2023-03-05 13:09:25 +01:00
Sefa Eyeoglu
b38af948b9
Merge pull request #857 from Ryex/fix_windows_default_apps 2023-03-05 13:09:11 +01:00
flow
06de728aa7 fix: use toLocalFile() instead of path()
QUrl::path() adds a '/' at the beginning of the path on Windows, causing
the world to explode every once in a while.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-03-05 08:24:56 -03:00
TheKodeToad
87384182a1 Fix abort?
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-04 11:07:07 +00:00
TheKodeToad
f583e617ec Implement abort (possible broken?) and therefore make it work without crashing!
The shared pointer was going out of scope 🤦.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-04 10:37:56 +00:00
TheKodeToad
a2716f5cf6 Improve code
Even more broken now (it is stuck loading forever)!

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-04 10:24:25 +00:00
TheKodeToad
55f928f845 More consistent naming
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-03 15:06:29 +00:00
TheKodeToad
2343aad088 Make it work! (TODO make it not crash)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-03 15:00:07 +00:00
TheKodeToad
dcaa907fed Mod loader support
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-03 11:25:11 +00:00
TheKodeToad
adcdf28d64 Move task to another thread
I don't know whether this is the prefered method.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-03 11:24:36 +00:00
TheKodeToad
f28a7b9d08 Add PackIgnoreProxy.h to cmake
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 19:50:42 +00:00
TheKodeToad
6505b0c065 Move logic to task
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 19:48:41 +00:00
TheKodeToad
88ef02474f Minify index JSON
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 17:36:44 +00:00
TheKodeToad
9ec32b2561 Fix QuaZipFile usage
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 17:36:28 +00:00
TheKodeToad
a5dd6b6cd7 Export without file urls
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 16:41:09 +00:00
TheKodeToad
46cc325f7c Add file tree
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 11:25:36 +00:00
TheKodeToad
0fadb5a2be Add *basic* interaction
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 10:31:53 +00:00
TheKodeToad
8b897ac714 Fix menu being set as central widget
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 10:31:53 +00:00
TheKodeToad
a80b820e94 UI for mrpack export (broken)
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 10:31:53 +00:00
TheKodeToad
4efbf22089 Prism-ify more license headers
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 10:19:42 +00:00
TheKodeToad
5c913149c8
Merge branch 'PrismLauncher:develop' into modrinth-token 2023-03-02 10:10:46 +00:00
Sefa Eyeoglu
9265c319a9
Merge pull request #788 from flowln/other_resource_downloaders_two
Add resource pack, texture pack and shader pack downloaders
2023-03-02 10:08:45 +00:00
TheKodeToad
cbe6eff2fa Move Modrinth before CurseForge for consistency
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 09:28:14 +00:00
TheKodeToad
1f3d18ec12 Replace with exact match and add TODO to improve
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-02 09:26:00 +00:00
Sefa Eyeoglu
89255e34bd
fix: change wording of TP/RP download buttons
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-02 09:42:28 +01:00
TheKodeToad
a7b8092296 Add link
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-01 14:41:16 +00:00
TheKodeToad
1feb630520 Allow custom Modrinth API token
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-03-01 14:24:56 +00:00
flow
9f202caf93
Merge pull request #895 from Scrumplex/fix-component-creation
Use makeShared for importing components
2023-03-01 12:08:46 +00:00
Sefa Eyeoglu
651e511ff0
fix: use makeShared for importing components
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-03-01 12:33:00 +01:00
Sefa Eyeoglu
b46aca52ee
Merge pull request #894 from PrismLauncher/renovate/cachix-install-nix-action-20.x
chore(deps): update cachix/install-nix-action action to v20
2023-03-01 11:22:59 +00:00
Sefa Eyeoglu
0eae9355e6
Merge pull request #889 from flowln/fix_zip_extract 2023-03-01 09:51:08 +01:00
Sefa Eyeoglu
4878f1a438
Merge pull request #735 from Scrumplex/import-component 2023-03-01 09:49:47 +01:00
renovate[bot]
f986b4cd56
chore(deps): update cachix/install-nix-action action to v20 2023-03-01 07:20:11 +00:00
flow
d5c6704475
fix: prevent crash when aborting import task while extracting pack
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-24 20:34:43 -03:00
flow
fda9ca1e34
fix+refactor: fix fail to import modpacks and clean up a bit
QDir::cleanPath called by FS::PathCombine removes the trailing '/'...

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-24 20:09:02 -03:00
kumquat-ir
01c4ed232e license stuff
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-24 15:01:59 -05:00
kumquat-ir
dc8109658c review fixes
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-22 13:20:13 -05:00
Sefa Eyeoglu
8ce8055aeb
Merge pull request #846 from PrismLauncher/renovate/vedantmgoyal2009-winget-releaser-2.x 2023-02-22 16:19:11 +01:00
flow
a71b743ee3
Merge pull request #881 from PrismLauncher/renovate/actions-cache-3.x 2023-02-22 07:07:55 -08:00
renovate[bot]
c50e9ac418
chore(deps): update actions/cache action to v3.2.6 2023-02-21 12:33:23 +00:00
kumquat-ir
7973b01e81 fix metadata for mods with .nilmod extension
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-19 17:21:53 -05:00
TheKodeToad
6a5e9a59df Fix screwed up ui file
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-02-19 12:00:59 +00:00
TheKodeToad
bb62c62a03 Fix cmark again 🤦
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-02-19 11:37:59 +00:00
TheKodeToad
9cc3d9d4ce Merge remote-tracking branch 'upstream/develop' into skinfix
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-02-19 11:35:26 +00:00
Sefa Eyeoglu
b977ac6df5
Merge pull request #865 from Scrumplex/codesign-windows 2023-02-17 17:56:55 +01:00
kumquat-ir
256fc322a8 minor cleanup
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-16 12:57:35 -05:00
Sefa Eyeoglu
33bf85a387
fix(actions): don't fail if code signing certificate is missing
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-16 16:41:40 +01:00
Sefa Eyeoglu
1f0fc61b53
Merge pull request from GHSA-gq28-qx55-mh2r
Don't extract files outside of target path
2023-02-15 21:48:06 +01:00
Sefa Eyeoglu
89c945ecc8
feat(ci): add Windows codesigning
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-15 20:43:33 +01:00
Sefa Eyeoglu
c15962c6c1
Merge pull request #859 from Ryex/fix-KISS-Linux-build
Add missing header to Application.cpp: Fix build failure on KISS Linux
2023-02-13 08:37:39 +01:00
kumquat-ir
9c2a3231c5 do not create nilmods folder
"it cant be that easy" - me, clueless

Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-13 01:45:23 -05:00
Rachel Powers
80840f1fdb fix: add missing header to Application.cpp
fails to compile on KISS Linux without

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 22:32:34 -07:00
Rachel Powers
7d02e1f866 feat: make shell association an optional section
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:34:37 -07:00
Rachel Powers
d93cb751b0 fix: oversight caused prism to be .zip windows default
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 16:23:33 -07:00
kumquat-ir
c07fff7503 switch to qdcss for parsing
make it not horrible to look at

Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-12 17:23:15 -05:00
kumquat-ir
7896dd19c1 nilmods instance page
mostly copied from the coremod page impl

Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-11 17:46:17 -05:00
kumquat-ir
f5f2d33f93 parse nil metadata
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
2023-02-11 17:46:17 -05:00
renovate[bot]
4331eaae2e
chore(deps): update vedantmgoyal2009/winget-releaser action to v2 2023-02-11 15:48:00 +00:00
DioEgizio
d5d4f87236
Merge pull request #831 from PrismLauncher/renovate/cachix-install-nix-action-19.x 2023-02-11 16:47:30 +01:00
DioEgizio
5d49433326
Merge pull request #841 from RaptaG/patch-1 2023-02-11 08:45:42 +01:00
RaptaG
381d7413c8
Link license in the shield badge
So that no trash URL shows when hovering!

Signed-off-by: RaptaG <77157639+RaptaG@users.noreply.github.com>
2023-02-10 19:47:08 +02:00
Sefa Eyeoglu
e70a5a47ee
fix: ignore absolute paths when extracting
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-10 10:46:21 +01:00
Sefa Eyeoglu
6be7eed878
fix: don't extract files outside of target path
This should fix a security issue regarding path traversal in zip files.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-10 09:17:48 +01:00
Sefa Eyeoglu
a6ac832f8f
Merge pull request #839 from PrismLauncher/renovate/actions-cache-3.x
chore(deps): update actions/cache action to v3.2.5
2023-02-10 08:27:00 +01:00
renovate[bot]
104863846b
chore(deps): update actions/cache action to v3.2.5 2023-02-10 06:24:45 +00:00
Sefa Eyeoglu
5883c30b84
Merge pull request #834 from pandaninjas/patch-2 2023-02-09 09:29:13 +01:00
flow
cebaae76b4
Merge pull request #832 from ktheticdev/develop
Fix README COPR typo
2023-02-08 14:32:16 -08:00
PandaNinjas
d886d32bd8
Replace potentially ReDOSable regex
Signed-off-by: PandaNinjas <admin@malwarefight.gq>
2023-02-07 17:21:00 +00:00
ktheticdev
8440c2819b
Fix README.md typo
Signed-off-by: ktheticdev <64607352+ktheticdev@users.noreply.github.com>
2023-02-07 11:10:43 +04:00
renovate[bot]
8114d8778f
chore(deps): update cachix/install-nix-action action to v19 2023-02-06 15:31:42 +00:00
DioEgizio
f36c3a3f6c
Merge pull request #819 from Scrumplex/fix-launch-script 2023-02-06 16:26:54 +01:00
flow
46c6cc2d2b
chore: add my copyright headers
.-.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-05 17:02:56 -03:00
flow
ada5e88eb9
feat(RD): add texture pack downloader
This extends the resource pack downloader, with the custom behavior of
filtering the versions that shows up, to those <= 1.6. As always, Flame
is funky and requires a bit more workarounds than average.

This will also get a nice improvement when the Version parsing and
comparison PR gets merged! :D

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-05 17:02:56 -03:00
flow
b724607e31
feat(RD): add shader pack downloader
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-05 17:02:56 -03:00
flow
c3ea303a37
feat(RD): add resource pack downloader
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-05 17:02:52 -03:00
Sefa Eyeoglu
e89a10945c
Merge pull request #823 from BalkanMadman/linux-java
Fix https://github.com/PrismLauncher/PrismLauncher/issues/790
2023-02-05 19:09:48 +01:00
Sefa Eyeoglu
8ddc89fa01
Merge pull request #825 from Ryex/cmd_env_native_sep
fix https://github.com/PrismLauncher/PrismLauncher/issues/824
2023-02-05 18:42:19 +01:00
Sefa Eyeoglu
a47bf72b07
Merge pull request #751 from Edgars-Cirulis/develop 2023-02-05 17:48:26 +01:00
Rachel Powers
34460dd77a ensure command env vars use native path seperators
fix #824

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-04 12:28:52 -07:00
BalkanMadman
c125c96e88 Java installations detection fix for Linux
Signed-off-by: BalkanMadman <zurabid2016@gmail.com>
2023-02-04 16:48:06 +02:00
Sefa Eyeoglu
d2fd0fd8e8
Merge pull request #802 from KosmX/develop 2023-02-04 14:43:28 +01:00
flow
74a875bdce
Merge pull request #803 from TheLastRar/msys2-ccache 2023-02-04 05:37:23 -08:00
Sefa Eyeoglu
edaa66f622
fix: use /usr/bin/env bash in launch script
This should make it possible to run these scripts on any system, as
/bin/bash is not standard! Notably this fixes the script on NixOS.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-04 01:06:16 +01:00
Sefa Eyeoglu
c392db7e0d
Merge pull request #815 from Scrumplex/fix-funny 2023-02-03 18:44:07 +01:00
Sefa Eyeoglu
6ac073e779
fix: fix component uid regex
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-02-03 18:32:57 +01:00
flow
58d9ceda4b
Merge pull request #804 from flowln/improve_big_concurrent_task_test 2023-02-02 13:47:51 -08:00
flow
3781c64d41
Merge pull request #810 from flowln/error_on_bad_file_paths_as_we_should_catquake 2023-02-02 13:47:36 -08:00
flow
4166d9ab7b
fix: give error when components have bad uids
This allows other code to reject proceeding when the UID is bad, which
is generally a good idea. :p

Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-02 17:11:24 -03:00
flow
435273e08a
fix(Inst.Import): don't allow bad file path in mrpack import
This checks the URL of the path of the file to be downloaded,
ensuring that it always contains the root .minecraft target folder,
following the warning in the mrpack documentation.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-02 17:11:24 -03:00
KosmX
35a62d9787
commit requested change, make the lock static
Signed-off-by: KosmX <kosmx.mc@gmail.com>
2023-02-01 23:31:12 +01:00
TheLastRar
75683039c5 CI: Always update windows ccache
Also change name to avoid pulling the stale cache

Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-02-01 20:13:26 +00:00
TheLastRar
1a609612f2 CI: Move mingw restore cache before setup ccache
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-02-01 20:13:26 +00:00
TheLastRar
121a7a9e23 CI: Log ccache stats for msys2
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-02-01 20:13:26 +00:00
flow
e593faf245
fix(tests): improve the reliability of the Task's stack test
This actually takes into account the amount of stuff put into the stack
in each iteration, and thus avoids having to change the stack size of
the thread, and using ad-hoc values for the other stuff. It also reduces
the time the test takes to run.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-01 16:58:33 -03:00
KosmX
ec5bb944b2
thread-safe logger
Signed-off-by: KosmX <kosmx.mc@gmail.com>
2023-02-01 14:59:11 +01:00
flow
deed49574a
Merge pull request #798 from PrismLauncher/renovate/actions-cache-3.x 2023-01-30 07:02:51 -08:00
renovate[bot]
7cc39cd357
chore(deps): update actions/cache action to v3.2.4 2023-01-30 13:29:47 +00:00
flow
a714d5966e
Merge pull request #795 from leo78913/mainwindow-fixes
closes https://github.com/PrismLauncher/PrismLauncher/issues/792
2023-01-29 10:35:26 -08:00
leo78913
2b0252d4ae Fix: fix some regressions in the main window
this removes the update action from the help button
and fixes the add to path action not showing on macos

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-28 15:09:26 -03:00
flow
c78db5459e
Merge pull request #724 from leo78913/dot-ui-mainwindow
Closes https://github.com/PrismLauncher/PrismLauncher/issues/594
Closes https://github.com/PrismLauncher/PrismLauncher/issues/69
Closes https://github.com/PrismLauncher/PrismLauncher/issues/473
2023-01-27 10:55:49 -08:00
leo78913
a27564ed70 better fix for WideBar::insertSeparator
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-27 13:48:12 -03:00
leo78913
df8df41621 Remove unused BarEntry variable
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-27 12:40:27 -03:00
leo78913
d5a0d4b452
Update launcher/ui/MainWindow.ui
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-27 12:35:53 -03:00
leo78913
357b6ee991
Update launcher/ui/MainWindow.ui
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-27 12:35:41 -03:00
leo78913
4d2b5c2f42 refactor: clean up some MainWindow stuff
this makes the accounts button and menubar item share the same QMenu
and also refactors some code

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-26 19:48:21 -03:00
flow
f705cf09bc
Merge pull request #787 from flowln/make_shared_ptrs_explicit 2023-01-26 10:15:28 -08:00
flow
29f7ea752f
refactor: make shared_qobject_ptr ctor explicit
This turns issues like creating two shared ptrs from a single raw ptr
from popping up at runtime, instead making them a compile error.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-25 16:57:51 -03:00
flow
9b7c8ea22d
Merge pull request #779 from TheLastRar/zlib-undo-rename 2023-01-25 11:53:51 -08:00
Sefa Eyeoglu
199a7df807
refactor: add error handling to component import
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-25 10:43:23 +01:00
Sefa Eyeoglu
5186ad95d3
Merge pull request #784 from flowln/fix_resource_folder_double_smart_ptrs 2023-01-25 10:33:01 +01:00
Sefa Eyeoglu
0546345182
Merge pull request #458 from Scrumplex/remove-updater 2023-01-25 10:32:49 +01:00
flow
90feaaf2df
fix(Tasks): don't try to start more tasks than necessary
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-24 17:04:05 -03:00
flow
6d27ef5eea
fix(ResourceFolder): don't create two smart ptrs for the same raw ptr
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-24 17:04:01 -03:00
flow
e4e8a51e5c
Merge pull request #781 from Ryex/patch-1 2023-01-24 11:15:33 -08:00
Rachel Powers
3ddf413332
Update launcher/Application.cpp
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-24 09:24:12 -07:00
flow
6eb36fb053
Merge pull request #783 from DioEgizio/update-cmark-fix-cve 2023-01-24 07:25:26 -08:00
DioEgizio
58239ff98f fix: update cmark to fix a CVE
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-24 15:05:13 +01:00
Sefa Eyeoglu
6e841a3b7e
Merge branch 'develop' into remove-updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-24 14:40:17 +01:00
Rachel Powers
085e067fc1
remove NDEBUG check per Scrumplex's orders
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-24 02:26:21 -07:00
Rachel Powers
c45fa016c0
fix: let jars be found from inside build dir for debug builds
debug bug builds run form inside the build dir before they are bundled can't find the jars

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-23 18:36:58 -07:00
Sefa Eyeoglu
16477a8f6c
Merge pull request #675 from flowln/generalize_mod_model 2023-01-23 23:58:52 +01:00
Sefa Eyeoglu
04e4900415
Merge pull request #758 from flowln/fix_process_events_backstab 2023-01-23 23:58:41 +01:00
TheLastRar
322f317a5b fix: Undo zlibs file rename when using bundled zlib
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-01-23 22:36:26 +00:00
flow
ea5020e188
fix(license): add/fix my copyright/license headers
*sobbing in messy legal stuff i know nothing about*

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-23 11:12:43 -03:00
Sefa Eyeoglu
cefa1662ef
Merge pull request #772 from TheLastRar/zlib-fallback-bundled-fix
Fix: zlib fallback not working
2023-01-23 00:07:34 +01:00
TheLastRar
2a949fcb86 fix: zlib fallback
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-01-22 15:04:15 +00:00
flow
445f9e5f71
feat+fix(Version): make comparsion FlexVer-compatible
... and fixes a minor issue in the parsing.

This changes the expected behavior of Versions in one significant way:
Now, Versions like 1.2 or 1.5 evaluate to LESS THAN 1.2.0 and 1.5.0
respectively. This makes sense for sorting versions, since one expects
the versions without patch release to 'contain' the ones with, so the
ones without should be evaluated uniformily with the ones with the
patch.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-21 18:47:47 -03:00
leo78913
5a25ce8c1b Fix main window icon and stuff
i forgor 💀

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
670cf8ee07 Fix: make the newsLabel toolbutton fullwidth again
this reverts it to how it was before the MainWindow .ui port

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
6c5f6e8900 Fix status bar name
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
4ed4fb2314 remove useless setEnabled calls
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
f16989bea9 feat(WideBar): custom context menu actions
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
55d4064335 Fix: translate actionNoDefaultAcount text
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
3b38a4c690 Fix: translate NoAccountsAdded text
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
ada595663d fix(widebar): fix insertSeparator
WideBar::insertSeparator was adding the separator to the end of the toolbar

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
b2de01b076 feat(WideBar): Allow disabling alt shortcuts
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
f3acf35aea refactor: Port the main window to a .ui file
some stuff still needs to be done in the c++ side because qt designer is dumb >:(

the instance toolbar icon and instance name buttons are still added manually inside MainWindow.cpp

looks almost identical, with some minor tweaks:
- the instance toolbar is now a WideBar, so you can customize what actions you want :D
- the instance toolbar buttons are now fullwidth
- the close window button is now at the end of the file menu
- the help menu has some layout changes

this also fixes some stuff:
- menus not having tooltips
- the top toolbar not connecting to the title bar in kde
- the instance toolbar separators looking weird after you move the toolbar

Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
leo78913
3da1d6a464 feat: add Widebar::InsertWidgetBefore method
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:44:39 -03:00
flow
b9df10c8bd
Merge pull request #766 from TayouVR/change-cat-on-settings-change
closes https://github.com/PrismLauncher/PrismLauncher/issues/763
2023-01-20 08:36:08 -08:00
flow
ec1f73c827
fix(tests): add some comments on the stack overflow Task test
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 12:55:38 -03:00
Tayou
cdc9f93f71
make MainWindow cat update instantly
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-20 15:16:25 +01:00
flow
bcebb1920f
refactor: clean up Section struct
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 11:15:26 -03:00
flow
81848e05f1
refactor: simplify Version operators
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 11:15:26 -03:00
flow
5ae69c079a
feat(tests): add FlexVer test vector to the Version tests
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 11:15:26 -03:00
Edgars Cīrulis
0199d8a74f
Version.cpp: Add new line
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-19 14:12:59 +02:00
Edgars Cīrulis
f49ad2ee03
Version.h: Fix comparison of null version in Version class
Co-authored-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-19 10:40:30 +02:00
Rachel Powers
7ed993b54e
fix: proper null padded version comparison
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-19 09:51:11 +02:00
Rachel Powers
9934537e19
feat: add debug printing for Version
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-19 09:50:45 +02:00
flow
00d42d296e
fix: call processEvents() before adding new tasks to the task queue
This allows the ongoing task to go off the stack before the next one is
started.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-18 16:23:30 -03:00
flow
ad74fedfba
feat(tests): add test for stack overflow in ConcurrentTask
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-18 16:23:30 -03:00
Edgars Cīrulis
730f714e97
Version.cpp: Remove unnecessary QStringList include
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 22:39:19 +02:00
Edgars Cīrulis
3bec4a80b3
Version.cpp: Decompose version strings according to flexver
Co-authored-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 22:39:12 +02:00
Edgars Cīrulis
a84e4b0e07
Version.cpp: Format parse function code using clang-format
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 07:14:49 +02:00
Edgars Cīrulis
198139feb4
Version.cpp: Simplify Version::parse by using const auto& current_char
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 07:14:37 +02:00
Edgars Cīrulis
de11017552
Version.cpp: Use anonymous function to eliminate code duplication
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 07:14:29 +02:00
Edgars Cīrulis
6fb837c529
Version.cpp: Add version string parser to split on '.' character
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 07:14:05 +02:00
Edgars Cīrulis
c0c3892064
Version.cpp: Improve version parsing to handle mixed numeric and alphabetic characters
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 07:13:24 +02:00
Sefa Eyeoglu
1a35fec134
Merge pull request #696 from Ryex/import-all-the-things
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/581
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/700
2023-01-16 10:04:09 +01:00
flow
f1247d2224
Merge pull request #753 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x 2023-01-15 11:39:50 -03:00
renovate[bot]
7992b7eb89
chore(deps): update hendrikmuhs/ccache-action action to v1.2.8 2023-01-15 13:40:16 +00:00
Sefa Eyeoglu
cd893e18d2
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-14 17:21:52 +01:00
Sefa Eyeoglu
a5c8b166fe
Merge pull request #746 from RaptaG/patch-1 2023-01-14 17:17:49 +01:00
RaptaG
72a9b98ef0
We're in 2023 :)
Signed-off-by: RaptaG <77157639+RaptaG@users.noreply.github.com>
2023-01-14 17:55:56 +02:00
flow
cf022524d1
Merge pull request #743 from flowln/fix_mods_with_wrong_modListVersion 2023-01-14 12:19:12 -03:00
flow
ebb0596c1a
fix: don't fail mod parsing when encountering invalid modListVersion
The spec (admitely a very old one) states that this entry should always
have the value "2". However, some mods do not follow this convention,
causing issues.

One notable example is the 1.6 version of Aether II for 1.7.10, that has
this value set at "5" for whatever reason.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 21:15:10 -03:00
flow
3de681d2d6
Merge pull request #685 from byteduck/instance-accounts 2023-01-13 17:21:12 -03:00
Rachel Powers
f7b0ba88da Apply suggestions from code review
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-13 13:15:13 -07:00
flow
c95c81d42f
fix(ModUpdater): ensure instead of require icon_url
The spec says that this can be null, and indeed some mods have it set to
null, and should still be considered as valid.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:59:37 -03:00
flow
9407596b12
fix(ModUpdater): fail mods individually when there's errors in the JSON
Prevents a single problematic mod from invalidating all the API
response.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:49:21 -03:00
flow
c294c2d1df
refactor(RD): allow setting custom folder target for downloaded resources
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
flow
bd36f8e220
fix(RD): set resource strings for ReviewMessageBox too
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
flow
3a168ba6dd
feat(tests): add very basic ResourceModel test
______very_____ basic indeed, creating tests is super boring :c

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
flow
1919069b12
fix(RD): don't assert search offset on fetchMore() in ResourceModel
This allows the standard QAbstractItemModelTester to work without
shenanigans!

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
flow
ba677a8cb7
refactor: change some ResourceAPI from NetJob to Task
This makes it easier to create resource apis that aren't network-based.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
flow
e62e1d9701
refactor(RD): move BaseInstance dep. to subclasses of ResourceModel
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
b3330cb0da
fix(RD): correctly set the strings for the specific resource names
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
7d128c79a3
fix: CodeQL warnings about the rule of two
shush

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
3cff23dae2
refactor(RD): move success callbacks from ModModel to ResourceModel
While implementing the resource pack downloader in another branch, I
noticed that most of the code in the success callback was identical in
both cases, safe for a few minute differences in strings. So, this tries
to make it easier to share this piece of code.

However, it still leaves the possibility of extending the methods in
ResourceModel to accomodate for cases where this similarity may not
hold.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
c3f0139f76
refactor(RD): add helper in ResourceModel to find current sorting
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
563fe8d515
fix(RD): separate search and versions/info tasks
This allows us to check whether a search request is already on-going, in
which case we don't need to make another one (and shouldn't).

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:08 -03:00
flow
38e20eb148
fix(RD): pass copy of IndexedPack to callbacks instead of ref.
This prevents a crash in which the pack list gets updated in a search
request meanwhile a versions / extra info request is being processed.
Previously, this situation would cause the reference in the latter
callbacks to be invalidated by an internal relocation of the pack list.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:07 -03:00
flow
36571c5e22
refactor(RD): clear up sorting methods
This refactors the sorting methods to join every bit of it into a single
list, easing maintanance. It also removes the weird index contraint on
the list of methods by adding an index field to the DS that holds the
method.

Lastly, it puts the available methods on their respective API, so other
resources on the same API can re-use them later on.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:07 -03:00
flow
c8eca4fb85
fix: build with qt5.12 on Linux and pedantic flag
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:07 -03:00
flow
0e207aba6c
feat(RD): add roleNames and Q_PROPERTY to ResourceModel
in preparation for QML interop.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:07 -03:00
flow
45d1319891
refactor(RD): decouple ResourceModels from ResourcePages
This makes it so that we don't need a reference to the parent page in
the model. It will be useful once we change the page from a widget-based
one to a QML page.

It also makes tasks be created in the dialog instead of the page, so
that the dialog can also have the necessary information to mark versions
as selected / deselected easily. It also makes the task pointers into
smart pointers.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:07 -03:00
flow
39b7ac90d4
refactor(RD): unify download dialogs into a single file
No need for multiple files since the subclasses are so small now

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:06 -03:00
flow
ef87bdf18a
fix(RD): prevent weird behavior of progress widget
when i.e. clicking on links or just using the downloader at all, this
prevents some flickering and the widget never getting hidden in some
cases.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:06 -03:00
flow
433a802c6e
refactor: put resource downloading classes in common namespace
Puts them all inside the 'ResourceDownload' namespace, so that it's a
bit clearer from the outside that those belong to the same 'module'.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:06 -03:00
flow
6a18079953
refactor: generalize mod models and APIs to resources
Firstly, this abstract away behavior in the mod download models that can
also be applied to other types of resources into a superclass, allowing
other resource types to be implemented without so much code duplication.

For that, this also generalizes the APIs used (currently, ModrinthAPI
and FlameAPI) to be able to make requests to other types of resources.

It also does a general cleanup of both of those. In particular, this
makes use of std::optional instead of invalid values for errors and,
well, optional values :p

This is a squash of some commits that were becoming too interlaced
together to be cleanly separated.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:00 -03:00
flow
b937d33436
Merge pull request #714 from redstrate/cmark 2023-01-13 16:16:00 -03:00
Sefa Eyeoglu
f7244fbf68
Merge pull request #737 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x
chore(deps): update hendrikmuhs/ccache-action action to v1.2.7
2023-01-13 08:17:59 +01:00
Aaron
4e80d1fc79
DCO Remediation Commit for Aaron <10217842+byteduck@users.noreply.github.com>
I, Aaron <10217842+byteduck@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 160dd09fc2

Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-12 20:16:48 -08:00
Aaron Sonin
b2f48eaeb8
Merge branch 'PrismLauncher:develop' into instance-accounts 2023-01-12 20:11:46 -08:00
Aaron
160dd09fc2
Fix instance account selector face for offline accounts 2023-01-12 20:03:31 -08:00
renovate[bot]
80eea05deb
chore(deps): update hendrikmuhs/ccache-action action to v1.2.7 2023-01-12 22:06:50 +00:00
Sefa Eyeoglu
5e89ba7079
Merge pull request #732 from DioEgizio/actually-fix-openssl3-mac-failures 2023-01-12 16:31:03 +01:00
DioEgizio
ff7878217d fix: add cmark:p to mingw build
this way we can just dynamically link it on that build instead of building it ourselves and statically linking it

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-12 10:08:52 -05:00
Joshua Goins
807da6a035 fix: Remove extra line breaks for modrinth descriptions
Signed-off-by: Joshua Goins <josh@redstrate.com>
2023-01-12 10:08:52 -05:00
Joshua Goins
4e2a958896 fix(flatpak): enable builddir
Signed-off-by: Joshua Goins <josh@redstrate.com>
2023-01-12 10:08:52 -05:00
Sefa Eyeoglu
3ee0ec7cd0 fix(nix): add cmark dependency
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-12 10:08:52 -05:00
Sefa Eyeoglu
22a2b7ac46 refactor: support system and bundled cmark
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-12 10:08:52 -05:00
Joshua Goins
aa7c910e26 build: remove hoedown vendored source
Signed-off-by: Joshua Goins <josh@redstrate.com>
2023-01-12 10:08:52 -05:00
Joshua Goins
24a4bd3a1c refactor: replace hoedown markdown parser with cmark
Signed-off-by: Joshua Goins <josh@redstrate.com>
2023-01-12 10:08:52 -05:00
Sefa Eyeoglu
fff52cb247
feat: add button to import component JSONs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-11 13:50:57 +01:00
Sefa Eyeoglu
219c5b323d
Merge pull request #731 from flowln/windows_server_trash 2023-01-11 09:49:20 +01:00
DioEgizio
14278a9e35 fix: set HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK to 1
should fix some random failures

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-10 20:02:20 +01:00
Sefa Eyeoglu
dd013209e8
Merge pull request #730 from DioEgizio/aaaaaaaa-revert
Revert "Merge pull request #729 from DioEgizio/fix-mac-openssl3-failing"
2023-01-10 17:44:23 +01:00
flow
96d5438633
Merge pull request #249 from TayouVR/theme-selector-first-time-wizard 2023-01-10 13:28:57 -03:00
flow
391ef64c22
fix(FileSystem): don't attempt to trash items on Windows Server
For some reason this makes some of our CI test runs super slow, and
sometimes fail miserably.

Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-10 12:50:56 -03:00
DioEgizio
d45a62b3a6 Revert "Merge pull request #729 from DioEgizio/fix-mac-openssl3-failing"
it was necessary :/

This reverts commit 976e550aa7, reversing
changes made to 61144f7a21.

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-10 16:47:28 +01:00
Sefa Eyeoglu
976e550aa7
Merge pull request #729 from DioEgizio/fix-mac-openssl3-failing
fix: just use github runner's openssl 1.1 instead of installing 3 on …
2023-01-10 16:28:02 +01:00
Tayou
668b19d119
Add hint about Cat
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:09:57 +01:00
Sefa Eyeoglu
5c48f0b458
fix: set minimum size for setup wizard
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-10 16:06:50 +01:00
Tayou
689fe1e2c7
CRLF -> LF
damn you visual studio for creating CRLF files everywhere...
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:06:50 +01:00
Tayou
7d440402ad
Update launcher/Application.cpp with suggestion from scrumplex
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:06:42 +01:00
Tayou
6daa457838
Implement Suggestions from flow & Scrumplex
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:06:42 +01:00
Tayou
49d317b19a
UX tweak + formatting + added cat to wizard
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:06:24 +01:00
Tayou
1b80ae0fca
add theme setup wizard
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:06:01 +01:00
DioEgizio
a113ecca8b fix: just use github runner's openssl 1.1 instead of installing 3 on macos signing
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-10 15:03:28 +01:00
Sefa Eyeoglu
61144f7a21
Merge pull request #726 from TheLastRar/qt6-win-darkmode
Closes https://github.com/PrismLauncher/PrismLauncher/issues/158
2023-01-10 08:48:17 +01:00
Rachel Powers
574af2c795 chore: cleanup review suggestions
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-09 17:18:08 -07:00
Rachel Powers
a4870d4834 fix: fix #700
fixed by properly converting from a file path and converting to native seperators.
should have known naive handling of file path as a URL would come back to bite us cross platform.

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-09 17:00:12 -07:00
TheLastRar
78bbcac0ea ui: Let Qt 6.4.2 handle dark mode titlebar
Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2023-01-09 19:44:11 +00:00
TheKodeToad
d4b346b7ae Fix oversights
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-01-09 10:48:46 +00:00
Sefa Eyeoglu
ca9b2525c8
Merge pull request #715 from getchoo/add-teawie 2023-01-09 09:46:31 +01:00
Sefa Eyeoglu
bb1c387a98
Merge pull request #722 from PrismLauncher/renovate/actions-cache-3.x 2023-01-09 09:41:32 +01:00
Sefa Eyeoglu
38ce37b6fd
Merge pull request #720 from PrismLauncher/renovate/hendrikmuhs-ccache-action-1.x 2023-01-09 09:41:03 +01:00
renovate[bot]
7fdc81236e
chore(deps): update actions/cache action to v3.2.3 2023-01-09 07:54:22 +00:00
renovate[bot]
fca40c1c6b
chore(deps): update hendrikmuhs/ccache-action action to v1.2.6 2023-01-08 22:40:41 +00:00
TheKodeToad
52b3a54e4b
Fix cloaks conflicting with join server endpoint
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-01-08 15:36:36 +00:00
flow
d5d5d66e03
Merge pull request #716 from DioEgizio/qt6.4.2-winmsvc
closes https://github.com/PrismLauncher/PrismLauncher/issues/288
2023-01-08 11:33:13 -03:00
DioEgizio
0481ae187a chore: update windows msvc to qt 6.4.2
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2023-01-08 10:34:45 +01:00
seth
9de6927c3f
feat: add CC BY-SA 4.0 info for teawie images
Signed-off-by: seth <getchoo@tuta.io>
2023-01-07 19:18:22 -05:00
Rachel Powers
30b01ef053 fix: *sigh* no implicit QString->QFileInfo conversion in Qt6, again...
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-07 15:04:23 -07:00
Rachel Powers
03b75bf2a9 feat: Import all the things!
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-07 15:04:22 -07:00
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
Sefa Eyeoglu
9901ecda49
Merge pull request #710 from byquanton/develop
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/708
2023-01-07 17:18:10 +01:00
flow
39becf607e
Merge pull request #713 from redstrate/fix-html-rendering 2023-01-07 12:57:35 -03:00
seth
f5955a4738
feat: add bday teawie
Signed-off-by: seth <getchoo@tuta.io>
2023-01-07 04:47:53 -05:00
seth
e018b30875
fix: make spooky teawie load
gimp fail

Signed-off-by: seth <getchoo@tuta.io>
2023-01-07 04:38:26 -05:00
seth
2dbd775cf3
feat: add xmas teawie
Signed-off-by: seth <getchoo@tuta.io>
2023-01-07 04:37:41 -05:00
seth
a5051327db
feat: add spooky teawie
Signed-off-by: seth <getchoo@tuta.io>
2023-01-07 03:42:53 -05:00
seth
8140f5136d
feat: add teawie
drawn by sympathytea (https://github.com/SympathyTea)

Signed-off-by: seth <getchoo@tuta.io>
2023-01-06 22:28:15 -05:00
Joshua Goins
f04703f09b Strip certain HTML tags when rendering mod pages
Some mod pages use certain tags for centering purposes, but trips up
hoedown.

Signed-off-by: Joshua Goins <josh@redstrate.com>
2023-01-06 15:05:19 -05:00
TheKodeToad
be7f81421a Finishing touches
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-01-06 10:46:43 +00:00
TheKodeToad
17317ea308 Move legacy support classes to another jar
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-01-06 09:23:36 +00:00
TheKodeToad
cb32711077 Slim skin fix - thanks to @craftycodie and @DelofJ
!

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-01-06 09:21:43 +00:00
byquanton
2faf8332ee
fix: Add 1.16+ Forge library prefix in TechnicPackProcessor.cpp
Signed-off-by: byquanton <32410361+byquanton@users.noreply.github.com>
2023-01-06 02:44:10 +01:00
Aaron Sonin
e0e3d4d8fe
Merge branch 'PrismLauncher:develop' into instance-accounts 2023-01-02 11:59:29 -07:00
Aaron
ba81ad1ac3 Reword instance-specific account settings, apply clang-format
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron Sonin
eefb259ddf Remove unecessary delete in InstanceSettingsPage destructor
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Aaron Sonin <10217842+byteduck@users.noreply.github.com>
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron Sonin
9b8add1961 Properly connect signal in instance settings for account selector
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Aaron Sonin <10217842+byteduck@users.noreply.github.com>
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron Sonin
e186523878 Add null check for face in instance account settings selector
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Aaron Sonin <10217842+byteduck@users.noreply.github.com>
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron Sonin
021e6c02d7 Replace unecessary type check with assertion in InstanceSettingsPage
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Aaron Sonin <10217842+byteduck@users.noreply.github.com>
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron
cba3d68063 Fix conflicting layout name in InstanceSettingsPage
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
Aaron
7e2d78bab5 Allow selecting a default account to use with an instance
Signed-off-by: Aaron <10217842+byteduck@users.noreply.github.com>
2023-01-02 11:17:19 -07:00
DioEgizio
4b12c85d91
Merge pull request #673 from PrismLauncher/renovate/flatpak-flatpak-github-actions-5.x
chore(deps): update flatpak/flatpak-github-actions action to v5
2022-12-30 19:23:10 +01:00
Rachel Powers
0ebf04a021
fix newlines
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-30 10:21:49 -07:00
flow
d55f47077a
Merge pull request #626 from leo78913/mods-provider-column
closes https://github.com/PrismLauncher/PrismLauncher/issues/402
2022-12-30 11:39:03 -03:00
Sefa Eyeoglu
11df4845b7
fix: remove Flatpak cache key workaround
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-30 15:36:35 +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
Rachel Powers
c470f05abf refactor: use std::filesystem::rename insted of copy and then moving.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-29 17:21:54 -07:00
flow
141e94369e
feat(Mods): hide 'Provider' column when no mods have providers
This makes the mod list look a bit less polluted in the common case of
mods having no provider whatsoever.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-29 13:21:49 -03:00
flow
257970c27d
refactor(Mods): make provider() return a std::optional
This makes it easier to check if a mod has a provider or not, without
having to do a string comparison.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-29 13:21:49 -03:00
flow
67ac3da8a0
Merge pull request #684 from Scrumplex/logging-categories
Prevents private credentials from leaking in the logs of general users
2022-12-28 09:54:23 -08:00
Sefa Eyeoglu
c1e5179b5f
Merge pull request #680 from AshtakaOOf/flathub-screenshots 2022-12-28 13:48:39 +01: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
Sefa Eyeoglu
4d334b645d
Merge pull request #681 from PrismLauncher/renovate/actions-cache-3.x 2022-12-27 13:54:00 +01:00
renovate[bot]
58d3779efb
chore(deps): update actions/cache action to v3.2.2 2022-12-27 12:20:21 +00:00
Rachel Powers
3691f3a296 fix: cleanup and suggested changes
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-26 14:50:15 -07:00
Adrien
463b4fbe0c Fix
Me when me when me when

Signed-off-by: Adrien <66513643+AshtakaOOf@users.noreply.github.com>
2022-12-26 20:09:47 +01:00
Adrien
9f1c79a5ec Update org.prismlauncher.PrismLauncher.metainfo.xml.in
Add ModpackUpdate and change some lines

Signed-off-by: Adrien <66513643+AshtakaOOf@users.noreply.github.com>
2022-12-26 19:59:46 +01:00
Adrien
70573b6f31 Update org.prismlauncher.PrismLauncher.metainfo.xml.in
Should be the right properties (I hope)

Signed-off-by: Adrien <66513643+AshtakaOOf@users.noreply.github.com>
2022-12-26 19:24:17 +01:00
Sefa Eyeoglu
6ea1234a3b
Merge pull request #618 from TheKodeToad/safer-destructive-actions
Fixes https://github.com/PolyMC/PolyMC/issues/948
2022-12-26 17:48:43 +01:00
TheKodeToad
434f639b0c Use optional instead of hardcoded cancelled string
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-26 14:58:37 +00:00
TheKodeToad
bf04becc9e About to -> you are about to
You're is used in some other places but im lazy

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-26 14:45:04 +00:00
chmodsayshello
e8ee4497f7 store logs in sperate directory
Signed-off-by: chmodsayshello <chmodsayshello@hotmail.com>
2022-12-26 09:59:26 +01:00
Rachel Powers
b2082bfde7 fix: explicit QFileInfo converison for qt6
fix: validatePath in validateZIPResouces

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-25 17:16:26 -07:00
Rachel Powers
78984eea3a feat: support installing worlds during flame pack import.
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-25 16:49:56 -07:00
TheKodeToad
5c96b1c628
Remove MIT license from JsonParser
I don't mind, and it's my code.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-25 09:45:42 +00:00
Rachel Powers
8422e3ac01 feat: zip resource validation check for flame
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07:00
Rachel Powers
cfce54fe46 fix: update parse tests
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:17 -07: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
eb31a951a1 feat: worldSave parsing and validation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 20:43:01 -07:00
Rachel Powers
ccfe605920 feat: add shaderpack validation
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 15:55:10 -07:00
Rachel Powers
878614ff68 feat: add a ModUtils::validate
moves the reading of mod files into `ModUtils` namespace

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 09:42:02 -07:00
Rachel Powers
25e23e50ca fix: force add of ignored testdata files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-24 09:42:02 -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
renovate[bot]
e4296c48c8
chore(deps): update flatpak/flatpak-github-actions action to v5 2022-12-24 16:20:44 +00:00
flow
dd3848d7b1
Merge pull request #666 from getchoo/pls-scrump
scrump heard your pleads, rejoice!
2022-12-24 06:38:49 -08:00
flow
56ac1a0813
Merge pull request #665 from flowln/logging_categories 2022-12-24 03:58:49 -08:00
TheKodeToad
cbe5af235c Make requested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-24 08:59:55 +00:00
seth
f932ffcc5b
fix: check if GIT_REFSPEC is empty
Signed-off-by: seth <getchoo@tuta.io>
2022-12-23 20:50:08 -05:00
flow
0a50c5bf40
Merge pull request #644 from RaptaG/new-readme 2022-12-23 04:39:57 -08:00
flow
e416e5d301
Merge pull request #667 from PrismLauncher/renovate/actions-cache-3.x 2022-12-23 04:00:43 -08:00
TheKodeToad
884bd85495 Skin fix -> online fixes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-23 09:35:29 +00:00
TheKodeToad
94067f34cf Try to make some of the suggested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-23 09:34:26 +00:00
renovate[bot]
3227859992
chore(deps): update actions/cache action to v3.2.1 2022-12-23 08:18:30 +00:00
seth
01139c3b50
fix: assume builds are stable when git isn't installed
Signed-off-by: seth <getchoo@tuta.io>
2022-12-22 19:25:04 -05:00
flow
ee3e65d759
feat(docs): add note about logging env variables in man page
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-22 19:18:16 -03:00
flow
c85867395d
feat: use Qt logging facilities instead of our own
This system allows us to globally define categories, and control whether
they are shown or not at runtime. It also does some things by it's own,
so we can remove some (uhhh) code.

Lastly, this allows changing the behavior of the logger at runtime via
environment variables that Qt takes care of for us.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-22 19:15:50 -03:00
flow
bf2ce54076
Merge pull request #656 from PrismLauncher/renovate/actions-cache-3.x 2022-12-21 07:30:23 -08:00
renovate[bot]
07de285299
chore(deps): update actions/cache action to v3.2.0 2022-12-21 14:46:35 +00:00
Sefa Eyeoglu
8c194cd245
Merge pull request #649 from Scrumplex/fix-winget-release-no9999999 2022-12-19 16:36:42 +01:00
Sefa Eyeoglu
8cbec3d5a0
fix: update installers-regex for winget releaser again
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-19 16:31:50 +01:00
Sefa Eyeoglu
cdf05e74c8
Merge pull request #647 from Scrumplex/update-flake 2022-12-19 16:09:55 +01:00
Sefa Eyeoglu
b98b4f1027
chore(nix): update flakes
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-19 15:54:10 +01:00
Sefa Eyeoglu
fc11dfd6b4
refactor(nix): use tomlplusplus from nixpkgs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-19 15:54:09 +01:00
Sefa Eyeoglu
483a5b6cae
fix(nix): use jdk17 instead of jdk
See NixOS/nixpkgs#206806

Co-authored-by: Infinidoge <infinidoge@doge-inc.net>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-19 15:44:05 +01:00
Sefa Eyeoglu
df1b7f1656
Merge pull request #628 from flowln/fix_multiple_resource_packs_crash
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/624
2022-12-19 15:35:34 +01:00
RaptaG
a566d1c5de
Change numbered list to bullet list
Signed-off-by: RaptaG <77157639+RaptaG@users.noreply.github.com>
2022-12-18 18:01:44 +02:00
Sefa Eyeoglu
11c8237d8b
Merge pull request #642 from DioEgizio/dont-ship-unnecessary-tlsbackends
fix: exclude unused tls backends
2022-12-18 16:27:48 +01:00
RaptaG
6dc19c85a8
Improve the README
Not very serious changes, just some enhancements to make it look better!

Signed-off-by: RaptaG <77157639+RaptaG@users.noreply.github.com>
2022-12-18 15:23:22 +02: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
8da6667816
Merge pull request #636 from flowln/fix_component_version_when_updating
Correctly set component versions in Modrinth pack updating
2022-12-17 17:26:34 +01:00
flow
81fedbf03c
refactor(Tasks): remove 'm_total_size' from ConcurrentTask
We can use the queues directly instead.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17 13:10:19 -03:00
flow
0516055b31
Merge pull request #630 from leo78913/yeet-scrollbars 2022-12-17 08:02:41 -08:00
flow
e3f8d99087
refactor(Inst. Import): use m_* for member variables in MR components
Makes it clearer what is being changed when.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17 12:41:10 -03:00
flow
22aebc2215
fix(Inst. Import): correctly set component versions when updating
This makes it so that the later call to parse the old manifest doesn't
change the class data, so that the new data con continue there and be
reflected on the component list later.

Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17 12:38:58 -03:00
leo78913
3653e9d5e3 let the theme decide the notes page right margin
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-17 12:05:20 -03:00
flow
40f16b6d62
Merge pull request #631 from getchoo/better-msvc-flags 2022-12-17 05:53:17 -08:00
seth
a61daa40dc
fix: re-enable /GS and only use some flags on release builds
Signed-off-by: seth <getchoo@tuta.io>
2022-12-16 16:05:12 -05:00
flow
ee67b5f1ad
Merge pull request #607 from flowln/dont_crash_on_zip_import
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/609
2022-12-16 07:22:22 -08:00
leo78913
aa3633d2d7
fix: translate unknown mod provider
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-16 11:13:54 -03:00
seth
7b805a38b9
feat: improve msvc build flags
- adds /GL, /Gy, and /LTCG for better optimizations
- adds /Gw for a smaller binary size
- adds /guard:cf for added security at runtime
- removes unneeded /GS flag as that's already enabled by default

Signed-off-by: seth <getchoo@tuta.io>
2022-12-15 18:50:35 -05:00
leo78913
c8d8dda79a fix: only show scrollbars when needed
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-15 16:34:52 -03:00
flow
c440f33122
fix(ResourceModel): use a single ConcurrentTask for parsing tasks
This avoids creating a bunch of threads that fills up the maximum amount
allowed by QThreadPool, and causes a deadlock between the helper threads
and the main thread (main thread tries to create threads in painting
code, but isn't able to, so it keeps waiting for a thread to free up,
but all the threads are waiting on the main thread to process some
events).

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-15 13:51:07 -03:00
flow
b0c866bfaa
feat(Tasks): allow adding subtasks while running in ConcurrentTask
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-15 13:48:53 -03:00
flow
dd578354c4
feat(Tasks): add ConcurrentTask::clear to allow re-using tasks
This way old runs won't pile up in the internal DSs

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-15 13:45:50 -03:00
flow
fdac978c84
Merge pull request #625 from Edgars-Cirulis/develop 2022-12-15 07:55:28 -08:00
Sefa Eyeoglu
3b81ada1c3
Merge pull request #593 from Scrumplex/fix-winget-release-no999999 2022-12-15 16:35:15 +01:00
TheKodeToad
87bcefd08a Automatically add add-opens if Java version >= 9
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 15:28:24 +00:00
leo78913
4ee29b388d feat: add a provider column to the mods page
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-15 12:02:08 -03:00
TheKodeToad
8a6776731a Use reflection to access DatatypeConverter
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
bfa5fe1598 Better skin fix error handling
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
ead59c0246 Improve the skin fix code
- Spoof 404 instead of keeping original URL.
- Move JsonParseException to the package.
- Pass proxy as null to reduce code duplication.

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
cfeadf858e Add workaround to warning
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
7534eaf006 Only use DatatypeConverter as a fallback
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
8a81aaaa0a Add separate util class
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:39 +00:00
TheKodeToad
b544661e81 Experimental skin fix, inspired by craftycodie's
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-15 14:59:38 +00:00
Edgars Cīrulis
52dc9068e5
ApplicationMessage: Use QHash instead of QMap
QHash provides faster lookup times than QMap because it uses a hash table to store the elements, while QMap uses a self-balancing binary tree.

Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2022-12-15 16:17:19 +02:00
flow
4f1ea712da
Merge pull request #605 from flowln/fix_crash_in_downloader_image
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/590
2022-12-15 04:47:56 -08:00
Sefa Eyeoglu
849b92665e
Merge branch 'develop' into remove-updater 2022-12-14 23:22:27 +01:00
Sefa Eyeoglu
d193ed9eeb
Merge pull request #561 from leo78913/iconpicker-stuff
closes https://github.com/PrismLauncher/PrismLauncher/issues/494
2022-12-14 23:15:21 +01:00
TheKodeToad
ee003cd9ee Add confirmation on customised components
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-14 15:40:20 +00:00
TheKodeToad
127b094c41 Improve handling of destructive actions
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-14 15:20:42 +00:00
Sefa Eyeoglu
b2285be5bc
Merge pull request #612 from DioEgizio/move-cat-right
closes https://github.com/PrismLauncher/PrismLauncher/issues/611
2022-12-14 13:04:41 +01:00
Sefa Eyeoglu
6ede02bb84
Merge pull request #608 from Scrumplex/bump-7.0 2022-12-14 11:33:46 +01:00
DioEgizio
821c424b66 move cat to bottom right
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-12-14 08:36:35 +01:00
flow
5450e0edf3
fix(Inst.Import): don't set managed pack info from imported ZIPs
This prevents the Managed Pack page from showing up even though there's
no way for it to work correctly.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-13 13:43:27 -03:00
flow
e05ccc0e55
Merge pull request #601 from Scrumplex/fix-translations-3 2022-12-13 07:01:23 -08:00
Sefa Eyeoglu
4f3786c2e1
chore: bump to 7.0
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-13 11:10:05 +01:00
Sefa Eyeoglu
107977f3d1
fix: update source strings
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-13 10:40:35 +01:00
Sefa Eyeoglu
813663485d
Merge pull request #604 from flowln/fix_crash_with_gtk2
fix: crash with GTK2 theme due to QProxyStyle in ManagedPackPage
2022-12-13 08:31:52 +01:00
flow
64585d8f78
fix(Inst.Import): don't assert extra data when importing from ZIP
ZIPs don't have the necessary data in those cases.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-13 00:31:41 -03:00
flow
756d933d1a
fix: bind image fetch callback lambda to the parent object
Fixes a possible crash with the callback being called after the image
object was already deleted.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-12 23:51:22 -03:00
flow
83deccf266
fix(ManagedPackPage): crash with GTK2 theme due to QProxyStyle
Seemingly related issue: https://bugreports.qt.io/browse/QTBUG-49940

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-12 23:31:10 -03:00
flow
aaef448959
Merge pull request #600 from TheLastRar/reset-stylesheet
Resolves https://github.com/PrismLauncher/PrismLauncher/issues/510
2022-12-12 13:28:24 -08:00
TheLastRar
7e96077ed7 Fix: Reset stylesheet before setting style
Resolves #510

Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-12-12 20:22:08 +00:00
Sefa Eyeoglu
c44f931059
fix: update installers-regex for winget releaser
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-12 19:03:32 +01:00
leo78913
2d5820e910
Update launcher/icons/IconList.cpp
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-10 10:31:44 -03:00
leo78913
6cb857b895
Update launcher/icons/IconList.cpp
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-10 10:31:30 -03:00
leo78913
ab2f3bb5bc make removeButton a member of IconPickerDialog
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-08 11:13:53 -03:00
leo78913
8c99edd3c5 feat+refactor: trash instance icons
also refactor IconList::deleteIcon

Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-06 20:25:42 -03:00
leo78913
8036272e87 fix: disable remove icon button for default icons
pressing this button in the icon picker dialog when a default icon is selected does nothing so why not disable it

Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-06 20:10:30 -03:00
Sefa Eyeoglu
fdbd8d9d2b
refactor: remove old updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-21 16:18:05 +01:00
timoreo
6a5db12c6a
Apply some more suggestions from @flowln
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 15:00:33 +02:00
timoreo
dcbd6cc1af
More Json:: everywhere !
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
a65f20a789
Fix a tiny formatting issue
Co-authored-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
86e3518430
Apply most of the suggestions from @flowln
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
89f1b60538
Delete out non-needed functions from SysInfo
Delete LaunchContext

Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
dc84a61999
Added failed and aborted handlers
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
a902f29ccf
Changed to a temporary file
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:28 +02:00
timoreo
24dc154856
Add download button to more pages + UI fixes
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
68446c2a54
Obligatory formatting fix commit
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
f946964490
Regrab a few changes on SysInfo
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
53ddba8077
Made JavaDownloader a task and added some quick UI
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
54ad91c3b7
Anti-scrumped
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
89ce80b279
Fix Java downloader bugs + Add a test button in JavaPage
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
98a82cd484
Fix MMCZip bugs
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:27 +02:00
timoreo
a97387b692
Cherry-pick SysInfo from #680
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:26 +02:00
timoreo
9a4a92de4f
Clang format
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:26 +02:00
timoreo
3433c102b7
Remove old comment and change to piston-meta
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:26 +02:00
timoreo
f95856d062
Add the base of java downloading
Signed-off-by: timoreo <contact@timoreo.fr>
2022-10-24 08:02:18 +02:00
1345 changed files with 76038 additions and 49841 deletions

View file

@ -1,16 +1,17 @@
---
Language: Cpp
BasedOnStyle: Chromium
BasedOnStyle: Chromium
IndentWidth: 4
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AllowShortIfStatementsOnASingleLine: false
ColumnLimit: 140
---
Language: Cpp
AlignConsecutiveMacros: None
AlignConsecutiveAssignments: None
BraceWrapping:
AfterFunction: true
AfterFunction: true
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBraces: Custom
BreakConstructorInitializers: BeforeComma
ColumnLimit: 140
Cpp11BracedListStyle: false

23
.clang-tidy Normal file
View file

@ -0,0 +1,23 @@
Checks:
- modernize-use-using
- readability-avoid-const-params-in-decls
- misc-unused-parameters,
- readability-identifier-naming
# ^ Without unused-parameters the readability-identifier-naming check doesn't cause any warnings.
CheckOptions:
- { key: readability-identifier-naming.ClassCase, value: PascalCase }
- { key: readability-identifier-naming.EnumCase, value: PascalCase }
- { key: readability-identifier-naming.FunctionCase, value: camelCase }
- { key: readability-identifier-naming.GlobalVariableCase, value: camelCase }
- { key: readability-identifier-naming.GlobalFunctionCase, value: camelCase }
- { key: readability-identifier-naming.GlobalConstantCase, value: SCREAMING_SNAKE_CASE }
- { key: readability-identifier-naming.MacroDefinitionCase, value: SCREAMING_SNAKE_CASE }
- { key: readability-identifier-naming.ClassMemberCase, value: camelCase }
- { key: readability-identifier-naming.PrivateMemberPrefix, value: m_ }
- { key: readability-identifier-naming.ProtectedMemberPrefix, value: m_ }
- { key: readability-identifier-naming.PrivateStaticMemberPrefix, value: s_ }
- { key: readability-identifier-naming.ProtectedStaticMemberPrefix, value: s_ }
- { key: readability-identifier-naming.PublicStaticConstantCase, value: SCREAMING_SNAKE_CASE }
- { key: readability-identifier-naming.EnumConstantCase, value: SCREAMING_SNAKE_CASE }

8
.editorconfig Normal file
View file

@ -0,0 +1,8 @@
# EditorConfig specs and documentation: https://EditorConfig.org
# top-most EditorConfig file
root = true
# C++ Code Style settings
[*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}]
cpp_generate_documentation_comments = doxygen_slash_star

2
.envrc Normal file
View file

@ -0,0 +1,2 @@
use flake
watch_file nix/*.nix

7
.git-blame-ignore-revs Normal file
View file

@ -0,0 +1,7 @@
# .git-blame-ignore-revs
# tabs -> spaces
bbb3b3e6f6e3c0f95873f22e6d0a4aaf350f49d9
# (nix) alejandra -> nixfmt
4c81d8c53d09196426568c4a31a4e752ed05397a

View file

@ -1,41 +0,0 @@
#!/usr/bin/env bash
URL_JDK8="https://api.adoptium.net/v3/binary/version/jdk8u312-b07/linux/x64/jre/hotspot/normal/eclipse"
URL_JDK17="https://api.adoptium.net/v3/binary/latest/17/ga/linux/x64/jre/hotspot/normal/eclipse"
mkdir -p JREs
pushd JREs
wget --content-disposition "$URL_JDK8"
wget --content-disposition "$URL_JDK17"
for file in *;
do
mkdir temp
re='(OpenJDK([[:digit:]]+)U-jre_x64_linux_hotspot_([[:digit:]]+)(.*).tar.gz)'
if [[ $file =~ $re ]];
then
version_major=${BASH_REMATCH[2]}
version_trailing=${BASH_REMATCH[4]}
if [ $version_major = 17 ];
then
hyphen='-'
else
hyphen=''
fi
version_edit=$(echo $version_trailing | sed -e 's/_/+/g' | sed -e 's/b/-b/g')
dir_name=jdk$hyphen$version_major$version_edit-jre
mkdir jre$version_major
tar -xzf $file -C temp
pushd temp/$dir_name
cp -r . ../../jre$version_major
popd
fi
rm -rf temp
done
popd

33
.github/workflows/backport.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Backport
on:
pull_request_target:
types: [closed, labeled]
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows write access to
# the GitHub repository. This means that it should not evaluate user input in a
# way that allows code injection.
permissions:
contents: read
jobs:
backport:
permissions:
contents: write # for korthout/backport-action to create branch
pull-requests: write # for korthout/backport-action to create PR to backport
actions: write # for korthout/backport-action to create PR with workflow changes
name: Backport Pull Request
if: github.repository_owner == 'PrismLauncher' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@v3.1.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.

View file

@ -15,8 +15,35 @@ on:
SPARKLE_ED25519_KEY:
description: Private key for signing Sparkle updates
required: false
CACHIX_AUTH_TOKEN:
description: Private token for authenticating against Cachix cache
WINDOWS_CODESIGN_CERT:
description: Certificate for signing Windows builds
required: false
WINDOWS_CODESIGN_PASSWORD:
description: Password for signing Windows builds
required: false
APPLE_CODESIGN_CERT:
description: Certificate for signing macOS builds
required: false
APPLE_CODESIGN_PASSWORD:
description: Password for signing macOS builds
required: false
APPLE_CODESIGN_ID:
description: Certificate ID for signing macOS builds
required: false
APPLE_NOTARIZE_APPLE_ID:
description: Apple ID used for notarizing macOS builds
required: false
APPLE_NOTARIZE_TEAM_ID:
description: Team ID used for notarizing macOS builds
required: false
APPLE_NOTARIZE_PASSWORD:
description: Password used for notarizing macOS builds
required: false
GPG_PRIVATE_KEY:
description: Private key for AppImage signing
required: false
GPG_PRIVATE_KEY_ID:
description: ID for the GPG_PRIVATE_KEY, to select the signing key
required: false
jobs:
@ -25,76 +52,67 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
qt_ver: 5
qt_host: linux
qt_arch: ""
qt_version: "5.15.2"
qt_modules: "qtnetworkauth"
- os: ubuntu-20.04
- os: ubuntu-22.04
qt_ver: 6
qt_host: linux
qt_arch: ''
qt_version: '6.2.4'
qt_modules: 'qt5compat qtimageformats'
qt_tools: ''
qt_arch: ""
qt_version: "6.5.3"
qt_modules: "qt5compat qtimageformats qtnetworkauth"
- os: windows-2022
name: "Windows-MinGW-w64"
msystem: clang64
- os: windows-2022
name: "Windows-MSVC-Legacy"
msystem: ''
architecture: 'win32'
vcvars_arch: 'amd64_x86'
qt_ver: 5
qt_host: windows
qt_arch: 'win32_msvc2019'
qt_version: '5.15.2'
qt_modules: ''
qt_tools: 'tools_openssl_x86'
vcvars_arch: "amd64_x86"
- os: windows-2022
name: "Windows-MSVC"
msystem: ''
architecture: 'x64'
vcvars_arch: 'amd64'
msystem: ""
architecture: "x64"
vcvars_arch: "amd64"
qt_ver: 6
qt_host: windows
qt_arch: ''
qt_version: '6.4.0'
qt_modules: 'qt5compat qtimageformats'
qt_tools: ''
qt_host: "windows"
qt_arch: "win64_msvc2022_64"
qt_version: "6.8.1"
qt_modules: "qt5compat qtimageformats qtnetworkauth"
nscurl_tag: "v24.9.26.122"
nscurl_sha256: "AEE6C4BE3CB6455858E9C1EE4B3AFE0DB9960FA03FE99CCDEDC28390D57CCBB0"
- os: windows-2022
name: "Windows-MSVC-arm64"
msystem: ''
architecture: 'arm64'
vcvars_arch: 'amd64_arm64'
msystem: ""
architecture: "arm64"
vcvars_arch: "amd64_arm64"
qt_ver: 6
qt_host: windows
qt_arch: 'win64_msvc2019_arm64'
qt_version: '6.4.0'
qt_modules: 'qt5compat qtimageformats'
qt_tools: ''
qt_host: "windows"
qt_arch: "win64_msvc2022_arm64_cross_compiled"
qt_version: "6.8.1"
qt_modules: "qt5compat qtimageformats qtnetworkauth"
nscurl_tag: "v24.9.26.122"
nscurl_sha256: "AEE6C4BE3CB6455858E9C1EE4B3AFE0DB9960FA03FE99CCDEDC28390D57CCBB0"
- os: macos-12
- os: macos-14
name: macOS
macosx_deployment_target: 10.15
macosx_deployment_target: 11.0
qt_ver: 6
qt_host: mac
qt_arch: ''
qt_version: '6.3.0'
qt_modules: 'qt5compat qtimageformats'
qt_tools: ''
qt_arch: ""
qt_version: "6.8.1"
qt_modules: "qt5compat qtimageformats qtnetworkauth"
- os: macos-12
- os: macos-14
name: macOS-Legacy
macosx_deployment_target: 10.13
qt_ver: 5
qt_host: mac
qt_version: '5.15.2'
qt_modules: ''
qt_tools: ''
qt_version: "5.15.2"
qt_modules: "qtnetworkauth"
runs-on: ${{ matrix.os }}
@ -105,17 +123,18 @@ jobs:
INSTALL_APPIMAGE_DIR: "install-appdir"
BUILD_DIR: "build"
CCACHE_VAR: ""
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
steps:
##
# PREPARE
##
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
submodules: "true"
- name: 'Setup MSYS2'
- name: "Setup MSYS2"
if: runner.os == 'Windows' && matrix.msystem != ''
uses: msys2/setup-msys2@v2
with:
@ -135,6 +154,8 @@ jobs:
quazip-qt6:p
ccache:p
qt6-5compat:p
qt6-networkauth:p
cmark:p
- name: Force newer ccache
if: runner.os == 'Windows' && matrix.msystem == '' && inputs.build_type == 'Debug'
@ -143,10 +164,19 @@ jobs:
- name: Setup ccache
if: (runner.os != 'Windows' || matrix.msystem == '') && inputs.build_type == 'Debug'
uses: hendrikmuhs/ccache-action@v1.2.5
uses: hendrikmuhs/ccache-action@v1.2.17
with:
key: ${{ matrix.os }}-qt${{ matrix.qt_ver }}-${{ matrix.architecture }}
- name: Retrieve ccache cache (Windows MinGW-w64)
if: runner.os == 'Windows' && matrix.msystem != '' && inputs.build_type == 'Debug'
uses: actions/cache@v4.2.1
with:
path: '${{ github.workspace }}\.ccache'
key: ${{ matrix.os }}-mingw-w64-ccache-${{ github.run_id }}
restore-keys: |
${{ matrix.os }}-mingw-w64-ccache
- name: Setup ccache (Windows MinGW-w64)
if: runner.os == 'Windows' && matrix.msystem != '' && inputs.build_type == 'Debug'
shell: msys2 {0}
@ -163,15 +193,6 @@ jobs:
run: |
echo "CCACHE_VAR=ccache" >> $GITHUB_ENV
- name: Retrieve ccache cache (Windows MinGW-w64)
if: runner.os == 'Windows' && matrix.msystem != '' && inputs.build_type == 'Debug'
uses: actions/cache@v3.0.11
with:
path: '${{ github.workspace }}\.ccache'
key: ${{ matrix.os }}-mingw-w64
restore-keys: |
${{ matrix.os }}-mingw-w64
- name: Set short version
shell: bash
run: |
@ -182,7 +203,7 @@ jobs:
if: runner.os == 'Linux'
run: |
sudo apt-get -y update
sudo apt-get -y install ninja-build extra-cmake-modules scdoc
sudo apt-get -y install ninja-build extra-cmake-modules scdoc appstream libxcb-cursor-dev
- name: Install Dependencies (macOS)
if: runner.os == 'macOS'
@ -190,40 +211,37 @@ jobs:
brew update
brew install ninja extra-cmake-modules
- name: Install Qt (Linux)
if: runner.os == 'Linux' && matrix.qt_ver != 6
run: |
sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5
- name: Install host Qt (Windows MSVC arm64)
if: runner.os == 'Windows' && matrix.architecture == 'arm64'
uses: jurplel/install-qt-action@v3
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
host: 'windows'
target: 'desktop'
arch: ''
modules: ${{ matrix.qt_modules }}
tools: ${{ matrix.qt_tools }}
cache: ${{ inputs.is_qt_cached }}
cache-key-prefix: host-qt-arm64-windows
dir: ${{ github.workspace }}\HostQt
set-env: false
aqtversion: "==3.1.*"
py7zrversion: ">=0.20.2"
version: ${{ matrix.qt_version }}
host: "windows"
target: "desktop"
arch: ${{ matrix.qt_arch }}
modules: ${{ matrix.qt_modules }}
cache: ${{ inputs.is_qt_cached }}
cache-key-prefix: host-qt-arm64-windows
dir: ${{ github.workspace }}\HostQt
set-env: false
- name: Install Qt (macOS, Linux, Qt 6 & Windows MSVC)
if: runner.os == 'Linux' && matrix.qt_ver == 6 || runner.os == 'macOS' || (runner.os == 'Windows' && matrix.msystem == '')
uses: jurplel/install-qt-action@v3
- name: Install Qt (macOS, Linux & Windows MSVC)
if: matrix.msystem == ''
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
host: ${{ matrix.qt_host }}
target: 'desktop'
arch: ${{ matrix.qt_arch }}
modules: ${{ matrix.qt_modules }}
tools: ${{ matrix.qt_tools }}
cache: ${{ inputs.is_qt_cached }}
aqtversion: "==3.1.*"
py7zrversion: ">=0.20.2"
version: ${{ matrix.qt_version }}
target: "desktop"
arch: ${{ matrix.qt_arch }}
modules: ${{ matrix.qt_modules }}
tools: ${{ matrix.qt_tools }}
cache: ${{ inputs.is_qt_cached }}
- name: Install MSVC (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == ''
if: runner.os == 'Windows' # We want this for MinGW builds as well, as we need SignTool
uses: ilammy/msvc-dev-cmd@v1
with:
vsversion: 2022
@ -236,13 +254,21 @@ jobs:
wget "https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage"
wget "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
${{ github.workspace }}/.github/scripts/prepare_JREs.sh
wget "https://github.com/AppImageCommunity/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage"
sudo apt install libopengl0 libfuse2
- name: Add QT_HOST_PATH var (Windows MSVC arm64)
if: runner.os == 'Windows' && matrix.architecture == 'arm64'
run: |
echo "QT_HOST_PATH=${{ github.workspace }}\HostQt\Qt\${{ matrix.qt_version }}\msvc2019_64" >> $env:GITHUB_ENV
echo "QT_HOST_PATH=${{ github.workspace }}\HostQt\Qt\${{ matrix.qt_version }}\msvc2022_64" >> $env:GITHUB_ENV
- name: Setup java (macOS)
if: runner.os == 'macOS'
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
##
# CONFIGURE
##
@ -250,23 +276,23 @@ jobs:
- name: Configure CMake (macOS)
if: runner.os == 'macOS' && matrix.qt_ver == 6
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 }} -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -G Ninja
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_ENABLE_JAVA_DOWNLOADER=ON -DLauncher_BUILD_PLATFORM=official -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -G Ninja
- name: Configure CMake (macOS-Legacy)
if: runner.os == 'macOS' && matrix.qt_ver == 5
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 }} -DMACOSX_SPARKLE_UPDATE_PUBLIC_KEY="" -DMACOSX_SPARKLE_UPDATE_FEED_URL="" -G Ninja
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_ENABLE_JAVA_DOWNLOADER=ON -DLauncher_BUILD_PLATFORM=official -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DMACOSX_SPARKLE_UPDATE_PUBLIC_KEY="" -DMACOSX_SPARKLE_UPDATE_FEED_URL="" -DCMAKE_OSX_ARCHITECTURES="x86_64" -G Ninja
- name: Configure CMake (Windows MinGW-w64)
if: runner.os == 'Windows' && matrix.msystem != ''
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=6 -DCMAKE_OBJDUMP=/mingw64/bin/objdump.exe -G Ninja
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_ENABLE_JAVA_DOWNLOADER=ON -DLauncher_BUILD_PLATFORM=official -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=6 -DCMAKE_OBJDUMP=/mingw64/bin/objdump.exe -DLauncher_BUILD_ARTIFACT=${{ matrix.name }}-Qt${{ matrix.qt_ver }} -G Ninja
- name: Configure CMake (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == ''
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 }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreadedDLL" -A${{ matrix.architecture}} -DLauncher_FORCE_BUNDLED_LIBS=ON
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_ENABLE_JAVA_DOWNLOADER=ON -DLauncher_BUILD_PLATFORM=official -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreadedDLL" -A${{ matrix.architecture}} -DLauncher_FORCE_BUNDLED_LIBS=ON -DLauncher_BUILD_ARTIFACT=${{ matrix.name }}-Qt${{ matrix.qt_ver }}
# https://github.com/ccache/ccache/wiki/MS-Visual-Studio (I coudn't figure out the compiler prefix)
if ("${{ env.CCACHE_VAR }}")
{
@ -281,7 +307,7 @@ jobs:
- name: Configure CMake (Linux)
if: runner.os == 'Linux'
run: |
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=Linux -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=/usr -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_ENABLE_JAVA_DOWNLOADER=ON -DLauncher_BUILD_PLATFORM=official -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DLauncher_BUILD_ARTIFACT=Linux-Qt${{ matrix.qt_ver }} -G Ninja
##
# BUILD
@ -321,12 +347,26 @@ jobs:
- name: Test (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == '' && matrix.architecture != 'arm64'
run: |
ctest -E "^example64|example$" --test-dir build --output-on-failure -C ${{ inputs.build_type }}
ctest -E "^example64|example$" --test-dir build --output-on-failure -C ${{ inputs.build_type }}
##
# PACKAGE BUILDS
##
- name: Fetch codesign certificate (macOS)
if: runner.os == 'macOS'
run: |
echo '${{ secrets.APPLE_CODESIGN_CERT }}' | base64 --decode > codesign.p12
if [ -n '${{ secrets.APPLE_CODESIGN_ID }}' ]; then
security create-keychain -p '${{ secrets.APPLE_CODESIGN_PASSWORD }}' build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p '${{ secrets.APPLE_CODESIGN_PASSWORD }}' build.keychain
security import codesign.p12 -k build.keychain -P '${{ secrets.APPLE_CODESIGN_PASSWORD }}' -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k '${{ secrets.APPLE_CODESIGN_PASSWORD }}' build.keychain
else
echo ":warning: Using ad-hoc code signing for macOS, as certificate was not present." >> $GITHUB_STEP_SUMMARY
fi
- name: Package (macOS)
if: runner.os == 'macOS'
run: |
@ -334,17 +374,43 @@ 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"
if [ -n '${{ secrets.APPLE_CODESIGN_ID }}' ]; then
APPLE_CODESIGN_ID='${{ secrets.APPLE_CODESIGN_ID }}'
ENTITLEMENTS_FILE='../program_info/App.entitlements'
else
APPLE_CODESIGN_ID='-'
ENTITLEMENTS_FILE='../program_info/AdhocSignedApp.entitlements'
fi
sudo codesign --sign "$APPLE_CODESIGN_ID" --deep --force --entitlements "$ENTITLEMENTS_FILE" --options runtime "PrismLauncher.app/Contents/MacOS/prismlauncher"
mv "PrismLauncher.app" "Prism Launcher.app"
tar -czf ../PrismLauncher.tar.gz *
- name: Notarize (macOS)
if: runner.os == 'macOS'
run: |
cd ${{ env.INSTALL_DIR }}
if [ -n '${{ secrets.APPLE_NOTARIZE_PASSWORD }}' ]; then
ditto -c -k --sequesterRsrc --keepParent "Prism Launcher.app" ../PrismLauncher.zip
xcrun notarytool submit ../PrismLauncher.zip \
--wait --progress \
--apple-id '${{ secrets.APPLE_NOTARIZE_APPLE_ID }}' \
--team-id '${{ secrets.APPLE_NOTARIZE_TEAM_ID }}' \
--password '${{ secrets.APPLE_NOTARIZE_PASSWORD }}'
xcrun stapler staple "Prism Launcher.app"
else
echo ":warning: Skipping notarization as credentials are not present." >> $GITHUB_STEP_SUMMARY
fi
ditto -c -k --sequesterRsrc --keepParent "Prism Launcher.app" ../PrismLauncher.zip
- name: Make Sparkle signature (macOS)
if: matrix.name == 'macOS'
run: |
if [ '${{ secrets.SPARKLE_ED25519_KEY }}' != '' ]; then
brew install openssl@3
echo '${{ secrets.SPARKLE_ED25519_KEY }}' > ed25519-priv.pem
signature=$(/usr/local/opt/openssl@3/bin/openssl pkeyutl -sign -rawin -in ${{ github.workspace }}/PrismLauncher.tar.gz -inkey ed25519-priv.pem | openssl base64 | tr -d \\n)
signature=$(/opt/homebrew/opt/openssl@3/bin/openssl pkeyutl -sign -rawin -in ${{ github.workspace }}/PrismLauncher.zip -inkey ed25519-priv.pem | openssl base64 | tr -d \\n)
rm ed25519-priv.pem
cat >> $GITHUB_STEP_SUMMARY << EOF
### Artifact Information :information_source:
@ -362,17 +428,33 @@ jobs:
shell: msys2 {0}
run: |
cmake --install ${{ env.BUILD_DIR }}
touch ${{ env.INSTALL_DIR }}/manifest.txt
for l in $(find ${{ env.INSTALL_DIR }} -type f); do l=$(cygpath -u $l); l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_DIR }}/}; l=${l#./}; echo $l; done >> ${{ env.INSTALL_DIR }}/manifest.txt
- name: Package (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == ''
run: |
cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build_type }}
cd ${{ env.INSTALL_DIR }}
if ("${{ matrix.qt_ver }}" -eq "5")
{
Copy-Item D:/a/PrismLauncher/Qt/Tools/OpenSSL/Win_x86/bin/libcrypto-1_1.dll -Destination libcrypto-1_1.dll
Copy-Item D:/a/PrismLauncher/Qt/Tools/OpenSSL/Win_x86/bin/libssl-1_1.dll -Destination libssl-1_1.dll
cd ${{ github.workspace }}
Get-ChildItem ${{ env.INSTALL_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt
- name: Fetch codesign certificate (Windows)
if: runner.os == 'Windows'
shell: bash # yes, we are not using MSYS2 or PowerShell here
run: |
echo '${{ secrets.WINDOWS_CODESIGN_CERT }}' | base64 --decode > codesign.pfx
- name: Sign executable (Windows)
if: runner.os == 'Windows'
run: |
if (Get-Content ./codesign.pfx){
cd ${{ env.INSTALL_DIR }}
# We ship the exact same executable for portable and non-portable editions, so signing just once is fine
SignTool sign /fd sha256 /td sha256 /f ../codesign.pfx /p '${{ secrets.WINDOWS_CODESIGN_PASSWORD }}' /tr http://timestamp.digicert.com prismlauncher.exe prismlauncher_updater.exe prismlauncher_filelink.exe
} else {
":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY
}
- name: Package (Windows MinGW-w64, portable)
@ -381,6 +463,7 @@ jobs:
run: |
cp -r ${{ env.INSTALL_DIR }} ${{ env.INSTALL_PORTABLE_DIR }} # cmake install on Windows is slow, let's just copy instead
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable
for l in $(find ${{ env.INSTALL_PORTABLE_DIR }} -type f); do l=$(cygpath -u $l); l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_PORTABLE_DIR }}/}; l=${l#./}; echo $l; done >> ${{ env.INSTALL_PORTABLE_DIR }}/manifest.txt
- name: Package (Windows MSVC, portable)
if: runner.os == 'Windows' && matrix.msystem == ''
@ -388,196 +471,160 @@ jobs:
cp -r ${{ env.INSTALL_DIR }} ${{ env.INSTALL_PORTABLE_DIR }} # cmake install on Windows is slow, let's just copy instead
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable
Get-ChildItem ${{ env.INSTALL_PORTABLE_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_PORTABLE_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt
- name: Package (Windows, installer)
if: runner.os == 'Windows'
run: |
if ('${{ matrix.nscurl_tag }}') {
New-Item -Name NSISPlugins -ItemType Directory
Invoke-Webrequest https://github.com/negrutiu/nsis-nscurl/releases/download/${{ matrix.nscurl_tag }}/NScurl.zip -OutFile NSISPlugins\NScurl.zip
$nscurl_hash = Get-FileHash NSISPlugins\NScurl.zip -Algorithm Sha256 | Select-Object -ExpandProperty Hash
if ( $nscurl_hash -ne "${{ matrix.nscurl_sha256 }}") {
echo "::error:: NSCurl.zip sha256 mismatch"
exit 1
}
Expand-Archive -Path NSISPlugins\NScurl.zip -DestinationPath NSISPlugins\NScurl
}
cd ${{ env.INSTALL_DIR }}
makensis -NOCD "${{ github.workspace }}/${{ env.BUILD_DIR }}/program_info/win_install.nsi"
- name: Package (Linux)
if: runner.os == 'Linux'
- name: Sign installer (Windows)
if: runner.os == 'Windows'
run: |
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_DIR }}
cd ${{ env.INSTALL_DIR }}
tar --owner root --group root -czf ../PrismLauncher.tar.gz *
- name: Package (Linux, portable)
if: runner.os == 'Linux'
run: |
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_PORTABLE_DIR }}
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable
cd ${{ env.INSTALL_PORTABLE_DIR }}
tar -czf ../PrismLauncher-portable.tar.gz *
if (Get-Content ./codesign.pfx){
SignTool sign /fd sha256 /td sha256 /f codesign.pfx /p '${{ secrets.WINDOWS_CODESIGN_PASSWORD }}' /tr http://timestamp.digicert.com PrismLauncher-Setup.exe
} else {
":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY
}
- name: Package AppImage (Linux)
if: runner.os == 'Linux' && matrix.qt_ver != 5
shell: bash
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
cmake --install ${{ env.BUILD_DIR }} --prefix ${{ env.INSTALL_APPIMAGE_DIR }}/usr
export OUTPUT="PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage"
mv ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/metainfo/org.prismlauncher.PrismLauncher.metainfo.xml ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/metainfo/org.prismlauncher.PrismLauncher.appdata.xml
export "NO_APPSTREAM=1" # we have to skip appstream checking because appstream on ubuntu 20.04 is outdated
export OUTPUT="PrismLauncher-Linux-x86_64.AppImage"
chmod +x linuxdeploy-*.AppImage
mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-{8,17}-openjdk
mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib
mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines
cp -r ${{ github.workspace }}/JREs/jre8/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk
cp -r ${{ runner.workspace }}/Qt/${{ matrix.qt_version }}/gcc_64/plugins/iconengines/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines
cp -r ${{ github.workspace }}/JREs/jre17/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-17-openjdk
cp -r /home/runner/work/PrismLauncher/Qt/${{ matrix.qt_version }}/gcc_64/plugins/iconengines/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines
cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 ${{ env.INSTALL_APPIMAGE_DIR }}//usr/lib/
cp /usr/lib/x86_64-linux-gnu/libcrypto.so.* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/
cp /usr/lib/x86_64-linux-gnu/libOpenGL.so.0* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk/lib/amd64/server"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-8-openjdk/lib/amd64"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-17-openjdk/lib/server"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/jvm/java-17-openjdk/lib"
export LD_LIBRARY_PATH
chmod +x AppImageUpdate-x86_64.AppImage
cp AppImageUpdate-x86_64.AppImage ${{ env.INSTALL_APPIMAGE_DIR }}/usr/bin
export UPDATE_INFORMATION="gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|PrismLauncher-Linux-x86_64.AppImage.zsync"
if [ '${{ secrets.GPG_PRIVATE_KEY_ID }}' != '' ]; then
export SIGN=1
export SIGN_KEY=${{ secrets.GPG_PRIVATE_KEY_ID }}
mkdir -p ~/.gnupg/
echo "$GPG_PRIVATE_KEY" > ~/.gnupg/private.key
gpg --import ~/.gnupg/private.key
else
echo ":warning: Skipped code signing for Linux AppImage, as gpg key was not present." >> $GITHUB_STEP_SUMMARY
fi
./linuxdeploy-x86_64.AppImage --appdir ${{ env.INSTALL_APPIMAGE_DIR }} --output appimage --plugin qt -i ${{ env.INSTALL_APPIMAGE_DIR }}/usr/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg
mv "PrismLauncher-Linux-x86_64.AppImage" "PrismLauncher-Linux-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage"
- name: Package (Linux, portable)
if: runner.os == 'Linux'
run: |
cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_PORTABLE_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DENABLE_LTO=ON -DLauncher_BUILD_PLATFORM=official -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CCACHE_VAR }} -DLauncher_QT_VERSION_MAJOR=${{ matrix.qt_ver }} -DLauncher_BUILD_ARTIFACT=Linux-Qt${{ matrix.qt_ver }} -DINSTALL_BUNDLE=full -G Ninja
cmake --install ${{ env.BUILD_DIR }}
cmake --install ${{ env.BUILD_DIR }} --component portable
mkdir ${{ env.INSTALL_PORTABLE_DIR }}/lib
cp /lib/x86_64-linux-gnu/libbz2.so.1.0 ${{ env.INSTALL_PORTABLE_DIR }}/lib
cp /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 ${{ env.INSTALL_PORTABLE_DIR }}/lib
cp /usr/lib/x86_64-linux-gnu/libcrypto.so.* ${{ env.INSTALL_PORTABLE_DIR }}/lib
cp /usr/lib/x86_64-linux-gnu/libssl.so.* ${{ env.INSTALL_PORTABLE_DIR }}/lib
cp /usr/lib/x86_64-linux-gnu/libffi.so.*.* ${{ env.INSTALL_PORTABLE_DIR }}/lib
mv ${{ env.INSTALL_PORTABLE_DIR }}/bin/*.so* ${{ env.INSTALL_PORTABLE_DIR }}/lib
for l in $(find ${{ env.INSTALL_PORTABLE_DIR }} -type f); do l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_PORTABLE_DIR }}/}; l=${l#./}; echo $l; done > ${{ env.INSTALL_PORTABLE_DIR }}/manifest.txt
cd ${{ env.INSTALL_PORTABLE_DIR }}
tar -czf ../PrismLauncher-portable.tar.gz *
##
# UPLOAD BUILDS
##
- name: Upload binary tarball (macOS)
if: runner.os == 'macOS'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ matrix.name }}-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher.tar.gz
path: PrismLauncher.zip
- name: Upload binary zip (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ matrix.name }}-${{ env.VERSION }}-${{ inputs.build_type }}
path: ${{ env.INSTALL_DIR }}/**
- name: Upload binary zip (Windows, portable)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ matrix.name }}-Portable-${{ env.VERSION }}-${{ inputs.build_type }}
path: ${{ env.INSTALL_PORTABLE_DIR }}/**
- name: Upload installer (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ matrix.name }}-Setup-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher-Setup.exe
- name: Upload binary tarball (Linux, Qt 5)
if: runner.os == 'Linux' && matrix.qt_ver != 6
uses: actions/upload-artifact@v3
with:
name: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher.tar.gz
- name: Upload binary tarball (Linux, portable, Qt 5)
if: runner.os == 'Linux' && matrix.qt_ver != 6
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ runner.os }}-Portable-${{ env.VERSION }}-${{ inputs.build_type }}
name: PrismLauncher-${{ runner.os }}-Qt5-Portable-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher-portable.tar.gz
- name: Upload binary tarball (Linux, Qt 6)
if: runner.os == 'Linux' && matrix.qt_ver !=5
uses: actions/upload-artifact@v3
with:
name: PrismLauncher-${{ runner.os }}-Qt6-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher.tar.gz
- name: Upload binary tarball (Linux, portable, Qt 6)
if: runner.os == 'Linux' && matrix.qt_ver != 5
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ runner.os }}-Qt6-Portable-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher-portable.tar.gz
- name: Upload AppImage (Linux)
if: runner.os == 'Linux' && matrix.qt_ver != 5
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
path: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
snap:
runs-on: ubuntu-20.04
steps:
- name: Checkout
if: inputs.build_type == 'Debug'
uses: actions/checkout@v3
- name: Upload AppImage Zsync (Linux)
if: runner.os == 'Linux' && matrix.qt_ver != 5
uses: actions/upload-artifact@v4
with:
submodules: 'true'
- name: Set short version
shell: bash
if: inputs.build_type == 'Debug'
name: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage.zsync
path: PrismLauncher-Linux-x86_64.AppImage.zsync
- name: ccache stats (Windows MinGW-w64)
if: runner.os == 'Windows' && matrix.msystem != ''
shell: msys2 {0}
run: |
ver_short=`git rev-parse --short HEAD`
echo "VERSION=$ver_short" >> $GITHUB_ENV
- name: Package Snap (Linux)
id: snapcraft
if: inputs.build_type == 'Debug'
uses: snapcore/action-build@v1
- name: Upload Snap (Linux)
if: inputs.build_type == 'Debug'
uses: actions/upload-artifact@v3
with:
name: prismlauncher_${{ env.VERSION }}_amd64.snap
path: ${{ steps.snapcraft.outputs.snap }}
flatpak:
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:kde-5.15-22.08
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@v3
if: inputs.build_type == 'Debug'
with:
submodules: 'true'
- name: Build Flatpak (Linux)
if: inputs.build_type == 'Debug'
uses: flatpak/flatpak-github-actions/flatpak-builder@v4
with:
bundle: "Prism Launcher.flatpak"
manifest-path: flatpak/org.prismlauncher.PrismLauncher.yml
cache-key: flatpak-${{ github.sha }}-x86_64
nix:
runs-on: ubuntu-latest
strategy:
matrix:
package:
- prismlauncher
- prismlauncher-qt5
steps:
- name: Clone repository
if: inputs.build_type == 'Debug'
uses: actions/checkout@v3
with:
submodules: 'true'
- name: Install nix
if: inputs.build_type == 'Debug'
uses: cachix/install-nix-action@v18
with:
install_url: https://nixos.org/nix/install
extra_nix_config: |
auto-optimise-store = true
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v12
if: inputs.build_type == 'Debug'
with:
name: prismlauncher
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build
if: inputs.build_type == 'Debug'
run: nix build .#${{ matrix.package }} --print-build-logs
ccache -s

View file

@ -8,12 +8,12 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
config-file: ./.github/codeql/codeql-config.yml
queries: security-and-quality
@ -23,7 +23,7 @@ jobs:
run:
sudo apt-get -y update
sudo apt-get -y install ninja-build extra-cmake-modules scdoc qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5
sudo apt-get -y install ninja-build extra-cmake-modules scdoc qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5 libqt5networkauth5 libqt5networkauth5-dev
- name: Configure and Build
run: |
@ -32,4 +32,4 @@ jobs:
cmake --build build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

62
.github/workflows/flatpak.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: Flatpak
on:
push:
paths-ignore:
- "**.md"
- "**/LICENSE"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
- "nix/**"
# We don't do anything with these artifacts on releases. They go to Flathub
tags-ignore:
- "*"
pull_request:
paths-ignore:
- "**.md"
- "**/LICENSE"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
- "nix/**"
workflow_dispatch:
permissions:
contents: read
jobs:
build:
name: Build (${{ matrix.arch }})
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
arch: x86_64
- os: ubuntu-22.04-arm
arch: aarch64
runs-on: ${{ matrix.os }}
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.8
options: --privileged
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Set short version
shell: bash
run: |
echo "VERSION=${GITHUB_SHA::7}" >> "$GITHUB_ENV"
- name: Build Flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-Flatpak.flatpak
manifest-path: flatpak/org.prismlauncher.PrismLauncher.yml
arch: ${{ matrix.arch }}

90
.github/workflows/nix.yml vendored Normal file
View file

@ -0,0 +1,90 @@
name: Nix
on:
push:
paths-ignore:
- "**.md"
- "**/LICENSE"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
- "flatpak/**"
pull_request_target:
paths-ignore:
- "**.md"
- "**/LICENSE"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
- "flatpak/**"
workflow_dispatch:
permissions:
contents: read
env:
DEBUG: ${{ github.ref_type != 'tag' }}
USE_DETERMINATE: ${{ github.event_name == 'pull_request' }}
jobs:
build:
name: Build (${{ matrix.system }})
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
system: x86_64-linux
- os: ubuntu-22.04-arm
system: aarch64-linux
- os: macos-13
system: x86_64-darwin
- os: macos-14
system: aarch64-darwin
runs-on: ${{ matrix.os }}
permissions:
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v16
with:
determinate: ${{ env.USE_DETERMINATE }}
# For PRs
- name: Setup Nix Magic Cache
if: ${{ env.USE_DETERMINATE }}
uses: DeterminateSystems/flakehub-cache-action@v1
# For in-tree builds
- name: Setup Cachix
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
uses: cachix/cachix-action@v15
with:
name: prismlauncher
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
- name: Run Flake checks
run: |
nix flake check --print-build-logs --show-trace
- name: Build debug package
if: ${{ env.DEBUG }}
run: |
nix build \
--no-link --print-build-logs --print-out-paths \
.#prismlauncher-debug >> "$GITHUB_STEP_SUMMARY"
- name: Build release package
if: ${{ !env.DEBUG }}
run: |
nix build \
--no-link --print-build-logs --print-out-paths \
.#prismlauncher >> "$GITHUB_STEP_SUMMARY"

45
.github/workflows/publish.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: Publish
on:
release:
types: [ released ]
permissions:
contents: read
jobs:
flakehub:
name: FlakeHub
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Install Nix
uses: cachix/install-nix-action@v30
- name: Publish on FlakeHub
uses: determinatesystems/flakehub-push@v5
with:
visibility: "public"
winget:
name: Winget
runs-on: windows-latest
steps:
- name: Publish on Winget
uses: vedantmgoyal2009/winget-releaser@v2
with:
identifier: PrismLauncher.PrismLauncher
version: ${{ github.event.release.tag_name }}
installers-regex: 'PrismLauncher-Windows-MSVC(:?-arm64|-Legacy)?-Setup-.+\.exe$'
token: ${{ secrets.WINGET_TOKEN }}

29
.github/workflows/stale.yml vendored Normal file
View file

@ -0,0 +1,29 @@
name: Stale
on:
schedule:
# run weekly on sunday
- cron: "0 0 * * 0"
workflow_dispatch:
jobs:
label:
name: Label issues and PRs
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
days-before-stale: 60
days-before-close: -1 # Don't close anything
exempt-issue-labels: rfc,nostale,help wanted
exempt-all-milestones: true
exempt-all-assignees: true
operations-per-run: 1000
stale-issue-label: inactive
stale-pr-label: inactive

View file

@ -3,26 +3,25 @@ name: Build Application
on:
push:
branches-ignore:
- 'renovate/**'
- "renovate/**"
paths-ignore:
- '**.md'
- '**/LICENSE'
- 'flake.lock'
- 'packages/**'
- '.github/ISSUE_TEMPLATE/**'
- '.markdownlint**'
- "**.md"
- "**/LICENSE"
- "flake.lock"
- "packages/**"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
pull_request:
paths-ignore:
- '**.md'
- '**/LICENSE'
- 'flake.lock'
- 'packages/**'
- '.github/ISSUE_TEMPLATE/**'
- '.markdownlint**'
- "**.md"
- "**/LICENSE"
- "flake.lock"
- "packages/**"
- ".github/ISSUE_TEMPLATE/**"
- ".markdownlint**"
workflow_dispatch:
jobs:
build_debug:
name: Build Debug
uses: ./.github/workflows/build.yml
@ -31,4 +30,13 @@ jobs:
is_qt_cached: true
secrets:
SPARKLE_ED25519_KEY: ${{ secrets.SPARKLE_ED25519_KEY }}
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
WINDOWS_CODESIGN_CERT: ${{ secrets.WINDOWS_CODESIGN_CERT }}
WINDOWS_CODESIGN_PASSWORD: ${{ secrets.WINDOWS_CODESIGN_PASSWORD }}
APPLE_CODESIGN_CERT: ${{ secrets.APPLE_CODESIGN_CERT }}
APPLE_CODESIGN_PASSWORD: ${{ secrets.APPLE_CODESIGN_PASSWORD }}
APPLE_CODESIGN_ID: ${{ secrets.APPLE_CODESIGN_ID }}
APPLE_NOTARIZE_APPLE_ID: ${{ secrets.APPLE_NOTARIZE_APPLE_ID }}
APPLE_NOTARIZE_TEAM_ID: ${{ secrets.APPLE_NOTARIZE_TEAM_ID }}
APPLE_NOTARIZE_PASSWORD: ${{ secrets.APPLE_NOTARIZE_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PRIVATE_KEY_ID: ${{ secrets.GPG_PRIVATE_KEY_ID }}

View file

@ -3,10 +3,9 @@ name: Build Application and Make Release
on:
push:
tags:
- '*'
- "*"
jobs:
build_release:
name: Build Release
uses: ./.github/workflows/build.yml
@ -15,6 +14,16 @@ jobs:
is_qt_cached: false
secrets:
SPARKLE_ED25519_KEY: ${{ secrets.SPARKLE_ED25519_KEY }}
WINDOWS_CODESIGN_CERT: ${{ secrets.WINDOWS_CODESIGN_CERT }}
WINDOWS_CODESIGN_PASSWORD: ${{ secrets.WINDOWS_CODESIGN_PASSWORD }}
APPLE_CODESIGN_CERT: ${{ secrets.APPLE_CODESIGN_CERT }}
APPLE_CODESIGN_PASSWORD: ${{ secrets.APPLE_CODESIGN_PASSWORD }}
APPLE_CODESIGN_ID: ${{ secrets.APPLE_CODESIGN_ID }}
APPLE_NOTARIZE_APPLE_ID: ${{ secrets.APPLE_NOTARIZE_APPLE_ID }}
APPLE_NOTARIZE_TEAM_ID: ${{ secrets.APPLE_NOTARIZE_TEAM_ID }}
APPLE_NOTARIZE_PASSWORD: ${{ secrets.APPLE_NOTARIZE_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PRIVATE_KEY_ID: ${{ secrets.GPG_PRIVATE_KEY_ID }}
create_release:
needs: build_release
@ -23,12 +32,12 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
path: 'PrismLauncher-source'
submodules: "true"
path: "PrismLauncher-source"
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
- name: Grab and store version
run: |
tag_name=$(echo ${{ github.ref }} | grep -oE "[^/]+$")
@ -37,14 +46,13 @@ jobs:
run: |
mv ${{ github.workspace }}/PrismLauncher-source PrismLauncher-${{ env.VERSION }}
mv PrismLauncher-Linux-Qt6-Portable*/PrismLauncher-portable.tar.gz PrismLauncher-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz
mv PrismLauncher-Linux-Qt6*/PrismLauncher.tar.gz PrismLauncher-Linux-Qt6-${{ env.VERSION }}.tar.gz
mv PrismLauncher-Linux-Portable*/PrismLauncher-portable.tar.gz PrismLauncher-Linux-Portable-${{ env.VERSION }}.tar.gz
mv PrismLauncher-Linux*/PrismLauncher.tar.gz PrismLauncher-Linux-${{ env.VERSION }}.tar.gz
mv PrismLauncher-*.AppImage/PrismLauncher-*.AppImage PrismLauncher-Linux-${{ env.VERSION }}-x86_64.AppImage
mv PrismLauncher-macOS-Legacy*/PrismLauncher.tar.gz PrismLauncher-macOS-Legacy-${{ env.VERSION }}.tar.gz
mv PrismLauncher-macOS*/PrismLauncher.tar.gz PrismLauncher-macOS-${{ env.VERSION }}.tar.gz
mv PrismLauncher-Linux-Qt5-Portable*/PrismLauncher-portable.tar.gz PrismLauncher-Linux-Qt5-Portable-${{ env.VERSION }}.tar.gz
mv PrismLauncher-*.AppImage/PrismLauncher-*.AppImage PrismLauncher-Linux-x86_64.AppImage
mv PrismLauncher-*.AppImage.zsync/PrismLauncher-*.AppImage.zsync PrismLauncher-Linux-x86_64.AppImage.zsync
mv PrismLauncher-macOS-Legacy*/PrismLauncher.zip PrismLauncher-macOS-Legacy-${{ env.VERSION }}.zip
mv PrismLauncher-macOS*/PrismLauncher.zip PrismLauncher-macOS-${{ env.VERSION }}.zip
tar -czf PrismLauncher-${{ env.VERSION }}.tar.gz PrismLauncher-${{ env.VERSION }}
tar --exclude='.git' -czf PrismLauncher-${{ env.VERSION }}.tar.gz PrismLauncher-${{ env.VERSION }}
for d in PrismLauncher-Windows-MSVC*; do
cd "${d}" || continue
@ -74,32 +82,27 @@ jobs:
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ github.ref }}
name: Prism Launcher ${{ env.VERSION }}
draft: true
prerelease: false
files: |
PrismLauncher-Linux-${{ env.VERSION }}.tar.gz
PrismLauncher-Linux-Portable-${{ env.VERSION }}.tar.gz
PrismLauncher-Linux-${{ env.VERSION }}-x86_64.AppImage
PrismLauncher-Linux-Qt6-${{ env.VERSION }}.tar.gz
PrismLauncher-Linux-Qt5-Portable-${{ env.VERSION }}.tar.gz
PrismLauncher-Linux-x86_64.AppImage
PrismLauncher-Linux-x86_64.AppImage.zsync
PrismLauncher-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz
PrismLauncher-Windows-MinGW-w64-${{ env.VERSION }}.zip
PrismLauncher-Windows-MinGW-w64-Portable-${{ env.VERSION }}.zip
PrismLauncher-Windows-MinGW-w64-Setup-${{ env.VERSION }}.exe
PrismLauncher-Windows-MSVC-Legacy-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-Legacy-Portable-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-Legacy-Setup-${{ env.VERSION }}.exe
PrismLauncher-Windows-MSVC-arm64-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-arm64-Portable-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-arm64-Setup-${{ env.VERSION }}.exe
PrismLauncher-Windows-MSVC-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-Portable-${{ env.VERSION }}.zip
PrismLauncher-Windows-MSVC-Setup-${{ env.VERSION }}.exe
PrismLauncher-macOS-${{ env.VERSION }}.tar.gz
PrismLauncher-macOS-Legacy-${{ env.VERSION }}.tar.gz
PrismLauncher-macOS-${{ env.VERSION }}.zip
PrismLauncher-macOS-Legacy-${{ env.VERSION }}.zip
PrismLauncher-${{ env.VERSION }}.tar.gz

30
.github/workflows/update-flake.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: Update Flake Lockfile
on:
schedule:
# run weekly on sunday
- cron: "0 0 * * 0"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
update-flake:
if: github.repository == 'PrismLauncher/PrismLauncher'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- uses: DeterminateSystems/update-flake-lock@v24
with:
commit-msg: "chore(nix): update lockfile"
pr-title: "chore(nix): update lockfile"
pr-labels: |
Linux
packaging
simple change
changelog:omit

View file

@ -1,15 +0,0 @@
name: Publish to WinGet
on:
release:
types: [released]
jobs:
publish:
runs-on: windows-latest
steps:
- uses: vedantmgoyal2009/winget-releaser@v1
with:
identifier: PrismLauncher.PrismLauncher
version: ${{ github.event.release.tag_name }}
installers-regex: 'PrismLauncher-Windows-Setup-.+\.exe$'
token: ${{ secrets.WINGET_TOKEN }}

8
.gitignore vendored
View file

@ -11,10 +11,14 @@ html/
*.pro.user
CMakeLists.txt.user
CMakeLists.txt.user.*
CMakeSettings.json
/CMakeFiles
CMakeCache.txt
/.project
/.settings
/.idea
/.vscode
/.vs
cmake-build-*/
Debug
@ -42,7 +46,9 @@ run/
.cache/
# Nix/NixOS
result/
.direnv/
.pre-commit-config.yaml
result
# Flatpak
.flatpak-builder

6
.gitmodules vendored
View file

@ -16,3 +16,9 @@
[submodule "libraries/extra-cmake-modules"]
path = libraries/extra-cmake-modules
url = https://github.com/KDE/extra-cmake-modules
[submodule "libraries/cmark"]
path = libraries/cmark
url = https://github.com/commonmark/cmark.git
[submodule "flatpak/shared-modules"]
path = flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git

View file

@ -1,53 +0,0 @@
# Build Instructions
Full build instructions will be available on [the website](https://prismlauncher.org/wiki/development/build-instructions/).
If you would like to contribute or fix an issue with the Build instructions you will be able to do so [here](https://github.com/PrismLauncher/website/blob/master/src/wiki/development/build-instructions.md).
## Getting the source
Clone the source code using git, and grab all the submodules. This is generic for all platforms you want to build on.
```
git clone --recursive https://github.com/PrismLauncher/PrismLauncher
cd PrismLauncher
```
## Linux
This guide will mostly mention dependant packages by their Debian naming and commands are done by a user in the sudoers file.
### Dependencies
- A C++ compiler capable of building C++17 code (can be found in the package `build-essential`).
- Qt Development tools 5.12 or newer (on Debian 11 or Debian-based distributions, `qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5`).
- `cmake` 3.15 or newer.
- `extra-cmake-modules`.
- zlib (`zlib1g-dev` on Debian 11 or Debian-based distributions).
- Java Development Kit (Java JDK) (`openjdk-17-jdk` on Debian 11 or Debian-based distributions).
- Mesa GL headers (`libgl1-mesa-dev` on Debian 11 or Debian-based distributions).
- (Optional) `scdoc` to generate man pages.
In conclusion, to check if all you need is installed (including optional):
```
sudo apt install build-essential qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5 cmake extra-cmake-modules zlib1g-dev openjdk-17-jdk libgl1-mesa-dev scdoc
```
### Compiling
#### Building and installing on the system
This is usually the suggested way to build the client.
```
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr" -DENABLE_LTO=ON
cmake --build build -j$(nproc)
sudo cmake --install build
```
#### Building a portable binary
```
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
cmake --build build -j$(nproc)
cmake --install build
cmake --install build --component portable
```

View file

@ -28,19 +28,35 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)
include(GenerateExportHeader)
if(MSVC)
# Use /W4 as /Wall includes unnesserey warnings such as added padding to structs
# /permissive- specify standards-conforming compiler behavior, also enabled by Qt6, default on with std:c++20
# /GS Adds buffer security checks, default on but incuded anyway to mirror gcc's fstack-protector flag
set(CMAKE_CXX_FLAGS "/W4 /permissive- /GS ${CMAKE_CXX_FLAGS}")
# /permissive- specify standards-conforming compiler behavior, also enabled by Qt6, default on with std:c++20
# Use /W4 as /Wall includes unnesserey warnings such as added padding to structs
set(CMAKE_CXX_FLAGS "/GS /permissive- /W4 ${CMAKE_CXX_FLAGS}")
# /EHs Enables stack unwind semantics for standard C++ exceptions to ensure stackframes are unwound
# and object deconstructors are called when an exception is caught.
# without it memory leaks and a warning is printed
# /EHc tells the compiler to assume that functions declared as extern "C" never throw a C++ exception
# This appears to not always be a defualt compiler option in CMAKE
set(CMAKE_CXX_FLAGS "/EHsc ${CMAKE_CXX_FLAGS}")
# LINK accepts /SUBSYSTEM whics sets if we are a WINDOWS (gui) or a CONSOLE programs
# This implicitly selects an entrypoint specific to the subsystem selected
# qtmain/QtEntryPointLib provides the correct entrypoint (wWinMain) for gui programs
# Additinaly LINK autodetects we use a GUI so we can omit /SUBSYSTEM
# This allows tests to still use have console without using seperate linker flags
# /LTCG allows for linking wholy optimizated programs
# /MANIFEST:NO disables generating a manifest file, we instead provide our own
# /STACK sets the stack reserve size, ATL's pack list needs 3-4 MiB as of November 2022, provide 8 MiB
set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO /STACK:8388608 ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "/LTCG /MANIFEST:NO /STACK:8388608 ${CMAKE_EXE_LINKER_FLAGS}")
# /GL enables whole program optimizations
# /Gw helps reduce binary size
# /Gy allows the compiler to package individual functions
# /guard:cf enables control flow guard
foreach(lang C CXX)
set("CMAKE_${lang}_FLAGS_RELEASE" "/GL /Gw /Gy /guard:cf")
endforeach()
# See https://github.com/ccache/ccache/issues/1040
# Note, CMake 3.25 replaces this with CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
@ -62,6 +78,13 @@ else()
# ATL's pack list needs more than the default 1 Mib stack on windows
if(WIN32)
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--stack,8388608 ${CMAKE_EXE_LINKER_FLAGS}")
# -ffunction-sections and -fdata-sections help reduce binary size
# -mguard=cf enables Control Flow Guard
# TODO: Look into -gc-sections to further reduce binary size
foreach(lang C CXX)
set("CMAKE_${lang}_FLAGS_RELEASE" "-ffunction-sections -fdata-sections -mguard=cf")
endforeach()
endif()
endif()
@ -76,6 +99,39 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTOML_ENABLE_FLOAT16=0")
# set CXXFLAGS for build targets
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -D_FORTIFY_SOURCE=2 ${CMAKE_CXX_FLAGS_RELEASE}")
option(DEBUG_ADDRESS_SANITIZER "Enable Address Sanitizer in Debug builds" OFF)
# If this is a Debug build turn on address sanitiser
if ((CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") AND DEBUG_ADDRESS_SANITIZER)
message(STATUS "Address Sanitizer enabled for Debug builds, Turn it off with -DDEBUG_ADDRESS_SANITIZER=off")
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
# using clang with clang-cl front end
message(STATUS "Address Sanitizer available on Clang MSVC frontend")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address /Oy-")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address /Oy-")
else()
# AppleClang and Clang
message(STATUS "Address Sanitizer available on Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize-recover=null")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize-recover=null")
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# GCC
message(STATUS "Address Sanitizer available on GCC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize-recover")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize-recover")
link_libraries("asan")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
message(STATUS "Address Sanitizer available on MSVC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address /Oy-")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address /Oy-")
else()
message(STATUS "Address Sanitizer not available on compiler ${CMAKE_CXX_COMPILER_ID}")
endif()
endif()
option(ENABLE_LTO "Enable Link Time Optimization" off)
if(ENABLE_LTO)
@ -127,9 +183,11 @@ endif()
set(Launcher_NEWS_RSS_URL "https://prismlauncher.org/feed/feed.xml" CACHE STRING "URL to fetch Prism Launcher's news RSS feed from.")
set(Launcher_NEWS_OPEN_URL "https://prismlauncher.org/news" CACHE STRING "URL that gets opened when the user clicks 'More News'")
set(Launcher_HELP_URL "https://prismlauncher.org/wiki/help-pages/%1" CACHE STRING "URL (with arg %1 to be substituted with page-id) that gets opened when the user requests help")
set(Launcher_LOGIN_CALLBACK_URL "https://prismlauncher.org/successful-login" CACHE STRING "URL that gets opened when the user successfully logins.")
set(Launcher_FMLLIBS_BASE_URL "https://files.prismlauncher.org/fmllibs/" CACHE STRING "URL for FML Libraries.")
######## Set version numbers ########
set(Launcher_VERSION_MAJOR 6)
set(Launcher_VERSION_MAJOR 10)
set(Launcher_VERSION_MINOR 0)
set(Launcher_VERSION_NAME "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}")
@ -137,10 +195,13 @@ set(Launcher_VERSION_NAME4 "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.
set(Launcher_VERSION_NAME4_COMMA "${Launcher_VERSION_MAJOR},${Launcher_VERSION_MINOR},0,0")
# Build platform.
set(Launcher_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used to display in the about dialog.")
set(Launcher_BUILD_PLATFORM "unknown" CACHE STRING "A short string identifying the platform that this build was built for. Only used to display in the about dialog.")
# Channel list URL
set(Launcher_UPDATER_BASE "" CACHE STRING "Base URL for the updater.")
# Github repo URL with releases for updater
set(Launcher_UPDATER_GITHUB_REPO "https://github.com/PrismLauncher/PrismLauncher" CACHE STRING "Base github URL for the updater.")
# Name to help updater identify valid artifacts
set(Launcher_BUILD_ARTIFACT "" CACHE STRING "Artifact name to help the updater identify valid artifacts.")
# The metadata server
set(Launcher_META_URL "https://meta.prismlauncher.org/v1/" CACHE STRING "URL to fetch Launcher's meta files from.")
@ -153,19 +214,45 @@ set(Launcher_BUG_TRACKER_URL "https://github.com/PrismLauncher/PrismLauncher/iss
# Translations Platform URL
set(Launcher_TRANSLATIONS_URL "https://hosted.weblate.org/projects/prismlauncher/launcher/" CACHE STRING "URL for the translations platform.")
set(Launcher_TRANSLATION_FILES_URL "https://i18n.prismlauncher.org/" CACHE STRING "URL for the translations files.")
# Matrix Space
set(Launcher_MATRIX_URL "https://matrix.to/#/#prismlauncher:matrix.org" CACHE STRING "URL to the Matrix Space")
set(Launcher_MATRIX_URL "https://prismlauncher.org/matrix" CACHE STRING "URL to the Matrix Space")
# Discord URL
set(Launcher_DISCORD_URL "https://discord.gg/prismlauncher" CACHE STRING "URL for the Discord guild.")
set(Launcher_DISCORD_URL "https://prismlauncher.org/discord" CACHE STRING "URL for the Discord guild.")
# Subreddit URL
set(Launcher_SUBREDDIT_URL "https://www.reddit.com/r/PrismLauncher/" CACHE STRING "URL for the subreddit.")
set(Launcher_SUBREDDIT_URL "https://prismlauncher.org/reddit" CACHE STRING "URL for the subreddit.")
# Builds
set(Launcher_FORCE_BUNDLED_LIBS OFF CACHE BOOL "Prevent using system libraries, if they are available as submodules")
set(Launcher_QT_VERSION_MAJOR "5" CACHE STRING "Major Qt version to build against")
set(Launcher_QT_VERSION_MAJOR "6" CACHE STRING "Major Qt version to build against")
# Java downloader
set(Launcher_ENABLE_JAVA_DOWNLOADER_DEFAULT ON)
# Although we recommend enabling this, we cannot guarantee binary compatibility on
# differing Linux/BSD/etc distributions. Downstream packagers should be explicitly opt-ing into this
# feature if they know it will work with their distribution.
if(UNIX AND NOT APPLE)
set(Launcher_ENABLE_JAVA_DOWNLOADER_DEFAULT OFF)
endif()
# Java downloader
option(Launcher_ENABLE_JAVA_DOWNLOADER "Build the java downloader feature" ${Launcher_ENABLE_JAVA_DOWNLOADER_DEFAULT})
# Native libraries
if(UNIX AND APPLE)
set(Launcher_GLFW_LIBRARY_NAME "libglfw.dylib" CACHE STRING "Name of native glfw library")
set(Launcher_OPENAL_LIBRARY_NAME "libopenal.dylib" CACHE STRING "Name of native openal library")
elseif(UNIX)
set(Launcher_GLFW_LIBRARY_NAME "libglfw.so" CACHE STRING "Name of native glfw library")
set(Launcher_OPENAL_LIBRARY_NAME "libopenal.so" CACHE STRING "Name of native openal library")
elseif(WIN32)
set(Launcher_GLFW_LIBRARY_NAME "glfw.dll" CACHE STRING "Name of native glfw library")
set(Launcher_OPENAL_LIBRARY_NAME "OpenAL.dll" CACHE STRING "Name of native openal library")
endif()
# API Keys
# NOTE: These API keys are here for convenience. If you rebrand this software or intend to break the terms of service
@ -184,6 +271,11 @@ set(Launcher_MSA_CLIENT_ID "c36a9fb6-4f2a-41ff-90bd-ae7cc92031eb" CACHE STRING "
# This key was issued specifically for Prism Launcher
set(Launcher_CURSEFORGE_API_KEY "$2a$10$wuAJuNZuted3NORVmpgUC.m8sI.pv1tOPKZyBgLFGjxFp/br0lZCC" CACHE STRING "API key for the CurseForge platform")
set(Launcher_COMPILER_NAME ${CMAKE_CXX_COMPILER_ID})
set(Launcher_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
set(Launcher_COMPILER_TARGET_SYSTEM ${CMAKE_SYSTEM_NAME})
set(Launcher_COMPILER_TARGET_SYSTEM_VERSION ${CMAKE_SYSTEM_VERSION})
set(Launcher_COMPILER_TARGET_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR})
#### Check the current Git commit and branch
include(GetGitRevisionDescription)
@ -199,15 +291,23 @@ set(Launcher_BUILD_TIMESTAMP "${TODAY}")
################################ 3rd Party Libs ################################
if(NOT Launcher_FORCE_BUNDLED_LIBS)
# Successive configurations of cmake without cleaning the build dir will cause zlib fallback to fail due to cached values
# Record when fallback triggered and skip this find_package
if(NOT Launcher_FORCE_BUNDLED_LIBS AND NOT FORCE_BUNDLED_ZLIB)
find_package(ZLIB QUIET)
endif()
if(NOT ZLIB_FOUND)
set(FORCE_BUNDLED_ZLIB TRUE CACHE BOOL "")
mark_as_advanced(FORCE_BUNDLED_ZLIB)
endif()
# Find the required Qt parts
include(QtVersionlessBackport)
if(Launcher_QT_VERSION_MAJOR EQUAL 5)
set(QT_VERSION_MAJOR 5)
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Concurrent Network Test Xml)
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Concurrent Network Test Xml NetworkAuth)
find_package(Qt5 COMPONENTS DBus)
list(APPEND Launcher_QT_DBUS Qt5::DBus)
if(NOT Launcher_FORCE_BUNDLED_LIBS)
find_package(QuaZip-Qt5 1.3 QUIET)
@ -221,7 +321,9 @@ if(Launcher_QT_VERSION_MAJOR EQUAL 5)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUNICODE -D_UNICODE")
elseif(Launcher_QT_VERSION_MAJOR EQUAL 6)
set(QT_VERSION_MAJOR 6)
find_package(Qt6 REQUIRED COMPONENTS Core CoreTools Widgets Concurrent Network Test Xml Core5Compat)
find_package(Qt6 REQUIRED COMPONENTS Core CoreTools Widgets Concurrent Network Test Xml Core5Compat NetworkAuth)
find_package(Qt6 COMPONENTS DBus)
list(APPEND Launcher_QT_DBUS Qt6::DBus)
list(APPEND Launcher_QT_LIBS Qt6::Core5Compat)
if(NOT Launcher_FORCE_BUNDLED_LIBS)
@ -257,8 +359,13 @@ if(NOT Launcher_FORCE_BUNDLED_LIBS)
# Find ghc_filesystem
find_package(ghc_filesystem QUIET)
# Find cmark
find_package(cmark QUIET)
endif()
include(ECMQtDeclareLoggingCategory)
####################################### Program Info #######################################
set(Launcher_APP_BINARY_NAME "prismlauncher" CACHE STRING "Name of the Launcher binary")
@ -266,6 +373,13 @@ add_subdirectory(program_info)
####################################### Install layout #######################################
set(Launcher_ENABLE_UPDATER NO)
set(Launcher_BUILD_UPDATER NO)
if (NOT APPLE AND (NOT Launcher_UPDATER_GITHUB_REPO STREQUAL "" AND NOT Launcher_BUILD_ARTIFACT STREQUAL ""))
set(Launcher_BUILD_UPDATER YES)
endif()
if(NOT (UNIX AND APPLE))
# Install "portable.txt" if selected component is "portable"
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_Portable_File}" DESTINATION "." COMPONENT portable EXCLUDE_FROM_ALL)
@ -290,19 +404,23 @@ if(UNIX AND APPLE)
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 "© 2022 ${Launcher_Copyright_Mac}")
set(MACOSX_SPARKLE_UPDATE_PUBLIC_KEY "v55ZWWD6QlPoXGV6VLzOTZxZUggWeE51X8cRQyQh6vA=")
set(MACOSX_SPARKLE_UPDATE_FEED_URL "https://prismlauncher.org/feed/appcast.xml")
set(MACOSX_BUNDLE_COPYRIGHT "${Launcher_Copyright_Mac}")
set(MACOSX_SPARKLE_UPDATE_PUBLIC_KEY "v55ZWWD6QlPoXGV6VLzOTZxZUggWeE51X8cRQyQh6vA=" CACHE STRING "Public key for Sparkle update feed")
set(MACOSX_SPARKLE_UPDATE_FEED_URL "https://prismlauncher.org/feed/appcast.xml" CACHE STRING "URL for Sparkle update feed")
set(MACOSX_SPARKLE_DOWNLOAD_URL "https://github.com/sparkle-project/Sparkle/releases/download/2.1.0/Sparkle-2.1.0.tar.xz" CACHE STRING "URL to Sparkle release archive")
set(MACOSX_SPARKLE_SHA256 "bf6ac1caa9f8d321d5784859c88da874f28412f37fb327bc21b7b14c5d61ef94" CACHE STRING "SHA256 checksum for Sparkle release archive")
set(MACOSX_SPARKLE_DOWNLOAD_URL "https://github.com/sparkle-project/Sparkle/releases/download/2.6.4/Sparkle-2.6.4.tar.xz" CACHE STRING "URL to Sparkle release archive")
set(MACOSX_SPARKLE_SHA256 "50612a06038abc931f16011d7903b8326a362c1074dabccb718404ce8e585f0b" CACHE STRING "SHA256 checksum for Sparkle release archive")
set(MACOSX_SPARKLE_DIR "${CMAKE_BINARY_DIR}/frameworks/Sparkle")
# directories to look for dependencies
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${MACOSX_SPARKLE_DIR})
if(NOT MACOSX_SPARKLE_UPDATE_PUBLIC_KEY STREQUAL "" AND NOT MACOSX_SPARKLE_UPDATE_FEED_URL STREQUAL "")
set(Launcher_ENABLE_UPDATER YES)
endif()
# install as bundle
set(INSTALL_BUNDLE "full")
set(INSTALL_BUNDLE "full" CACHE STRING "Use fixup_bundle to bundle dependencies")
# Add the icon
install(FILES ${Launcher_Branding_ICNS} DESTINATION ${RESOURCES_DEST_DIR} RENAME ${Launcher_Name}.icns)
@ -312,10 +430,10 @@ elseif(UNIX)
set(BINARY_DEST_DIR "bin")
set(LIBRARY_DEST_DIR "lib${LIB_SUFFIX}")
set(JARS_DEST_DIR "share/${Launcher_APP_BINARY_NAME}")
set(JARS_DEST_DIR "share/${Launcher_Name}")
# install as bundle with no dependencies included
set(INSTALL_BUNDLE "nodeps")
set(INSTALL_BUNDLE "nodeps" CACHE STRING "Use fixup_bundle to bundle dependencies")
# Set RPATH
SET(Launcher_BINARY_RPATH "$ORIGIN/")
@ -325,6 +443,20 @@ elseif(UNIX)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_SVG} DESTINATION "${KDE_INSTALL_ICONDIR}/hicolor/scalable/apps")
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${Launcher_mrpack_MIMEInfo} DESTINATION ${KDE_INSTALL_MIMEDIR})
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/launcher/qtlogging.ini" DESTINATION "share/${Launcher_Name}")
if (INSTALL_BUNDLE STREQUAL full)
set(PLUGIN_DEST_DIR "plugins")
set(BUNDLE_DEST_DIR ".")
set(RESOURCES_DEST_DIR ".")
# Apps to bundle
set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/${Launcher_APP_BINARY_NAME}")
# directories to look for dependencies
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
if(Launcher_ManPage)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${Launcher_ManPage} DESTINATION "${KDE_INSTALL_MANDIR}/man6")
endif()
@ -347,11 +479,13 @@ elseif(WIN32)
set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
# install as bundle
set(INSTALL_BUNDLE "full")
set(INSTALL_BUNDLE "full" CACHE STRING "Use fixup_bundle to bundle dependencies")
else()
message(FATAL_ERROR "Platform not supported")
endif()
################################ Included Libs ################################
include(ExternalProject)
@ -363,16 +497,26 @@ option(NBT_BUILD_TESTS "Build NBT library tests" OFF) #FIXME: fix unit tests.
add_subdirectory(libraries/libnbtplusplus)
add_subdirectory(libraries/systeminfo) # system information library
add_subdirectory(libraries/hoedown) # markdown parser
add_subdirectory(libraries/launcher) # java based launcher part for Minecraft
add_subdirectory(libraries/javacheck) # java compatibility checker
if(NOT ZLIB_FOUND)
if(FORCE_BUNDLED_ZLIB)
message(STATUS "Using bundled zlib")
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW) # Suppress cmake warnings and allow INTERPROCEDURAL_OPTIMIZATION for zlib
set(SKIP_INSTALL_ALL ON)
add_subdirectory(libraries/zlib EXCLUDE_FROM_ALL)
set(ZLIB_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib" "${CMAKE_CURRENT_BINARY_DIR}/libraries/zlib" CACHE STRING "")
# On OS where unistd.h exists, zlib's generated header defines `Z_HAVE_UNISTD_H`, while the included header does not.
# We cannot safely undo the rename on those systems, and they generally have packages for zlib anyway.
check_include_file(unistd.h NEED_GENERATED_ZCONF)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib/zconf.h.included" AND NOT NEED_GENERATED_ZCONF)
# zlib's cmake script renames a file, dirtying the submodule, see https://github.com/madler/zlib/issues/162
message(STATUS "Undoing Rename")
message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib/zconf.h")
file(RENAME "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib/zconf.h.included" "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib/zconf.h")
endif()
set(ZLIB_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libraries/zlib" "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zlib" CACHE STRING "" FORCE)
set_target_properties(zlibstatic PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INCLUDE_DIR}")
add_library(ZLIB::ZLIB ALIAS zlibstatic)
set(ZLIB_LIBRARY ZLIB::ZLIB CACHE STRING "zlib library name")
@ -397,17 +541,26 @@ if(NOT tomlplusplus_FOUND)
else()
message(STATUS "Using system tomlplusplus")
endif()
add_subdirectory(libraries/katabasis) # An OAuth2 library that tried to do too much
if(NOT cmark_FOUND)
message(STATUS "Using bundled cmark")
set(ORIGINAL_BUILD_TESTING ${BUILD_TESTING})
set(BUILD_TESTING 0)
set(BUILD_SHARED_LIBS 0)
add_subdirectory(libraries/cmark EXCLUDE_FROM_ALL) # Markdown parser
add_library(cmark::cmark ALIAS cmark)
set(BUILD_TESTING ${ORIGINAL_BUILD_TESTING})
else()
message(STATUS "Using system cmark")
endif()
add_subdirectory(libraries/gamemode)
add_subdirectory(libraries/murmur2) # Hash for usage with the CurseForge API
if (NOT ghc_filesystem_FOUND)
message(STATUS "Using bundled ghc_filesystem")
set(GHC_FILESYSTEM_WITH_INSTALL OFF) # Workaround ghc::filesystem bug
add_subdirectory(libraries/filesystem) # Implementation of std::filesystem for old C++, for usage in old macOS
add_library(ghcFilesystem::ghc_filesystem ALIAS ghc_filesystem)
else()
message(STATUS "Using system ghc_filesystem")
endif()
add_subdirectory(libraries/qdcss) # css parser
############################### Built Artifacts ###############################

View file

@ -2,16 +2,59 @@
## Code formatting
Try to follow the existing formatting.
If there is no existing formatting, you may use `clang-format` with our included `.clang-format` configuration.
All files are formatted with `clang-format` using the configuration in `.clang-format`. Ensure it is run on changed files before committing!
In general, in order of importance:
Please also follow the project's conventions for C++:
- Make sure your IDE is not messing up line endings or whitespace and avoid using linters.
- Prefer readability over dogma.
- Keep to the existing formatting.
- Indent with 4 space unless it's in a submodule.
- Keep lists (of arguments, parameters, initializers...) as lists, not paragraphs. It should either read from top to bottom, or left to right. Not both.
- Class and type names should be formatted as `PascalCase`: `MyClass`.
- Private or protected class data members should be formatted as `camelCase` prefixed with `m_`: `m_myCounter`.
- Private or protected `static` class data members should be formatted as `camelCase` prefixed with `s_`: `s_instance`.
- Public class data members should be formatted as `camelCase` without the prefix: `dateOfBirth`.
- Public, private or protected `static const` class data members should be formatted as `SCREAMING_SNAKE_CASE`: `MAX_VALUE`.
- Class function members should be formatted as `camelCase` without a prefix: `incrementCounter`.
- Global functions and non-`const` global variables should be formatted as `camelCase` without a prefix: `globalData`.
- `const` global variables, macros, and enum constants should be formatted as `SCREAMING_SNAKE_CASE`: `LIGHT_GRAY`.
- Avoid inventing acronyms or abbreviations especially for a name of multiple words - like `tp` for `texturePack`.
Most of these rules are included in the `.clang-tidy` file, so you can run `clang-tidy` to check for any violations.
Here is what these conventions with the formatting configuration look like:
```c++
#define AWESOMENESS 10
constexpr double PI = 3.14159;
enum class PizzaToppings { HAM_AND_PINEAPPLE, OREO_AND_KETCHUP };
struct Person {
QString name;
QDateTime dateOfBirth;
long daysOld() const { return dateOfBirth.daysTo(QDateTime::currentDateTime()); }
};
class ImportantClass {
public:
void incrementCounter()
{
if (m_counter + 1 > MAX_COUNTER_VALUE)
throw std::runtime_error("Counter has reached limit!");
++m_counter;
}
int counter() const { return m_counter; }
private:
static constexpr int MAX_COUNTER_VALUE = 100;
int m_counter;
};
ImportantClass importantClassInstance;
```
If you see any names which do not follow these conventions, it is preferred that you leave them be - renames increase the number of changes therefore make reviewing harder and make your PR more prone to conflicts. However, if you're refactoring a whole class anyway, it's fine.
## Signing your work
@ -19,7 +62,7 @@ In an effort to ensure that the code you contribute is actually compatible with
This can be done by appending `-s` to your `git commit` call, or by manually appending the following text to your commit message:
```
```text
<commit message>
Signed-off-by: Author name <Author email>
@ -27,7 +70,7 @@ Signed-off-by: Author name <Author email>
By signing off your work, you agree to the terms below:
```
```text
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
@ -61,3 +104,9 @@ As a bonus, you can also [cryptographically sign your commits][gh-signing-commit
[gh-signing-commits]: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits
[gh-vigilant-mode]: https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits
## Backporting to Release Branches
We use [automated backports](https://github.com/PrismLauncher/PrismLauncher/blob/develop/.github/workflows/backport.yml) to merge specific contributions from develop into `release` branches.
This is done when pull requests are merged and have labels such as `backport release-7.x` - which should be added along with the milestone for the release.

View file

@ -1,7 +1,7 @@
## Prism Launcher
Prism Launcher - Minecraft Launcher
Copyright (C) 2022 Prism Launcher Contributors
Copyright (C) 2022-2024 Prism Launcher Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -156,23 +156,34 @@
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
## Hoedown
## cmark
Copyright (c) 2008, Natacha Porté
Copyright (c) 2011, Vicent Martí
Copyright (c) 2014, Xavier Mendez, Devin Torres and the Hoedown authors
Copyright (c) 2014, John MacFarlane
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
All rights reserved.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
## Batch icon set
@ -322,32 +333,6 @@
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## O2 (Katabasis fork)
Copyright (c) 2012, Akos Polster
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
## Gamemode
Copyright (c) 2017-2022, Feral Interactive
@ -425,7 +410,7 @@
Copyright (C) 2007 Johann Ollivier Lapeyre <johann@oxygen-icons.org>
Copyright (C) 2007 Kenneth Wimer <kwwii@bootsplash.org>
Copyright (C) 2007 Riccardo Iaconelli <riccardo@oxygen-icons.org>
and others
This library is free software; you can redistribute it and/or

View file

@ -1,16 +1,17 @@
<p align="left">
<p align="center"><b><i>This is a fork of PrismLauncher, unlocked to be able to use offline accounts without owning the game.</b></i></p>
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="/program_info/org.prismlauncher.PrismLauncher.logo-darkmode.svg">
<source media="(prefers-color-scheme: light)" srcset="/program_info/org.prismlauncher.PrismLauncher.logo.svg">
<img alt="Prism Launcher" src="/program_info/org.prismlauncher.PrismLauncher.logo.svg" width="50%">
<img alt="Prism Launcher" src="/program_info/org.prismlauncher.PrismLauncher.logo.svg" width="40%">
</picture>
</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 is not endorsed by MultiMC.
<p align="center">
Prism Launcher is a custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once.<br />
<br />This is a <b>fork</b> of the MultiMC Launcher and is <b>not</b> endorsed by it.
</p>
## Installation
@ -18,55 +19,56 @@ This is a **fork** of the MultiMC Launcher and is not endorsed by MultiMC.
<img src="https://repology.org/badge/vertical-allrepos/prismlauncher.svg" alt="Packaging status" align="right">
</a>
- All downloads and instructions for Prism Launcher can be found on our [Website](https://prismlauncher.org/download/).
- Last build status can be found in the [GitHub Actions](https://github.com/PrismLauncher/PrismLauncher/actions).
- All downloads and instructions for Prism Launcher can be found on our [Website](https://prismlauncher.org/download).
- Last build status can be found in the [GitHub Actions](https://github.com/PrismLauncher/PrismLauncher/actions) tab (this also includes the pull requests status).
### Development Builds
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.
Please understand that these builds are not intended for most users. There may be bugs, and other instabilities. You have been warned.
There are development builds available through:
- [GitHub Actions](https://github.com/PrismLauncher/PrismLauncher/actions) (includes builds from pull requests opened by contribuitors)
- [nightly.link](https://nightly.link/PrismLauncher/PrismLauncher/workflows/trigger_builds/develop) (this will always point only to the latest version of develop)
These have debug information in the binaries, so their file sizes are relatively larger.
Prebuilt Development builds are provided for **Linux**, **Windows** and **macOS**.
For **Arch**, **Debian**, **Fedora**, **OpenSUSE (Tumbleweed)** and **Gentoo**, respectively, you can use these packages for the latest development versions:
[![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--git-1793D1?style=flat-square&logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/prismlauncher-git/) [![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--qt5--git-1793D1?style=flat-square&logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/prismlauncher-qt5-git/) [![prismlauncher-git](https://img.shields.io/badge/mpr-prismlauncher--git-A80030?style=flat-square&logo=debian&logoColor=white)](https://mpr.makedeb.org/packages/prismlauncher-git) [![prismlauncher-nightly](https://img.shields.io/badge/copr-prismlauncher--nightly-51A2DA?style=flat-square&logo=fedora&logoColor=white)](https://copr.fedorainfracloud.org/coprs/g3tchoo/prismlauncher/) [![prismlauncher-nightly](https://img.shields.io/badge/OBS-prismlauncher--nightly-3AB6A9?style=flat-square&logo=opensuse&logoColor=white)](https://build.opensuse.org/project/show/home:getchoo) [![prismlauncher-9999](https://img.shields.io/badge/gentoo-prismlauncher--9999-4D4270?style=flat-square&logo=gentoo&logoColor=white)](https://packages.gentoo.org/packages/games-action/prismlauncher)
[![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--git-1793D1?label=AUR&logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/prismlauncher-git) [![prismlauncher-git](https://img.shields.io/badge/aur-prismlauncher--qt5--git-1793D1?label=AUR&logo=archlinux&logoColor=white)](https://aur.archlinux.org/packages/prismlauncher-qt5-git) [![prismlauncher-git](https://img.shields.io/badge/mpr-prismlauncher--git-A80030?label=MPR&logo=debian&logoColor=white)](https://mpr.makedeb.org/packages/prismlauncher-git)<br />[![prismlauncher-nightly](https://img.shields.io/badge/copr-prismlauncher--nightly-51A2DA?label=COPR&logo=fedora&logoColor=white)](https://copr.fedorainfracloud.org/coprs/g3tchoo/prismlauncher/) [![prismlauncher-nightly](https://img.shields.io/badge/OBS-prismlauncher--nightly-3AB6A9?logo=opensuse&logoColor=white)](https://build.opensuse.org/project/show/home:getchoo) [![prismlauncher-9999](https://img.shields.io/badge/gentoo-prismlauncher--9999-4D4270?label=Gentoo&logo=gentoo&logoColor=white)](https://packages.gentoo.org/packages/games-action/prismlauncher)
These packages are also available to all the distributions based on the ones mentioned above.
## Community & Support
Feel free to create a GitHub issue if you find a bug or want to suggest a new feature. We have multiple community spaces where other community members can help you.
Feel free to create a GitHub issue if you find a bug or want to suggest a new feature. We have multiple community spaces where other community members can help you:
#### Join our Discord server:
[![Prism Launcher Discord server](https://discordapp.com/api/guilds/1031648380885147709/widget.png?style=banner2)](https://discord.gg/prismlauncher)
- **Our Discord server:**
#### Join our Matrix space:
[![PrismLauncher Space](https://img.shields.io/matrix/prismlauncher:matrix.org?style=for-the-badge&logo=matrix)](https://matrix.to/#/#prismlauncher:matrix.org)
[![Prism Launcher Discord server](https://discordapp.com/api/guilds/1031648380885147709/widget.png?style=banner3)](https://prismlauncher.org/discord)
#### Join our Subreddit:
[![r/PrismLauncher](https://img.shields.io/reddit/subreddit-subscribers/prismlauncher?style=for-the-badge&logo=reddit)](https://www.reddit.com/r/PrismLauncher/)
- **Our Matrix space:**
## Building
[![Prism Launcher Space](https://img.shields.io/matrix/prismlauncher:matrix.org?style=for-the-badge&label=Matrix%20Space&logo=matrix&color=purple)](https://prismlauncher.org/matrix)
If you want to build Prism Launcher yourself, check the [Build Instructions](https://prismlauncher.org/wiki/development/build-instructions/).
- **Our Subreddit:**
[![r/PrismLauncher](https://img.shields.io/reddit/subreddit-subscribers/prismlauncher?style=for-the-badge&logo=reddit)](https://prismlauncher.org/reddit)
## Translations
The translation effort for PrismLauncher is hosted on [Weblate](https://hosted.weblate.org/projects/prismlauncher/launcher/) and information about translating Prism Launcher is available at <https://github.com/PrismLauncher/Translations>
The translation effort for Prism Launcher is hosted on [Weblate](https://hosted.weblate.org/projects/prismlauncher/launcher/) and information about translating Prism Launcher is available at <https://github.com/PrismLauncher/Translations>.
## Forking/Redistributing/Custom builds policy
## Building
We don't care what you do with your fork/custom build as long as you follow the terms of the [license](LICENSE) (this is a legal responsibility), and if you made code changes rather than just packaging a custom build, please do the following as a basic courtesy:
If you want to build Prism Launcher yourself, check the build instructions:
- Make it clear that your fork is not PrismLauncher and is not endorsed by or affiliated with the PrismLauncher project (<https://prismlauncher.org>).
- Go through [CMakeLists.txt](CMakeLists.txt) and change PrismLauncher's API keys to your own or set them to empty strings (`""`) to disable them (this way the program will still compile but the functionality requiring those keys will be disabled).
If you have any questions or want any clarification on the above conditions please make an issue and ask us.
Be aware that if you build this software without removing the provided API keys in [CMakeLists.txt](CMakeLists.txt) you are accepting the following terms and conditions:
- [Microsoft Identity Platform Terms of Use](https://docs.microsoft.com/en-us/legal/microsoft-identity-platform/terms-of-use)
- [CurseForge 3rd Party API Terms and Conditions](https://support.curseforge.com/en/support/solutions/articles/9000207405-curse-forge-3rd-party-api-terms-and-conditions)
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 (`""`).
- [Windows](https://prismlauncher.org/wiki/development/build-instructions/windows/)
- [Linux](https://prismlauncher.org/wiki/development/build-instructions/linux/)
- [MacOS](https://prismlauncher.org/wiki/development/build-instructions/macos/)
- [OpenBSD](https://prismlauncher.org/wiki/development/build-instructions/openbsd/)
## Sponsors & Partners
@ -84,7 +86,7 @@ Thanks to Weblate for hosting our translation efforts.
<img src="https://hosted.weblate.org/widgets/prismlauncher/-/open-graph.png" alt="Translation status" width="300" />
</a>
Thanks to Netlify for providing us their excellent web services, as part of their [Open Source program](https://www.netlify.com/open-source/)
Thanks to Netlify for providing us their excellent web services, as part of their [Open Source program](https://www.netlify.com/open-source/).
<a href="https://www.netlify.com"> <img src="https://www.netlify.com/v3/img/components/netlify-color-accent.svg" alt="Deploys by Netlify" /> </a>
@ -92,11 +94,26 @@ Thanks to the awesome people over at [MacStadium](https://www.macstadium.com/),
<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>
## Forking/Redistributing/Custom builds policy
## License
You are free to fork, redistribute and provide custom builds as long as you follow the terms of the [license](LICENSE) (this is a legal responsibility), and if you made code changes rather than just packaging a custom build, please do the following as a basic courtesy:
- Make it clear that your fork is not Prism Launcher and is not endorsed by or affiliated with the Prism Launcher project (<https://prismlauncher.org>).
- Go through [CMakeLists.txt](CMakeLists.txt) and change Prism Launcher's API keys to your own or set them to empty strings (`""`) to disable them (this way the program will still compile but the functionality requiring those keys will be disabled).
If you have any questions or want any clarification on the above conditions please make an issue and ask us.
If you are just building Prism Launcher for your distribution, please make sure to set the `Launcher_BUILD_PLATFORM` to a slug representing your distribution. Examples are `archlinux`, `fedora` and `nixpkgs`.
Note that if you build this software without removing the provided API keys in [CMakeLists.txt](CMakeLists.txt) you are accepting the following terms and conditions:
- [Microsoft Identity Platform Terms of Use](https://docs.microsoft.com/en-us/legal/microsoft-identity-platform/terms-of-use)
- [CurseForge 3rd Party API Terms and Conditions](https://support.curseforge.com/en/support/solutions/articles/9000207405-curse-forge-3rd-party-api-terms-and-conditions)
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 [![https://github.com/PrismLauncher/PrismLauncher/blob/develop/LICENSE](https://img.shields.io/github/license/PrismLauncher/PrismLauncher?label=License&logo=gnu&color=C4282D)](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&logo=gnu&color=C4282D)
The logo and related assets are under the CC BY-SA 4.0 license.

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -33,6 +33,7 @@
* limitations under the License.
*/
#include <qstringliteral.h>
#include "BuildConfig.h"
#include <QObject>
@ -59,36 +60,49 @@ Config::Config()
VERSION_MINOR = @Launcher_VERSION_MINOR@;
BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@";
BUILD_ARTIFACT = "@Launcher_BUILD_ARTIFACT@";
BUILD_DATE = "@Launcher_BUILD_TIMESTAMP@";
UPDATER_BASE = "@Launcher_UPDATER_BASE@";
UPDATER_GITHUB_REPO = "@Launcher_UPDATER_GITHUB_REPO@";
COMPILER_NAME = "@Launcher_COMPILER_NAME@";
COMPILER_VERSION = "@Launcher_COMPILER_VERSION@";
COMPILER_TARGET_SYSTEM = "@Launcher_COMPILER_TARGET_SYSTEM@";
COMPILER_TARGET_SYSTEM_VERSION = "@Launcher_COMPILER_TARGET_SYSTEM_VERSION@";
COMPILER_TARGET_SYSTEM_PROCESSOR = "@Launcher_COMPILER_TARGET_PROCESSOR@";
MAC_SPARKLE_PUB_KEY = "@MACOSX_SPARKLE_UPDATE_PUBLIC_KEY@";
MAC_SPARKLE_APPCAST_URL = "@MACOSX_SPARKLE_UPDATE_FEED_URL@";
if (BUILD_PLATFORM == "macOS" && !MAC_SPARKLE_PUB_KEY.isEmpty() && !MAC_SPARKLE_APPCAST_URL.isEmpty())
if (!MAC_SPARKLE_PUB_KEY.isEmpty() && !MAC_SPARKLE_APPCAST_URL.isEmpty())
{
UPDATER_ENABLED = true;
} else if(!UPDATER_GITHUB_REPO.isEmpty() && !BUILD_ARTIFACT.isEmpty()) {
UPDATER_ENABLED = true;
}
#cmakedefine01 Launcher_ENABLE_JAVA_DOWNLOADER
JAVA_DOWNLOADER_ENABLED = Launcher_ENABLE_JAVA_DOWNLOADER;
GIT_COMMIT = "@Launcher_GIT_COMMIT@";
GIT_TAG = "@Launcher_GIT_TAG@";
GIT_REFSPEC = "@Launcher_GIT_REFSPEC@";
// Assume that builds outside of Git repos are "stable"
if (GIT_REFSPEC == QStringLiteral("GITDIR-NOTFOUND")
|| GIT_TAG == QStringLiteral("GITDIR-NOTFOUND"))
|| GIT_TAG == QStringLiteral("GITDIR-NOTFOUND")
|| GIT_REFSPEC == QStringLiteral("")
|| GIT_TAG == QStringLiteral("GIT-NOTFOUND"))
{
GIT_REFSPEC = "refs/heads/stable";
GIT_TAG = versionString();
GIT_COMMIT = "";
}
if (GIT_REFSPEC.startsWith("refs/heads/"))
{
VERSION_CHANNEL = GIT_REFSPEC;
VERSION_CHANNEL.remove("refs/heads/");
if(!UPDATER_BASE.isEmpty() && !BUILD_PLATFORM.isEmpty()) {
UPDATER_ENABLED = true;
}
VERSION_CHANNEL.remove("refs/heads/");
}
else if (!GIT_COMMIT.isEmpty())
{
@ -102,13 +116,19 @@ Config::Config()
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
NEWS_OPEN_URL = "@Launcher_NEWS_OPEN_URL@";
HELP_URL = "@Launcher_HELP_URL@";
LOGIN_CALLBACK_URL = "@Launcher_LOGIN_CALLBACK_URL@";
IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
MSA_CLIENT_ID = "@Launcher_MSA_CLIENT_ID@";
FLAME_API_KEY = "@Launcher_CURSEFORGE_API_KEY@";
META_URL = "@Launcher_META_URL@";
FMLLIBS_BASE_URL = "@Launcher_FMLLIBS_BASE_URL@";
GLFW_LIBRARY_NAME = "@Launcher_GLFW_LIBRARY_NAME@";
OPENAL_LIBRARY_NAME = "@Launcher_OPENAL_LIBRARY_NAME@";
BUG_TRACKER_URL = "@Launcher_BUG_TRACKER_URL@";
TRANSLATIONS_URL = "@Launcher_TRANSLATIONS_URL@";
TRANSLATION_FILES_URL = "@Launcher_TRANSLATION_FILES_URL@";
MATRIX_URL = "@Launcher_MATRIX_URL@";
DISCORD_URL = "@Launcher_DISCORD_URL@";
SUBREDDIT_URL = "@Launcher_SUBREDDIT_URL@";
@ -130,3 +150,16 @@ QString Config::printableVersionString() const
}
return vstr;
}
QString Config::compilerID() const
{
if (COMPILER_VERSION.isEmpty())
return COMPILER_NAME;
return QStringLiteral("%1 - %2").arg(COMPILER_NAME).arg(COMPILER_VERSION);
}
QString Config::systemID() const
{
return QStringLiteral("%1 %2 %3").arg(COMPILER_TARGET_SYSTEM, COMPILER_TARGET_SYSTEM_VERSION, COMPILER_TARGET_SYSTEM_PROCESSOR);
}

View file

@ -1,8 +1,9 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -35,6 +36,7 @@
*/
#pragma once
#include <QList>
#include <QString>
/**
@ -65,15 +67,34 @@ class Config {
QString VERSION_CHANNEL;
bool UPDATER_ENABLED = false;
bool JAVA_DOWNLOADER_ENABLED = false;
/// A short string identifying this build's platform. For example, "lin64" or "win32".
/// A short string identifying this build's platform or distribution.
QString BUILD_PLATFORM;
/// A short string identifying this build's valid artifacts int he updater. For example, "lin64" or "win32".
QString BUILD_ARTIFACT;
/// A string containing the build timestamp
QString BUILD_DATE;
/// A string identifying the compiler use to build
QString COMPILER_NAME;
/// A string identifying the compiler version used to build
QString COMPILER_VERSION;
/// A string identifying the compiler target system os
QString COMPILER_TARGET_SYSTEM;
/// A String identifying the compiler target system version
QString COMPILER_TARGET_SYSTEM_VERSION;
/// A String identifying the compiler target processor
QString COMPILER_TARGET_SYSTEM_PROCESSOR;
/// URL for the updater's channel
QString UPDATER_BASE;
QString UPDATER_GITHUB_REPO;
/// The public key used to sign releases for the Sparkle updater appcast
QString MAC_SPARKLE_PUB_KEY;
@ -112,6 +133,11 @@ class Config {
*/
QString HELP_URL;
/**
* URL that gets opened when the user succesfully logins.
*/
QString LOGIN_CALLBACK_URL;
/**
* Client ID you can get from Imgur when you register an application
*/
@ -132,6 +158,9 @@ class Config {
*/
QString META_URL;
QString GLFW_LIBRARY_NAME;
QString OPENAL_LIBRARY_NAME;
QString BUG_TRACKER_URL;
QString TRANSLATIONS_URL;
QString MATRIX_URL;
@ -140,10 +169,9 @@ class Config {
QString RESOURCE_BASE = "https://resources.download.minecraft.net/";
QString LIBRARY_BASE = "https://libraries.minecraft.net/";
QString AUTH_BASE = "https://authserver.mojang.com/";
QString IMGUR_BASE_URL = "https://api.imgur.com/3/";
QString FMLLIBS_BASE_URL = "https://files.prismlauncher.org/fmllibs/"; // FIXME: move into CMakeLists
QString TRANSLATIONS_BASE_URL = "https://i18n.prismlauncher.org/"; // FIXME: move into CMakeLists
QString FMLLIBS_BASE_URL;
QString TRANSLATION_FILES_URL;
QString MODPACKSCH_API_BASE_URL = "https://api.modpacks.ch/";
@ -160,6 +188,7 @@ class Config {
QString MODRINTH_STAGING_URL = "https://staging-api.modrinth.com/v2";
QString MODRINTH_PROD_URL = "https://api.modrinth.com/v2";
QStringList MODRINTH_MRPACK_HOSTS{ "cdn.modrinth.com", "github.com", "raw.githubusercontent.com", "gitlab.com" };
QString FLAME_BASE_URL = "https://api.curseforge.com/v1";
@ -169,6 +198,18 @@ class Config {
* \return The version number in string format (major.minor.revision.build).
*/
QString printableVersionString() const;
/**
* \brief Compiler ID String
* \return a string of the form "Name - Version" of just "Name" if the version is empty
*/
QString compilerID() const;
/**
* \brief System ID String
* \return a string of the form "OS Verison Processor"
*/
QString systemID() const;
};
extern const Config BuildConfig;

View file

@ -0,0 +1,163 @@
#
# Function to set compiler warnings with reasonable defaults at the project level.
# Taken from https://github.com/aminya/project_options/blob/main/src/CompilerWarnings.cmake
# under the folowing license:
#
# MIT License
#
# Copyright (c) 2022-2100 Amin Yahyaabadi
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
include_guard()
function(_set_project_warnings_add_target_link_option TARGET OPTIONS)
target_link_options(${_project_name} INTERFACE ${OPTIONS})
endfunction()
# Set the compiler warnings
#
# https://clang.llvm.org/docs/DiagnosticsReference.html
# https://github.com/lefticus/cppbestpractices/blob/master/02-Use_the_Tools_Available.md
function(
set_project_warnings
_project_name
MSVC_WARNINGS
CLANG_WARNINGS
GCC_WARNINGS
)
if("${MSVC_WARNINGS}" STREQUAL "")
set(MSVC_WARNINGS
/W4 # Baseline reasonable warnings
/w14242 # 'identifier': conversion from 'type1' to 'type1', possible loss of data
/w14254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
/w14263 # 'function': member function does not override any base class virtual member function
/w14265 # 'classname': class has virtual functions, but destructor is not virtual instances of this class may not
# be destructed correctly
/w14287 # 'operator': unsigned/negative constant mismatch
/we4289 # nonstandard extension used: 'variable': loop control variable declared in the for-loop is used outside
# the for-loop scope
/w14296 # 'operator': expression is always 'boolean_value'
/w14311 # 'variable': pointer truncation from 'type1' to 'type2'
/w14545 # expression before comma evaluates to a function which is missing an argument list
/w14546 # function call before comma missing argument list
/w14547 # 'operator': operator before comma has no effect; expected operator with side-effect
/w14549 # 'operator': operator before comma has no effect; did you intend 'operator'?
/w14555 # expression has no effect; expected expression with side- effect
/w14619 # pragma warning: there is no warning number 'number'
/w14640 # Enable warning on thread un-safe static member initialization
/w14826 # Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior.
/w14905 # wide string literal cast to 'LPSTR'
/w14906 # string literal cast to 'LPWSTR'
/w14928 # illegal copy-initialization; more than one user-defined conversion has been implicitly applied
/permissive- # standards conformance mode for MSVC compiler.
/we4062 # forbid omitting a possible value of an enum in a switch statement
)
endif()
if("${CLANG_WARNINGS}" STREQUAL "")
set(CLANG_WARNINGS
-Wall
-Wextra # reasonable and standard
-Wshadow # warn the user if a variable declaration shadows one from a parent context
-Wnon-virtual-dtor # warn the user if a class with virtual functions has a non-virtual destructor. This helps
# catch hard to track down memory errors
-Wold-style-cast # warn for c-style casts
-Wcast-align # warn for potential performance problem casts
-Wunused # warn on anything being unused
-Woverloaded-virtual # warn if you overload (not override) a virtual function
-Wpedantic # warn if non-standard C++ is used
-Wconversion # warn on type conversions that may lose data
-Wsign-conversion # warn on sign conversions
-Wnull-dereference # warn if a null dereference is detected
-Wdouble-promotion # warn if float is implicit promoted to double
-Wformat=2 # warn on security issues around functions that format output (ie printf)
-Wimplicit-fallthrough # warn on statements that fallthrough without an explicit annotation
# -Wgnu-zero-variadic-macro-arguments (part of -pedantic) is triggered by every qCDebug() call and therefore results
# in a lot of noise. This warning is only notifying us that clang is emulating the GCC behaviour
# instead of the exact standard wording so we can safely ignore it
-Wno-gnu-zero-variadic-macro-arguments
-Werror=switch # forbid omitting a possible value of an enum in a switch statement
)
endif()
if("${GCC_WARNINGS}" STREQUAL "")
set(GCC_WARNINGS
${CLANG_WARNINGS}
-Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist
-Wduplicated-cond # warn if if / else chain has duplicated conditions
-Wduplicated-branches # warn if if / else branches have duplicated code
-Wlogical-op # warn about logical operations being used where bitwise were probably wanted
-Wuseless-cast # warn if you perform a cast to the same type
-Werror=switch # forbid omitting a possible value of an enum in a switch statement
)
endif()
if(MSVC)
set(PROJECT_WARNINGS_CXX ${MSVC_WARNINGS})
elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
set(PROJECT_WARNINGS_CXX ${CLANG_WARNINGS})
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(PROJECT_WARNINGS_CXX ${GCC_WARNINGS})
else()
message(AUTHOR_WARNING "No compiler warnings set for CXX compiler: '${CMAKE_CXX_COMPILER_ID}'")
# TODO support Intel compiler
endif()
# Add C warnings
set(PROJECT_WARNINGS_C "${PROJECT_WARNINGS_CXX}")
list(
REMOVE_ITEM
PROJECT_WARNINGS_C
-Wnon-virtual-dtor
-Wold-style-cast
-Woverloaded-virtual
-Wuseless-cast
-Wextra-semi
-Werror=switch # forbid omitting a possible value of an enum in a switch statement
)
target_compile_options(
${_project_name}
INTERFACE # C++ warnings
$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_WARNINGS_CXX}>
# C warnings
$<$<COMPILE_LANGUAGE:C>:${PROJECT_WARNINGS_C}>
)
# If we are using the compiler as a linker driver pass the warnings to it
# (most useful when using LTO or warnings as errors)
if(CMAKE_CXX_LINK_EXECUTABLE MATCHES "^<CMAKE_CXX_COMPILER>")
_set_project_warnings_add_target_link_option(
${_project_name} "$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_WARNINGS_CXX}>"
)
endif()
if(CMAKE_C_LINK_EXECUTABLE MATCHES "^<CMAKE_C_COMPILER>")
_set_project_warnings_add_target_link_option(
${_project_name} "$<$<COMPILE_LANGUAGE:C>:${PROJECT_WARNINGS_C}>"
)
endif()
endfunction()

View file

@ -6,6 +6,10 @@
<string>A Minecraft mod wants to access your camera.</string>
<key>NSMicrophoneUsageDescription</key>
<string>A Minecraft mod wants to access your microphone.</string>
<key>NSDownloadsFolderUsageDescription</key>
<string>Prism uses access to your Downloads folder to help you more quickly add mods that can't be automatically downloaded to your instance. You can change where Prism scans for downloaded mods in Settings or the prompt that appears.</string>
<key>NSLocalNetworkUsageDescription</key>
<string>Minecraft uses the local network to find and connect to LAN servers.</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
@ -67,5 +71,24 @@
<string>Alternate</string>
</dict>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Curseforge</string>
<key>CFBundleURLSchemes</key>
<array>
<string>curseforge</string>
</array>
</dict>
<dict>
<key>CFBundleURLName</key>
<string>Prismlauncher</string>
<key>CFBundleURLSchemes</key>
<array>
<string>prismlauncher</string>
</array>
</dict>
</array>
</dict>
</plist>

View file

@ -1 +1,9 @@
(import nix/flake-compat.nix).defaultNix
(import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in
fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash;
}
) { src = ./.; }).defaultNix

63
flake.lock generated
View file

@ -3,11 +3,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -19,11 +19,11 @@
"libnbtplusplus": {
"flake": false,
"locked": {
"lastModified": 1650031308,
"narHash": "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4=",
"lastModified": 1699286814,
"narHash": "sha256-yy0q+bky80LtK1GWzz7qpM+aAGrOqLuewbid8WT1ilk=",
"owner": "PrismLauncher",
"repo": "libnbtplusplus",
"rev": "2203af7eeb48c45398139b583615134efd8d407f",
"rev": "23b955121b8217c1c348a9ed2483167a6f3ff4ad",
"type": "github"
},
"original": {
@ -32,18 +32,33 @@
"type": "github"
}
},
"nixpkgs": {
"nix-filter": {
"locked": {
"lastModified": 1666057921,
"narHash": "sha256-VpQqtXdj6G7cH//SvoprjR7XT3KS7p+tCVebGK1N6tE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "88eab1e431cabd0ed621428d8b40d425a07af39f",
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1739446958,
"narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2ff53fe64443980e139eaa286017f53f88336dd0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -52,24 +67,8 @@
"inputs": {
"flake-compat": "flake-compat",
"libnbtplusplus": "libnbtplusplus",
"nixpkgs": "nixpkgs",
"tomlplusplus": "tomlplusplus"
}
},
"tomlplusplus": {
"flake": false,
"locked": {
"lastModified": 1666091090,
"narHash": "sha256-djpMCFPvkJcfynV8WnsYdtwLq+J7jpV1iM4C6TojiyM=",
"owner": "marzer",
"repo": "tomlplusplus",
"rev": "1e4a3833d013aee08f58c5b31c69f709afc69f73",
"type": "github"
},
"original": {
"owner": "marzer",
"repo": "tomlplusplus",
"type": "github"
"nix-filter": "nix-filter",
"nixpkgs": "nixpkgs"
}
}
},

147
flake.nix
View file

@ -1,38 +1,137 @@
{
description = "A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-compat = { url = "github:edolstra/flake-compat"; flake = false; };
libnbtplusplus = { url = "github:PrismLauncher/libnbtplusplus"; flake = false; };
tomlplusplus = { url = "github:marzer/tomlplusplus"; flake = false; };
nixConfig = {
extra-substituters = [ "https://prismlauncher.cachix.org" ];
extra-trusted-public-keys = [
"prismlauncher.cachix.org-1:9/n/FGyABA2jLUVfY+DEp4hKds/rwO+SCOtbOkDzd+c="
];
};
outputs = { self, nixpkgs, libnbtplusplus, tomlplusplus, ... }:
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
libnbtplusplus = {
url = "github:PrismLauncher/libnbtplusplus";
flake = false;
};
nix-filter.url = "github:numtide/nix-filter";
/*
Inputs below this are optional and can be removed
```
{
inputs.prismlauncher = {
url = "github:PrismLauncher/PrismLauncher";
inputs = {
flake-compat.follows = "";
};
};
}
```
*/
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
libnbtplusplus,
nix-filter,
...
}:
let
# User-friendly version number.
version = builtins.substring 0 8 self.lastModifiedDate;
inherit (nixpkgs) lib;
# Supported systems (qtbase is currently broken for "aarch64-darwin")
supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
# While we only officially support aarch and x86_64 on Linux and MacOS,
# we expose a reasonable amount of other systems for users who want to
# build for most exotic platforms
systems = lib.systems.flakeExposed;
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
# Nixpkgs instantiated for supported systems.
pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
packagesFn = pkgs: rec {
prismlauncher-qt5 = pkgs.libsForQt5.callPackage ./nix { inherit version self libnbtplusplus tomlplusplus; };
prismlauncher = pkgs.qt6Packages.callPackage ./nix { inherit version self libnbtplusplus tomlplusplus; };
};
forAllSystems = lib.genAttrs systems;
nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system});
in
{
packages = forAllSystems (system:
let packages = packagesFn pkgs.${system}; in
packages // { default = packages.prismlauncher; }
checks = forAllSystems (
system:
let
checks' = nixpkgsFor.${system}.callPackage ./nix/checks.nix { inherit self; };
in
lib.filterAttrs (_: lib.isDerivation) checks'
);
overlay = final: packagesFn;
devShells = forAllSystems (
system:
let
pkgs = nixpkgsFor.${system};
in
{
default = pkgs.mkShell {
inputsFrom = [ self.packages.${system}.prismlauncher-unwrapped ];
buildInputs = with pkgs; [
ccache
ninja
];
};
}
);
formatter = forAllSystems (system: nixpkgsFor.${system}.nixfmt-rfc-style);
overlays.default = final: prev: {
prismlauncher-unwrapped = prev.callPackage ./nix/unwrapped.nix {
inherit
libnbtplusplus
nix-filter
self
;
};
prismlauncher = final.callPackage ./nix/wrapper.nix { };
};
packages = forAllSystems (
system:
let
pkgs = nixpkgsFor.${system};
# Build a scope from our overlay
prismPackages = lib.makeScope pkgs.newScope (final: self.overlays.default final pkgs);
# Grab our packages from it and set the default
packages = {
inherit (prismPackages) prismlauncher-unwrapped prismlauncher;
default = prismPackages.prismlauncher;
};
in
# Only output them if they're available on the current system
lib.filterAttrs (_: lib.meta.availableOn pkgs.stdenv.hostPlatform) packages
);
# We put these under legacyPackages as they are meant for CI, not end user consumption
legacyPackages = forAllSystems (
system:
let
prismPackages = self.packages.${system};
legacyPackages = self.legacyPackages.${system};
in
{
prismlauncher-debug = prismPackages.prismlauncher.override {
prismlauncher-unwrapped = legacyPackages.prismlauncher-unwrapped-debug;
};
prismlauncher-unwrapped-debug = prismPackages.prismlauncher-unwrapped.overrideAttrs {
cmakeBuildType = "Debug";
dontStrip = true;
};
}
);
};
}

20
flatpak/flite.json Normal file
View file

@ -0,0 +1,20 @@
{
"name": "flite",
"config-opts": [
"--enable-shared",
"--with-audio=pulseaudio"
],
"no-parallel-make": true,
"sources": [
{
"type": "git",
"url": "https://github.com/festvox/flite.git",
"tag": "v2.2",
"commit": "e9e2e37c329dbe98bfeb27a1828ef9a71fa84f88",
"x-checker-data": {
"type": "git",
"tag-pattern": "^v([\\d.]+)$"
}
}
]
}

18
flatpak/libdecor.json Normal file
View file

@ -0,0 +1,18 @@
{
"name": "libdecor",
"buildsystem": "meson",
"config-opts": [
"-Ddemo=false"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.freedesktop.org/libdecor/libdecor.git",
"commit": "c2bd8ad6fa42c0cb17553ce77ad8a87d1f543b1f"
}
],
"cleanup": [
"/include",
"/lib/pkgconfig"
]
}

View file

@ -1,17 +1,9 @@
id: org.prismlauncher.PrismLauncher
runtime: org.kde.Platform
runtime-version: "5.15-22.08"
runtime-version: '6.8'
sdk: org.kde.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.openjdk17
- org.freedesktop.Sdk.Extension.openjdk8
add-extensions:
com.valvesoftware.Steam.Utility.gamescope:
version: stable
add-ld-path: lib
no-autodownload: true
autodelete: false
directory: utils/gamescope
command: prismlauncher
finish-args:
@ -25,36 +17,75 @@ finish-args:
- --filesystem=xdg-run/app/com.discordapp.Discord:create
# Mod drag&drop
- --filesystem=xdg-download:ro
# FTBApp import
- --filesystem=~/.ftba:ro
# Userspace visibility for manual hugepages configuration
# Required for -XX:+UseLargePages
- --filesystem=/sys/kernel/mm/hugepages:ro
# Userspace visibility for transparent hugepages configuration
# Required for -XX:+UseTransparentHugePages
- --filesystem=/sys/kernel/mm/transparent_hugepage:ro
modules:
# Might be needed by some Controller mods (see https://github.com/isXander/Controlify/issues/31)
- shared-modules/libusb/libusb.json
# Needed for proper Wayland support
- libdecor.json
# Text to Speech in the game
- flite.json
- name: prismlauncher
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DLauncher_BUILD_PLATFORM=flatpak
- -DCMAKE_BUILD_TYPE=Debug
# This allows us to manage and update Java independently of this Flatpak
- -DLauncher_ENABLE_JAVA_DOWNLOADER=ON
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
build-options:
env:
JAVA_HOME: /usr/lib/sdk/openjdk17/jvm/openjdk-17
JAVA_COMPILER: /usr/lib/sdk/openjdk17/jvm/openjdk-17/bin/javac
run-tests: true
sources:
- type: dir
path: ../
- name: openjdk
buildsystem: simple
build-commands:
- mkdir -p /app/jdk/
- /usr/lib/sdk/openjdk17/install.sh
- mv /app/jre /app/jdk/17
- /usr/lib/sdk/openjdk8/install.sh
- mv /app/jre /app/jdk/8
cleanup: [/jre]
- type: dir
path: ../
- name: glfw
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DBUILD_SHARED_LIBS:BOOL=ON
- -DGLFW_BUILD_WAYLAND:BOOL=ON
- -DGLFW_BUILD_DOCS:BOOL=OFF
sources:
- type: git
url: https://github.com/glfw/glfw.git
commit: 7b6aead9fb88b3623e3b3725ebb42670cbe4c579 # 3.4
- type: patch
path: patches/0009-Defer-setting-cursor-position-until-the-cursor-is-lo.patch
cleanup:
- /include
- /lib/cmake
- /lib/pkgconfig
- name: xrandr
buildsystem: autotools
sources:
- type: archive
url: https://xorg.freedesktop.org/archive/individual/app/xrandr-1.5.1.tar.xz
sha256: 7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762
cleanup: [/share/man, /bin/xkeystone]
url: https://xorg.freedesktop.org/archive/individual/app/xrandr-1.5.3.tar.xz
sha256: f8dd7566adb74147fab9964680b6bbadee87cf406a7fcff51718a5e6949b841c
x-checker-data:
type: anitya
project-id: 14957
stable-only: true
url-template: https://xorg.freedesktop.org/archive/individual/app/xrandr-$version.tar.xz
cleanup:
- /share/man
- /bin/xkeystone
- name: gamemode
buildsystem: meson
config-opts:
@ -65,19 +96,56 @@ modules:
# post-install is running inside the build dir, we need it from the source though
- install -Dm755 ../data/gamemoderun -t /app/bin
sources:
- type: git
url: https://github.com/FeralInteractive/gamemode
tag: "1.7"
commit: 4dc99dff76218718763a6b07fc1900fa6d1dafd9
- type: archive
dest-filename: gamemode.tar.gz
url: https://api.github.com/repos/FeralInteractive/gamemode/tarball/1.8.2
sha256: 2886d4ce543c78bd2a364316d5e7fd59ef06b71de63f896b37c6d3dc97658f60
x-checker-data:
type: json
url: https://api.github.com/repos/FeralInteractive/gamemode/releases/latest
version-query: .tag_name
url-query: .tarball_url
timestamp-query: .published_at
cleanup:
- /include
- /lib/pkgconfig
- /lib/libgamemodeauto.a
- name: glxinfo
buildsystem: meson
config-opts:
- --bindir=/app/mesa-demos
- -Degl=disabled
- -Dglut=disabled
- -Dosmesa=disabled
- -Dvulkan=disabled
- -Dwayland=disabled
post-install:
- mv -v /app/mesa-demos/glxinfo /app/bin
sources:
- type: archive
url: https://archive.mesa3d.org/demos/mesa-demos-9.0.0.tar.xz
sha256: 3046a3d26a7b051af7ebdd257a5f23bfeb160cad6ed952329cdff1e9f1ed496b
x-checker-data:
type: anitya
project-id: 16781
stable-only: true
url-template: https://archive.mesa3d.org/demos/mesa-demos-$version.tar.xz
cleanup:
- /include
- /mesa-demos
- /share
modules:
- shared-modules/glu/glu-9.json
- name: enhance
buildsystem: simple
build-commands:
- mkdir -p /app/utils/gamescope
- install -Dm755 prime-run /app/bin/prime-run
- mv /app/bin/prismlauncher /app/bin/prismrun
- install -Dm755 prismlauncher /app/bin/prismlauncher
sources:
- type: file
path: ../flatpak/prime-run
path: prime-run
- type: file
path: ../flatpak/prismlauncher
path: prismlauncher

View file

@ -0,0 +1,59 @@
From 9997ae55a47de469ea26f8437c30b51483abda5f Mon Sep 17 00:00:00 2001
From: Dan Klishch <danilklishch@gmail.com>
Date: Sat, 30 Sep 2023 23:38:05 -0400
Subject: Defer setting cursor position until the cursor is locked
---
src/wl_platform.h | 3 +++
src/wl_window.c | 14 ++++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/wl_platform.h b/src/wl_platform.h
index ca34f66e..cd1f227f 100644
--- a/src/wl_platform.h
+++ b/src/wl_platform.h
@@ -403,6 +403,9 @@ typedef struct _GLFWwindowWayland
int scaleSize;
int compositorPreferredScale;
+ double askedCursorPosX, askedCursorPosY;
+ GLFWbool didAskForSetCursorPos;
+
struct zwp_relative_pointer_v1* relativePointer;
struct zwp_locked_pointer_v1* lockedPointer;
struct zwp_confined_pointer_v1* confinedPointer;
diff --git a/src/wl_window.c b/src/wl_window.c
index 1de26558..0df16747 100644
--- a/src/wl_window.c
+++ b/src/wl_window.c
@@ -2586,8 +2586,9 @@ void _glfwGetCursorPosWayland(_GLFWwindow* window, double* xpos, double* ypos)
void _glfwSetCursorPosWayland(_GLFWwindow* window, double x, double y)
{
- _glfwInputError(GLFW_FEATURE_UNAVAILABLE,
- "Wayland: The platform does not support setting the cursor position");
+ window->wl.didAskForSetCursorPos = true;
+ window->wl.askedCursorPosX = x;
+ window->wl.askedCursorPosY = y;
}
void _glfwSetCursorModeWayland(_GLFWwindow* window, int mode)
@@ -2819,6 +2820,15 @@ static const struct zwp_relative_pointer_v1_listener relativePointerListener =
static void lockedPointerHandleLocked(void* userData,
struct zwp_locked_pointer_v1* lockedPointer)
{
+ _GLFWwindow* window = userData;
+
+ if (window->wl.didAskForSetCursorPos)
+ {
+ window->wl.didAskForSetCursorPos = false;
+ zwp_locked_pointer_v1_set_cursor_position_hint(window->wl.lockedPointer,
+ wl_fixed_from_double(window->wl.askedCursorPosX),
+ wl_fixed_from_double(window->wl.askedCursorPosY));
+ }
}
static void lockedPointerHandleUnlocked(void* userData,
--
2.42.0

View file

@ -5,7 +5,7 @@ for i in {0..9}; do
test -S "$XDG_RUNTIME_DIR"/discord-ipc-"$i" || ln -sf {app/com.discordapp.Discord,"$XDG_RUNTIME_DIR"}/discord-ipc-"$i";
done
export PATH="${PATH}${PATH:+:}/app/utils/gamescope/bin:/usr/lib/extensions/vulkan/MangoHud/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}/usr/lib/extensions/vulkan/MangoHud/\$LIB/"
export PATH="${PATH}${PATH:+:}/usr/lib/extensions/vulkan/gamescope/bin:/usr/lib/extensions/vulkan/MangoHud/bin"
export VK_LAYER_PATH="/usr/lib/extensions/vulkan/share/vulkan/implicit_layer.d/"
exec /app/bin/prismrun "$@"

@ -0,0 +1 @@
Subproject commit f5d368a31d6ef046eb2955c74ec6f54f32ed5c4e

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,8 @@
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2022 Tayou <tayou@gmx.net>
* Copyright (C) 2022 Tayou <git@tayou.org>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -37,17 +38,17 @@
#pragma once
#include <QApplication>
#include <memory>
#include <QDateTime>
#include <QDebug>
#include <QFlag>
#include <QIcon>
#include <QDateTime>
#include <QMutex>
#include <QUrl>
#include <updater/GoUpdate.h>
#include <memory>
#include <BaseInstance.h>
#include "minecraft/launch/MinecraftServerTarget.h"
#include "minecraft/launch/MinecraftTarget.h"
class LaunchController;
class LocalPeer;
@ -63,34 +64,35 @@ class AccountList;
class IconList;
class QNetworkAccessManager;
class JavaInstallList;
class UpdateChecker;
class ExternalUpdater;
class BaseProfilerFactory;
class BaseDetachedToolFactory;
class TranslationsModel;
class ITheme;
class MCEditTool;
class ThemeManager;
class IconTheme;
namespace Meta {
class Index;
class Index;
}
#if defined(APPLICATION)
#undef APPLICATION
#endif
#define APPLICATION (static_cast<Application *>(QCoreApplication::instance()))
#define APPLICATION (static_cast<Application*>(QCoreApplication::instance()))
class Application : public QApplication
{
// Used for checking if is a test
#if defined(APPLICATION_DYN)
#undef APPLICATION_DYN
#endif
#define APPLICATION_DYN (dynamic_cast<Application*>(QCoreApplication::instance()))
class Application : public QApplication {
// friends for the purpose of limiting access to deprecated stuff
Q_OBJECT
public:
enum Status {
StartingUp,
Failed,
Succeeded,
Initialized
};
public:
enum Status { StartingUp, Failed, Succeeded, Initialized };
enum Capability {
None = 0,
@ -102,59 +104,39 @@ public:
};
Q_DECLARE_FLAGS(Capabilities, Capability)
public:
Application(int &argc, char **argv);
public:
Application(int& argc, char** argv);
virtual ~Application();
bool event(QEvent* event) override;
std::shared_ptr<SettingsObject> settings() const {
return m_settings;
}
std::shared_ptr<SettingsObject> settings() const { return m_settings; }
qint64 timeSinceStart() const {
return startTime.msecsTo(QDateTime::currentDateTime());
}
qint64 timeSinceStart() const { return startTime.msecsTo(QDateTime::currentDateTime()); }
QIcon getThemedIcon(const QString& name);
void setIconTheme(const QString& name);
ThemeManager* themeManager() { return m_themeManager.get(); }
QList<ITheme*> getValidApplicationThemes();
shared_qobject_ptr<ExternalUpdater> updater() { return m_updater; }
void setApplicationTheme(const QString& name, bool initial);
shared_qobject_ptr<UpdateChecker> updateChecker() {
return m_updateChecker;
}
void triggerUpdateCheck();
std::shared_ptr<TranslationsModel> translations();
std::shared_ptr<JavaInstallList> javalist();
std::shared_ptr<InstanceList> instances() const {
return m_instances;
}
std::shared_ptr<InstanceList> instances() const { return m_instances; }
std::shared_ptr<IconList> icons() const {
return m_icons;
}
std::shared_ptr<IconList> icons() const { return m_icons; }
MCEditTool *mcedit() const {
return m_mcedit.get();
}
MCEditTool* mcedit() const { return m_mcedit.get(); }
shared_qobject_ptr<AccountList> accounts() const {
return m_accounts;
}
shared_qobject_ptr<AccountList> accounts() const { return m_accounts; }
Status status() const {
return m_status;
}
Status status() const { return m_status; }
const QMap<QString, std::shared_ptr<BaseProfilerFactory>> &profilers() const {
return m_profilers;
}
const QMap<QString, std::shared_ptr<BaseProfilerFactory>>& profilers() const { return m_profilers; }
void updateProxySettings(QString proxyTypeStr, QString addr, int port, QString user, QString password);
@ -166,6 +148,8 @@ public:
void updateCapabilities();
void detectLibraries();
/*!
* Finds and returns the full path to a jar file.
* Returns a null-string if it could not be found.
@ -174,81 +158,90 @@ public:
QString getMSAClientID();
QString getFlameAPIKey();
QString getModrinthAPIToken();
QString getUserAgent();
QString getUserAgentUncached();
/// this is the root of the 'installation'. Used for automatic updates
const QString &root() {
return m_rootPath;
}
const QString& root() { return m_rootPath; }
const Capabilities capabilities() {
return m_capabilities;
}
/// the data path the application is using
const QString& dataRoot() { return m_dataPath; }
/// the java installed path the application is using
const QString javaPath();
bool isPortable() { return m_portable; }
const Capabilities capabilities() { return m_capabilities; }
/*!
* Opens a json file using either a system default editor, or, if not empty, the editor
* specified in the settings
*/
bool openJsonEditor(const QString &filename);
bool openJsonEditor(const QString& filename);
InstanceWindow *showInstanceWindow(InstancePtr instance, QString page = QString());
MainWindow *showMainWindow(bool minimized = false);
InstanceWindow* showInstanceWindow(InstancePtr instance, QString page = QString());
MainWindow* showMainWindow(bool minimized = false);
void updateIsRunning(bool running);
bool updatesAreAllowed();
void ShowGlobalSettings(class QWidget * parent, QString open_page = QString());
void ShowGlobalSettings(class QWidget* parent, QString open_page = QString());
int suitableMaxMem();
bool updaterEnabled();
QString updaterBinaryName();
signals:
QUrl normalizeImportUrl(QString const& url);
signals:
void updateAllowedChanged(bool status);
void globalSettingsAboutToOpen();
void globalSettingsClosed();
int currentCatChanged(int index);
void oauthReplyRecieved(QVariantMap);
#ifdef Q_OS_MACOS
void clickedOnDock();
#endif
public slots:
bool launch(
InstancePtr instance,
bool online = true,
bool demo = false,
BaseProfilerFactory *profiler = nullptr,
MinecraftServerTargetPtr serverToJoin = nullptr,
MinecraftAccountPtr accountToUse = nullptr
);
public slots:
bool launch(InstancePtr instance,
bool online = true,
bool demo = false,
MinecraftTarget::Ptr targetToJoin = nullptr,
MinecraftAccountPtr accountToUse = nullptr,
const QString& offlineName = QString());
bool kill(InstancePtr instance);
void closeCurrentWindow();
private slots:
private slots:
void on_windowClose();
void messageReceived(const QByteArray & message);
void messageReceived(const QByteArray& message);
void controllerSucceeded();
void controllerFailed(const QString & error);
void controllerFailed(const QString& error);
void setupWizardFinished(int status);
private:
bool handleDataMigration(const QString & currentData, const QString & oldData, const QString & name, const QString & configFile) const;
private:
bool handleDataMigration(const QString& currentData, const QString& oldData, const QString& name, const QString& configFile) const;
bool createSetupWizard();
void performMainStartupAction();
// sets the fatal error message and m_status to Failed.
void showFatalErrorMessage(const QString & title, const QString & content);
void showFatalErrorMessage(const QString& title, const QString& content);
private:
private:
void addRunningInstance();
void subRunningInstance();
bool shouldExitNow() const;
private:
private:
QDateTime startTime;
shared_qobject_ptr<QNetworkAccessManager> m_network;
shared_qobject_ptr<UpdateChecker> m_updateChecker;
shared_qobject_ptr<ExternalUpdater> m_updater;
shared_qobject_ptr<AccountList> m_accounts;
shared_qobject_ptr<HttpMetaCache> m_metacache;
@ -267,8 +260,10 @@ private:
QMap<QString, std::shared_ptr<BaseProfilerFactory>> m_profilers;
QString m_rootPath;
QString m_dataPath;
Status m_status = Application::StartingUp;
Capabilities m_capabilities;
bool m_portable = false;
#ifdef Q_OS_MACOS
Qt::ApplicationState m_prevAppState = Qt::ApplicationInactive;
@ -281,10 +276,11 @@ private:
// FIXME: attach to instances instead.
struct InstanceXtras {
InstanceWindow * window = nullptr;
InstanceWindow* window = nullptr;
shared_qobject_ptr<LaunchController> controller;
};
std::map<QString, InstanceXtras> m_instanceExtras;
mutable QMutex m_instanceExtrasMutex;
// main state variables
size_t m_openWindows = 0;
@ -292,19 +288,33 @@ private:
bool m_updateRunning = false;
// main window, if any
MainWindow * m_mainWindow = nullptr;
MainWindow* m_mainWindow = nullptr;
// peer launcher instance connector - used to implement single instance launcher and signalling
LocalPeer * m_peerInstance = nullptr;
LocalPeer* m_peerInstance = nullptr;
SetupWizard * m_setupWizard = nullptr;
public:
SetupWizard* m_setupWizard = nullptr;
public:
QString m_detectedGLFWPath;
QString m_detectedOpenALPath;
QString m_instanceIdToLaunch;
QString m_serverToJoin;
QString m_worldToJoin;
QString m_profileToUse;
bool m_offline = false;
QString m_offlineName;
bool m_liveCheck = false;
QUrl m_zipToImport;
QList<QUrl> m_urlsToImport;
QString m_instanceIdToShowWindowOf;
std::unique_ptr<QFile> logFile;
};
public:
void addQSavePath(QString);
void removeQSavePath(QString);
bool checkQSavePath(QString);
private:
QHash<QString, int> m_qsaveResources;
mutable QMutex m_qsaveResourcesMutex;
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -39,7 +39,8 @@
#include <QJsonObject>
#include "Json.h"
void ApplicationMessage::parse(const QByteArray & input) {
void ApplicationMessage::parse(const QByteArray& input)
{
auto doc = Json::requireDocument(input, "ApplicationMessage");
auto root = Json::requireObject(doc, "ApplicationMessage");
@ -47,17 +48,18 @@ void ApplicationMessage::parse(const QByteArray & input) {
args.clear();
auto parsedArgs = root.value("args").toObject();
for(auto iter = parsedArgs.begin(); iter != parsedArgs.end(); iter++) {
args[iter.key()] = iter.value().toString();
for (auto iter = parsedArgs.constBegin(); iter != parsedArgs.constEnd(); iter++) {
args.insert(iter.key(), iter.value().toString());
}
}
QByteArray ApplicationMessage::serialize() {
QByteArray ApplicationMessage::serialize()
{
QJsonObject root;
root.insert("command", command);
QJsonObject outArgs;
for (auto iter = args.begin(); iter != args.end(); iter++) {
outArgs[iter.key()] = iter.value();
for (auto iter = args.constBegin(); iter != args.constEnd(); iter++) {
outArgs.insert(iter.key(), iter.value());
}
root.insert("args", outArgs);

View file

@ -1,13 +1,13 @@
#pragma once
#include <QString>
#include <QMap>
#include <QByteArray>
#include <QHash>
#include <QString>
struct ApplicationMessage {
QString command;
QMap<QString, QString> args;
QHash<QString, QString> args;
QByteArray serialize();
void parse(const QByteArray & input);
void parse(const QByteArray& input);
};

View file

@ -16,29 +16,24 @@
#include <QFile>
#include "BaseInstaller.h"
#include "FileSystem.h"
#include "minecraft/MinecraftInstance.h"
BaseInstaller::BaseInstaller()
{
BaseInstaller::BaseInstaller() {}
}
bool BaseInstaller::isApplied(MinecraftInstance *on)
bool BaseInstaller::isApplied(MinecraftInstance* on)
{
return QFile::exists(filename(on->instanceRoot()));
}
bool BaseInstaller::add(MinecraftInstance *to)
bool BaseInstaller::add(MinecraftInstance* to)
{
if (!patchesDir(to->instanceRoot()).exists())
{
if (!patchesDir(to->instanceRoot()).exists()) {
QDir(to->instanceRoot()).mkdir("patches");
}
if (isApplied(to))
{
if (!remove(to))
{
if (isApplied(to)) {
if (!remove(to)) {
return false;
}
}
@ -46,16 +41,16 @@ bool BaseInstaller::add(MinecraftInstance *to)
return true;
}
bool BaseInstaller::remove(MinecraftInstance *from)
bool BaseInstaller::remove(MinecraftInstance* from)
{
return QFile::remove(filename(from->instanceRoot()));
return FS::deletePath(filename(from->instanceRoot()));
}
QString BaseInstaller::filename(const QString &root) const
QString BaseInstaller::filename(const QString& root) const
{
return patchesDir(root).absoluteFilePath(id() + ".json");
}
QDir BaseInstaller::patchesDir(const QString &root) const
QDir BaseInstaller::patchesDir(const QString& root) const
{
return QDir(root + "/patches/");
}

View file

@ -26,20 +26,19 @@ class QObject;
class Task;
class BaseVersion;
class BaseInstaller
{
public:
class BaseInstaller {
public:
BaseInstaller();
virtual ~BaseInstaller(){};
bool isApplied(MinecraftInstance *on);
virtual ~BaseInstaller() {};
bool isApplied(MinecraftInstance* on);
virtual bool add(MinecraftInstance *to);
virtual bool remove(MinecraftInstance *from);
virtual bool add(MinecraftInstance* to);
virtual bool remove(MinecraftInstance* from);
virtual Task *createInstallTask(MinecraftInstance *instance, BaseVersion::Ptr version, QObject *parent) = 0;
virtual Task* createInstallTask(MinecraftInstance* instance, BaseVersion::Ptr version, QObject* parent) = 0;
protected:
protected:
virtual QString id() const = 0;
QString filename(const QString &root) const;
QDir patchesDir(const QString &root) const;
QString filename(const QString& root) const;
QDir patchesDir(const QString& root) const;
};

View file

@ -1,8 +1,9 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -36,21 +37,22 @@
#include "BaseInstance.h"
#include <QFileInfo>
#include <QDir>
#include <QDebug>
#include <QDir>
#include <QFileInfo>
#include <QJsonDocument>
#include <QJsonObject>
#include <QRegularExpression>
#include "settings/INISettingsObject.h"
#include "settings/Setting.h"
#include "settings/OverrideSetting.h"
#include "settings/Setting.h"
#include "FileSystem.h"
#include "Commandline.h"
#include "BuildConfig.h"
#include "Commandline.h"
#include "FileSystem.h"
BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir)
: QObject()
BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString& rootDir) : QObject()
{
m_settings = settings;
m_global_settings = globalSettings;
@ -62,8 +64,12 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
m_settings->registerSetting("lastLaunchTime", 0);
m_settings->registerSetting("totalTimePlayed", 0);
if (m_settings->get("totalTimePlayed").toLongLong() < 0)
m_settings->reset("totalTimePlayed");
m_settings->registerSetting("lastTimePlayed", 0);
m_settings->registerSetting("linkedInstances", "[]");
// Game time override
auto gameTimeOverride = m_settings->registerSetting("OverrideGameTime", false);
m_settings->registerOverride(globalSettings->getSetting("ShowGameTime"), gameTimeOverride);
@ -75,7 +81,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
m_settings->registerSetting("InstanceType", "");
// Custom Commands
auto commandSetting = m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false);
auto commandSetting = m_settings->registerSetting({ "OverrideCommands", "OverrideLaunchCmd" }, false);
m_settings->registerOverride(globalSettings->getSetting("PreLaunchCommand"), commandSetting);
m_settings->registerOverride(globalSettings->getSetting("WrapperCommand"), commandSetting);
m_settings->registerOverride(globalSettings->getSetting("PostExitCommand"), commandSetting);
@ -97,6 +103,8 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
m_settings->registerSetting("ManagedPackName", "");
m_settings->registerSetting("ManagedPackVersionID", "");
m_settings->registerSetting("ManagedPackVersionName", "");
m_settings->registerSetting("Profiler", "");
}
QString BaseInstance::getPreLaunchCommand()
@ -144,7 +152,11 @@ QString BaseInstance::getManagedPackVersionName() const
return m_settings->get("ManagedPackVersionName").toString();
}
void BaseInstance::setManagedPack(const QString& type, const QString& id, const QString& name, const QString& versionId, const QString& version)
void BaseInstance::setManagedPack(const QString& type,
const QString& id,
const QString& name,
const QString& versionId,
const QString& version)
{
m_settings->set("ManagedPack", true);
m_settings->set("ManagedPackType", type);
@ -169,8 +181,7 @@ int BaseInstance::getConsoleMaxLines() const
auto lineSetting = m_settings->getSetting("ConsoleMaxLines");
bool conversionOk = false;
int maxLines = lineSetting->get().toInt(&conversionOk);
if(!conversionOk)
{
if (!conversionOk) {
maxLines = lineSetting->defValue().toInt();
qWarning() << "ConsoleMaxLines has nonsensical value, defaulting to" << maxLines;
}
@ -182,10 +193,41 @@ bool BaseInstance::shouldStopOnConsoleOverflow() const
return m_settings->get("ConsoleOverflowStop").toBool();
}
QStringList BaseInstance::getLinkedInstances() const
{
return m_settings->get("linkedInstances").toStringList();
}
void BaseInstance::setLinkedInstances(const QStringList& list)
{
auto linkedInstances = m_settings->get("linkedInstances").toStringList();
m_settings->set("linkedInstances", list);
}
void BaseInstance::addLinkedInstanceId(const QString& id)
{
auto linkedInstances = m_settings->get("linkedInstances").toStringList();
linkedInstances.append(id);
setLinkedInstances(linkedInstances);
}
bool BaseInstance::removeLinkedInstanceId(const QString& id)
{
auto linkedInstances = m_settings->get("linkedInstances").toStringList();
int numRemoved = linkedInstances.removeAll(id);
setLinkedInstances(linkedInstances);
return numRemoved > 0;
}
bool BaseInstance::isLinkedToInstanceId(const QString& id) const
{
auto linkedInstances = m_settings->get("linkedInstances").toStringList();
return linkedInstances.contains(id);
}
void BaseInstance::iconUpdated(QString key)
{
if(iconKey() == key)
{
if (iconKey() == key) {
emit propertiesChanged(this);
}
}
@ -199,8 +241,7 @@ void BaseInstance::invalidate()
void BaseInstance::changeStatus(BaseInstance::Status newStatus)
{
Status status = currentStatus();
if(status != newStatus)
{
if (status != newStatus) {
m_status = newStatus;
emit statusChanged(status, newStatus);
}
@ -223,23 +264,24 @@ bool BaseInstance::isRunning() const
void BaseInstance::setRunning(bool running)
{
if(running == m_isRunning)
if (running == m_isRunning)
return;
m_isRunning = running;
if(!m_settings->get("RecordGameTime").toBool())
{
emit runningStatusChanged(running);
emit runningStatusChanged(running);
}
void BaseInstance::setMinecraftRunning(bool running)
{
if (!settings()->get("RecordGameTime").toBool()) {
return;
}
if(running)
{
if (running) {
m_timeStarted = QDateTime::currentDateTime();
}
else
{
setLastLaunch(m_timeStarted.toMSecsSinceEpoch());
} else {
QDateTime timeEnded = QDateTime::currentDateTime();
qint64 current = settings()->get("totalTimePlayed").toLongLong();
@ -248,15 +290,12 @@ void BaseInstance::setRunning(bool running)
emit propertiesChanged(this);
}
emit runningStatusChanged(running);
}
int64_t BaseInstance::totalTimePlayed() const
{
qint64 current = m_settings->get("totalTimePlayed").toLongLong();
if(m_isRunning)
{
if (m_isRunning) {
QDateTime timeNow = QDateTime::currentDateTime();
return current + m_timeStarted.secsTo(timeNow);
}
@ -265,8 +304,7 @@ int64_t BaseInstance::totalTimePlayed() const
int64_t BaseInstance::lastTimePlayed() const
{
if(m_isRunning)
{
if (m_isRunning) {
QDateTime timeNow = QDateTime::currentDateTime();
return m_timeStarted.secsTo(timeNow);
}
@ -313,14 +351,14 @@ qint64 BaseInstance::lastLaunch() const
void BaseInstance::setLastLaunch(qint64 val)
{
//FIXME: if no change, do not set. setting involves saving a file.
// FIXME: if no change, do not set. setting involves saving a file.
m_settings->set("lastLaunchTime", val);
emit propertiesChanged(this);
}
void BaseInstance::setNotes(QString val)
{
//FIXME: if no change, do not set. setting involves saving a file.
// FIXME: if no change, do not set. setting involves saving a file.
m_settings->set("notes", val);
}
@ -331,7 +369,7 @@ QString BaseInstance::notes() const
void BaseInstance::setIconKey(QString val)
{
//FIXME: if no change, do not set. setting involves saving a file.
// FIXME: if no change, do not set. setting involves saving a file.
m_settings->set("iconKey", val);
emit propertiesChanged(this);
}
@ -343,7 +381,7 @@ QString BaseInstance::iconKey() const
void BaseInstance::setName(QString val)
{
//FIXME: if no change, do not set. setting involves saving a file.
// FIXME: if no change, do not set. setting involves saving a file.
m_settings->set("name", val);
emit propertiesChanged(this);
}
@ -355,7 +393,7 @@ QString BaseInstance::name() const
QString BaseInstance::windowTitle() const
{
return BuildConfig.LAUNCHER_DISPLAYNAME + ": " + name().replace(QRegularExpression("\\s+"), " ");
return BuildConfig.LAUNCHER_DISPLAYNAME + ": " + name();
}
// FIXME: why is this here? move it to MinecraftInstance!!!
@ -373,3 +411,8 @@ void BaseInstance::updateRuntimeContext()
{
// NOOP
}
bool BaseInstance::isLegacy()
{
return traits().contains("legacyLaunch") || traits().contains("alphaLaunch");
}

View file

@ -1,8 +1,9 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -37,24 +38,25 @@
#pragma once
#include <cassert>
#include <QObject>
#include "QObjectPtr.h"
#include <QDateTime>
#include <QSet>
#include <QMenu>
#include <QObject>
#include <QProcess>
#include <QSet>
#include "QObjectPtr.h"
#include "settings/SettingsObject.h"
#include "settings/INIFile.h"
#include "BaseVersionList.h"
#include "minecraft/auth/MinecraftAccount.h"
#include "MessageLevel.h"
#include "minecraft/auth/MinecraftAccount.h"
#include "pathmatcher/IPathMatcher.h"
#include "settings/INIFile.h"
#include "net/Mode.h"
#include "minecraft/launch/MinecraftServerTarget.h"
#include "RuntimeContext.h"
#include "minecraft/launch/MinecraftTarget.h"
class QDir;
class Task;
@ -62,7 +64,7 @@ class LaunchTask;
class BaseInstance;
// pointer for lazy people
typedef std::shared_ptr<BaseInstance> InstancePtr;
using InstancePtr = std::shared_ptr<BaseInstance>;
/*!
* \brief Base class for instances.
@ -72,23 +74,21 @@ typedef std::shared_ptr<BaseInstance> InstancePtr;
* To create a new instance type, create a new class inheriting from this class
* and implement the pure virtual functions.
*/
class BaseInstance : public QObject, public std::enable_shared_from_this<BaseInstance>
{
class BaseInstance : public QObject, public std::enable_shared_from_this<BaseInstance> {
Q_OBJECT
protected:
protected:
/// no-touchy!
BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir);
BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString& rootDir);
public: /* types */
enum class Status
{
public: /* types */
enum class Status {
Present,
Gone // either nuked or invalidated
Gone // either nuked or invalidated
};
public:
public:
/// virtual destructor to make sure the destruction is COMPLETE
virtual ~BaseInstance() {};
virtual ~BaseInstance() {}
virtual void saveNow() = 0;
@ -104,6 +104,7 @@ public:
/// be unique.
virtual QString id() const;
void setMinecraftRunning(bool running);
void setRunning(bool running);
bool isRunning() const;
int64_t totalTimePlayed() const;
@ -117,10 +118,7 @@ public:
QString instanceRoot() const;
/// Path to the instance's game root directory.
virtual QString gameRoot() const
{
return instanceRoot();
}
virtual QString gameRoot() const { return instanceRoot(); }
/// Path to the instance's mods directory.
virtual QString modsRoot() const = 0;
@ -151,15 +149,12 @@ public:
void copyManagedPack(BaseInstance& other);
/// guess log level from a line of game log
virtual MessageLevel::Enum guessLevel([[maybe_unused]] const QString &line, MessageLevel::Enum level)
{
return level;
};
virtual MessageLevel::Enum guessLevel([[maybe_unused]] const QString& line, MessageLevel::Enum level) { return level; }
virtual QStringList extraArguments();
/// Traits. Normally inside the version, depends on instance implementation.
virtual QSet <QString> traits() const = 0;
virtual QSet<QString> traits() const = 0;
/**
* Gets the time that the instance was last launched.
@ -186,11 +181,10 @@ public:
virtual void loadSpecificSettings() = 0;
/// returns a valid update task
virtual Task::Ptr createUpdateTask(Net::Mode mode) = 0;
virtual QList<Task::Ptr> createUpdateTask() = 0;
/// returns a valid launcher (task container)
virtual shared_qobject_ptr<LaunchTask> createLaunchTask(
AuthSessionPtr account, MinecraftServerTargetPtr serverToJoin) = 0;
virtual shared_qobject_ptr<LaunchTask> createLaunchTask(AuthSessionPtr account, MinecraftTarget::Ptr targetToJoin) = 0;
/// returns the current launch task (if any)
shared_qobject_ptr<LaunchTask> getLaunchTask();
@ -221,46 +215,31 @@ public:
virtual QString typeName() const = 0;
void updateRuntimeContext();
RuntimeContext runtimeContext() const
{
return m_runtimeContext;
}
virtual void updateRuntimeContext();
RuntimeContext runtimeContext() const { return m_runtimeContext; }
bool hasVersionBroken() const
{
return m_hasBrokenVersion;
}
bool hasVersionBroken() const { return m_hasBrokenVersion; }
void setVersionBroken(bool value)
{
if(m_hasBrokenVersion != value)
{
if (m_hasBrokenVersion != value) {
m_hasBrokenVersion = value;
emit propertiesChanged(this);
}
}
bool hasUpdateAvailable() const
{
return m_hasUpdate;
}
bool hasUpdateAvailable() const { return m_hasUpdate; }
void setUpdateAvailable(bool value)
{
if(m_hasUpdate != value)
{
if (m_hasUpdate != value) {
m_hasUpdate = value;
emit propertiesChanged(this);
}
}
bool hasCrashed() const
{
return m_crashed;
}
bool hasCrashed() const { return m_crashed; }
void setCrashed(bool value)
{
if(m_crashed != value)
{
if (m_crashed != value) {
m_crashed = value;
emit propertiesChanged(this);
}
@ -270,42 +249,54 @@ public:
virtual bool canEdit() const = 0;
virtual bool canExport() const = 0;
virtual void populateLaunchMenu(QMenu* menu) = 0;
bool reloadSettings();
/**
* 'print' a verbose description of the instance into a QStringList
*/
virtual QStringList verboseDescription(AuthSessionPtr session, MinecraftServerTargetPtr serverToJoin) = 0;
virtual QStringList verboseDescription(AuthSessionPtr session, MinecraftTarget::Ptr targetToJoin) = 0;
Status currentStatus() const;
int getConsoleMaxLines() const;
bool shouldStopOnConsoleOverflow() const;
protected:
QStringList getLinkedInstances() const;
void setLinkedInstances(const QStringList& list);
void addLinkedInstanceId(const QString& id);
bool removeLinkedInstanceId(const QString& id);
bool isLinkedToInstanceId(const QString& id) const;
bool isLegacy();
protected:
void changeStatus(Status newStatus);
SettingsObjectPtr globalSettings() const { return m_global_settings.lock(); };
SettingsObjectPtr globalSettings() const { return m_global_settings.lock(); }
bool isSpecificSettingsLoaded() const { return m_specific_settings_loaded; }
void setSpecificSettingsLoaded(bool loaded) { m_specific_settings_loaded = loaded; }
signals:
signals:
/*!
* \brief Signal emitted when properties relevant to the instance view change
*/
void propertiesChanged(BaseInstance *inst);
void propertiesChanged(BaseInstance* inst);
void launchTaskChanged(shared_qobject_ptr<LaunchTask>);
void runningStatusChanged(bool running);
void profilerChanged();
void statusChanged(Status from, Status to);
protected slots:
protected slots:
void iconUpdated(QString key);
protected: /* data */
protected: /* data */
QString m_rootDir;
SettingsObjectPtr m_settings;
// InstanceFlags m_flags;
@ -314,7 +305,7 @@ protected: /* data */
QDateTime m_timeStarted;
RuntimeContext m_runtimeContext;
private: /* data */
private: /* data */
Status m_status = Status::Present;
bool m_crashed = false;
bool m_hasUpdate = false;
@ -322,9 +313,8 @@ private: /* data */
SettingsObjectWeakPtr m_global_settings;
bool m_specific_settings_loaded = false;
};
Q_DECLARE_METATYPE(shared_qobject_ptr<BaseInstance>)
//Q_DECLARE_METATYPE(BaseInstance::InstanceFlag)
//Q_DECLARE_OPERATORS_FOR_FLAGS(BaseInstance::InstanceFlags)
// Q_DECLARE_METATYPE(BaseInstance::InstanceFlag)
// Q_DECLARE_OPERATORS_FOR_FLAGS(BaseInstance::InstanceFlags)

View file

@ -15,16 +15,15 @@
#pragma once
#include <memory>
#include <QString>
#include <QMetaType>
#include <QString>
#include <memory>
/*!
* An abstract base class for versions.
*/
class BaseVersion
{
public:
class BaseVersion {
public:
using Ptr = std::shared_ptr<BaseVersion>;
virtual ~BaseVersion() {}
/*!
@ -44,15 +43,8 @@ public:
* the kind of version this is (Stable, Beta, Snapshot, whatever)
*/
virtual QString typeString() const = 0;
virtual bool operator<(BaseVersion &a)
{
return name() < a.name();
};
virtual bool operator>(BaseVersion &a)
{
return name() > a.name();
};
virtual bool operator<(BaseVersion& a) { return name() < a.name(); }
virtual bool operator>(BaseVersion& a) { return name() > a.name(); }
};
Q_DECLARE_METATYPE(BaseVersion::Ptr)

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -36,14 +36,11 @@
#include "BaseVersionList.h"
#include "BaseVersion.h"
BaseVersionList::BaseVersionList(QObject *parent) : QAbstractListModel(parent)
{
}
BaseVersionList::BaseVersionList(QObject* parent) : QAbstractListModel(parent) {}
BaseVersion::Ptr BaseVersionList::findVersion(const QString &descriptor)
BaseVersion::Ptr BaseVersionList::findVersion(const QString& descriptor)
{
for (int i = 0; i < count(); i++)
{
for (int i = 0; i < count(); i++) {
if (at(i)->descriptor() == descriptor)
return at(i);
}
@ -58,7 +55,7 @@ BaseVersion::Ptr BaseVersionList::getRecommended() const
return at(0);
}
QVariant BaseVersionList::data(const QModelIndex &index, int role) const
QVariant BaseVersionList::data(const QModelIndex& index, int role) const
{
if (!index.isValid())
return QVariant();
@ -68,37 +65,44 @@ QVariant BaseVersionList::data(const QModelIndex &index, int role) const
BaseVersion::Ptr version = at(index.row());
switch (role)
{
case VersionPointerRole:
return QVariant::fromValue(version);
switch (role) {
case VersionPointerRole:
return QVariant::fromValue(version);
case VersionRole:
return version->name();
case VersionRole:
return version->name();
case VersionIdRole:
return version->descriptor();
case VersionIdRole:
return version->descriptor();
case TypeRole:
return version->typeString();
case TypeRole:
return version->typeString();
default:
return QVariant();
case JavaMajorRole: {
auto major = version->name();
if (major.startsWith("java")) {
major = "Java " + major.mid(4);
}
return major;
}
default:
return QVariant();
}
}
BaseVersionList::RoleList BaseVersionList::providesRoles() const
{
return {VersionPointerRole, VersionRole, VersionIdRole, TypeRole};
return { VersionPointerRole, VersionRole, VersionIdRole, TypeRole };
}
int BaseVersionList::rowCount(const QModelIndex &parent) const
int BaseVersionList::rowCount(const QModelIndex& parent) const
{
// Return count
return parent.isValid() ? 0 : count();
}
int BaseVersionList::columnCount(const QModelIndex &parent) const
int BaseVersionList::columnCount(const QModelIndex& parent) const
{
return parent.isValid() ? 0 : 1;
}
@ -114,6 +118,8 @@ QHash<int, QByteArray> BaseVersionList::roleNames() const
roles.insert(TypeRole, "type");
roles.insert(BranchRole, "branch");
roles.insert(PathRole, "path");
roles.insert(ArchitectureRole, "architecture");
roles.insert(JavaNameRole, "javaName");
roles.insert(CPUArchitectureRole, "architecture");
roles.insert(JavaMajorRole, "javaMajor");
return roles;
}

View file

@ -15,13 +15,13 @@
#pragma once
#include <QAbstractListModel>
#include <QObject>
#include <QVariant>
#include <QAbstractListModel>
#include "BaseVersion.h"
#include "tasks/Task.h"
#include "QObjectPtr.h"
#include "tasks/Task.h"
/*!
* \brief Class that each instance type's version list derives from.
@ -35,12 +35,10 @@
* all have a default implementation, but they can be overridden by plugins to
* change the behavior of the list.
*/
class BaseVersionList : public QAbstractListModel
{
class BaseVersionList : public QAbstractListModel {
Q_OBJECT
public:
enum ModelRoles
{
public:
enum ModelRoles {
VersionPointerRole = Qt::UserRole,
VersionRole,
VersionIdRole,
@ -50,12 +48,14 @@ public:
TypeRole,
BranchRole,
PathRole,
ArchitectureRole,
JavaNameRole,
JavaMajorRole,
CPUArchitectureRole,
SortRole
};
typedef QList<int> RoleList;
using RoleList = QList<int>;
explicit BaseVersionList(QObject *parent = 0);
explicit BaseVersionList(QObject* parent = 0);
/*!
* \brief Gets a task that will reload the version list.
@ -66,7 +66,7 @@ public:
virtual Task::Ptr getLoadTask() = 0;
//! Checks whether or not the list is loaded. If this returns false, the list should be
//loaded.
// loaded.
virtual bool isLoaded() = 0;
//! Gets the version at the given index.
@ -76,9 +76,9 @@ public:
virtual int count() const = 0;
//////// List Model Functions ////////
QVariant data(const QModelIndex &index, int role) const override;
int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex& index, int role) const override;
int rowCount(const QModelIndex& parent) const override;
int columnCount(const QModelIndex& parent) const override;
QHash<int, QByteArray> roleNames() const override;
//! which roles are provided by this version list?
@ -90,7 +90,7 @@ public:
* \return A const pointer to the version with the given descriptor. NULL if
* one doesn't exist.
*/
virtual BaseVersion::Ptr findVersion(const QString &descriptor);
virtual BaseVersion::Ptr findVersion(const QString& descriptor);
/*!
* \brief Gets the recommended version from this list
@ -103,8 +103,7 @@ public:
*/
virtual void sortVersions() = 0;
protected
slots:
protected slots:
/*!
* Updates this list with the given list of versions.
* This is done by copying each version in the given list and inserting it

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -41,8 +41,7 @@
* @file libutil/src/cmdutils.cpp
*/
namespace Commandline
{
namespace Commandline {
// commandline splitter
QStringList splitArgs(QString args)
@ -51,19 +50,15 @@ QStringList splitArgs(QString args)
QString current;
bool escape = false;
QChar inquotes;
for (int i = 0; i < args.length(); i++)
{
for (int i = 0; i < args.length(); i++) {
QChar cchar = args.at(i);
// \ escaped
if (escape)
{
if (escape) {
current += cchar;
escape = false;
// in "quotes"
}
else if (!inquotes.isNull())
{
} else if (!inquotes.isNull()) {
if (cchar == '\\')
escape = true;
else if (cchar == inquotes)
@ -71,18 +66,13 @@ QStringList splitArgs(QString args)
else
current += cchar;
// otherwise
}
else
{
if (cchar == ' ')
{
if (!current.isEmpty())
{
} else {
if (cchar == ' ') {
if (!current.isEmpty()) {
argv << current;
current.clear();
}
}
else if (cchar == '"' || cchar == '\'')
} else if (cchar == '"' || cchar == '\'')
inquotes = cchar;
else
current += cchar;
@ -92,4 +82,4 @@ QStringList splitArgs(QString args)
argv << current;
return argv;
}
}
} // namespace Commandline

View file

@ -25,8 +25,7 @@
* @brief commandline parsing and processing utilities
*/
namespace Commandline
{
namespace Commandline {
/**
* @brief split a string into argv items like a shell would do
@ -34,4 +33,4 @@ namespace Commandline
* @return a QStringList containing all arguments
*/
QStringList splitArgs(QString args);
}
} // namespace Commandline

View file

@ -12,11 +12,8 @@
#include <QtConcurrent>
DataMigrationTask::DataMigrationTask(QObject* parent,
const QString& sourcePath,
const QString& targetPath,
const IPathMatcher::Ptr pathMatcher)
: Task(parent), m_sourcePath(sourcePath), m_targetPath(targetPath), m_pathMatcher(pathMatcher), m_copy(sourcePath, targetPath)
DataMigrationTask::DataMigrationTask(const QString& sourcePath, const QString& targetPath, const IPathMatcher::Ptr pathMatcher)
: Task(), m_sourcePath(sourcePath), m_targetPath(targetPath), m_pathMatcher(pathMatcher), m_copy(sourcePath, targetPath)
{
m_copy.matcher(m_pathMatcher.get()).whitelist(true);
}
@ -27,7 +24,7 @@ void DataMigrationTask::executeTask()
// 1. Scan
// Check how many files we gotta copy
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [&] {
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this] {
return m_copy(true); // dry run to collect amount of files
});
connect(&m_copyFutureWatcher, &QFutureWatcher<bool>::finished, this, &DataMigrationTask::dryRunFinished);
@ -60,7 +57,7 @@ void DataMigrationTask::dryRunFinished()
setProgress(m_copy.totalCopied(), m_toCopy);
setStatus(tr("Copying %1…").arg(shortenedName));
});
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [&] {
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this] {
return m_copy(false); // actually copy now
});
connect(&m_copyFutureWatcher, &QFutureWatcher<bool>::finished, this, &DataMigrationTask::copyFinished);

View file

@ -18,7 +18,7 @@
class DataMigrationTask : public Task {
Q_OBJECT
public:
explicit DataMigrationTask(QObject* parent, const QString& sourcePath, const QString& targetPath, const IPathMatcher::Ptr pathmatcher);
explicit DataMigrationTask(const QString& sourcePath, const QString& targetPath, IPathMatcher::Ptr pathmatcher);
~DataMigrationTask() override = default;
protected:

View file

@ -1,33 +1,21 @@
#pragma once
template <typename T>
class DefaultVariable
{
public:
DefaultVariable(const T & value)
{
defaultValue = value;
}
DefaultVariable<T> & operator =(const T & value)
class DefaultVariable {
public:
DefaultVariable(const T& value) { defaultValue = value; }
DefaultVariable<T>& operator=(const T& value)
{
currentValue = value;
is_default = currentValue == defaultValue;
is_explicit = true;
return *this;
}
operator const T &() const
{
return is_default ? defaultValue : currentValue;
}
bool isDefault() const
{
return is_default;
}
bool isExplicit() const
{
return is_explicit;
}
private:
operator const T&() const { return is_default ? defaultValue : currentValue; }
bool isDefault() const { return is_default; }
bool isExplicit() const { return is_explicit; }
private:
T currentValue;
T defaultValue;
bool is_default = true;

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 dada513 <dada513@protonmail.com>
*
* This program is free software: you can redistribute it and/or modify
@ -33,187 +33,37 @@
* limitations under the License.
*/
#include "DesktopServices.h"
#include <QDir>
#include <QDesktopServices>
#include <QProcess>
#include <QDebug>
#include "Application.h"
/**
* This shouldn't exist, but until QTBUG-9328 and other unreported bugs are fixed, it needs to be a thing.
*/
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
template <typename T>
bool IndirectOpen(T callable, qint64 *pid_forked = nullptr)
{
auto pid = fork();
if(pid_forked)
{
if(pid > 0)
*pid_forked = pid;
else
*pid_forked = 0;
}
if(pid == -1)
{
qWarning() << "IndirectOpen failed to fork: " << errno;
return false;
}
// child - do the stuff
if(pid == 0)
{
// unset all this garbage so it doesn't get passed to the child process
qunsetenv("LD_PRELOAD");
qunsetenv("LD_LIBRARY_PATH");
qunsetenv("LD_DEBUG");
qunsetenv("QT_PLUGIN_PATH");
qunsetenv("QT_FONTPATH");
// open the URL
auto status = callable();
// detach from the parent process group.
setsid();
// die. now. do not clean up anything, it would just hang forever.
_exit(status ? 0 : 1);
}
else
{
//parent - assume it worked.
int status;
while (waitpid(pid, &status, 0))
{
if(WIFEXITED(status))
{
return WEXITSTATUS(status) == 0;
}
if(WIFSIGNALED(status))
{
return false;
}
}
return true;
}
}
#endif
#include <QDesktopServices>
#include <QDir>
#include <QProcess>
#include "FileSystem.h"
namespace DesktopServices {
bool openDirectory(const QString &path, bool ensureExists)
bool openPath(const QFileInfo& path, bool ensureFolderPathExists)
{
qDebug() << "Opening directory" << path;
QDir parentPath;
QDir dir(path);
if (!dir.exists())
{
parentPath.mkpath(dir.absolutePath());
qDebug() << "Opening path" << path;
if (ensureFolderPathExists) {
FS::ensureFolderPathExists(path);
}
auto f = [&]()
{
return QDesktopServices::openUrl(QUrl::fromLocalFile(dir.absolutePath()));
};
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
if(!isFlatpak())
{
return IndirectOpen(f);
}
else
{
return f();
}
#else
return f();
#endif
return openUrl(QUrl::fromLocalFile(QFileInfo(path).absoluteFilePath()));
}
bool openFile(const QString &path)
bool openPath(const QString& path, bool ensureFolderPathExists)
{
qDebug() << "Opening file" << path;
auto f = [&]()
{
return QDesktopServices::openUrl(QUrl::fromLocalFile(path));
};
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
if(!isFlatpak())
{
return IndirectOpen(f);
}
else
{
return f();
}
#else
return f();
#endif
return openPath(QFileInfo(path), ensureFolderPathExists);
}
bool openFile(const QString &application, const QString &path, const QString &workingDirectory, qint64 *pid)
{
qDebug() << "Opening file" << path << "using" << application;
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
// FIXME: the pid here is fake. So if something depends on it, it will likely misbehave
if(!isFlatpak())
{
return IndirectOpen([&]()
{
return QProcess::startDetached(application, QStringList() << path, workingDirectory);
}, pid);
}
else
{
return QProcess::startDetached(application, QStringList() << path, workingDirectory, pid);
}
#else
return QProcess::startDetached(application, QStringList() << path, workingDirectory, pid);
#endif
}
bool run(const QString &application, const QStringList &args, const QString &workingDirectory, qint64 *pid)
bool run(const QString& application, const QStringList& args, const QString& workingDirectory, qint64* pid)
{
qDebug() << "Running" << application << "with args" << args.join(' ');
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
if(!isFlatpak())
{
// FIXME: the pid here is fake. So if something depends on it, it will likely misbehave
return IndirectOpen([&]()
{
return QProcess::startDetached(application, args, workingDirectory);
}, pid);
}
else
{
return QProcess::startDetached(application, args, workingDirectory, pid);
}
#else
return QProcess::startDetached(application, args, workingDirectory, pid);
#endif
}
bool openUrl(const QUrl &url)
bool openUrl(const QUrl& url)
{
qDebug() << "Opening URL" << url.toString();
auto f = [&]()
{
return QDesktopServices::openUrl(url);
};
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
if(!isFlatpak())
{
return IndirectOpen(f);
}
else
{
return f();
}
#else
return f();
#endif
return QDesktopServices::openUrl(url);
}
bool isFlatpak()
@ -225,4 +75,13 @@ bool isFlatpak()
#endif
}
bool isSnap()
{
#ifdef Q_OS_LINUX
return getenv("SNAP");
#else
return false;
#endif
}
} // namespace DesktopServices

View file

@ -1,38 +1,44 @@
#pragma once
#include <QUrl>
#include <QString>
#include <QUrl>
class QFileInfo;
/**
* This wraps around QDesktopServices and adds workarounds where needed
* Use this instead of QDesktopServices!
*/
namespace DesktopServices
{
/**
* Open a file in whatever application is applicable
*/
bool openFile(const QString &path);
namespace DesktopServices {
/**
* Open a path in whatever application is applicable.
* @param ensureFolderPathExists Make sure the path exists
*/
bool openPath(const QFileInfo& path, bool ensureFolderPathExists = false);
/**
* Open a file in the specified application
*/
bool openFile(const QString &application, const QString &path, const QString & workingDirectory = QString(), qint64 *pid = 0);
/**
* Open a path in whatever application is applicable.
* @param ensureFolderPathExists Make sure the path exists
*/
bool openPath(const QString& path, bool ensureFolderPathExists = false);
/**
* Run an application
*/
bool run(const QString &application,const QStringList &args, const QString & workingDirectory = QString(), qint64 *pid = 0);
/**
* Run an application
*/
bool run(const QString& application, const QStringList& args, const QString& workingDirectory = QString(), qint64* pid = 0);
/**
* Open a directory
*/
bool openDirectory(const QString &path, bool ensureExists = false);
/**
* Open the URL, most likely in a browser. Maybe.
*/
bool openUrl(const QUrl& url);
/**
* Open the URL, most likely in a browser. Maybe.
*/
bool openUrl(const QUrl &url);
/**
* Determine whether the launcher is running in a Flatpak environment
*/
bool isFlatpak();
bool isFlatpak();
}
/**
* Determine whether the launcher is running in a Snap environment
*/
bool isSnap();
} // namespace DesktopServices

View file

@ -1,32 +1,52 @@
// Licensed under the Apache-2.0 license. See README.md for details.
// SPDX-License-Identifier: GPL-3.0-only AND Apache-2.0
/*
* Prism Launcher - Minecraft Launcher
* Copyright (c) 2024 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Copyright 2013-2021 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <QString>
#include <QDebug>
#include <QString>
#include <exception>
class Exception : public std::exception
{
public:
Exception(const QString &message) : std::exception(), m_message(message)
{
qCritical() << "Exception:" << message;
}
Exception(const Exception &other)
: std::exception(), m_message(other.cause())
{
}
class Exception : public std::exception {
public:
Exception(const QString& message) : std::exception(), m_message(message.toUtf8()) { qCritical() << "Exception:" << message; }
Exception(const Exception& other) : std::exception(), m_message(other.m_message) {}
virtual ~Exception() noexcept {}
const char *what() const noexcept
{
return m_message.toLatin1().constData();
}
QString cause() const
{
return m_message;
}
const char* what() const noexcept { return m_message.constData(); }
QString cause() const { return QString::fromUtf8(m_message); }
private:
QString m_message;
private:
QByteArray m_message;
};

View file

@ -4,31 +4,24 @@
template <typename T>
inline void clamp(T& current, T min, T max)
{
if (current < min)
{
if (current < min) {
current = min;
}
else if(current > max)
{
} else if (current > max) {
current = max;
}
}
// List of numbers from min to max. Next is exponent times bigger than previous.
class ExponentialSeries
{
public:
class ExponentialSeries {
public:
ExponentialSeries(unsigned min, unsigned max, unsigned exponent = 2)
{
m_current = m_min = min;
m_max = max;
m_exponent = exponent;
}
void reset()
{
m_current = m_min;
}
void reset() { m_current = m_min; }
unsigned operator()()
{
unsigned retval = m_current;

View file

@ -0,0 +1,47 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "FastFileIconProvider.h"
#include <QApplication>
#include <QStyle>
QIcon FastFileIconProvider::icon(const QFileInfo& info) const
{
#if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
bool link = info.isSymbolicLink() || info.isAlias() || info.isShortcut();
#else
// in versions prior to 6.4 we don't have access to isAlias
bool link = info.isSymLink();
#endif
QStyle::StandardPixmap icon;
if (info.isDir()) {
if (link)
icon = QStyle::SP_DirLinkIcon;
else
icon = QStyle::SP_DirIcon;
} else {
if (link)
icon = QStyle::SP_FileLinkIcon;
else
icon = QStyle::SP_FileIcon;
}
return QApplication::style()->standardIcon(icon);
}

View file

@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once
#include <QFileIconProvider>
class FastFileIconProvider : public QFileIconProvider {
public:
QIcon icon(const QFileInfo& info) const override;
};

View file

@ -0,0 +1,276 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Copyright 2013-2021 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "FileIgnoreProxy.h"
#include <QDebug>
#include <QFileSystemModel>
#include <QSortFilterProxyModel>
#include <QStack>
#include <algorithm>
#include "FileSystem.h"
#include "SeparatorPrefixTree.h"
#include "StringUtils.h"
FileIgnoreProxy::FileIgnoreProxy(QString root, QObject* parent) : QSortFilterProxyModel(parent), root(root) {}
// NOTE: Sadly, we have to do sorting ourselves.
bool FileIgnoreProxy::lessThan(const QModelIndex& left, const QModelIndex& right) const
{
QFileSystemModel* fsm = qobject_cast<QFileSystemModel*>(sourceModel());
if (!fsm) {
return QSortFilterProxyModel::lessThan(left, right);
}
bool asc = sortOrder() == Qt::AscendingOrder ? true : false;
QFileInfo leftFileInfo = fsm->fileInfo(left);
QFileInfo rightFileInfo = fsm->fileInfo(right);
if (!leftFileInfo.isDir() && rightFileInfo.isDir()) {
return !asc;
}
if (leftFileInfo.isDir() && !rightFileInfo.isDir()) {
return asc;
}
// sort and proxy model breaks the original model...
if (sortColumn() == 0) {
return StringUtils::naturalCompare(leftFileInfo.fileName(), rightFileInfo.fileName(), Qt::CaseInsensitive) < 0;
}
if (sortColumn() == 1) {
auto leftSize = leftFileInfo.size();
auto rightSize = rightFileInfo.size();
if ((leftSize == rightSize) || (leftFileInfo.isDir() && rightFileInfo.isDir())) {
return StringUtils::naturalCompare(leftFileInfo.fileName(), rightFileInfo.fileName(), Qt::CaseInsensitive) < 0 ? asc : !asc;
}
return leftSize < rightSize;
}
return QSortFilterProxyModel::lessThan(left, right);
}
Qt::ItemFlags FileIgnoreProxy::flags(const QModelIndex& index) const
{
if (!index.isValid())
return Qt::NoItemFlags;
auto sourceIndex = mapToSource(index);
Qt::ItemFlags flags = sourceIndex.flags();
if (index.column() == 0) {
flags |= Qt::ItemIsUserCheckable;
if (sourceIndex.model()->hasChildren(sourceIndex)) {
flags |= Qt::ItemIsAutoTristate;
}
}
return flags;
}
QVariant FileIgnoreProxy::data(const QModelIndex& index, int role) const
{
QModelIndex sourceIndex = mapToSource(index);
if (index.column() == 0 && role == Qt::CheckStateRole) {
QFileSystemModel* fsm = qobject_cast<QFileSystemModel*>(sourceModel());
auto blockedPath = relPath(fsm->filePath(sourceIndex));
auto cover = blocked.cover(blockedPath);
if (!cover.isNull()) {
return QVariant(Qt::Unchecked);
} else if (blocked.exists(blockedPath)) {
return QVariant(Qt::PartiallyChecked);
} else {
return QVariant(Qt::Checked);
}
}
return sourceIndex.data(role);
}
bool FileIgnoreProxy::setData(const QModelIndex& index, const QVariant& value, int role)
{
if (index.column() == 0 && role == Qt::CheckStateRole) {
Qt::CheckState state = static_cast<Qt::CheckState>(value.toInt());
return setFilterState(index, state);
}
QModelIndex sourceIndex = mapToSource(index);
return QSortFilterProxyModel::sourceModel()->setData(sourceIndex, value, role);
}
QString FileIgnoreProxy::relPath(const QString& path) const
{
return QDir(root).relativeFilePath(path);
}
bool FileIgnoreProxy::setFilterState(QModelIndex index, Qt::CheckState state)
{
QFileSystemModel* fsm = qobject_cast<QFileSystemModel*>(sourceModel());
if (!fsm) {
return false;
}
QModelIndex sourceIndex = mapToSource(index);
auto blockedPath = relPath(fsm->filePath(sourceIndex));
bool changed = false;
if (state == Qt::Unchecked) {
// blocking a path
auto& node = blocked.insert(blockedPath);
// get rid of all blocked nodes below
node.clear();
changed = true;
} else if (state == Qt::Checked || state == Qt::PartiallyChecked) {
if (!blocked.remove(blockedPath)) {
auto cover = blocked.cover(blockedPath);
qDebug() << "Blocked by cover" << cover;
// uncover
blocked.remove(cover);
// block all contents, except for any cover
QModelIndex rootIndex = fsm->index(FS::PathCombine(root, cover));
QModelIndex doing = rootIndex;
int row = 0;
QStack<QModelIndex> todo;
while (1) {
auto node = fsm->index(row, 0, doing);
if (!node.isValid()) {
if (!todo.size()) {
break;
} else {
doing = todo.pop();
row = 0;
continue;
}
}
auto relpath = relPath(fsm->filePath(node));
if (blockedPath.startsWith(relpath)) // cover found?
{
// continue processing cover later
todo.push(node);
} else {
// or just block this one.
blocked.insert(relpath);
}
row++;
}
}
changed = true;
}
if (changed) {
// update the thing
emit dataChanged(index, index, { Qt::CheckStateRole });
// update everything above index
QModelIndex up = index.parent();
while (1) {
if (!up.isValid())
break;
emit dataChanged(up, up, { Qt::CheckStateRole });
up = up.parent();
}
// and everything below the index
QModelIndex doing = index;
int row = 0;
QStack<QModelIndex> todo;
while (1) {
auto node = this->index(row, 0, doing);
if (!node.isValid()) {
if (!todo.size()) {
break;
} else {
doing = todo.pop();
row = 0;
continue;
}
}
emit dataChanged(node, node, { Qt::CheckStateRole });
todo.push(node);
row++;
}
// siblings and unrelated nodes are ignored
}
return true;
}
bool FileIgnoreProxy::shouldExpand(QModelIndex index)
{
QModelIndex sourceIndex = mapToSource(index);
QFileSystemModel* fsm = qobject_cast<QFileSystemModel*>(sourceModel());
if (!fsm) {
return false;
}
auto blockedPath = relPath(fsm->filePath(sourceIndex));
auto found = blocked.find(blockedPath);
if (found) {
return !found->leaf();
}
return false;
}
void FileIgnoreProxy::setBlockedPaths(QStringList paths)
{
beginResetModel();
blocked.clear();
blocked.insert(paths);
endResetModel();
}
bool FileIgnoreProxy::filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const
{
Q_UNUSED(source_parent)
// adjust the columns you want to filter out here
// return false for those that will be hidden
if (source_column == 2 || source_column == 3)
return false;
return true;
}
bool FileIgnoreProxy::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const
{
QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
QFileSystemModel* fsm = qobject_cast<QFileSystemModel*>(sourceModel());
auto fileInfo = fsm->fileInfo(index);
return !ignoreFile(fileInfo);
}
bool FileIgnoreProxy::ignoreFile(QFileInfo fileInfo) const
{
return m_ignoreFiles.contains(fileInfo.fileName()) || m_ignoreFilePaths.covers(relPath(fileInfo.absoluteFilePath()));
}
bool FileIgnoreProxy::filterFile(const QString& fileName) const
{
return blocked.covers(fileName) || ignoreFile(QFileInfo(QDir(root), fileName));
}

View file

@ -0,0 +1,85 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Copyright 2013-2021 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <QFileInfo>
#include <QSortFilterProxyModel>
#include "SeparatorPrefixTree.h"
class FileIgnoreProxy : public QSortFilterProxyModel {
Q_OBJECT
public:
FileIgnoreProxy(QString root, QObject* parent);
// NOTE: Sadly, we have to do sorting ourselves.
bool lessThan(const QModelIndex& left, const QModelIndex& right) const;
virtual Qt::ItemFlags flags(const QModelIndex& index) const;
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QString relPath(const QString& path) const;
bool setFilterState(QModelIndex index, Qt::CheckState state);
bool shouldExpand(QModelIndex index);
void setBlockedPaths(QStringList paths);
inline const SeparatorPrefixTree<'/'>& blockedPaths() const { return blocked; }
inline SeparatorPrefixTree<'/'>& blockedPaths() { return blocked; }
// list of file names that need to be removed completely from model
inline QStringList& ignoreFilesWithName() { return m_ignoreFiles; }
// list of relative paths that need to be removed completely from model
inline SeparatorPrefixTree<'/'>& ignoreFilesWithPath() { return m_ignoreFilePaths; }
bool filterFile(const QString& fileName) const;
protected:
bool filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const;
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
bool ignoreFile(QFileInfo file) const;
private:
const QString root;
SeparatorPrefixTree<'/'> blocked;
QStringList m_ignoreFiles;
SeparatorPrefixTree<'/'> m_ignoreFilePaths;
};

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,9 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me>
* Copyright (C) 2022 Rachel Powers <508861+Ryex@users.noreply.github.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -38,9 +40,14 @@
#include "Exception.h"
#include "pathmatcher/IPathMatcher.h"
#include <system_error>
#include <QDir>
#include <QFlags>
#include <QLocalServer>
#include <QObject>
#include <QPair>
#include <QThread>
namespace FS {
@ -55,7 +62,17 @@ class FileSystemException : public ::Exception {
void write(const QString& filename, const QByteArray& data);
/**
* read data from a file safely\
* append data to a file safely
*/
void appendSafe(const QString& filename, const QByteArray& data);
/**
* append data to a file
*/
void append(const QString& filename, const QByteArray& data);
/**
* read data from a file safely
*/
QByteArray read(const QString& filename);
@ -74,9 +91,17 @@ bool ensureFilePathExists(QString filenamepath);
* Creates all the folders in a path for the specified path
* last segment of the path is treated as a folder name and is created!
*/
bool ensureFolderPathExists(QString filenamepath);
bool ensureFolderPathExists(const QFileInfo folderPath);
/// @brief Copies a directory and it's contents from src to dest
/**
* Creates all the folders in a path for the specified path
* last segment of the path is treated as a folder name and is created!
*/
bool ensureFolderPathExists(const QString folderPathName);
/**
* @brief Copies a directory and it's contents from src to dest
*/
class copy : public QObject {
Q_OBJECT
public:
@ -100,13 +125,21 @@ class copy : public QObject {
m_whitelist = whitelist;
return *this;
}
copy& overwrite(const bool overwrite)
{
m_overwrite = overwrite;
return *this;
}
bool operator()(bool dryRun = false) { return operator()(QString(), dryRun); }
int totalCopied() { return m_copied; }
qsizetype totalCopied() { return m_copied; }
qsizetype totalFailed() { return m_failedPaths.length(); }
QStringList failed() { return m_failedPaths; }
signals:
void fileCopied(const QString& relativeName);
void copyFailed(const QString& relativeName);
// TODO: maybe add a "shouldCopy" signal in the future?
private:
@ -116,11 +149,143 @@ class copy : public QObject {
bool m_followSymlinks = true;
const IPathMatcher* m_matcher = nullptr;
bool m_whitelist = false;
bool m_overwrite = false;
QDir m_src;
QDir m_dst;
int m_copied;
qsizetype m_copied;
QStringList m_failedPaths;
};
struct LinkPair {
QString src;
QString dst;
};
struct LinkResult {
QString src;
QString dst;
QString err_msg;
int err_value;
};
class ExternalLinkFileProcess : public QThread {
Q_OBJECT
public:
ExternalLinkFileProcess(QString server, bool useHardLinks, QObject* parent = nullptr)
: QThread(parent), m_useHardLinks(useHardLinks), m_server(server)
{}
void run() override
{
runLinkFile();
emit processExited();
}
signals:
void processExited();
private:
void runLinkFile();
bool m_useHardLinks = false;
QString m_server;
};
/**
* @brief links (a file / a directory and it's contents) from src to dest
*/
class create_link : public QObject {
Q_OBJECT
public:
create_link(const QList<LinkPair> path_pairs, QObject* parent = nullptr) : QObject(parent) { m_path_pairs.append(path_pairs); }
create_link(const QString& src, const QString& dst, QObject* parent = nullptr) : QObject(parent)
{
LinkPair pair = { src, dst };
m_path_pairs.append(pair);
}
create_link& useHardLinks(const bool useHard)
{
m_useHardLinks = useHard;
return *this;
}
create_link& matcher(const IPathMatcher* filter)
{
m_matcher = filter;
return *this;
}
create_link& whitelist(bool whitelist)
{
m_whitelist = whitelist;
return *this;
}
create_link& linkRecursively(bool recursive)
{
m_recursive = recursive;
return *this;
}
create_link& setMaxDepth(int depth)
{
m_max_depth = depth;
return *this;
}
create_link& debug(bool d)
{
m_debug = d;
return *this;
}
std::error_code getOSError() { return m_os_err; }
bool operator()(bool dryRun = false) { return operator()(QString(), dryRun); }
int totalLinked() { return m_linked; }
int totalToLink() { return static_cast<int>(m_links_to_make.size()); }
void runPrivileged() { runPrivileged(QString()); }
void runPrivileged(const QString& offset);
QList<LinkResult> getResults() { return m_path_results; }
signals:
void fileLinked(const QString& srcName, const QString& dstName);
void linkFailed(const QString& srcName, const QString& dstName, const QString& err_msg, int err_value);
void finished();
void finishedPrivileged(bool gotResults);
private:
bool operator()(const QString& offset, bool dryRun = false);
void make_link_list(const QString& offset);
bool make_links();
private:
bool m_useHardLinks = false;
const IPathMatcher* m_matcher = nullptr;
bool m_whitelist = false;
bool m_recursive = true;
/// @brief >= -1 = infinite, 0 = link files at src/* to dest/*, 1 = link files at src/*/* to dest/*/*, etc.
int m_max_depth = -1;
QList<LinkPair> m_path_pairs;
QList<LinkResult> m_path_results;
QList<LinkPair> m_links_to_make;
int m_linked;
bool m_debug = false;
std::error_code m_os_err;
QLocalServer m_linkServer;
};
/**
* @brief moves a file by renaming it
* @param source source file path
* @param dest destination filepath
*
*/
bool move(const QString& source, const QString& dest);
/**
* Delete a folder recursively
*/
@ -129,13 +294,30 @@ bool deletePath(QString path);
/**
* Trash a folder / file
*/
bool trash(QString path, QString *pathInTrash);
bool trash(QString path, QString* pathInTrash = nullptr);
QString PathCombine(const QString& path1, const QString& path2);
QString PathCombine(const QString& path1, const QString& path2, const QString& path3);
QString PathCombine(const QString& path1, const QString& path2, const QString& path3, const QString& path4);
QString AbsolutePath(QString path);
QString AbsolutePath(const QString& path);
/**
* @brief depth of path. "foo.txt" -> 0 , "bar/foo.txt" -> 1, /baz/bar/foo.txt -> 2, etc.
*
* @param path path to measure
* @return int number of components before base path
*/
int pathDepth(const QString& path);
/**
* @brief cut off segments of path until it is a max of length depth
*
* @param path path to truncate
* @param depth max depth of new path
* @return QString truncated path
*/
QString pathTruncate(const QString& path, int depth);
/**
* Resolve an executable
@ -161,6 +343,8 @@ QString NormalizePath(QString path);
QString RemoveInvalidFilenameChars(QString string, QChar replaceWith = '-');
QString RemoveInvalidPathChars(QString string, QChar replaceWith = '-');
QString DirNameFromString(QString string, QString inDir = ".");
/// Checks if the a given Path contains "!"
@ -177,4 +361,205 @@ bool overrideFolder(QString overwritten_path, QString override_path);
* Creates a shortcut to the specified target file at the specified destination path.
*/
bool createShortcut(QString destination, QString target, QStringList args, QString name, QString icon);
}
enum class FilesystemType {
FAT,
NTFS,
REFS,
EXT,
EXT_2_OLD,
EXT_2_3_4,
XFS,
BTRFS,
NFS,
ZFS,
APFS,
HFS,
HFSPLUS,
HFSX,
FUSEBLK,
F2FS,
BCACHEFS,
UNKNOWN
};
/**
* @brief Ordered Mapping of enum types to reported filesystem names
* this mapping is non exsaustive, it just attempts to capture the filesystems which could be reasonalbly be in use .
* all string values are in uppercase, use `QString.toUpper()` or equivalent during lookup.
*
* QMap is ordered
*
*/
static const QMap<FilesystemType, QStringList> s_filesystem_type_names = { { FilesystemType::FAT, { "FAT" } },
{ FilesystemType::NTFS, { "NTFS" } },
{ FilesystemType::REFS, { "REFS" } },
{ FilesystemType::EXT_2_OLD, { "EXT_2_OLD", "EXT2_OLD" } },
{ FilesystemType::EXT_2_3_4,
{ "EXT2/3/4", "EXT_2_3_4", "EXT2", "EXT3", "EXT4" } },
{ FilesystemType::EXT, { "EXT" } },
{ FilesystemType::XFS, { "XFS" } },
{ FilesystemType::BTRFS, { "BTRFS" } },
{ FilesystemType::NFS, { "NFS" } },
{ FilesystemType::ZFS, { "ZFS" } },
{ FilesystemType::APFS, { "APFS" } },
{ FilesystemType::HFS, { "HFS" } },
{ FilesystemType::HFSPLUS, { "HFSPLUS" } },
{ FilesystemType::HFSX, { "HFSX" } },
{ FilesystemType::FUSEBLK, { "FUSEBLK" } },
{ FilesystemType::F2FS, { "F2FS" } },
{ FilesystemType::BCACHEFS, { "BCACHEFS" } },
{ FilesystemType::UNKNOWN, { "UNKNOWN" } } };
/**
* @brief Get the string name of Filesystem enum object
*
* @param type
* @return QString
*/
QString getFilesystemTypeName(FilesystemType type);
/**
* @brief Get the Filesystem enum object from a name
* Does a lookup of the type name and returns an exact match
*
* @param name
* @return FilesystemType
*/
FilesystemType getFilesystemType(const QString& name);
/**
* @brief Get the Filesystem enum object from a name
* Does a fuzzy lookup of the type name and returns an apropreate match
*
* @param name
* @return FilesystemType
*/
FilesystemType getFilesystemTypeFuzzy(const QString& name);
struct FilesystemInfo {
FilesystemType fsType = FilesystemType::UNKNOWN;
QString fsTypeName;
int blockSize;
qint64 bytesAvailable;
qint64 bytesFree;
qint64 bytesTotal;
QString name;
QString rootPath;
};
/**
* @brief path to the near ancestor that exists
*
*/
QString nearestExistentAncestor(const QString& path);
/**
* @brief colect information about the filesystem under a file
*
*/
FilesystemInfo statFS(const QString& path);
static const QList<FilesystemType> s_clone_filesystems = { FilesystemType::BTRFS, FilesystemType::APFS, FilesystemType::ZFS,
FilesystemType::XFS, FilesystemType::REFS, FilesystemType::BCACHEFS };
/**
* @brief if the Filesystem is reflink/clone capable
*
*/
bool canCloneOnFS(const QString& path);
bool canCloneOnFS(const FilesystemInfo& info);
bool canCloneOnFS(FilesystemType type);
/**
* @brief if the Filesystems are reflink/clone capable and both are on the same device
*
*/
bool canClone(const QString& src, const QString& dst);
/**
* @brief Copies a directory and it's contents from src to dest
*/
class clone : public QObject {
Q_OBJECT
public:
clone(const QString& src, const QString& dst, QObject* parent = nullptr) : QObject(parent)
{
m_src.setPath(src);
m_dst.setPath(dst);
}
clone& matcher(const IPathMatcher* filter)
{
m_matcher = filter;
return *this;
}
clone& whitelist(bool whitelist)
{
m_whitelist = whitelist;
return *this;
}
bool operator()(bool dryRun = false) { return operator()(QString(), dryRun); }
qsizetype totalCloned() { return m_cloned; }
qsizetype totalFailed() { return m_failedClones.length(); }
QList<QPair<QString, QString>> failed() { return m_failedClones; }
signals:
void fileCloned(const QString& src, const QString& dst);
void cloneFailed(const QString& src, const QString& dst);
private:
bool operator()(const QString& offset, bool dryRun = false);
private:
const IPathMatcher* m_matcher = nullptr;
bool m_whitelist = false;
QDir m_src;
QDir m_dst;
qsizetype m_cloned;
QList<QPair<QString, QString>> m_failedClones;
};
/**
* @brief clone/reflink file from src to dst
*
*/
bool clone_file(const QString& src, const QString& dst, std::error_code& ec);
#if defined(Q_OS_WIN)
bool win_ioctl_clone(const std::wstring& src_path, const std::wstring& dst_path, std::error_code& ec);
#elif defined(Q_OS_LINUX)
bool linux_ficlone(const std::string& src_path, const std::string& dst_path, std::error_code& ec);
#elif defined(Q_OS_MACOS) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
bool macos_bsd_clonefile(const std::string& src_path, const std::string& dst_path, std::error_code& ec);
#endif
static const QList<FilesystemType> s_non_link_filesystems = {
FilesystemType::FAT,
};
/**
* @brief if the Filesystem is symlink capable
*
*/
bool canLinkOnFS(const QString& path);
bool canLinkOnFS(const FilesystemInfo& info);
bool canLinkOnFS(FilesystemType type);
/**
* @brief if the Filesystem is symlink capable on both ends
*
*/
bool canLink(const QString& src, const QString& dst);
uintmax_t hardLinkCount(const QString& path);
#ifdef Q_OS_WIN
QString getPathNameInLocal8bit(const QString& file);
#endif
QString getUniqueResourceName(const QString& filePath);
} // namespace FS

View file

@ -1,31 +1,37 @@
#include "Filter.h"
Filter::~Filter(){}
ContainsFilter::ContainsFilter(const QString& pattern) : pattern(pattern){}
ContainsFilter::~ContainsFilter(){}
ContainsFilter::ContainsFilter(const QString& pattern) : pattern(pattern) {}
bool ContainsFilter::accepts(const QString& value)
{
return value.contains(pattern);
}
ExactFilter::ExactFilter(const QString& pattern) : pattern(pattern){}
ExactFilter::~ExactFilter(){}
ExactFilter::ExactFilter(const QString& pattern) : pattern(pattern) {}
bool ExactFilter::accepts(const QString& value)
{
return value == pattern;
}
RegexpFilter::RegexpFilter(const QString& regexp, bool invert)
:invert(invert)
ExactIfPresentFilter::ExactIfPresentFilter(const QString& pattern) : pattern(pattern) {}
bool ExactIfPresentFilter::accepts(const QString& value)
{
return value.isEmpty() || value == pattern;
}
RegexpFilter::RegexpFilter(const QString& regexp, bool invert) : invert(invert)
{
pattern.setPattern(regexp);
pattern.optimize();
}
RegexpFilter::~RegexpFilter(){}
bool RegexpFilter::accepts(const QString& value)
{
auto match = pattern.match(value);
bool matched = match.hasMatch();
return invert ? (!matched) : (matched);
}
ExactListFilter::ExactListFilter(const QStringList& pattern) : m_pattern(pattern) {}
bool ExactListFilter::accepts(const QString& value)
{
return m_pattern.isEmpty() || m_pattern.contains(value);
}

View file

@ -1,42 +1,61 @@
#pragma once
#include <QString>
#include <QRegularExpression>
#include <QString>
class Filter
{
public:
virtual ~Filter();
virtual bool accepts(const QString & value) = 0;
class Filter {
public:
virtual ~Filter() = default;
virtual bool accepts(const QString& value) = 0;
};
class ContainsFilter: public Filter
{
public:
ContainsFilter(const QString &pattern);
virtual ~ContainsFilter();
bool accepts(const QString & value) override;
private:
class ContainsFilter : public Filter {
public:
ContainsFilter(const QString& pattern);
virtual ~ContainsFilter() = default;
bool accepts(const QString& value) override;
private:
QString pattern;
};
class ExactFilter: public Filter
{
public:
ExactFilter(const QString &pattern);
virtual ~ExactFilter();
bool accepts(const QString & value) override;
private:
class ExactFilter : public Filter {
public:
ExactFilter(const QString& pattern);
virtual ~ExactFilter() = default;
bool accepts(const QString& value) override;
private:
QString pattern;
};
class RegexpFilter: public Filter
{
public:
RegexpFilter(const QString &regexp, bool invert);
virtual ~RegexpFilter();
bool accepts(const QString & value) override;
private:
class ExactIfPresentFilter : public Filter {
public:
ExactIfPresentFilter(const QString& pattern);
virtual ~ExactIfPresentFilter() override = default;
bool accepts(const QString& value) override;
private:
QString pattern;
};
class RegexpFilter : public Filter {
public:
RegexpFilter(const QString& regexp, bool invert);
virtual ~RegexpFilter() = default;
bool accepts(const QString& value) override;
private:
QRegularExpression pattern;
bool invert = false;
};
class ExactListFilter : public Filter {
public:
ExactListFilter(const QStringList& pattern = {});
virtual ~ExactListFilter() = default;
bool accepts(const QString& value) override;
private:
QStringList m_pattern;
};

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -37,10 +37,9 @@
#include <zlib.h>
#include <QByteArray>
bool GZip::unzip(const QByteArray &compressedBytes, QByteArray &uncompressedBytes)
bool GZip::unzip(const QByteArray& compressedBytes, QByteArray& uncompressedBytes)
{
if (compressedBytes.size() == 0)
{
if (compressedBytes.size() == 0) {
uncompressedBytes = compressedBytes;
return true;
}
@ -51,42 +50,37 @@ bool GZip::unzip(const QByteArray &compressedBytes, QByteArray &uncompressedByte
z_stream strm;
memset(&strm, 0, sizeof(strm));
strm.next_in = (Bytef *)compressedBytes.data();
strm.next_in = (Bytef*)compressedBytes.data();
strm.avail_in = compressedBytes.size();
bool done = false;
if (inflateInit2(&strm, (16 + MAX_WBITS)) != Z_OK)
{
if (inflateInit2(&strm, (16 + MAX_WBITS)) != Z_OK) {
return false;
}
int err = Z_OK;
while (!done)
{
while (!done) {
// If our output buffer is too small
if (strm.total_out >= uncompLength)
{
if (strm.total_out >= uncompLength) {
uncompressedBytes.resize(uncompLength * 2);
uncompLength *= 2;
}
strm.next_out = reinterpret_cast<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.
err = inflate(&strm, Z_SYNC_FLUSH);
if (err == Z_STREAM_END)
done = true;
else if (err != Z_OK)
{
else if (err != Z_OK) {
break;
}
}
if (inflateEnd(&strm) != Z_OK || !done)
{
if (inflateEnd(&strm) != Z_OK || !done) {
return false;
}
@ -94,10 +88,9 @@ bool GZip::unzip(const QByteArray &compressedBytes, QByteArray &uncompressedByte
return true;
}
bool GZip::zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes)
bool GZip::zip(const QByteArray& uncompressedBytes, QByteArray& compressedBytes)
{
if (uncompressedBytes.size() == 0)
{
if (uncompressedBytes.size() == 0) {
compressedBytes = uncompressedBytes;
return true;
}
@ -109,8 +102,7 @@ bool GZip::zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes)
z_stream zs;
memset(&zs, 0, sizeof(zs));
if (deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED, (16 + MAX_WBITS), 8, Z_DEFAULT_STRATEGY) != Z_OK)
{
if (deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED, (16 + MAX_WBITS), 8, Z_DEFAULT_STRATEGY) != Z_OK) {
return false;
}
@ -122,11 +114,9 @@ bool GZip::zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes)
unsigned offset = 0;
unsigned temp = 0;
do
{
do {
auto remaining = compressedBytes.size() - offset;
if(remaining < 1)
{
if (remaining < 1) {
compressedBytes.resize(compressedBytes.size() * 2);
}
zs.next_out = reinterpret_cast<Bytef*>((compressedBytes.data() + offset));
@ -137,13 +127,11 @@ bool GZip::zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes)
compressedBytes.resize(offset);
if (deflateEnd(&zs) != Z_OK)
{
if (deflateEnd(&zs) != Z_OK) {
return false;
}
if (ret != Z_STREAM_END)
{
if (ret != Z_STREAM_END) {
return false;
}
return true;

View file

@ -1,10 +1,8 @@
#pragma once
#include <QByteArray>
class GZip
{
public:
static bool unzip(const QByteArray &compressedBytes, QByteArray &uncompressedBytes);
static bool zip(const QByteArray &uncompressedBytes, QByteArray &compressedBytes);
class GZip {
public:
static bool unzip(const QByteArray& compressedBytes, QByteArray& uncompressedBytes);
static bool zip(const QByteArray& uncompressedBytes, QByteArray& compressedBytes);
};

View file

@ -1,76 +0,0 @@
/* Copyright 2013-2021 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <hoedown/html.h>
#include <hoedown/document.h>
#include <QString>
#include <QByteArray>
/**
* hoedown wrapper, because dealing with resource lifetime in C is stupid
*/
class HoeDown
{
public:
class buffer
{
public:
buffer(size_t unit = 4096)
{
buf = hoedown_buffer_new(unit);
}
~buffer()
{
hoedown_buffer_free(buf);
}
const char * cstr()
{
return hoedown_buffer_cstr(buf);
}
void put(QByteArray input)
{
hoedown_buffer_put(buf, reinterpret_cast<uint8_t *>(input.data()), input.size());
}
const uint8_t * data() const
{
return buf->data;
}
size_t size() const
{
return buf->size;
}
hoedown_buffer * buf;
} ib, ob;
HoeDown()
{
renderer = hoedown_html_renderer_new((hoedown_html_flags) 0,0);
document = hoedown_document_new(renderer, (hoedown_extensions) 0, 8);
}
~HoeDown()
{
hoedown_document_free(document);
hoedown_html_renderer_free(renderer);
}
QString process(QByteArray input)
{
ib.put(input);
hoedown_document_render(document, ob.buf, ib.data(), ib.size());
return ob.cstr();
}
private:
hoedown_document * document;
hoedown_renderer * renderer;
};

View file

@ -6,42 +6,49 @@
bool InstanceCopyPrefs::allTrue() const
{
return copySaves &&
keepPlaytime &&
copyGameOptions &&
copyResourcePacks &&
copyShaderPacks &&
copyServers &&
copyMods &&
copyScreenshots;
return copySaves && keepPlaytime && copyGameOptions && copyResourcePacks && copyShaderPacks && copyServers && copyMods &&
copyScreenshots;
}
// Returns a single RegEx string of the selected folders/files to filter out (ex: ".minecraft/saves|.minecraft/server.dat")
QString InstanceCopyPrefs::getSelectedFiltersAsRegex() const
{
return getSelectedFiltersAsRegex({});
}
QString InstanceCopyPrefs::getSelectedFiltersAsRegex(const QStringList& additionalFilters) const
{
QStringList filters;
if(!copySaves)
if (!copySaves)
filters << "saves";
if(!copyGameOptions)
if (!copyGameOptions)
filters << "options.txt";
if(!copyResourcePacks)
filters << "resourcepacks" << "texturepacks";
if (!copyResourcePacks)
filters << "resourcepacks"
<< "texturepacks";
if(!copyShaderPacks)
if (!copyShaderPacks)
filters << "shaderpacks";
if(!copyServers)
filters << "servers.dat" << "servers.dat_old" << "server-resource-packs";
if (!copyServers)
filters << "servers.dat"
<< "servers.dat_old"
<< "server-resource-packs";
if(!copyMods)
filters << "coremods" << "mods" << "config";
if (!copyMods)
filters << "coremods"
<< "mods"
<< "config";
if(!copyScreenshots)
if (!copyScreenshots)
filters << "screenshots";
for (auto filter : additionalFilters) {
filters << filter;
}
// If we have any filters to add, join them as a single regex string to return:
if (!filters.isEmpty()) {
const QString MC_ROOT = "[.]?minecraft/";
@ -93,6 +100,31 @@ bool InstanceCopyPrefs::isCopyScreenshotsEnabled() const
return copyScreenshots;
}
bool InstanceCopyPrefs::isUseSymLinksEnabled() const
{
return useSymLinks;
}
bool InstanceCopyPrefs::isUseHardLinksEnabled() const
{
return useHardLinks;
}
bool InstanceCopyPrefs::isLinkRecursivelyEnabled() const
{
return linkRecursively;
}
bool InstanceCopyPrefs::isDontLinkSavesEnabled() const
{
return dontLinkSaves;
}
bool InstanceCopyPrefs::isUseCloneEnabled() const
{
return useClone;
}
// ======= Setters =======
void InstanceCopyPrefs::enableCopySaves(bool b)
{
@ -133,3 +165,28 @@ void InstanceCopyPrefs::enableCopyScreenshots(bool b)
{
copyScreenshots = b;
}
void InstanceCopyPrefs::enableUseSymLinks(bool b)
{
useSymLinks = b;
}
void InstanceCopyPrefs::enableLinkRecursively(bool b)
{
linkRecursively = b;
}
void InstanceCopyPrefs::enableUseHardLinks(bool b)
{
useHardLinks = b;
}
void InstanceCopyPrefs::enableDontLinkSaves(bool b)
{
dontLinkSaves = b;
}
void InstanceCopyPrefs::enableUseClone(bool b)
{
useClone = b;
}

View file

@ -10,6 +10,7 @@ struct InstanceCopyPrefs {
public:
[[nodiscard]] bool allTrue() const;
[[nodiscard]] QString getSelectedFiltersAsRegex() const;
[[nodiscard]] QString getSelectedFiltersAsRegex(const QStringList& additionalFilters) const;
// Getters
[[nodiscard]] bool isCopySavesEnabled() const;
[[nodiscard]] bool isKeepPlaytimeEnabled() const;
@ -19,6 +20,11 @@ struct InstanceCopyPrefs {
[[nodiscard]] bool isCopyServersEnabled() const;
[[nodiscard]] bool isCopyModsEnabled() const;
[[nodiscard]] bool isCopyScreenshotsEnabled() const;
[[nodiscard]] bool isUseSymLinksEnabled() const;
[[nodiscard]] bool isLinkRecursivelyEnabled() const;
[[nodiscard]] bool isUseHardLinksEnabled() const;
[[nodiscard]] bool isDontLinkSavesEnabled() const;
[[nodiscard]] bool isUseCloneEnabled() const;
// Setters
void enableCopySaves(bool b);
void enableKeepPlaytime(bool b);
@ -28,8 +34,13 @@ struct InstanceCopyPrefs {
void enableCopyServers(bool b);
void enableCopyMods(bool b);
void enableCopyScreenshots(bool b);
void enableUseSymLinks(bool b);
void enableLinkRecursively(bool b);
void enableUseHardLinks(bool b);
void enableDontLinkSaves(bool b);
void enableUseClone(bool b);
protected: // data
protected: // data
bool copySaves = true;
bool keepPlaytime = true;
bool copyGameOptions = true;
@ -38,4 +49,9 @@ struct InstanceCopyPrefs {
bool copyServers = true;
bool copyMods = true;
bool copyScreenshots = true;
bool useSymLinks = false;
bool linkRecursively = false;
bool useHardLinks = false;
bool dontLinkSaves = false;
bool useClone = false;
};

View file

@ -1,18 +1,33 @@
#include "InstanceCopyTask.h"
#include "settings/INISettingsObject.h"
#include <QDebug>
#include <QtConcurrentRun>
#include <memory>
#include "FileSystem.h"
#include "NullInstance.h"
#include "pathmatcher/RegexpMatcher.h"
#include <QtConcurrentRun>
#include "settings/INISettingsObject.h"
#include "tasks/Task.h"
InstanceCopyTask::InstanceCopyTask(InstancePtr origInstance, const InstanceCopyPrefs& prefs)
{
m_origInstance = origInstance;
m_keepPlaytime = prefs.isKeepPlaytimeEnabled();
m_useLinks = prefs.isUseSymLinksEnabled();
m_linkRecursively = prefs.isLinkRecursivelyEnabled();
m_useHardLinks = prefs.isLinkRecursivelyEnabled() && prefs.isUseHardLinksEnabled();
m_copySaves = prefs.isLinkRecursivelyEnabled() && prefs.isDontLinkSavesEnabled() && prefs.isCopySavesEnabled();
m_useClone = prefs.isUseCloneEnabled();
QString filters = prefs.getSelectedFiltersAsRegex();
if (!filters.isEmpty())
{
if (m_useLinks || m_useHardLinks) {
if (!filters.isEmpty())
filters += "|";
filters += "instance.cfg";
}
qDebug() << "CopyFilters:" << filters;
if (!filters.isEmpty()) {
// Set regex filter:
// FIXME: get this from the original instance type...
auto matcherReal = new RegexpMatcher(filters);
@ -25,10 +40,98 @@ void InstanceCopyTask::executeTask()
{
setStatus(tr("Copying instance %1").arg(m_origInstance->name()));
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this]{
m_copyFuture = QtConcurrent::run(QThreadPool::globalInstance(), [this] {
if (m_useClone) {
FS::clone folderClone(m_origInstance->instanceRoot(), m_stagingPath);
folderClone.matcher(m_matcher.get());
folderClone(true);
setProgress(0, folderClone.totalCloned());
connect(&folderClone, &FS::clone::fileCloned,
[this](QString src, QString dst) { setProgress(m_progress + 1, m_progressTotal); });
return folderClone();
}
if (m_useLinks || m_useHardLinks) {
std::unique_ptr<FS::copy> savesCopy;
if (m_copySaves) {
QFileInfo mcDir(FS::PathCombine(m_stagingPath, "minecraft"));
QFileInfo dotMCDir(FS::PathCombine(m_stagingPath, ".minecraft"));
QString staging_mc_dir;
if (dotMCDir.exists() && !mcDir.exists())
staging_mc_dir = dotMCDir.filePath();
else
staging_mc_dir = mcDir.filePath();
savesCopy = std::make_unique<FS::copy>(FS::PathCombine(m_origInstance->gameRoot(), "saves"),
FS::PathCombine(staging_mc_dir, "saves"));
savesCopy->followSymlinks(true);
(*savesCopy)(true);
setProgress(0, savesCopy->totalCopied());
connect(savesCopy.get(), &FS::copy::fileCopied, [this](QString src) { setProgress(m_progress + 1, m_progressTotal); });
}
FS::create_link folderLink(m_origInstance->instanceRoot(), m_stagingPath);
int depth = m_linkRecursively ? -1 : 0; // we need to at least link the top level instead of the instance folder
folderLink.linkRecursively(true).setMaxDepth(depth).useHardLinks(m_useHardLinks).matcher(m_matcher.get());
folderLink(true);
setProgress(0, m_progressTotal + folderLink.totalToLink());
connect(&folderLink, &FS::create_link::fileLinked,
[this](QString src, QString dst) { setProgress(m_progress + 1, m_progressTotal); });
bool there_were_errors = false;
if (!folderLink()) {
#if defined Q_OS_WIN32
if (!m_useHardLinks) {
setProgress(0, m_progressTotal);
qDebug() << "EXPECTED: Link failure, Windows requires permissions for symlinks";
qDebug() << "attempting to run with privelage";
QEventLoop loop;
bool got_priv_results = false;
connect(&folderLink, &FS::create_link::finishedPrivileged, this, [&got_priv_results, &loop](bool gotResults) {
if (!gotResults) {
qDebug() << "Privileged run exited without results!";
}
got_priv_results = gotResults;
loop.quit();
});
folderLink.runPrivileged();
loop.exec(); // wait for the finished signal
for (auto result : folderLink.getResults()) {
if (result.err_value != 0) {
there_were_errors = true;
}
}
if (savesCopy) {
there_were_errors |= !(*savesCopy)();
}
return got_priv_results && !there_were_errors;
}
#else
qDebug() << "Link Failed!" << folderLink.getOSError().value() << folderLink.getOSError().message().c_str();
#endif
return false;
}
if (savesCopy) {
there_were_errors |= !(*savesCopy)();
}
return !there_were_errors;
}
FS::copy folderCopy(m_origInstance->instanceRoot(), m_stagingPath);
folderCopy.followSymlinks(false).matcher(m_matcher.get());
folderCopy(true);
setProgress(0, folderCopy.totalCopied());
connect(&folderCopy, &FS::copy::fileCopied, [this](QString src) { setProgress(m_progress + 1, m_progressTotal); });
return folderCopy();
});
connect(&m_copyFutureWatcher, &QFutureWatcher<bool>::finished, this, &InstanceCopyTask::copyFinished);
@ -39,20 +142,44 @@ void InstanceCopyTask::executeTask()
void InstanceCopyTask::copyFinished()
{
auto successful = m_copyFuture.result();
if(!successful)
{
if (!successful) {
emitFailed(tr("Instance folder copy failed."));
return;
}
// FIXME: shouldn't this be able to report errors?
auto instanceSettings = std::make_shared<INISettingsObject>(FS::PathCombine(m_stagingPath, "instance.cfg"));
InstancePtr inst(new NullInstance(m_globalSettings, instanceSettings, m_stagingPath));
inst->setName(name());
inst->setIconKey(m_instIcon);
if(!m_keepPlaytime) {
if (!m_keepPlaytime) {
inst->resetTimePlayed();
}
if (m_useLinks) {
inst->addLinkedInstanceId(m_origInstance->id());
auto allowed_symlinks_file = QFileInfo(FS::PathCombine(inst->gameRoot(), "allowed_symlinks.txt"));
QByteArray allowed_symlinks;
if (allowed_symlinks_file.exists()) {
allowed_symlinks.append(FS::read(allowed_symlinks_file.filePath()));
if (allowed_symlinks.right(1) != "\n")
allowed_symlinks.append("\n"); // we want to be on a new line
}
allowed_symlinks.append(m_origInstance->gameRoot().toUtf8());
allowed_symlinks.append("\n");
if (allowed_symlinks_file.isSymLink())
FS::deletePath(
allowed_symlinks_file
.filePath()); // we dont want to modify the original. also make sure the resulting file is not itself a link.
try {
FS::write(allowed_symlinks_file.filePath(), allowed_symlinks);
} catch (const FS::FileSystemException& e) {
qCritical() << "Failed to write symlink :" << e.cause();
}
}
emitSucceeded();
}
@ -61,3 +188,14 @@ void InstanceCopyTask::copyAborted()
emitFailed(tr("Instance folder copy has been aborted."));
return;
}
bool InstanceCopyTask::abort()
{
if (m_copyFutureWatcher.isRunning()) {
m_copyFutureWatcher.cancel();
// NOTE: Here we don't do `emitAborted()` because it will be done when `m_copyFutureWatcher` actually cancels, which may not occur
// immediately.
return true;
}
return false;
}

View file

@ -11,23 +11,28 @@
#include "settings/SettingsObject.h"
#include "tasks/Task.h"
class InstanceCopyTask : public InstanceTask
{
class InstanceCopyTask : public InstanceTask {
Q_OBJECT
public:
public:
explicit InstanceCopyTask(InstancePtr origInstance, const InstanceCopyPrefs& prefs);
protected:
protected:
//! Entry point for tasks.
virtual void executeTask() override;
bool abort() override;
void copyFinished();
void copyAborted();
private:
private:
/* data */
InstancePtr m_origInstance;
QFuture<bool> m_copyFuture;
QFutureWatcher<bool> m_copyFutureWatcher;
std::unique_ptr<IPathMatcher> m_matcher;
bool m_keepPlaytime;
bool m_useLinks = false;
bool m_useHardLinks = false;
bool m_copySaves = false;
bool m_linkRecursively = false;
bool m_useClone = false;
};

View file

@ -2,8 +2,7 @@
#include <QDebug>
#include <QFile>
InstanceCreationTask::InstanceCreationTask() = default;
#include "FileSystem.h"
void InstanceCreationTask::executeTask()
{
@ -39,22 +38,29 @@ void InstanceCreationTask::executeTask()
// files scheduled to, and we'd better not let the user abort in the middle of it, since it'd
// put the instance in an invalid state.
if (shouldOverride()) {
bool deleteFailed = false;
setAbortable(false);
setStatus(tr("Removing old conflicting files..."));
qDebug() << "Removing old files";
for (auto path : m_files_to_remove) {
for (const QString& path : m_files_to_remove) {
if (!QFile::exists(path))
continue;
qDebug() << "Removing" << path;
if (!QFile::remove(path)) {
qCritical() << "Couldn't remove the old conflicting files.";
emitFailed(tr("Failed to remove old conflicting files."));
return;
qCritical() << "Could not remove" << path;
deleteFailed = true;
}
}
}
emitSucceeded();
return;
if (deleteFailed) {
emitFailed(tr("Failed to remove old conflicting files."));
return;
}
}
if (!m_abort)
emitSucceeded();
}

View file

@ -6,7 +6,7 @@
class InstanceCreationTask : public InstanceTask {
Q_OBJECT
public:
InstanceCreationTask();
InstanceCreationTask() = default;
virtual ~InstanceCreationTask() = default;
protected:
@ -34,7 +34,7 @@ class InstanceCreationTask : public InstanceTask {
QString getError() const { return m_error_message; }
protected:
void setError(QString message) { m_error_message = message; };
void setError(const QString& message) { m_error_message = message; };
protected:
bool m_abort = false;

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
*
@ -41,21 +41,26 @@
#include "MMCZip.h"
#include "NullInstance.h"
#include "QObjectPtr.h"
#include "icons/IconList.h"
#include "icons/IconUtils.h"
#include "modplatform/technic/TechnicPackProcessor.h"
#include "modplatform/modrinth/ModrinthInstanceCreationTask.h"
#include "modplatform/flame/FlameInstanceCreationTask.h"
#include "modplatform/modrinth/ModrinthInstanceCreationTask.h"
#include "modplatform/technic/TechnicPackProcessor.h"
#include "settings/INISettingsObject.h"
#include "tasks/Task.h"
#include "net/ApiDownload.h"
#include <QtConcurrentRun>
#include <algorithm>
#include <memory>
#include <quazip/quazipdir.h>
InstanceImportTask::InstanceImportTask(const QUrl sourceUrl, QWidget* parent, QMap<QString, QString>&& extra_info)
InstanceImportTask::InstanceImportTask(const QUrl& sourceUrl, QWidget* parent, QMap<QString, QString>&& extra_info)
: m_sourceUrl(sourceUrl), m_extra_info(extra_info), m_parent(parent)
{}
@ -64,11 +69,11 @@ bool InstanceImportTask::abort()
if (!canAbort())
return false;
if (m_filesNetJob)
m_filesNetJob->abort();
m_extractFuture.cancel();
return Task::abort();
bool wasAborted = false;
if (m_task)
wasAborted = m_task->abort();
Task::abort();
return wasAborted;
}
void InstanceImportTask::executeTask()
@ -80,158 +85,166 @@ void InstanceImportTask::executeTask()
processZipPack();
} else {
setStatus(tr("Downloading modpack:\n%1").arg(m_sourceUrl.toString()));
m_downloadRequired = true;
const QString path(m_sourceUrl.host() + '/' + m_sourceUrl.path());
auto entry = APPLICATION->metacache()->resolveEntry("general", path);
entry->setStale(true);
m_archivePath = entry->getFullPath();
m_filesNetJob = new NetJob(tr("Modpack download"), APPLICATION->network());
m_filesNetJob->addNetAction(Net::Download::makeCached(m_sourceUrl, entry));
connect(m_filesNetJob.get(), &NetJob::succeeded, this, &InstanceImportTask::downloadSucceeded);
connect(m_filesNetJob.get(), &NetJob::progress, this, &InstanceImportTask::downloadProgressChanged);
connect(m_filesNetJob.get(), &NetJob::failed, this, &InstanceImportTask::downloadFailed);
connect(m_filesNetJob.get(), &NetJob::aborted, this, &InstanceImportTask::downloadAborted);
m_filesNetJob->start();
downloadFromUrl();
}
}
void InstanceImportTask::downloadSucceeded()
void InstanceImportTask::downloadFromUrl()
{
processZipPack();
m_filesNetJob.reset();
const QString path(m_sourceUrl.host() + '/' + m_sourceUrl.path());
auto entry = APPLICATION->metacache()->resolveEntry("general", path);
entry->setStale(true);
m_archivePath = entry->getFullPath();
auto filesNetJob = makeShared<NetJob>(tr("Modpack download"), APPLICATION->network());
filesNetJob->addNetAction(Net::ApiDownload::makeCached(m_sourceUrl, entry));
connect(filesNetJob.get(), &NetJob::succeeded, this, &InstanceImportTask::processZipPack);
connect(filesNetJob.get(), &NetJob::progress, this, &InstanceImportTask::setProgress);
connect(filesNetJob.get(), &NetJob::stepProgress, this, &InstanceImportTask::propagateStepProgress);
connect(filesNetJob.get(), &NetJob::failed, this, &InstanceImportTask::emitFailed);
connect(filesNetJob.get(), &NetJob::aborted, this, &InstanceImportTask::emitAborted);
m_task.reset(filesNetJob);
filesNetJob->start();
}
void InstanceImportTask::downloadFailed(QString reason)
QString InstanceImportTask::getRootFromZip(QuaZip* zip, const QString& root)
{
emitFailed(reason);
m_filesNetJob.reset();
}
if (!isRunning()) {
return {};
}
QuaZipDir rootDir(zip, root);
for (auto&& fileName : rootDir.entryList(QDir::Files)) {
setDetails(fileName);
if (fileName == "instance.cfg") {
qDebug() << "MultiMC:" << true;
m_modpackType = ModpackType::MultiMC;
return root;
}
if (fileName == "manifest.json") {
qDebug() << "Flame:" << true;
m_modpackType = ModpackType::Flame;
return root;
}
void InstanceImportTask::downloadProgressChanged(qint64 current, qint64 total)
{
setProgress(current, total);
}
QCoreApplication::processEvents();
}
void InstanceImportTask::downloadAborted()
{
emitAborted();
m_filesNetJob.reset();
// Recurse the search to non-ignored subfolders
for (auto&& fileName : rootDir.entryList(QDir::Dirs)) {
if ("overrides/" == fileName)
continue;
QString result = getRootFromZip(zip, root + fileName);
if (!result.isEmpty())
return result;
}
return {};
}
void InstanceImportTask::processZipPack()
{
setStatus(tr("Extracting modpack"));
setStatus(tr("Attempting to determine instance type"));
QDir extractDir(m_stagingPath);
qDebug() << "Attempting to create instance from" << m_archivePath;
// open the zip and find relevant files in it
m_packZip.reset(new QuaZip(m_archivePath));
if (!m_packZip->open(QuaZip::mdUnzip))
{
auto packZip = std::make_shared<QuaZip>(m_archivePath);
if (!packZip->open(QuaZip::mdUnzip)) {
emitFailed(tr("Unable to open supplied modpack zip file."));
return;
}
QuaZipDir packZipDir(m_packZip.get());
QuaZipDir packZipDir(packZip.get());
qDebug() << "Attempting to determine instance type";
// https://docs.modrinth.com/docs/modpacks/format_definition/#storage
bool modrinthFound = packZipDir.exists("/modrinth.index.json");
bool technicFound = packZipDir.exists("/bin/modpack.jar") || packZipDir.exists("/bin/version.json");
QString root;
// NOTE: Prioritize modpack platforms that aren't searched for recursively.
// Especially Flame has a very common filename for its manifest, which may appear inside overrides for example
if(modrinthFound)
{
// https://docs.modrinth.com/docs/modpacks/format_definition/#storage
if (packZipDir.exists("/modrinth.index.json")) {
// process as Modrinth pack
qDebug() << "Modrinth:" << modrinthFound;
qDebug() << "Modrinth:" << true;
m_modpackType = ModpackType::Modrinth;
}
else if (technicFound)
{
} else if (packZipDir.exists("/bin/modpack.jar") || packZipDir.exists("/bin/version.json")) {
// process as Technic pack
qDebug() << "Technic:" << technicFound;
extractDir.mkpath(".minecraft");
extractDir.cd(".minecraft");
qDebug() << "Technic:" << true;
extractDir.mkpath("minecraft");
extractDir.cd("minecraft");
m_modpackType = ModpackType::Technic;
} else {
root = getRootFromZip(packZip.get());
setDetails("");
}
else
{
QStringList paths_to_ignore { "overrides/" };
if (QString mmcRoot = MMCZip::findFolderOfFileInZip(m_packZip.get(), "instance.cfg", paths_to_ignore); !mmcRoot.isNull()) {
// process as MultiMC instance/pack
qDebug() << "MultiMC:" << mmcRoot;
root = mmcRoot;
m_modpackType = ModpackType::MultiMC;
} else if (QString flameRoot = MMCZip::findFolderOfFileInZip(m_packZip.get(), "manifest.json", paths_to_ignore); !flameRoot.isNull()) {
// process as Flame pack
qDebug() << "Flame:" << flameRoot;
root = flameRoot;
m_modpackType = ModpackType::Flame;
}
}
if(m_modpackType == ModpackType::Unknown)
{
if (m_modpackType == ModpackType::Unknown) {
emitFailed(tr("Archive does not contain a recognized modpack type."));
return;
}
setStatus(tr("Extracting modpack"));
// make sure we extract just the pack
m_extractFuture = QtConcurrent::run(QThreadPool::globalInstance(), MMCZip::extractSubDir, m_packZip.get(), root, extractDir.absolutePath());
connect(&m_extractFutureWatcher, &QFutureWatcher<QStringList>::finished, this, &InstanceImportTask::extractFinished);
connect(&m_extractFutureWatcher, &QFutureWatcher<QStringList>::canceled, this, &InstanceImportTask::extractAborted);
m_extractFutureWatcher.setFuture(m_extractFuture);
auto zipTask = makeShared<MMCZip::ExtractZipTask>(packZip, extractDir, root);
auto progressStep = std::make_shared<TaskStepProgress>();
connect(zipTask.get(), &Task::finished, this, [this, progressStep] {
progressStep->state = TaskStepState::Succeeded;
stepProgress(*progressStep);
});
connect(zipTask.get(), &Task::succeeded, this, &InstanceImportTask::extractFinished, Qt::QueuedConnection);
connect(zipTask.get(), &Task::aborted, this, &InstanceImportTask::emitAborted);
connect(zipTask.get(), &Task::failed, this, [this, progressStep](QString reason) {
progressStep->state = TaskStepState::Failed;
stepProgress(*progressStep);
emitFailed(reason);
});
connect(zipTask.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
connect(zipTask.get(), &Task::progress, this, [this, progressStep](qint64 current, qint64 total) {
progressStep->update(current, total);
stepProgress(*progressStep);
});
connect(zipTask.get(), &Task::status, this, [this, progressStep](QString status) {
progressStep->status = status;
stepProgress(*progressStep);
});
m_task.reset(zipTask);
zipTask->start();
}
void InstanceImportTask::extractFinished()
{
m_packZip.reset();
if (!m_extractFuture.result())
{
emitFailed(tr("Failed to extract modpack"));
return;
}
setAbortable(false);
QDir extractDir(m_stagingPath);
qDebug() << "Fixing permissions for extracted pack files...";
QDirIterator it(extractDir, QDirIterator::Subdirectories);
while (it.hasNext())
{
while (it.hasNext()) {
auto filepath = it.next();
QFileInfo file(filepath);
auto permissions = QFile::permissions(filepath);
auto origPermissions = permissions;
if(file.isDir())
{
if (file.isDir()) {
// Folder +rwx for current user
permissions |= QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser | QFileDevice::Permission::ExeUser;
}
else
{
} else {
// File +rw for current user
permissions |= QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser;
}
if(origPermissions != permissions)
{
if(!QFile::setPermissions(filepath, permissions))
{
if (origPermissions != permissions) {
if (!QFile::setPermissions(filepath, permissions)) {
logWarning(tr("Could not fix permissions for %1").arg(filepath));
}
else
{
} else {
qDebug() << "Fixed" << filepath;
}
}
}
switch(m_modpackType)
{
switch (m_modpackType) {
case ModpackType::MultiMC:
processMultiMC();
return;
@ -250,52 +263,59 @@ void InstanceImportTask::extractFinished()
}
}
void InstanceImportTask::extractAborted()
{
emitAborted();
}
void InstanceImportTask::processFlame()
{
auto pack_id_it = m_extra_info.constFind("pack_id");
Q_ASSERT(pack_id_it != m_extra_info.constEnd());
auto pack_id = pack_id_it.value();
shared_qobject_ptr<FlameCreationTask> inst_creation_task = nullptr;
if (!m_extra_info.isEmpty()) {
auto pack_id_it = m_extra_info.constFind("pack_id");
Q_ASSERT(pack_id_it != m_extra_info.constEnd());
auto pack_id = pack_id_it.value();
auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
Q_ASSERT(pack_version_id_it != m_extra_info.constEnd());
auto pack_version_id = pack_version_id_it.value();
auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
Q_ASSERT(pack_version_id_it != m_extra_info.constEnd());
auto pack_version_id = pack_version_id_it.value();
QString original_instance_id;
auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
if (original_instance_id_it != m_extra_info.constEnd())
original_instance_id = original_instance_id_it.value();
QString original_instance_id;
auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
if (original_instance_id_it != m_extra_info.constEnd())
original_instance_id = original_instance_id_it.value();
auto* inst_creation_task = new FlameCreationTask(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
inst_creation_task =
makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
} else {
// FIXME: Find a way to get IDs in directly imported ZIPs
inst_creation_task = makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, QString(), QString());
}
inst_creation_task->setName(*this);
inst_creation_task->setIcon(m_instIcon);
inst_creation_task->setGroup(m_instGroup);
inst_creation_task->setConfirmUpdate(shouldConfirmUpdate());
connect(inst_creation_task, &Task::succeeded, this, [this, inst_creation_task] {
setOverride(inst_creation_task->shouldOverride(), inst_creation_task->originalInstanceID());
auto weak = inst_creation_task.toWeakRef();
connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] {
if (auto sp = weak.lock()) {
setOverride(sp->shouldOverride(), sp->originalInstanceID());
}
emitSucceeded();
});
connect(inst_creation_task, &Task::failed, this, &InstanceImportTask::emitFailed);
connect(inst_creation_task, &Task::progress, this, &InstanceImportTask::setProgress);
connect(inst_creation_task, &Task::status, this, &InstanceImportTask::setStatus);
connect(inst_creation_task, &Task::finished, inst_creation_task, &InstanceCreationTask::deleteLater);
connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed);
connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress);
connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
connect(this, &Task::aborted, inst_creation_task, &InstanceCreationTask::abort);
connect(inst_creation_task, &Task::aborted, this, &Task::abort);
connect(inst_creation_task, &Task::abortStatusChanged, this, &Task::setAbortable);
connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort);
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
inst_creation_task->start();
m_task.reset(inst_creation_task);
setAbortable(true);
m_task->start();
}
void InstanceImportTask::processTechnic()
{
shared_qobject_ptr<Technic::TechnicPackProcessor> packProcessor = new Technic::TechnicPackProcessor();
shared_qobject_ptr<Technic::TechnicPackProcessor> packProcessor{ new Technic::TechnicPackProcessor };
connect(packProcessor.get(), &Technic::TechnicPackProcessor::succeeded, this, &InstanceImportTask::emitSucceeded);
connect(packProcessor.get(), &Technic::TechnicPackProcessor::failed, this, &InstanceImportTask::emitFailed);
packProcessor->run(m_globalSettings, name(), m_instIcon, m_stagingPath);
@ -321,13 +341,15 @@ void InstanceImportTask::processMultiMC()
m_instIcon = instance.iconKey();
auto importIconPath = IconUtils::findBestIconIn(instance.instanceRoot(), m_instIcon);
if (importIconPath.isNull() || !QFile::exists(importIconPath))
importIconPath = IconUtils::findBestIconIn(instance.instanceRoot(), "icon.png");
if (!importIconPath.isNull() && QFile::exists(importIconPath)) {
// import icon
auto iconList = APPLICATION->icons();
if (iconList->iconFileExists(m_instIcon)) {
iconList->deleteIcon(m_instIcon);
}
iconList->installIcons({ importIconPath });
iconList->installIcon(importIconPath, m_instIcon);
}
}
emitSucceeded();
@ -335,39 +357,57 @@ void InstanceImportTask::processMultiMC()
void InstanceImportTask::processModrinth()
{
auto pack_id_it = m_extra_info.constFind("pack_id");
Q_ASSERT(pack_id_it != m_extra_info.constEnd());
auto pack_id = pack_id_it.value();
shared_qobject_ptr<ModrinthCreationTask> inst_creation_task = nullptr;
if (!m_extra_info.isEmpty()) {
auto pack_id_it = m_extra_info.constFind("pack_id");
Q_ASSERT(pack_id_it != m_extra_info.constEnd());
auto pack_id = pack_id_it.value();
QString pack_version_id;
auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
if (pack_version_id_it != m_extra_info.constEnd())
pack_version_id = pack_version_id_it.value();
QString pack_version_id;
auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
if (pack_version_id_it != m_extra_info.constEnd())
pack_version_id = pack_version_id_it.value();
QString original_instance_id;
auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
if (original_instance_id_it != m_extra_info.constEnd())
original_instance_id = original_instance_id_it.value();
QString original_instance_id;
auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
if (original_instance_id_it != m_extra_info.constEnd())
original_instance_id = original_instance_id_it.value();
auto* inst_creation_task = new ModrinthCreationTask(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
inst_creation_task =
makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
} else {
QString pack_id;
if (!m_sourceUrl.isEmpty()) {
QRegularExpression regex(R"(data\/([^\/]*)\/versions)");
pack_id = regex.match(m_sourceUrl.toString()).captured(1);
}
// FIXME: Find a way to get the ID in directly imported ZIPs
inst_creation_task = makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id);
}
inst_creation_task->setName(*this);
inst_creation_task->setIcon(m_instIcon);
inst_creation_task->setGroup(m_instGroup);
inst_creation_task->setConfirmUpdate(shouldConfirmUpdate());
connect(inst_creation_task, &Task::succeeded, this, [this, inst_creation_task] {
setOverride(inst_creation_task->shouldOverride(), inst_creation_task->originalInstanceID());
auto weak = inst_creation_task.toWeakRef();
connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] {
if (auto sp = weak.lock()) {
setOverride(sp->shouldOverride(), sp->originalInstanceID());
}
emitSucceeded();
});
connect(inst_creation_task, &Task::failed, this, &InstanceImportTask::emitFailed);
connect(inst_creation_task, &Task::progress, this, &InstanceImportTask::setProgress);
connect(inst_creation_task, &Task::status, this, &InstanceImportTask::setStatus);
connect(inst_creation_task, &Task::finished, inst_creation_task, &InstanceCreationTask::deleteLater);
connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed);
connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress);
connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
connect(this, &Task::aborted, inst_creation_task, &InstanceCreationTask::abort);
connect(inst_creation_task, &Task::aborted, this, &Task::abort);
connect(inst_creation_task, &Task::abortStatusChanged, this, &Task::setAbortable);
connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort);
connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
inst_creation_task->start();
m_task.reset(inst_creation_task);
setAbortable(true);
m_task->start();
}

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -35,65 +35,40 @@
#pragma once
#include "InstanceTask.h"
#include "net/NetJob.h"
#include <QUrl>
#include <QFuture>
#include <QFutureWatcher>
#include "settings/SettingsObject.h"
#include "QObjectPtr.h"
#include "modplatform/flame/PackManifest.h"
#include <optional>
#include <QUrl>
#include "InstanceTask.h"
class QuaZip;
namespace Flame
{
class FileResolvingTask;
}
class InstanceImportTask : public InstanceTask
{
class InstanceImportTask : public InstanceTask {
Q_OBJECT
public:
explicit InstanceImportTask(const QUrl sourceUrl, QWidget* parent = nullptr, QMap<QString, QString>&& extra_info = {});
public:
explicit InstanceImportTask(const QUrl& sourceUrl, QWidget* parent = nullptr, QMap<QString, QString>&& extra_info = {});
virtual ~InstanceImportTask() = default;
bool abort() override;
const QVector<Flame::File> &getBlockedFiles() const
{
return m_blockedMods;
}
protected:
protected:
//! Entry point for tasks.
virtual void executeTask() override;
private:
void processZipPack();
private:
void processMultiMC();
void processTechnic();
void processFlame();
void processModrinth();
QString getRootFromZip(QuaZip* zip, const QString& root = "");
private slots:
void downloadSucceeded();
void downloadFailed(QString reason);
void downloadProgressChanged(qint64 current, qint64 total);
void downloadAborted();
private slots:
void processZipPack();
void extractFinished();
void extractAborted();
private: /* data */
NetJob::Ptr m_filesNetJob;
shared_qobject_ptr<Flame::FileResolvingTask> m_modIdResolver;
private: /* data */
QUrl m_sourceUrl;
QString m_archivePath;
bool m_downloadRequired = false;
std::unique_ptr<QuaZip> m_packZip;
QFuture<std::optional<QStringList>> m_extractFuture;
QFutureWatcher<std::optional<QStringList>> m_extractFutureWatcher;
QVector<Flame::File> m_blockedMods;
enum class ModpackType{
Task::Ptr m_task;
enum class ModpackType {
Unknown,
MultiMC,
Technic,
@ -105,6 +80,7 @@ private: /* data */
// the source URL / the resource it points to alone.
QMap<QString, QString> m_extra_info;
//FIXME: nuke
// FIXME: nuke
QWidget* m_parent;
void downloadFromUrl();
};

View file

@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -37,13 +38,14 @@
#include <QDir>
#include <QDirIterator>
#include <QFile>
#include <QFileInfo>
#include <QFileSystemWatcher>
#include <QJsonArray>
#include <QJsonDocument>
#include <QMimeData>
#include <QPair>
#include <QSet>
#include <QStack>
#include <QPair>
#include <QTextStream>
#include <QThread>
#include <QTimer>
@ -96,7 +98,11 @@ Qt::DropActions InstanceList::supportedDropActions() const
return Qt::MoveAction;
}
bool InstanceList::canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const
bool InstanceList::canDropMimeData(const QMimeData* data,
[[maybe_unused]] Qt::DropAction action,
[[maybe_unused]] int row,
[[maybe_unused]] int column,
[[maybe_unused]] const QModelIndex& parent) const
{
if (data && data->hasFormat("application/x-instanceid")) {
return true;
@ -104,7 +110,11 @@ bool InstanceList::canDropMimeData(const QMimeData* data, Qt::DropAction action,
return false;
}
bool InstanceList::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent)
bool InstanceList::dropMimeData(const QMimeData* data,
[[maybe_unused]] Qt::DropAction action,
[[maybe_unused]] int row,
[[maybe_unused]] int column,
[[maybe_unused]] const QModelIndex& parent)
{
if (data && data->hasFormat("application/x-instanceid")) {
return true;
@ -129,6 +139,16 @@ QMimeData* InstanceList::mimeData(const QModelIndexList& indexes) const
return mimeData;
}
QStringList InstanceList::getLinkedInstancesById(const QString& id) const
{
QStringList linkedInstances;
for (auto inst : m_instances) {
if (inst->isLinkedToInstanceId(id))
linkedInstances.append(inst->id());
}
return linkedInstances;
}
int InstanceList::rowCount(const QModelIndex& parent) const
{
Q_UNUSED(parent);
@ -148,42 +168,34 @@ QVariant InstanceList::data(const QModelIndex& index, int role) const
if (!index.isValid()) {
return QVariant();
}
BaseInstance *pdata = static_cast<BaseInstance *>(index.internalPointer());
switch (role)
{
case InstancePointerRole:
{
QVariant v = QVariant::fromValue((void *)pdata);
return v;
}
case InstanceIDRole:
{
return pdata->id();
}
case Qt::EditRole:
case Qt::DisplayRole:
{
return pdata->name();
}
case Qt::AccessibleTextRole:
{
return tr("%1 Instance").arg(pdata->name());
}
case Qt::ToolTipRole:
{
return pdata->instanceRoot();
}
case Qt::DecorationRole:
{
return pdata->iconKey();
}
// HACK: see InstanceView.h in gui!
case GroupRole:
{
return getInstanceGroup(pdata->id());
}
default:
break;
BaseInstance* pdata = static_cast<BaseInstance*>(index.internalPointer());
switch (role) {
case InstancePointerRole: {
QVariant v = QVariant::fromValue((void*)pdata);
return v;
}
case InstanceIDRole: {
return pdata->id();
}
case Qt::EditRole:
case Qt::DisplayRole: {
return pdata->name();
}
case Qt::AccessibleTextRole: {
return tr("%1 Instance").arg(pdata->name());
}
case Qt::ToolTipRole: {
return pdata->instanceRoot();
}
case Qt::DecorationRole: {
return pdata->iconKey();
}
// HACK: see InstanceView.h in gui!
case GroupRole: {
return getInstanceGroup(pdata->id());
}
default:
break;
}
return QVariant();
}
@ -227,8 +239,11 @@ GroupId InstanceList::getInstanceGroup(const InstanceId& id) const
return GroupId();
}
void InstanceList::setInstanceGroup(const InstanceId& id, const GroupId& name)
void InstanceList::setInstanceGroup(const InstanceId& id, GroupId name)
{
if (name.isEmpty() && !name.isNull())
name = QString();
auto inst = getInstanceById(id);
if (!inst) {
qDebug() << "Attempt to set a null instance's group";
@ -239,6 +254,7 @@ void InstanceList::setInstanceGroup(const InstanceId& id, const GroupId& name)
auto iter = m_instanceGroupIndex.find(inst->id());
if (iter != m_instanceGroupIndex.end()) {
if (*iter != name) {
decreaseGroupCount(*iter);
*iter = name;
changed = true;
}
@ -248,7 +264,7 @@ void InstanceList::setInstanceGroup(const InstanceId& id, const GroupId& name)
}
if (changed) {
m_groupNameCache.insert(name);
increaseGroupCount(name);
auto idx = getInstIndex(inst.get());
emit dataChanged(index(idx), index(idx), { GroupRole });
saveGroupList();
@ -257,29 +273,55 @@ void InstanceList::setInstanceGroup(const InstanceId& id, const GroupId& name)
QStringList InstanceList::getGroups()
{
return m_groupNameCache.values();
return m_groupNameCache.keys();
}
void InstanceList::deleteGroup(const QString& name)
void InstanceList::deleteGroup(const GroupId& name)
{
m_groupNameCache.remove(name);
m_collapsedGroups.remove(name);
bool removed = false;
qDebug() << "Delete group" << name;
for (auto& instance : m_instances) {
const auto& instID = instance->id();
auto instGroupName = getInstanceGroup(instID);
const QString& instID = instance->id();
const QString instGroupName = getInstanceGroup(instID);
if (instGroupName == name) {
m_instanceGroupIndex.remove(instID);
qDebug() << "Remove" << instID << "from group" << name;
removed = true;
auto idx = getInstIndex(instance.get());
if (idx > 0) {
if (idx >= 0)
emit dataChanged(index(idx), index(idx), { GroupRole });
}
}
}
if (removed) {
if (removed)
saveGroupList();
}
void InstanceList::renameGroup(const QString& src, const QString& dst)
{
m_groupNameCache.remove(src);
if (m_collapsedGroups.remove(src))
m_collapsedGroups.insert(dst);
bool modified = false;
qDebug() << "Rename group" << src << "to" << dst;
for (auto& instance : m_instances) {
const QString& instID = instance->id();
const QString instGroupName = getInstanceGroup(instID);
if (instGroupName == src) {
m_instanceGroupIndex[instID] = dst;
increaseGroupCount(dst);
qDebug() << "Set" << instID << "group to" << dst;
modified = true;
auto idx = getInstIndex(instance.get());
if (idx >= 0)
emit dataChanged(index(idx), index(idx), { GroupRole });
}
}
if (modified)
saveGroupList();
}
bool InstanceList::isGroupCollapsed(const QString& group)
@ -295,12 +337,13 @@ bool InstanceList::trashInstance(const InstanceId& id)
return false;
}
auto cachedGroupId = m_instanceGroupIndex[id];
QString cachedGroupId = m_instanceGroupIndex[id];
qDebug() << "Will trash instance" << id;
QString trashedLoc;
if (m_instanceGroupIndex.remove(id)) {
decreaseGroupCount(cachedGroupId);
saveGroupList();
}
@ -310,16 +353,18 @@ bool InstanceList::trashInstance(const InstanceId& id)
}
qDebug() << "Instance" << id << "has been trashed by the launcher.";
m_trashHistory.push({id, inst->instanceRoot(), trashedLoc, cachedGroupId});
m_trashHistory.push({ id, inst->instanceRoot(), trashedLoc, cachedGroupId });
return true;
}
bool InstanceList::trashedSomething() {
bool InstanceList::trashedSomething()
{
return !m_trashHistory.empty();
}
void InstanceList::undoTrashInstance() {
void InstanceList::undoTrashInstance()
{
if (m_trashHistory.empty()) {
qWarning() << "Nothing to recover from trash.";
return;
@ -327,16 +372,16 @@ void InstanceList::undoTrashInstance() {
auto top = m_trashHistory.pop();
while (QDir(top.polyPath).exists()) {
while (QDir(top.path).exists()) {
top.id += "1";
top.polyPath += "1";
top.path += "1";
}
qDebug() << "Moving" << top.trashPath << "back to" << top.polyPath;
QFile(top.trashPath).rename(top.polyPath);
qDebug() << "Moving" << top.trashPath << "back to" << top.path;
QFile(top.trashPath).rename(top.path);
m_instanceGroupIndex[top.id] = top.groupName;
m_groupNameCache.insert(top.groupName);
increaseGroupCount(top.groupName);
saveGroupList();
emit instancesChanged();
@ -350,7 +395,10 @@ void InstanceList::deleteInstance(const InstanceId& id)
return;
}
QString cachedGroupId = m_instanceGroupIndex[id];
if (m_instanceGroupIndex.remove(id)) {
decreaseGroupCount(cachedGroupId);
saveGroupList();
}
@ -439,7 +487,7 @@ InstanceList::InstListError InstanceList::loadList()
int front_bookmark = -1;
int back_bookmark = -1;
int currentItem = -1;
auto removeNow = [&]() {
auto removeNow = [this, &front_bookmark, &back_bookmark, &currentItem]() {
beginRemoveRows(QModelIndex(), front_bookmark, back_bookmark);
m_instances.erase(m_instances.begin() + front_bookmark, m_instances.begin() + back_bookmark + 1);
endRemoveRows();
@ -548,7 +596,7 @@ InstancePtr InstanceList::getInstanceByManagedName(const QString& managed_name)
return {};
}
QModelIndex InstanceList::getInstanceIndexById(const QString &id) const
QModelIndex InstanceList::getInstanceIndexById(const QString& id) const
{
return index(getInstIndex(getInstanceById(id).get()));
}
@ -587,19 +635,36 @@ InstancePtr InstanceList::loadInstance(const InstanceId& id)
QString inst_type = instanceSettings->get("InstanceType").toString();
// NOTE: Some PolyMC versions didn't save the InstanceType properly. We will just bank on the probability that this is probably a OneSix instance
if (inst_type == "OneSix" || inst_type.isEmpty())
{
// NOTE: Some launcher versions didn't save the InstanceType properly. We will just bank on the probability that this is probably a
// OneSix instance
if (inst_type == "OneSix" || inst_type.isEmpty()) {
inst.reset(new MinecraftInstance(m_globalSettings, instanceSettings, instanceRoot));
}
else
{
} else {
inst.reset(new NullInstance(m_globalSettings, instanceSettings, instanceRoot));
}
qDebug() << "Loaded instance " << inst->name() << " from " << inst->instanceRoot();
return inst;
}
void InstanceList::increaseGroupCount(const QString& group)
{
if (group.isEmpty())
return;
++m_groupNameCache[group];
}
void InstanceList::decreaseGroupCount(const QString& group)
{
if (group.isEmpty())
return;
if (--m_groupNameCache[group] < 1) {
m_groupNameCache.remove(group);
m_collapsedGroups.remove(group);
}
}
void InstanceList::saveGroupList()
{
qDebug() << "Will save group list now.";
@ -611,7 +676,7 @@ void InstanceList::saveGroupList()
QString groupFileName = m_instDir + "/instgroups.json";
QMap<QString, QSet<QString>> reverseGroupMap;
for (auto iter = m_instanceGroupIndex.begin(); iter != m_instanceGroupIndex.end(); iter++) {
QString id = iter.key();
const QString& id = iter.key();
QString group = iter.value();
if (group.isEmpty())
continue;
@ -645,6 +710,12 @@ void InstanceList::saveGroupList()
groupsArr.insert(name, groupObj);
}
toplevel.insert("groups", groupsArr);
// empty string represents ungrouped "group"
if (m_collapsedGroups.contains("")) {
QJsonObject ungrouped;
ungrouped.insert("hidden", QJsonValue(true));
toplevel.insert("ungrouped", ungrouped);
}
QJsonDocument doc(toplevel);
try {
FS::write(groupFileName, doc.toJson());
@ -701,17 +772,22 @@ void InstanceList::loadGroupList()
return;
}
QSet<QString> groupSet;
m_instanceGroupIndex.clear();
m_groupNameCache.clear();
// Iterate through all the groups.
QJsonObject groupMapping = rootObj.value("groups").toObject();
for (QJsonObject::iterator iter = groupMapping.begin(); iter != groupMapping.end(); iter++) {
QString groupName = iter.key();
if (iter.key().isEmpty()) {
qWarning() << "Redundant empty group found";
continue;
}
// If not an object, complain and skip to the next one.
if (!iter.value().isObject()) {
qWarning() << QString("Group '%1' in the group list should be an object.").arg(groupName).toUtf8();
qWarning() << QString("Group '%1' in the group list should be an object").arg(groupName).toUtf8();
continue;
}
@ -723,23 +799,29 @@ void InstanceList::loadGroupList()
continue;
}
// keep a list/set of groups for choosing
groupSet.insert(groupName);
auto hidden = groupObj.value("hidden").toBool(false);
if (hidden) {
if (hidden)
m_collapsedGroups.insert(groupName);
}
// Iterate through the list of instances in the group.
QJsonArray instancesArray = groupObj.value("instances").toArray();
for (QJsonArray::iterator iter2 = instancesArray.begin(); iter2 != instancesArray.end(); iter2++) {
m_instanceGroupIndex[(*iter2).toString()] = groupName;
for (auto value : instancesArray) {
m_instanceGroupIndex[value.toString()] = groupName;
increaseGroupCount(groupName);
}
}
bool ungroupedHidden = false;
if (rootObj.value("ungrouped").isObject()) {
QJsonObject ungrouped = rootObj.value("ungrouped").toObject();
ungroupedHidden = ungrouped.value("hidden").toBool(false);
}
if (ungroupedHidden) {
// empty string represents ungrouped "group"
m_collapsedGroups.insert("");
}
m_groupsLoaded = true;
m_groupNameCache.unite(groupSet);
qDebug() << "Group list loaded.";
}
@ -749,7 +831,7 @@ void InstanceList::instanceDirContentsChanged(const QString& path)
emit instancesChanged();
}
void InstanceList::on_InstFolderChanged(const Setting& setting, QVariant value)
void InstanceList::on_InstFolderChanged([[maybe_unused]] const Setting& setting, QVariant value)
{
QString newInstDir = QDir(value.toString()).canonicalPath();
if (newInstDir != m_instDir) {
@ -758,6 +840,9 @@ void InstanceList::on_InstFolderChanged(const Setting& setting, QVariant value)
}
m_instDir = newInstDir;
m_groupsLoaded = false;
beginRemoveRows(QModelIndex(), 0, count());
m_instances.erase(m_instances.begin(), m_instances.end());
endRemoveRows();
emit instancesChanged();
}
}
@ -777,21 +862,30 @@ class InstanceStaging : public Task {
Q_OBJECT
const unsigned minBackoff = 1;
const unsigned maxBackoff = 16;
public:
InstanceStaging(InstanceList* parent, InstanceTask* child, QString stagingPath, InstanceName const& instanceName, QString groupName)
: m_parent(parent), backoff(minBackoff, maxBackoff), m_stagingPath(std::move(stagingPath)), m_instance_name(std::move(instanceName)), m_groupName(std::move(groupName))
InstanceStaging(InstanceList* parent, InstanceTask* child, SettingsObjectPtr settings)
: m_parent(parent), backoff(minBackoff, maxBackoff)
{
m_stagingPath = parent->getStagedInstancePath();
m_child.reset(child);
connect(child, &Task::succeeded, this, &InstanceStaging::childSucceded);
m_child->setStagingPath(m_stagingPath);
m_child->setParentSettings(std::move(settings));
connect(child, &Task::succeeded, this, &InstanceStaging::childSucceeded);
connect(child, &Task::failed, this, &InstanceStaging::childFailed);
connect(child, &Task::aborted, this, &InstanceStaging::childAborted);
connect(child, &Task::abortStatusChanged, this, &InstanceStaging::setAbortable);
connect(child, &Task::status, this, &InstanceStaging::setStatus);
connect(child, &Task::details, this, &InstanceStaging::setDetails);
connect(child, &Task::progress, this, &InstanceStaging::setProgress);
connect(&m_backoffTimer, &QTimer::timeout, this, &InstanceStaging::childSucceded);
connect(child, &Task::stepProgress, this, &InstanceStaging::propagateStepProgress);
connect(&m_backoffTimer, &QTimer::timeout, this, &InstanceStaging::childSucceeded);
}
virtual ~InstanceStaging(){};
virtual ~InstanceStaging() {}
// FIXME/TODO: add ability to abort during instance commit retries
bool abort() override
@ -803,21 +897,25 @@ class InstanceStaging : public Task {
return Task::abort();
}
bool canAbort() const override
{
return (m_child && m_child->canAbort());
}
bool canAbort() const override { return (m_child && m_child->canAbort()); }
protected:
virtual void executeTask() override { m_child->start(); }
virtual void executeTask() override
{
if (m_stagingPath.isNull()) {
emitFailed(tr("Could not create staging folder"));
return;
}
m_child->start();
}
QStringList warnings() const override { return m_child->warnings(); }
private slots:
void childSucceded()
void childSucceeded()
{
unsigned sleepTime = backoff();
if (m_parent->commitStagedInstance(m_stagingPath, m_instance_name, m_groupName, *m_child.get()))
{
if (m_parent->commitStagedInstance(m_stagingPath, *m_child.get(), m_child->group(), *m_child.get())) {
emitSucceeded();
return;
}
@ -826,7 +924,7 @@ class InstanceStaging : public Task {
emitFailed(tr("Failed to commit instance, even after multiple retries. It is being blocked by something."));
return;
}
qDebug() << "Failed to commit instance" << m_instance_name.name() << "Initiating backoff:" << sleepTime;
qDebug() << "Failed to commit instance" << m_child->name() << "Initiating backoff:" << sleepTime;
m_backoffTimer.start(sleepTime * 500);
}
void childFailed(const QString& reason)
@ -837,11 +935,12 @@ class InstanceStaging : public Task {
void childAborted()
{
m_parent->destroyStagingPath(m_stagingPath);
emitAborted();
}
private:
InstanceList * m_parent;
private:
InstanceList* m_parent;
/*
* WHY: the whole reason why this uses an exponential backoff retry scheme is antivirus on Windows.
* Basically, it starts messing things up while the launcher is extracting/creating instances
@ -850,39 +949,45 @@ private:
ExponentialSeries backoff;
QString m_stagingPath;
unique_qobject_ptr<InstanceTask> m_child;
InstanceName m_instance_name;
QString m_groupName;
QTimer m_backoffTimer;
};
Task* InstanceList::wrapInstanceTask(InstanceTask* task)
{
auto stagingPath = getStagedInstancePath();
task->setStagingPath(stagingPath);
task->setParentSettings(m_globalSettings);
return new InstanceStaging(this, task, stagingPath, *task, task->group());
return new InstanceStaging(this, task, m_globalSettings);
}
QString InstanceList::getStagedInstancePath()
{
QString key = QUuid::createUuid().toString();
QString tempDir = ".LAUNCHER_TEMP/";
QString relPath = FS::PathCombine(tempDir, key);
QDir rootPath(m_instDir);
auto path = FS::PathCombine(m_instDir, relPath);
if (!rootPath.mkpath(relPath)) {
return QString();
}
const QString tempRoot = FS::PathCombine(m_instDir, ".tmp");
QString result;
int tries = 0;
do {
if (++tries > 256)
return {};
const QString key = QUuid::createUuid().toString(QUuid::Id128).left(6);
result = FS::PathCombine(tempRoot, key);
} while (QFileInfo::exists(result));
if (!QDir::current().mkpath(result))
return {};
#ifdef Q_OS_WIN32
auto tempPath = FS::PathCombine(m_instDir, tempDir);
SetFileAttributesA(tempPath.toStdString().c_str(), FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
SetFileAttributesA(tempRoot.toStdString().c_str(), FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
#endif
return path;
return result;
}
bool InstanceList::commitStagedInstance(const QString& path, InstanceName const& instanceName, const QString& groupName, InstanceTask const& commiting)
bool InstanceList::commitStagedInstance(const QString& path,
InstanceName const& instanceName,
QString groupName,
InstanceTask const& commiting)
{
QDir dir;
if (groupName.isEmpty() && !groupName.isNull())
groupName = QString();
QString instID;
InstancePtr inst;
@ -906,13 +1011,13 @@ bool InstanceList::commitStagedInstance(const QString& path, InstanceName const&
return false;
}
} else {
if (!dir.rename(path, destination)) {
if (!FS::move(path, destination)) {
qWarning() << "Failed to move" << path << "to" << destination;
return false;
}
m_instanceGroupIndex[instID] = groupName;
m_groupNameCache.insert(groupName);
increaseGroupCount(groupName);
}
instanceSet.insert(instID);

View file

@ -1,26 +1,46 @@
/* Copyright 2013-2021 MultiMC Contributors
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* http://www.apache.org/licenses/LICENSE-2.0
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Copyright 2013-2021 MultiMC Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <QObject>
#include <QAbstractListModel>
#include <QSet>
#include <QList>
#include <QStack>
#include <QObject>
#include <QPair>
#include <QSet>
#include <QStack>
#include "BaseInstance.h"
@ -32,71 +52,47 @@ using InstanceId = QString;
using GroupId = QString;
using InstanceLocator = std::pair<InstancePtr, int>;
enum class InstCreateError
{
NoCreateError = 0,
NoSuchVersion,
UnknownCreateError,
InstExists,
CantCreateDir
};
enum class InstCreateError { NoCreateError = 0, NoSuchVersion, UnknownCreateError, InstExists, CantCreateDir };
enum class GroupsState
{
NotLoaded,
Steady,
Dirty
};
enum class GroupsState { NotLoaded, Steady, Dirty };
struct TrashHistoryItem {
QString id;
QString polyPath;
QString path;
QString trashPath;
QString groupName;
};
class InstanceList : public QAbstractListModel
{
class InstanceList : public QAbstractListModel {
Q_OBJECT
public:
explicit InstanceList(SettingsObjectPtr settings, const QString & instDir, QObject *parent = 0);
public:
explicit InstanceList(SettingsObjectPtr settings, const QString& instDir, QObject* parent = 0);
virtual ~InstanceList();
public:
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role) const override;
Qt::ItemFlags flags(const QModelIndex &index) const override;
public:
QModelIndex index(int row, int column = 0, const QModelIndex& parent = QModelIndex()) const override;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
bool setData(const QModelIndex & index, const QVariant & value, int role) override;
bool setData(const QModelIndex& index, const QVariant& value, int role) override;
enum AdditionalRoles
{
enum AdditionalRoles {
GroupRole = Qt::UserRole,
InstancePointerRole = 0x34B1CB48, ///< Return pointer to real instance
InstanceIDRole = 0x34B1CB49 ///< Return id if the instance
InstancePointerRole = 0x34B1CB48, ///< Return pointer to real instance
InstanceIDRole = 0x34B1CB49 ///< Return id if the instance
};
/*!
* \brief Error codes returned by functions in the InstanceList class.
* NoError Indicates that no error occurred.
* UnknownError indicates that an unspecified error occurred.
*/
enum InstListError
{
NoError = 0,
UnknownError
};
enum InstListError { NoError = 0, UnknownError };
InstancePtr at(int i) const
{
return m_instances.at(i);
}
InstancePtr at(int i) const { return m_instances.at(i); }
int count() const
{
return m_instances.count();
}
int count() const { return m_instances.count(); }
InstListError loadList();
void saveNow();
@ -105,21 +101,22 @@ public:
InstancePtr getInstanceById(QString id) const;
/* O(n) */
InstancePtr getInstanceByManagedName(const QString& managed_name) const;
QModelIndex getInstanceIndexById(const QString &id) const;
QModelIndex getInstanceIndexById(const QString& id) const;
QStringList getGroups();
bool isGroupCollapsed(const QString &groupName);
bool isGroupCollapsed(const QString& groupName);
GroupId getInstanceGroup(const InstanceId & id) const;
void setInstanceGroup(const InstanceId & id, const GroupId& name);
GroupId getInstanceGroup(const InstanceId& id) const;
void setInstanceGroup(const InstanceId& id, GroupId name);
void deleteGroup(const GroupId & name);
bool trashInstance(const InstanceId &id);
void deleteGroup(const GroupId& name);
void renameGroup(const GroupId& src, const GroupId& dst);
bool trashInstance(const InstanceId& id);
bool trashedSomething();
void undoTrashInstance();
void deleteInstance(const InstanceId & id);
void deleteInstance(const InstanceId& id);
// Wrap an instance creation task in some more task machinery and make it ready to be used
Task * wrapInstanceTask(InstanceTask * task);
Task* wrapInstanceTask(InstanceTask* task);
/**
* Create a new empty staging area for instance creation and @return a path/key top commit it later.
@ -133,13 +130,13 @@ public:
* should_override is used when another similar instance already exists, and we want to override it
* - for instance, when updating it.
*/
bool commitStagedInstance(const QString& keyPath, const InstanceName& instanceName, const QString& groupName, const InstanceTask&);
bool commitStagedInstance(const QString& keyPath, const InstanceName& instanceName, QString groupName, const InstanceTask&);
/**
* Destroy a previously created staging area given by @keyPath - used when creation fails.
* Used by instance manipulation tasks.
*/
bool destroyStagingPath(const QString & keyPath);
bool destroyStagingPath(const QString& keyPath);
int getTotalPlayTime();
@ -147,49 +144,55 @@ public:
Qt::DropActions supportedDropActions() const override;
bool canDropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) const override;
bool canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const override;
bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) override;
bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override;
QStringList mimeTypes() const override;
QMimeData *mimeData(const QModelIndexList &indexes) const override;
QMimeData* mimeData(const QModelIndexList& indexes) const override;
signals:
QStringList getLinkedInstancesById(const QString& id) const;
signals:
void dataIsInvalid();
void instancesChanged();
void instanceSelectRequest(QString instanceId);
void groupsChanged(QSet<QString> groups);
public slots:
void on_InstFolderChanged(const Setting &setting, QVariant value);
void on_GroupStateChanged(const QString &group, bool collapsed);
public slots:
void on_InstFolderChanged(const Setting& setting, QVariant value);
void on_GroupStateChanged(const QString& group, bool collapsed);
private slots:
void propertiesChanged(BaseInstance *inst);
private slots:
void propertiesChanged(BaseInstance* inst);
void providerUpdated();
void instanceDirContentsChanged(const QString &path);
void instanceDirContentsChanged(const QString& path);
private:
int getInstIndex(BaseInstance *inst) const;
private:
int getInstIndex(BaseInstance* inst) const;
void updateTotalPlayTime();
void suspendWatch();
void resumeWatch();
void add(const QList<InstancePtr> &list);
void add(const QList<InstancePtr>& list);
void loadGroupList();
void saveGroupList();
QList<InstanceId> discoverInstances();
InstancePtr loadInstance(const InstanceId& id);
private:
void increaseGroupCount(const QString& group);
void decreaseGroupCount(const QString& group);
private:
int m_watchLevel = 0;
int totalPlayTime = 0;
bool m_dirty = false;
QList<InstancePtr> m_instances;
QSet<QString> m_groupNameCache;
// id -> refs
QMap<QString, int> m_groupNameCache;
SettingsObjectPtr m_globalSettings;
QString m_instDir;
QFileSystemWatcher * m_watcher;
QFileSystemWatcher* m_watcher;
// FIXME: this is so inefficient that looking at it is almost painful.
QSet<QString> m_collapsedGroups;
QMap<InstanceId, GroupId> m_instanceGroupIndex;

View file

@ -1,66 +1,58 @@
#pragma once
#include "minecraft/MinecraftInstance.h"
#include <FileSystem.h>
#include "minecraft/MinecraftInstance.h"
#include "ui/pages/BasePage.h"
#include "ui/pages/BasePageProvider.h"
#include "ui/pages/instance/InstanceSettingsPage.h"
#include "ui/pages/instance/LogPage.h"
#include "ui/pages/instance/VersionPage.h"
#include "ui/pages/instance/ManagedPackPage.h"
#include "ui/pages/instance/ModFolderPage.h"
#include "ui/pages/instance/ResourcePackPage.h"
#include "ui/pages/instance/TexturePackPage.h"
#include "ui/pages/instance/ShaderPackPage.h"
#include "ui/pages/instance/NotesPage.h"
#include "ui/pages/instance/ScreenshotsPage.h"
#include "ui/pages/instance/InstanceSettingsPage.h"
#include "ui/pages/instance/OtherLogsPage.h"
#include "ui/pages/instance/WorldListPage.h"
#include "ui/pages/instance/ResourcePackPage.h"
#include "ui/pages/instance/ScreenshotsPage.h"
#include "ui/pages/instance/ServersPage.h"
#include "ui/pages/instance/GameOptionsPage.h"
#include "ui/pages/instance/ShaderPackPage.h"
#include "ui/pages/instance/TexturePackPage.h"
#include "ui/pages/instance/VersionPage.h"
#include "ui/pages/instance/WorldListPage.h"
class InstancePageProvider : public QObject, public BasePageProvider
{
class InstancePageProvider : protected QObject, public BasePageProvider {
Q_OBJECT
public:
explicit InstancePageProvider(InstancePtr parent)
{
inst = parent;
}
public:
explicit InstancePageProvider(InstancePtr parent) { inst = parent; }
virtual ~InstancePageProvider() {};
virtual QList<BasePage *> getPages() override
virtual ~InstancePageProvider() = default;
virtual QList<BasePage*> getPages() override
{
QList<BasePage *> values;
QList<BasePage*> values;
values.append(new LogPage(inst));
std::shared_ptr<MinecraftInstance> onesix = std::dynamic_pointer_cast<MinecraftInstance>(inst);
values.append(new VersionPage(onesix.get()));
values.append(ManagedPackPage::createPage(onesix.get()));
auto modsPage = new ModFolderPage(onesix.get(), onesix->loaderModList());
modsPage->setFilter("%1 (*.zip *.jar *.litemod)");
modsPage->setFilter("%1 (*.zip *.jar *.litemod *.nilmod)");
values.append(modsPage);
values.append(new CoreModFolderPage(onesix.get(), onesix->coreModList()));
values.append(new NilModFolderPage(onesix.get(), onesix->nilModList()));
values.append(new ResourcePackPage(onesix.get(), onesix->resourcePackList()));
values.append(new TexturePackPage(onesix.get(), onesix->texturePackList()));
values.append(new ShaderPackPage(onesix.get(), onesix->shaderPackList()));
values.append(new NotesPage(onesix.get()));
values.append(new WorldListPage(onesix.get(), onesix->worldList()));
values.append(new WorldListPage(onesix, onesix->worldList()));
values.append(new ServersPage(onesix));
// values.append(new GameOptionsPage(onesix.get()));
values.append(new ScreenshotsPage(FS::PathCombine(onesix->gameRoot(), "screenshots")));
values.append(new InstanceSettingsPage(onesix.get()));
values.append(new InstanceSettingsPage(onesix));
auto logMatcher = inst->getLogFileMatcher();
if(logMatcher)
{
if (logMatcher) {
values.append(new OtherLogsPage(inst->getLogFileRoot(), logMatcher));
}
return values;
}
virtual QString dialogTitle() override
{
return tr("Edit Instance (%1)").arg(inst->name());
}
protected:
virtual QString dialogTitle() override { return tr("Edit Instance (%1)").arg(inst->name()); }
protected:
InstancePtr inst;
};

View file

@ -1,7 +1,11 @@
#include "InstanceTask.h"
#include "Application.h"
#include "settings/SettingsObject.h"
#include "ui/dialogs/CustomMessageBox.h"
#include <QPushButton>
InstanceNameChange askForChangingInstanceName(QWidget* parent, const QString& old_name, const QString& new_name)
{
auto dialog =
@ -18,34 +22,39 @@ InstanceNameChange askForChangingInstanceName(QWidget* parent, const QString& ol
return InstanceNameChange::ShouldKeep;
}
ShouldUpdate askIfShouldUpdate(QWidget *parent, QString original_version_name)
ShouldUpdate askIfShouldUpdate(QWidget* parent, QString original_version_name)
{
if (APPLICATION->settings()->get("SkipModpackUpdatePrompt").toBool())
return ShouldUpdate::SkipUpdating;
auto info = CustomMessageBox::selectable(
parent, QObject::tr("Similar modpack was found!"),
QObject::tr("One or more of your instances are from this same modpack%1. Do you want to create a "
"separate instance, or update the existing one?\n\nNOTE: Make sure you made a backup of your important instance data before "
"updating, as worlds can be corrupted and some configuration may be lost (due to pack overrides).")
QObject::tr(
"One or more of your instances are from this same modpack%1. Do you want to create a "
"separate instance, or update the existing one?\n\nNOTE: Make sure you made a backup of your important instance data before "
"updating, as worlds can be corrupted and some configuration may be lost (due to pack overrides).")
.arg(original_version_name),
QMessageBox::Information, QMessageBox::Ok | QMessageBox::Reset | QMessageBox::Abort);
info->setButtonText(QMessageBox::Ok, QObject::tr("Update existing instance"));
info->setButtonText(QMessageBox::Abort, QObject::tr("Create new instance"));
info->setButtonText(QMessageBox::Reset, QObject::tr("Cancel"));
QMessageBox::Information, QMessageBox::Cancel);
QAbstractButton* update = info->addButton(QObject::tr("Update existing instance"), QMessageBox::AcceptRole);
QAbstractButton* skip = info->addButton(QObject::tr("Create new instance"), QMessageBox::ResetRole);
info->exec();
if (info->clickedButton() == info->button(QMessageBox::Ok))
if (info->clickedButton() == update)
return ShouldUpdate::Update;
if (info->clickedButton() == info->button(QMessageBox::Abort))
if (info->clickedButton() == skip)
return ShouldUpdate::SkipUpdating;
return ShouldUpdate::Cancel;
}
QString InstanceName::name() const
{
if (!m_modified_name.isEmpty())
return modifiedName();
return QString("%1 %2").arg(m_original_name, m_original_version);
if (!m_original_version.isEmpty())
return QString("%1 %2").arg(m_original_name, m_original_version);
return m_original_name;
}
QString InstanceName::originalName() const

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -39,43 +39,39 @@
#include <QRegularExpression>
bool JavaCommon::checkJVMArgs(QString jvmargs, QWidget *parent)
bool JavaCommon::checkJVMArgs(QString jvmargs, QWidget* parent)
{
if (jvmargs.contains("-XX:PermSize=") || jvmargs.contains(QRegularExpression("-Xm[sx]"))
|| jvmargs.contains("-XX-MaxHeapSize") || jvmargs.contains("-XX:InitialHeapSize"))
{
if (jvmargs.contains("-XX:PermSize=") || jvmargs.contains(QRegularExpression("-Xm[sx]")) || jvmargs.contains("-XX-MaxHeapSize") ||
jvmargs.contains("-XX:InitialHeapSize")) {
auto warnStr = QObject::tr(
"You tried to manually set a JVM memory option (using \"-XX:PermSize\", \"-XX-MaxHeapSize\", \"-XX:InitialHeapSize\", \"-Xmx\" or \"-Xms\").\n"
"You tried to manually set a JVM memory option (using \"-XX:PermSize\", \"-XX-MaxHeapSize\", \"-XX:InitialHeapSize\", \"-Xmx\" "
"or \"-Xms\").\n"
"There are dedicated boxes for these in the settings (Java tab, in the Memory group at the top).\n"
"This message will be displayed until you remove them from the JVM arguments.");
CustomMessageBox::selectable(
parent, QObject::tr("JVM arguments warning"),
warnStr,
QMessageBox::Warning)->exec();
CustomMessageBox::selectable(parent, QObject::tr("JVM arguments warning"), warnStr, QMessageBox::Warning)->exec();
return false;
}
// block lunacy with passing required version to the JVM
if (jvmargs.contains(QRegularExpression("-version:.*"))) {
auto warnStr = QObject::tr(
"You tried to pass required Java version argument to the JVM (using \"-version:xxx\"). This is not safe and will not be allowed.\n"
"You tried to pass required Java version argument to the JVM (using \"-version:xxx\"). This is not safe and will not be "
"allowed.\n"
"This message will be displayed until you remove this from the JVM arguments.");
CustomMessageBox::selectable(
parent, QObject::tr("JVM arguments warning"),
warnStr,
QMessageBox::Warning)->exec();
CustomMessageBox::selectable(parent, QObject::tr("JVM arguments warning"), warnStr, QMessageBox::Warning)->exec();
return false;
}
return true;
}
void JavaCommon::javaWasOk(QWidget *parent, JavaCheckResult result)
void JavaCommon::javaWasOk(QWidget* parent, const JavaChecker::Result& result)
{
QString text;
text += QObject::tr("Java test succeeded!<br />Platform reported: %1<br />Java version "
"reported: %2<br />Java vendor "
"reported: %3<br />").arg(result.realPlatform, result.javaVersion.toString(), result.javaVendor);
if (result.errorLog.size())
{
text += QObject::tr(
"Java test succeeded!<br />Platform reported: %1<br />Java version "
"reported: %2<br />Java vendor "
"reported: %3<br />")
.arg(result.realPlatform, result.javaVersion.toString(), result.javaVendor);
if (result.errorLog.size()) {
auto htmlError = result.errorLog;
htmlError.replace('\n', "<br />");
text += QObject::tr("<br />Warnings:<br /><font color=\"orange\">%1</font>").arg(htmlError);
@ -83,7 +79,7 @@ void JavaCommon::javaWasOk(QWidget *parent, JavaCheckResult result)
CustomMessageBox::selectable(parent, QObject::tr("Java test success"), text, QMessageBox::Information)->show();
}
void JavaCommon::javaArgsWereBad(QWidget *parent, JavaCheckResult result)
void JavaCommon::javaArgsWereBad(QWidget* parent, const JavaChecker::Result& result)
{
auto htmlError = result.errorLog;
QString text;
@ -93,7 +89,7 @@ void JavaCommon::javaArgsWereBad(QWidget *parent, JavaCheckResult result)
CustomMessageBox::selectable(parent, QObject::tr("Java test failure"), text, QMessageBox::Warning)->show();
}
void JavaCommon::javaBinaryWasBad(QWidget *parent, JavaCheckResult result)
void JavaCommon::javaBinaryWasBad(QWidget* parent, const JavaChecker::Result& result)
{
QString text;
text += QObject::tr(
@ -102,7 +98,7 @@ void JavaCommon::javaBinaryWasBad(QWidget *parent, JavaCheckResult result)
CustomMessageBox::selectable(parent, QObject::tr("Java test failure"), text, QMessageBox::Warning)->show();
}
void JavaCommon::javaCheckNotFound(QWidget *parent)
void JavaCommon::javaCheckNotFound(QWidget* parent)
{
QString text;
text += QObject::tr("Java checker library could not be found. Please check your installation.");
@ -111,8 +107,7 @@ void JavaCommon::javaCheckNotFound(QWidget *parent)
void JavaCommon::TestCheck::run()
{
if (!JavaCommon::checkJVMArgs(m_args, m_parent))
{
if (!JavaCommon::checkJVMArgs(m_args, m_parent)) {
emit finished();
return;
}
@ -121,39 +116,26 @@ void JavaCommon::TestCheck::run()
emit finished();
return;
}
checker.reset(new JavaChecker());
connect(checker.get(), SIGNAL(checkFinished(JavaCheckResult)), this,
SLOT(checkFinished(JavaCheckResult)));
checker->m_path = m_path;
checker->performCheck();
checker.reset(new JavaChecker(m_path, "", 0, 0, 0, 0));
connect(checker.get(), &JavaChecker::checkFinished, this, &JavaCommon::TestCheck::checkFinished);
checker->start();
}
void JavaCommon::TestCheck::checkFinished(JavaCheckResult result)
void JavaCommon::TestCheck::checkFinished(const JavaChecker::Result& result)
{
if (result.validity != JavaCheckResult::Validity::Valid)
{
if (result.validity != JavaChecker::Result::Validity::Valid) {
javaBinaryWasBad(m_parent, result);
emit finished();
return;
}
checker.reset(new JavaChecker());
connect(checker.get(), SIGNAL(checkFinished(JavaCheckResult)), this,
SLOT(checkFinishedWithArgs(JavaCheckResult)));
checker->m_path = m_path;
checker->m_args = m_args;
checker->m_minMem = m_minMem;
checker->m_maxMem = m_maxMem;
if (result.javaVersion.requiresPermGen())
{
checker->m_permGen = m_permGen;
}
checker->performCheck();
checker.reset(new JavaChecker(m_path, m_args, m_maxMem, m_maxMem, result.javaVersion.requiresPermGen() ? m_permGen : 0, 0));
connect(checker.get(), &JavaChecker::checkFinished, this, &JavaCommon::TestCheck::checkFinishedWithArgs);
checker->start();
}
void JavaCommon::TestCheck::checkFinishedWithArgs(JavaCheckResult result)
void JavaCommon::TestCheck::checkFinishedWithArgs(const JavaChecker::Result& result)
{
if (result.validity == JavaCheckResult::Validity::Valid)
{
if (result.validity == JavaChecker::Result::Validity::Valid) {
javaWasOk(m_parent, result);
emit finished();
return;
@ -161,4 +143,3 @@ void JavaCommon::TestCheck::checkFinishedWithArgs(JavaCheckResult result)
javaArgsWereBad(m_parent, result);
emit finished();
}

View file

@ -6,45 +6,42 @@ class QWidget;
/**
* Common UI bits for the java pages to use.
*/
namespace JavaCommon
{
bool checkJVMArgs(QString args, QWidget *parent);
namespace JavaCommon {
bool checkJVMArgs(QString args, QWidget* parent);
// Show a dialog saying that the Java binary was usable
void javaWasOk(QWidget *parent, JavaCheckResult result);
// Show a dialog saying that the Java binary was not usable because of bad options
void javaArgsWereBad(QWidget *parent, JavaCheckResult result);
// Show a dialog saying that the Java binary was not usable
void javaBinaryWasBad(QWidget *parent, JavaCheckResult result);
// Show a dialog if we couldn't find Java Checker
void javaCheckNotFound(QWidget *parent);
// Show a dialog saying that the Java binary was usable
void javaWasOk(QWidget* parent, const JavaChecker::Result& result);
// Show a dialog saying that the Java binary was not usable because of bad options
void javaArgsWereBad(QWidget* parent, const JavaChecker::Result& result);
// Show a dialog saying that the Java binary was not usable
void javaBinaryWasBad(QWidget* parent, const JavaChecker::Result& result);
// Show a dialog if we couldn't find Java Checker
void javaCheckNotFound(QWidget* parent);
class TestCheck : public QObject
{
Q_OBJECT
public:
TestCheck(QWidget *parent, QString path, QString args, int minMem, int maxMem, int permGen)
:m_parent(parent), m_path(path), m_args(args), m_minMem(minMem), m_maxMem(maxMem), m_permGen(permGen)
{
}
virtual ~TestCheck() {};
class TestCheck : public QObject {
Q_OBJECT
public:
TestCheck(QWidget* parent, QString path, QString args, int minMem, int maxMem, int permGen)
: m_parent(parent), m_path(path), m_args(args), m_minMem(minMem), m_maxMem(maxMem), m_permGen(permGen)
{}
virtual ~TestCheck() {};
void run();
void run();
signals:
void finished();
signals:
void finished();
private slots:
void checkFinished(JavaCheckResult result);
void checkFinishedWithArgs(JavaCheckResult result);
private slots:
void checkFinished(const JavaChecker::Result& result);
void checkFinishedWithArgs(const JavaChecker::Result& result);
private:
std::shared_ptr<JavaChecker> checker;
QWidget *m_parent = nullptr;
QString m_path;
QString m_args;
int m_minMem = 0;
int m_maxMem = 0;
int m_permGen = 64;
};
}
private:
JavaChecker::Ptr checker;
QWidget* m_parent = nullptr;
QString m_path;
QString m_args;
int m_minMem = 0;
int m_maxMem = 0;
int m_permGen = 64;
};
} // namespace JavaCommon

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -37,257 +37,246 @@
#include <QFile>
#include "FileSystem.h"
#include <math.h>
#include "FileSystem.h"
namespace Json
{
void write(const QJsonDocument &doc, const QString &filename)
namespace Json {
void write(const QJsonDocument& doc, const QString& filename)
{
FS::write(filename, doc.toJson());
}
void write(const QJsonObject &object, const QString &filename)
void write(const QJsonObject& object, const QString& filename)
{
write(QJsonDocument(object), filename);
}
void write(const QJsonArray &array, const QString &filename)
void write(const QJsonArray& array, const QString& filename)
{
write(QJsonDocument(array), filename);
}
QByteArray toText(const QJsonObject &obj)
QByteArray toText(const QJsonObject& obj)
{
return QJsonDocument(obj).toJson(QJsonDocument::Compact);
}
QByteArray toText(const QJsonArray &array)
QByteArray toText(const QJsonArray& array)
{
return QJsonDocument(array).toJson(QJsonDocument::Compact);
}
static bool isBinaryJson(const QByteArray &data)
static bool isBinaryJson(const QByteArray& data)
{
decltype(QJsonDocument::BinaryFormatTag) tag = QJsonDocument::BinaryFormatTag;
return memcmp(data.constData(), &tag, sizeof(QJsonDocument::BinaryFormatTag)) == 0;
}
QJsonDocument requireDocument(const QByteArray &data, const QString &what)
QJsonDocument requireDocument(const QByteArray& data, const QString& what)
{
if (isBinaryJson(data))
{
if (isBinaryJson(data)) {
// FIXME: Is this needed?
throw JsonException(what + ": Invalid JSON. Binary JSON unsupported");
}
else
{
} else {
QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError)
{
if (error.error != QJsonParseError::NoError) {
throw JsonException(what + ": Error parsing JSON: " + error.errorString());
}
return doc;
}
}
QJsonDocument requireDocument(const QString &filename, const QString &what)
QJsonDocument requireDocument(const QString& filename, const QString& what)
{
return requireDocument(FS::read(filename), what);
}
QJsonObject requireObject(const QJsonDocument &doc, const QString &what)
QJsonObject requireObject(const QJsonDocument& doc, const QString& what)
{
if (!doc.isObject())
{
if (!doc.isObject()) {
throw JsonException(what + " is not an object");
}
return doc.object();
}
QJsonArray requireArray(const QJsonDocument &doc, const QString &what)
QJsonArray requireArray(const QJsonDocument& doc, const QString& what)
{
if (!doc.isArray())
{
if (!doc.isArray()) {
throw JsonException(what + " is not an array");
}
return doc.array();
}
void writeString(QJsonObject &to, const QString &key, const QString &value)
void writeString(QJsonObject& to, const QString& key, const QString& value)
{
if (!value.isEmpty())
{
if (!value.isEmpty()) {
to.insert(key, value);
}
}
void writeStringList(QJsonObject &to, const QString &key, const QStringList &values)
void writeStringList(QJsonObject& to, const QString& key, const QStringList& values)
{
if (!values.isEmpty())
{
if (!values.isEmpty()) {
QJsonArray array;
for(auto value: values)
{
for (auto value : values) {
array.append(value);
}
to.insert(key, array);
}
}
template<>
QJsonValue toJson<QUrl>(const QUrl &url)
template <>
QJsonValue toJson<QUrl>(const QUrl& url)
{
return QJsonValue(url.toString(QUrl::FullyEncoded));
}
template<>
QJsonValue toJson<QByteArray>(const QByteArray &data)
template <>
QJsonValue toJson<QByteArray>(const QByteArray& data)
{
return QJsonValue(QString::fromLatin1(data.toHex()));
}
template<>
QJsonValue toJson<QDateTime>(const QDateTime &datetime)
template <>
QJsonValue toJson<QDateTime>(const QDateTime& datetime)
{
return QJsonValue(datetime.toString(Qt::ISODate));
}
template<>
QJsonValue toJson<QDir>(const QDir &dir)
template <>
QJsonValue toJson<QDir>(const QDir& dir)
{
return QDir::current().relativeFilePath(dir.absolutePath());
}
template<>
QJsonValue toJson<QUuid>(const QUuid &uuid)
template <>
QJsonValue toJson<QUuid>(const QUuid& uuid)
{
return uuid.toString();
}
template<>
QJsonValue toJson<QVariant>(const QVariant &variant)
template <>
QJsonValue toJson<QVariant>(const QVariant& variant)
{
return QJsonValue::fromVariant(variant);
}
template<> QByteArray requireIsType<QByteArray>(const QJsonValue &value, const QString &what)
template <>
QByteArray requireIsType<QByteArray>(const QJsonValue& value, const QString& what)
{
const QString string = ensureIsType<QString>(value, what);
// ensure that the string can be safely cast to Latin1
if (string != QString::fromLatin1(string.toLatin1()))
{
if (string != QString::fromLatin1(string.toLatin1())) {
throw JsonException(what + " is not encodable as Latin1");
}
return QByteArray::fromHex(string.toLatin1());
}
template<> QJsonArray requireIsType<QJsonArray>(const QJsonValue &value, const QString &what)
template <>
QJsonArray requireIsType<QJsonArray>(const QJsonValue& value, const QString& what)
{
if (!value.isArray())
{
if (!value.isArray()) {
throw JsonException(what + " is not an array");
}
return value.toArray();
}
template<> QString requireIsType<QString>(const QJsonValue &value, const QString &what)
template <>
QString requireIsType<QString>(const QJsonValue& value, const QString& what)
{
if (!value.isString())
{
if (!value.isString()) {
throw JsonException(what + " is not a string");
}
return value.toString();
}
template<> bool requireIsType<bool>(const QJsonValue &value, const QString &what)
template <>
bool requireIsType<bool>(const QJsonValue& value, const QString& what)
{
if (!value.isBool())
{
if (!value.isBool()) {
throw JsonException(what + " is not a bool");
}
return value.toBool();
}
template<> double requireIsType<double>(const QJsonValue &value, const QString &what)
template <>
double requireIsType<double>(const QJsonValue& value, const QString& what)
{
if (!value.isDouble())
{
if (!value.isDouble()) {
throw JsonException(what + " is not a double");
}
return value.toDouble();
}
template<> int requireIsType<int>(const QJsonValue &value, const QString &what)
template <>
int requireIsType<int>(const QJsonValue& value, const QString& what)
{
const double doubl = requireIsType<double>(value, what);
if (fmod(doubl, 1) != 0)
{
if (fmod(doubl, 1) != 0) {
throw JsonException(what + " is not an integer");
}
return int(doubl);
}
template<> QDateTime requireIsType<QDateTime>(const QJsonValue &value, const QString &what)
template <>
QDateTime requireIsType<QDateTime>(const QJsonValue& value, const QString& what)
{
const QString string = requireIsType<QString>(value, what);
const QDateTime datetime = QDateTime::fromString(string, Qt::ISODate);
if (!datetime.isValid())
{
if (!datetime.isValid()) {
throw JsonException(what + " is not a ISO formatted date/time value");
}
return datetime;
}
template<> QUrl requireIsType<QUrl>(const QJsonValue &value, const QString &what)
template <>
QUrl requireIsType<QUrl>(const QJsonValue& value, const QString& what)
{
const QString string = ensureIsType<QString>(value, what);
if (string.isEmpty())
{
if (string.isEmpty()) {
return QUrl();
}
const QUrl url = QUrl(string, QUrl::StrictMode);
if (!url.isValid())
{
if (!url.isValid()) {
throw JsonException(what + " is not a correctly formatted URL");
}
return url;
}
template<> QDir requireIsType<QDir>(const QJsonValue &value, const QString &what)
template <>
QDir requireIsType<QDir>(const QJsonValue& value, const QString& what)
{
const QString string = requireIsType<QString>(value, what);
// FIXME: does not handle invalid characters!
return QDir::current().absoluteFilePath(string);
}
template<> QUuid requireIsType<QUuid>(const QJsonValue &value, const QString &what)
template <>
QUuid requireIsType<QUuid>(const QJsonValue& value, const QString& what)
{
const QString string = requireIsType<QString>(value, what);
const QUuid uuid = QUuid(string);
if (uuid.toString() != string) // converts back => valid
if (uuid.toString() != string) // converts back => valid
{
throw JsonException(what + " is not a valid UUID");
}
return uuid;
}
template<> QJsonObject requireIsType<QJsonObject>(const QJsonValue &value, const QString &what)
template <>
QJsonObject requireIsType<QJsonObject>(const QJsonValue& value, const QString& what)
{
if (!value.isObject())
{
if (!value.isObject()) {
throw JsonException(what + " is not an object");
}
return value.toObject();
}
template<> QVariant requireIsType<QVariant>(const QJsonValue &value, const QString &what)
template <>
QVariant requireIsType<QVariant>(const QJsonValue& value, const QString& what)
{
if (value.isNull() || value.isUndefined())
{
if (value.isNull() || value.isUndefined()) {
throw JsonException(what + " is null or undefined");
}
return value.toVariant();
}
template<> QJsonValue requireIsType<QJsonValue>(const QJsonValue &value, const QString &what)
template <>
QJsonValue requireIsType<QJsonValue>(const QJsonValue& value, const QString& what)
{
if (value.isNull() || value.isUndefined())
{
if (value.isNull() || value.isUndefined()) {
throw JsonException(what + " is null or undefined");
}
return value;
}
}
} // namespace Json

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -35,74 +35,71 @@
#pragma once
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QDateTime>
#include <QUrl>
#include <QDir>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QUrl>
#include <QUuid>
#include <QVariant>
#include <memory>
#include "Exception.h"
namespace Json
{
class JsonException : public ::Exception
{
public:
JsonException(const QString &message) : Exception(message) {}
namespace Json {
class JsonException : public ::Exception {
public:
JsonException(const QString& message) : Exception(message) {}
};
/// @throw FileSystemException
void write(const QJsonDocument &doc, const QString &filename);
void write(const QJsonDocument& doc, const QString& filename);
/// @throw FileSystemException
void write(const QJsonObject &object, const QString &filename);
void write(const QJsonObject& object, const QString& filename);
/// @throw FileSystemException
void write(const QJsonArray &array, const QString &filename);
void write(const QJsonArray& array, const QString& filename);
QByteArray toText(const QJsonObject &obj);
QByteArray toText(const QJsonArray &array);
QByteArray toText(const QJsonObject& obj);
QByteArray toText(const QJsonArray& array);
/// @throw JsonException
QJsonDocument requireDocument(const QByteArray &data, const QString &what = "Document");
QJsonDocument requireDocument(const QByteArray& data, const QString& what = "Document");
/// @throw JsonException
QJsonDocument requireDocument(const QString &filename, const QString &what = "Document");
QJsonDocument requireDocument(const QString& filename, const QString& what = "Document");
/// @throw JsonException
QJsonObject requireObject(const QJsonDocument &doc, const QString &what = "Document");
QJsonObject requireObject(const QJsonDocument& doc, const QString& what = "Document");
/// @throw JsonException
QJsonArray requireArray(const QJsonDocument &doc, const QString &what = "Document");
QJsonArray requireArray(const QJsonDocument& doc, const QString& what = "Document");
/////////////////// WRITING ////////////////////
void writeString(QJsonObject & to, const QString &key, const QString &value);
void writeStringList(QJsonObject & to, const QString &key, const QStringList &values);
void writeString(QJsonObject& to, const QString& key, const QString& value);
void writeStringList(QJsonObject& to, const QString& key, const QStringList& values);
template<typename T>
QJsonValue toJson(const T &t)
template <typename T>
QJsonValue toJson(const T& t)
{
return QJsonValue(t);
}
template<>
QJsonValue toJson<QUrl>(const QUrl &url);
template<>
QJsonValue toJson<QByteArray>(const QByteArray &data);
template<>
QJsonValue toJson<QDateTime>(const QDateTime &datetime);
template<>
QJsonValue toJson<QDir>(const QDir &dir);
template<>
QJsonValue toJson<QUuid>(const QUuid &uuid);
template<>
QJsonValue toJson<QVariant>(const QVariant &variant);
template <>
QJsonValue toJson<QUrl>(const QUrl& url);
template <>
QJsonValue toJson<QByteArray>(const QByteArray& data);
template <>
QJsonValue toJson<QDateTime>(const QDateTime& datetime);
template <>
QJsonValue toJson<QDir>(const QDir& dir);
template <>
QJsonValue toJson<QUuid>(const QUuid& uuid);
template <>
QJsonValue toJson<QVariant>(const QVariant& variant);
template<typename T>
QJsonArray toJsonArray(const QList<T> &container)
template <typename T>
QJsonArray toJsonArray(const QList<T>& container)
{
QJsonArray array;
for (const T item : container)
{
for (const T item : container) {
array.append(toJson<T>(item));
}
return array;
@ -112,106 +109,110 @@ QJsonArray toJsonArray(const QList<T> &container)
/// @throw JsonException
template <typename T>
T requireIsType(const QJsonValue &value, const QString &what = "Value");
T requireIsType(const QJsonValue& value, const QString& what = "Value");
/// @throw JsonException
template<> double requireIsType<double>(const QJsonValue &value, const QString &what);
template <>
double requireIsType<double>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> bool requireIsType<bool>(const QJsonValue &value, const QString &what);
template <>
bool requireIsType<bool>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> int requireIsType<int>(const QJsonValue &value, const QString &what);
template <>
int requireIsType<int>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QJsonObject requireIsType<QJsonObject>(const QJsonValue &value, const QString &what);
template <>
QJsonObject requireIsType<QJsonObject>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QJsonArray requireIsType<QJsonArray>(const QJsonValue &value, const QString &what);
template <>
QJsonArray requireIsType<QJsonArray>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QJsonValue requireIsType<QJsonValue>(const QJsonValue &value, const QString &what);
template <>
QJsonValue requireIsType<QJsonValue>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QByteArray requireIsType<QByteArray>(const QJsonValue &value, const QString &what);
template <>
QByteArray requireIsType<QByteArray>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QDateTime requireIsType<QDateTime>(const QJsonValue &value, const QString &what);
template <>
QDateTime requireIsType<QDateTime>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QVariant requireIsType<QVariant>(const QJsonValue &value, const QString &what);
template <>
QVariant requireIsType<QVariant>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QString requireIsType<QString>(const QJsonValue &value, const QString &what);
template <>
QString requireIsType<QString>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QUuid requireIsType<QUuid>(const QJsonValue &value, const QString &what);
template <>
QUuid requireIsType<QUuid>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QDir requireIsType<QDir>(const QJsonValue &value, const QString &what);
template <>
QDir requireIsType<QDir>(const QJsonValue& value, const QString& what);
/// @throw JsonException
template<> QUrl requireIsType<QUrl>(const QJsonValue &value, const QString &what);
template <>
QUrl requireIsType<QUrl>(const QJsonValue& value, const QString& what);
// the following functions are higher level functions, that make use of the above functions for
// type conversion
template <typename T>
T ensureIsType(const QJsonValue &value, const T default_ = T(), const QString &what = "Value")
T ensureIsType(const QJsonValue& value, const T default_ = T(), const QString& what = "Value")
{
if (value.isUndefined() || value.isNull())
{
if (value.isUndefined() || value.isNull()) {
return default_;
}
try
{
try {
return requireIsType<T>(value, what);
}
catch (const JsonException &)
{
} catch (const JsonException&) {
return default_;
}
}
/// @throw JsonException
template <typename T>
T requireIsType(const QJsonObject &parent, const QString &key, const QString &what = "__placeholder__")
T requireIsType(const QJsonObject& parent, const QString& key, const QString& what = "__placeholder__")
{
const QString localWhat = QString(what).replace("__placeholder__", '\'' + key + '\'');
if (!parent.contains(key))
{
if (!parent.contains(key)) {
throw JsonException(localWhat + "s parent does not contain " + localWhat);
}
return requireIsType<T>(parent.value(key), localWhat);
}
template <typename T>
T ensureIsType(const QJsonObject &parent, const QString &key, const T default_ = T(), const QString &what = "__placeholder__")
T ensureIsType(const QJsonObject& parent, const QString& key, const T default_ = T(), const QString& what = "__placeholder__")
{
const QString localWhat = QString(what).replace("__placeholder__", '\'' + key + '\'');
if (!parent.contains(key))
{
if (!parent.contains(key)) {
return default_;
}
return ensureIsType<T>(parent.value(key), default_, localWhat);
}
template <typename T>
QVector<T> requireIsArrayOf(const QJsonDocument &doc)
QVector<T> requireIsArrayOf(const QJsonDocument& doc)
{
const QJsonArray array = requireArray(doc);
QVector<T> out;
for (const QJsonValue val : array)
{
for (const QJsonValue val : array) {
out.append(requireIsType<T>(val, "Document"));
}
return out;
}
template <typename T>
QVector<T> ensureIsArrayOf(const QJsonValue &value, const QString &what = "Value")
QVector<T> ensureIsArrayOf(const QJsonValue& value, const QString& what = "Value")
{
const QJsonArray array = ensureIsType<QJsonArray>(value, QJsonArray(), what);
QVector<T> out;
for (const QJsonValue val : array)
{
for (const QJsonValue val : array) {
out.append(requireIsType<T>(val, what));
}
return out;
}
template <typename T>
QVector<T> ensureIsArrayOf(const QJsonValue &value, const QVector<T> default_, const QString &what = "Value")
QVector<T> ensureIsArrayOf(const QJsonValue& value, const QVector<T> default_, const QString& what = "Value")
{
if (value.isUndefined())
{
if (value.isUndefined()) {
return default_;
}
return ensureIsArrayOf<T>(value, what);
@ -219,45 +220,46 @@ QVector<T> ensureIsArrayOf(const QJsonValue &value, const QVector<T> default_, c
/// @throw JsonException
template <typename T>
QVector<T> requireIsArrayOf(const QJsonObject &parent, const QString &key, const QString &what = "__placeholder__")
QVector<T> requireIsArrayOf(const QJsonObject& parent, const QString& key, const QString& what = "__placeholder__")
{
const QString localWhat = QString(what).replace("__placeholder__", '\'' + key + '\'');
if (!parent.contains(key))
{
if (!parent.contains(key)) {
throw JsonException(localWhat + "s parent does not contain " + localWhat);
}
return ensureIsArrayOf<T>(parent.value(key), localWhat);
}
template <typename T>
QVector<T> ensureIsArrayOf(const QJsonObject &parent, const QString &key,
const QVector<T> &default_ = QVector<T>(), const QString &what = "__placeholder__")
QVector<T> ensureIsArrayOf(const QJsonObject& parent,
const QString& key,
const QVector<T>& default_ = QVector<T>(),
const QString& what = "__placeholder__")
{
const QString localWhat = QString(what).replace("__placeholder__", '\'' + key + '\'');
if (!parent.contains(key))
{
if (!parent.contains(key)) {
return default_;
}
return ensureIsArrayOf<T>(parent.value(key), default_, localWhat);
}
// this macro part could be replaced by variadic functions that just pass on their arguments, but that wouldn't work well with IDE helpers
#define JSON_HELPERFUNCTIONS(NAME, TYPE) \
inline TYPE require##NAME(const QJsonValue &value, const QString &what = "Value") \
{ \
return requireIsType<TYPE>(value, what); \
} \
inline TYPE ensure##NAME(const QJsonValue &value, const TYPE default_ = TYPE(), const QString &what = "Value") \
{ \
return ensureIsType<TYPE>(value, default_, what); \
} \
inline TYPE require##NAME(const QJsonObject &parent, const QString &key, const QString &what = "__placeholder__") \
{ \
return requireIsType<TYPE>(parent, key, what); \
} \
inline TYPE ensure##NAME(const QJsonObject &parent, const QString &key, const TYPE default_ = TYPE(), const QString &what = "__placeholder") \
{ \
return ensureIsType<TYPE>(parent, key, default_, what); \
#define JSON_HELPERFUNCTIONS(NAME, TYPE) \
inline TYPE require##NAME(const QJsonValue& value, const QString& what = "Value") \
{ \
return requireIsType<TYPE>(value, what); \
} \
inline TYPE ensure##NAME(const QJsonValue& value, const TYPE default_ = TYPE(), const QString& what = "Value") \
{ \
return ensureIsType<TYPE>(value, default_, what); \
} \
inline TYPE require##NAME(const QJsonObject& parent, const QString& key, const QString& what = "__placeholder__") \
{ \
return requireIsType<TYPE>(parent, key, what); \
} \
inline TYPE ensure##NAME(const QJsonObject& parent, const QString& key, const TYPE default_ = TYPE(), \
const QString& what = "__placeholder") \
{ \
return ensureIsType<TYPE>(parent, key, default_, what); \
}
JSON_HELPERFUNCTIONS(Array, QJsonArray)
@ -276,5 +278,5 @@ JSON_HELPERFUNCTIONS(Variant, QVariant)
#undef JSON_HELPERFUNCTIONS
}
} // namespace Json
using JSONValidationError = Json::JsonException;

View file

@ -1,42 +1,26 @@
#include "KonamiCode.h"
#include <array>
#include <QDebug>
#include <array>
namespace {
const std::array<Qt::Key, 10> konamiCode =
{
{
Qt::Key_Up, Qt::Key_Up,
Qt::Key_Down, Qt::Key_Down,
Qt::Key_Left, Qt::Key_Right,
Qt::Key_Left, Qt::Key_Right,
Qt::Key_B, Qt::Key_A
}
};
}
KonamiCode::KonamiCode(QObject* parent) : QObject(parent)
{
const std::array<Qt::Key, 10> konamiCode = { { Qt::Key_Up, Qt::Key_Up, Qt::Key_Down, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right,
Qt::Key_Left, Qt::Key_Right, Qt::Key_B, Qt::Key_A } };
}
KonamiCode::KonamiCode(QObject* parent) : QObject(parent) {}
void KonamiCode::input(QEvent* event)
{
if( event->type() == QEvent::KeyPress )
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>( event );
if (event->type() == QEvent::KeyPress) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
auto key = Qt::Key(keyEvent->key());
if(key == konamiCode[m_progress])
{
m_progress ++;
}
else
{
if (key == konamiCode[m_progress]) {
m_progress++;
} else {
m_progress = 0;
}
if(m_progress == static_cast<int>(konamiCode.size()))
{
if (m_progress == static_cast<int>(konamiCode.size())) {
m_progress = 0;
emit triggered();
}

View file

@ -2,16 +2,15 @@
#include <QKeyEvent>
class KonamiCode : public QObject
{
class KonamiCode : public QObject {
Q_OBJECT
public:
KonamiCode(QObject *parent = 0);
void input(QEvent *event);
public:
KonamiCode(QObject* parent = 0);
void input(QEvent* event);
signals:
signals:
void triggered();
private:
private:
int m_progress = 0;
};

View file

@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -34,44 +35,43 @@
*/
#include "LaunchController.h"
#include "minecraft/auth/AccountList.h"
#include "Application.h"
#include "launch/steps/PrintServers.h"
#include "minecraft/auth/AccountData.h"
#include "minecraft/auth/AccountList.h"
#include "ui/MainWindow.h"
#include "ui/InstanceWindow.h"
#include "ui/MainWindow.h"
#include "ui/dialogs/CustomMessageBox.h"
#include "ui/dialogs/MSALoginDialog.h"
#include "ui/dialogs/ProfileSelectDialog.h"
#include "ui/dialogs/ProgressDialog.h"
#include "ui/dialogs/EditAccountDialog.h"
#include "ui/dialogs/ProfileSetupDialog.h"
#include "ui/dialogs/ProgressDialog.h"
#include <QLineEdit>
#include <QInputDialog>
#include <QStringList>
#include <QHostInfo>
#include <QList>
#include <QHostAddress>
#include <QHostInfo>
#include <QInputDialog>
#include <QLineEdit>
#include <QList>
#include <QPushButton>
#include <QRegularExpression>
#include <QStringList>
#include "BuildConfig.h"
#include "JavaCommon.h"
#include "tasks/Task.h"
#include "minecraft/auth/AccountTask.h"
#include "launch/steps/TextPrint.h"
#include "tasks/Task.h"
LaunchController::LaunchController(QObject *parent) : Task(parent)
{
}
LaunchController::LaunchController() : Task() {}
void LaunchController::executeTask()
{
if (!m_instance)
{
if (!m_instance) {
emitFailed(tr("No instance specified!"));
return;
}
if(!JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget)) {
if (!JavaCommon::checkJVMArgs(m_instance->settings()->get("JvmArgs").toString(), m_parentWidget)) {
emitFailed(tr("Invalid Java arguments specified. Please fix this first."));
return;
}
@ -81,46 +81,43 @@ void LaunchController::executeTask()
void LaunchController::decideAccount()
{
if(m_accountToUse) {
if (m_accountToUse) {
return;
}
// Find an account to use.
auto accounts = APPLICATION->accounts();
if (accounts->count() <= 0)
{
if (accounts->count() <= 0 || !accounts->anyAccountIsValid()) {
// Tell the user they need to log in at least one account in order to play.
auto reply = CustomMessageBox::selectable(
m_parentWidget,
tr("No Accounts"),
tr("In order to play Minecraft, you must have at least one Microsoft or Mojang "
"account logged in. Mojang accounts can only be used offline. "
"Would you like to open the account manager to add an account now?"),
QMessageBox::Information,
QMessageBox::Yes | QMessageBox::No
)->exec();
auto reply = CustomMessageBox::selectable(m_parentWidget, tr("No Accounts"),
tr("In order to play Minecraft, you must have at least one Microsoft "
"account which owns Minecraft logged in. "
"Would you like to open the account manager to add an account now?"),
QMessageBox::Information, QMessageBox::Yes | QMessageBox::No)
->exec();
if (reply == QMessageBox::Yes)
{
if (reply == QMessageBox::Yes) {
// Open the account manager.
APPLICATION->ShowGlobalSettings(m_parentWidget, "accounts");
}
else if (reply == QMessageBox::No)
{
} else if (reply == QMessageBox::No) {
// Do not open "profile select" dialog.
return;
}
}
m_accountToUse = accounts->defaultAccount();
if (!m_accountToUse)
{
// Select the account to use. If the instance has a specific account set, that will be used. Otherwise, the default account will be used
auto instanceAccountId = m_instance->settings()->get("InstanceAccountId").toString();
auto instanceAccountIndex = accounts->findAccountByProfileId(instanceAccountId);
if (instanceAccountIndex == -1 || instanceAccountId.isEmpty()) {
m_accountToUse = accounts->defaultAccount();
} else {
m_accountToUse = accounts->at(instanceAccountIndex);
}
if (!m_accountToUse) {
// If no default account is set, ask the user which one to use.
ProfileSelectDialog selectDialog(
tr("Which account would you like to use?"),
ProfileSelectDialog::GlobalDefaultCheckbox,
m_parentWidget
);
ProfileSelectDialog selectDialog(tr("Which account would you like to use?"), ProfileSelectDialog::GlobalDefaultCheckbox,
m_parentWidget);
selectDialog.exec();
@ -134,13 +131,63 @@ void LaunchController::decideAccount()
}
}
bool LaunchController::askPlayDemo()
{
QMessageBox box(m_parentWidget);
box.setWindowTitle(tr("Play demo?"));
box.setText(
tr("This account does not own Minecraft.\nYou need to purchase the game first to play it.\n\nDo you want to play "
"the demo?"));
box.setIcon(QMessageBox::Warning);
auto demoButton = box.addButton(tr("Play Demo"), QMessageBox::ButtonRole::YesRole);
auto cancelButton = box.addButton(tr("Cancel"), QMessageBox::ButtonRole::NoRole);
box.setDefaultButton(cancelButton);
void LaunchController::login() {
box.exec();
return box.clickedButton() == demoButton;
}
QString LaunchController::askOfflineName(QString playerName, bool demo, bool& ok)
{
// we ask the user for a player name
QString message = tr("Choose your offline mode player name.");
if (demo) {
message = tr("Choose your demo mode player name.");
}
QString lastOfflinePlayerName = APPLICATION->settings()->get("LastOfflinePlayerName").toString();
QString usedname = lastOfflinePlayerName.isEmpty() ? playerName : lastOfflinePlayerName;
QString name = QInputDialog::getText(m_parentWidget, tr("Player name"), message, QLineEdit::Normal, usedname, &ok);
if (!ok)
return {};
if (name.length()) {
usedname = name;
APPLICATION->settings()->set("LastOfflinePlayerName", usedname);
}
return usedname;
}
void LaunchController::login()
{
decideAccount();
// if no account is selected, we bail
if (!m_accountToUse)
{
if (!m_accountToUse) {
// if no account is selected, ask about demo
if (!m_demo) {
m_demo = askPlayDemo();
}
if (m_demo) {
// we ask the user for a player name
bool ok = false;
auto name = askOfflineName("Player", m_demo, ok);
if (ok) {
m_session = std::make_shared<AuthSession>();
m_session->MakeDemo(name, MinecraftAccount::uuidFromUsername(name).toString().remove(QRegularExpression("[{}-]")));
launchInstance();
return;
}
}
// if no account is selected, we bail
emitFailed(tr("No account selected for launch."));
return;
}
@ -149,15 +196,18 @@ void LaunchController::login() {
bool tryagain = true;
unsigned int tries = 0;
while (tryagain)
{
if ((m_accountToUse->accountType() != AccountType::Offline && m_accountToUse->accountState() == AccountState::Offline) ||
m_accountToUse->shouldRefresh()) {
// Force account refresh on the account used to launch the instance updating the AccountState
// only on first try and if it is not meant to be offline
auto accounts = APPLICATION->accounts();
accounts->requestRefresh(m_accountToUse->internalId());
}
while (tryagain) {
if (tries > 0 && tries % 3 == 0) {
auto result = QMessageBox::question(
m_parentWidget,
tr("Continue launch?"),
tr("It looks like we couldn't launch after %1 tries. Do you want to continue trying?")
.arg(tries)
);
auto result =
QMessageBox::question(m_parentWidget, tr("Continue launch?"),
tr("It looks like we couldn't launch after %1 tries. Do you want to continue trying?").arg(tries));
if (result == QMessageBox::No) {
emitAborted();
@ -171,60 +221,41 @@ void LaunchController::login() {
m_accountToUse->fillSession(m_session);
// Launch immediately in true offline mode
if(m_accountToUse->isOffline()) {
if (m_accountToUse->accountType() == AccountType::Offline) {
launchInstance();
return;
}
switch(m_accountToUse->accountState()) {
switch (m_accountToUse->accountState()) {
case AccountState::Offline: {
m_session->wants_online = false;
// NOTE: fallthrough is intentional
}
/* fallthrough */
case AccountState::Online: {
if(!m_session->wants_online) {
if (!m_session->wants_online) {
// we ask the user for a player name
bool ok = false;
QString message = tr("Choose your offline mode player name.");
if(m_session->demo) {
message = tr("Choose your demo mode player name.");
QString name;
if (m_offlineName.isEmpty()) {
name = askOfflineName(m_session->player_name, m_session->demo, ok);
if (!ok) {
tryagain = false;
break;
}
} else {
name = m_offlineName;
}
QString lastOfflinePlayerName = APPLICATION->settings()->get("LastOfflinePlayerName").toString();
QString usedname = lastOfflinePlayerName.isEmpty() ? m_session->player_name : lastOfflinePlayerName;
QString name = QInputDialog::getText(
m_parentWidget,
tr("Player name"),
message,
QLineEdit::Normal,
usedname,
&ok
);
if (!ok)
{
tryagain = false;
break;
}
if (name.length())
{
usedname = name;
APPLICATION->settings()->set("LastOfflinePlayerName", usedname);
}
m_session->MakeOffline(usedname);
m_session->MakeOffline(name);
// offline flavored game from here :3
}
if(m_accountToUse->ownsMinecraft()) {
if(!m_accountToUse->hasProfile()) {
if (m_accountToUse->ownsMinecraft()) {
if (!m_accountToUse->hasProfile()) {
// Now handle setting up a profile name here...
ProfileSetupDialog dialog(m_accountToUse, m_parentWidget);
if (dialog.exec() == QDialog::Accepted)
{
if (dialog.exec() == QDialog::Accepted) {
tryagain = true;
continue;
}
else
{
} else {
emitFailed(tr("Received undetermined session status during login."));
return;
}
@ -232,24 +263,14 @@ void LaunchController::login() {
// we own Minecraft, there is a profile, it's all ready to go!
launchInstance();
return;
}
else {
} else {
// play demo ?
QMessageBox box(m_parentWidget);
box.setWindowTitle(tr("Play demo?"));
box.setText(tr("This account does not own Minecraft.\nYou need to purchase the game first to play it.\n\nDo you want to play the demo?"));
box.setIcon(QMessageBox::Warning);
auto demoButton = box.addButton(tr("Play Demo"), QMessageBox::ButtonRole::YesRole);
auto cancelButton = box.addButton(tr("Cancel"), QMessageBox::ButtonRole::NoRole);
box.setDefaultButton(cancelButton);
box.exec();
if(box.clickedButton() == demoButton) {
// play demo here
m_session->MakeDemo();
launchInstance();
if (!m_session->demo) {
m_session->demo = askPlayDemo();
}
else {
if (m_session->demo) { // play demo here
launchInstance();
} else {
emitFailed(tr("Launch cancelled - account does not own Minecraft."));
}
}
@ -259,58 +280,36 @@ void LaunchController::login() {
// This means some sort of soft error that we can fix with a refresh ... so let's refresh.
case AccountState::Unchecked: {
m_accountToUse->refresh();
// NOTE: fallthrough intentional
}
/* fallthrough */
case AccountState::Working: {
// refresh is in progress, we need to wait for it to finish to proceed.
ProgressDialog progDialog(m_parentWidget);
if (m_online)
{
if (m_online) {
progDialog.setSkipButton(true, tr("Play Offline"));
}
auto task = m_accountToUse->currentTask();
progDialog.execWithTask(task.get());
continue;
}
// FIXME: this is missing - the meaning is that the account is queued for refresh and we should wait for that
/*
case AccountState::Queued: {
return;
}
*/
case AccountState::Expired: {
auto errorString = tr("The account has expired and needs to be logged into manually again.");
QMessageBox::warning(
m_parentWidget,
tr("Account refresh failed"),
errorString,
QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Ok
);
emitFailed(errorString);
if (reauthenticateCurrentAccount())
continue;
return;
}
case AccountState::Disabled: {
auto errorString = tr("The launcher's client identification has changed. Please remove this account and add it again.");
QMessageBox::warning(
m_parentWidget,
tr("Client identification changed"),
errorString,
QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Ok
);
QMessageBox::warning(m_parentWidget, tr("Client identification changed"), errorString, QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Ok);
emitFailed(errorString);
return;
}
case AccountState::Gone: {
auto errorString = tr("The account no longer exists on the servers. It may have been migrated, in which case please add the new account you migrated this one to.");
QMessageBox::warning(
m_parentWidget,
tr("Account gone"),
errorString,
QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Ok
);
auto errorString =
tr("The account no longer exists on the servers. It may have been migrated, in which case please add the new account "
"you migrated this one to.");
QMessageBox::warning(m_parentWidget, tr("Account gone"), errorString, QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Ok);
emitFailed(errorString);
return;
}
@ -319,106 +318,114 @@ void LaunchController::login() {
emitFailed(tr("Failed to launch."));
}
bool LaunchController::reauthenticateCurrentAccount()
{
auto button =
QMessageBox::warning(m_parentWidget, tr("Account refresh failed"),
tr("The account has expired and needs to be reauthenticated. Do you want to reauthenticate this account?"),
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No, QMessageBox::StandardButton::Yes);
if (button == QMessageBox::StandardButton::Yes) {
auto accounts = APPLICATION->accounts();
bool isDefault = accounts->defaultAccount() == m_accountToUse;
accounts->removeAccount(accounts->index(accounts->findAccountByProfileId(m_accountToUse->profileId())));
if (m_accountToUse->accountType() == AccountType::MSA) {
auto newAccount = MSALoginDialog::newAccount(m_parentWidget);
accounts->addAccount(newAccount);
if (isDefault) {
accounts->setDefaultAccount(newAccount);
}
m_accountToUse = nullptr;
decideAccount();
return true;
}
emitFailed(tr("Account expired and re-login attempt failed"));
} else {
emitFailed(tr("The account has expired and needs to be reauthenticated"));
}
return false;
}
void LaunchController::launchInstance()
{
Q_ASSERT_X(m_instance != NULL, "launchInstance", "instance is NULL");
Q_ASSERT_X(m_session.get() != nullptr, "launchInstance", "session is NULL");
if(!m_instance->reloadSettings())
{
if (!m_instance->reloadSettings()) {
QMessageBox::critical(m_parentWidget, tr("Error!"), tr("Couldn't load the instance profile."));
emitFailed(tr("Couldn't load the instance profile."));
return;
}
m_launcher = m_instance->createLaunchTask(m_session, m_serverToJoin);
if (!m_launcher)
{
m_launcher = m_instance->createLaunchTask(m_session, m_targetToJoin);
if (!m_launcher) {
emitFailed(tr("Couldn't instantiate a launcher."));
return;
}
auto console = qobject_cast<InstanceWindow *>(m_parentWidget);
auto console = qobject_cast<InstanceWindow*>(m_parentWidget);
auto showConsole = m_instance->settings()->get("ShowConsole").toBool();
if(!console && showConsole)
{
if (!console && showConsole) {
APPLICATION->showInstanceWindow(m_instance);
}
connect(m_launcher.get(), &LaunchTask::readyForLaunch, this, &LaunchController::readyForLaunch);
connect(m_launcher.get(), &LaunchTask::succeeded, this, &LaunchController::onSucceeded);
connect(m_launcher.get(), &LaunchTask::failed, this, &LaunchController::onFailed);
connect(m_launcher.get(), &LaunchTask::failed, this, &LaunchController::onFailed);
connect(m_launcher.get(), &LaunchTask::requestProgress, this, &LaunchController::onProgressRequested);
// Prepend Online and Auth Status
QString online_mode;
if(m_session->wants_online) {
if (m_session->wants_online) {
online_mode = "online";
// Prepend Server Status
QStringList servers = {"authserver.mojang.com", "session.minecraft.net", "textures.minecraft.net", "api.mojang.com"};
QString resolved_servers = "";
QHostInfo host_info;
QStringList servers = { "login.microsoftonline.com", "session.minecraft.net", "textures.minecraft.net", "api.mojang.com" };
for(QString server : servers) {
host_info = QHostInfo::fromName(server);
resolved_servers = resolved_servers + server + " resolves to:\n [";
if(!host_info.addresses().isEmpty()) {
for(QHostAddress address : host_info.addresses()) {
resolved_servers = resolved_servers + address.toString();
if(!host_info.addresses().endsWith(address)) {
resolved_servers = resolved_servers + ", ";
}
}
} else {
resolved_servers = resolved_servers + "N/A";
}
resolved_servers = resolved_servers + "]\n\n";
}
m_launcher->prependStep(new TextPrint(m_launcher.get(), resolved_servers, MessageLevel::Launcher));
m_launcher->prependStep(makeShared<PrintServers>(m_launcher.get(), servers));
} else {
online_mode = m_demo ? "demo" : "offline";
}
m_launcher->prependStep(new TextPrint(m_launcher.get(), "Launched instance in " + online_mode + " mode\n", MessageLevel::Launcher));
m_launcher->prependStep(
makeShared<TextPrint>(m_launcher.get(), "Launched instance in " + online_mode + " mode\n", MessageLevel::Launcher));
// Prepend Version
m_launcher->prependStep(new TextPrint(m_launcher.get(), BuildConfig.LAUNCHER_DISPLAYNAME + " version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::Launcher));
{
auto versionString = QString("%1 version: %2 (%3)")
.arg(BuildConfig.LAUNCHER_DISPLAYNAME, BuildConfig.printableVersionString(), BuildConfig.BUILD_PLATFORM);
m_launcher->prependStep(makeShared<TextPrint>(m_launcher.get(), versionString + "\n\n", MessageLevel::Launcher));
}
m_launcher->start();
}
void LaunchController::readyForLaunch()
{
if (!m_profiler)
{
if (!m_profiler) {
m_launcher->proceed();
return;
}
QString error;
if (!m_profiler->check(&error))
{
if (!m_profiler->check(&error)) {
m_launcher->abort();
QMessageBox::critical(m_parentWidget, tr("Error!"), tr("Couldn't start profiler: %1").arg(error));
emitFailed("Profiler startup failed!");
QMessageBox::critical(m_parentWidget, tr("Error!"), tr("Profiler check for %1 failed: %2").arg(m_profiler->name(), error));
return;
}
BaseProfiler *profilerInstance = m_profiler->createProfiler(m_launcher->instance(), this);
BaseProfiler* profilerInstance = m_profiler->createProfiler(m_launcher->instance(), this);
connect(profilerInstance, &BaseProfiler::readyToLaunch, [this](const QString & message)
{
QMessageBox msg;
connect(profilerInstance, &BaseProfiler::readyToLaunch, [this](const QString& message) {
QMessageBox msg(m_parentWidget);
msg.setText(tr("The game launch is delayed until you press the "
"button. This is the right time to setup the profiler, as the "
"profiler server is running now.\n\n%1").arg(message));
"button. This is the right time to setup the profiler, as the "
"profiler server is running now.\n\n%1")
.arg(message));
msg.setWindowTitle(tr("Waiting."));
msg.setIcon(QMessageBox::Information);
msg.addButton(tr("Launch"), QMessageBox::AcceptRole);
msg.setModal(true);
msg.addButton(tr("&Launch"), QMessageBox::AcceptRole);
msg.exec();
m_launcher->proceed();
});
connect(profilerInstance, &BaseProfiler::abortLaunch, [this](const QString & message)
{
connect(profilerInstance, &BaseProfiler::abortLaunch, [this](const QString& message) {
QMessageBox msg;
msg.setText(tr("Couldn't start the profiler: %1").arg(message));
msg.setWindowTitle(tr("Error"));
@ -439,8 +446,7 @@ void LaunchController::onSucceeded()
void LaunchController::onFailed(QString reason)
{
if(m_instance->settings()->get("ShowConsoleOnError").toBool())
{
if (m_instance->settings()->get("ShowConsoleOnError").toBool()) {
APPLICATION->showInstanceWindow(m_instance, "console");
}
emitFailed(reason);
@ -456,21 +462,18 @@ void LaunchController::onProgressRequested(Task* task)
bool LaunchController::abort()
{
if(!m_launcher)
{
if (!m_launcher) {
return true;
}
if(!m_launcher->canAbort())
{
if (!m_launcher->canAbort()) {
return false;
}
auto response = CustomMessageBox::selectable(
m_parentWidget, tr("Kill Minecraft?"),
tr("This can cause the instance to get corrupted and should only be used if Minecraft "
"is frozen for some reason"),
QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)->exec();
if (response == QMessageBox::Yes)
{
auto response = CustomMessageBox::selectable(m_parentWidget, tr("Kill Minecraft?"),
tr("This can cause the instance to get corrupted and should only be used if Minecraft "
"is frozen for some reason"),
QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)
->exec();
if (response == QMessageBox::Yes) {
return m_launcher->abort();
}
return false;

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@ -34,83 +34,69 @@
*/
#pragma once
#include <QObject>
#include <BaseInstance.h>
#include <tools/BaseProfiler.h>
#include <QObject>
#include "minecraft/launch/MinecraftServerTarget.h"
#include "minecraft/auth/MinecraftAccount.h"
#include "minecraft/launch/MinecraftTarget.h"
class InstanceWindow;
class LaunchController: public Task
{
class LaunchController : public Task {
Q_OBJECT
public:
public:
void executeTask() override;
LaunchController(QObject * parent = nullptr);
virtual ~LaunchController(){};
LaunchController();
virtual ~LaunchController() = default;
void setInstance(InstancePtr instance) {
m_instance = instance;
}
void setInstance(InstancePtr instance) { m_instance = instance; }
InstancePtr instance() {
return m_instance;
}
InstancePtr instance() { return m_instance; }
void setOnline(bool online) {
m_online = online;
}
void setOnline(bool online) { m_online = online; }
void setDemo(bool demo) {
m_demo = demo;
}
void setOfflineName(const QString& offlineName) { m_offlineName = offlineName; }
void setProfiler(BaseProfilerFactory *profiler) {
m_profiler = profiler;
}
void setDemo(bool demo) { m_demo = demo; }
void setParentWidget(QWidget * widget) {
m_parentWidget = widget;
}
void setProfiler(BaseProfilerFactory* profiler) { m_profiler = profiler; }
void setServerToJoin(MinecraftServerTargetPtr serverToJoin) {
m_serverToJoin = std::move(serverToJoin);
}
void setParentWidget(QWidget* widget) { m_parentWidget = widget; }
void setAccountToUse(MinecraftAccountPtr accountToUse) {
m_accountToUse = std::move(accountToUse);
}
void setTargetToJoin(MinecraftTarget::Ptr targetToJoin) { m_targetToJoin = std::move(targetToJoin); }
QString id()
{
return m_instance->id();
}
void setAccountToUse(MinecraftAccountPtr accountToUse) { m_accountToUse = std::move(accountToUse); }
QString id() { return m_instance->id(); }
bool abort() override;
private:
private:
void login();
void launchInstance();
void decideAccount();
bool askPlayDemo();
QString askOfflineName(QString playerName, bool demo, bool& ok);
bool reauthenticateCurrentAccount();
private slots:
private slots:
void readyForLaunch();
void onSucceeded();
void onFailed(QString reason);
void onProgressRequested(Task *task);
void onProgressRequested(Task* task);
private:
BaseProfilerFactory *m_profiler = nullptr;
private:
BaseProfilerFactory* m_profiler = nullptr;
bool m_online = true;
QString m_offlineName;
bool m_demo = false;
InstancePtr m_instance;
QWidget * m_parentWidget = nullptr;
InstanceWindow *m_console = nullptr;
QWidget* m_parentWidget = nullptr;
InstanceWindow* m_console = nullptr;
MinecraftAccountPtr m_accountToUse = nullptr;
AuthSessionPtr m_session;
shared_qobject_ptr<LaunchTask> m_launcher;
MinecraftServerTargetPtr m_serverToJoin;
MinecraftTarget::Ptr m_targetToJoin;
};

View file

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Basic start script for running the launcher with the libs packaged with it.
function printerror {
@ -39,8 +39,16 @@ if [ "x$DEPS_LIST" = "x" ]; then
# Just to be sure...
chmod +x "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}"
ARGS=("${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}")
if [ -f portable.txt ]; then
ARGS+=("-d" "${LAUNCHER_DIR}")
fi
ARGS+=("$@")
# Run the launcher
exec -a "${LAUNCHER_DIR}/${LAUNCHER_NAME}" "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"
exec -a "${ARGS[@]}"
# Run the launcher in valgrind
# valgrind --log-file="valgrind.log" --leak-check=full --track-origins=yes "${LAUNCHER_DIR}/bin/${LAUNCHER_NAME}" -d "${LAUNCHER_DIR}" "$@"

View file

@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022,2023 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2023 flowln <flowlnlnln@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -38,36 +39,36 @@
#include <QTextDecoder>
#include "MessageLevel.h"
LoggedProcess::LoggedProcess(QObject *parent) : QProcess(parent)
LoggedProcess::LoggedProcess(const QTextCodec* output_codec, QObject* parent)
: QProcess(parent), m_err_decoder(output_codec), m_out_decoder(output_codec)
{
// QProcess has a strange interface... let's map a lot of those into a few.
connect(this, &QProcess::readyReadStandardOutput, this, &LoggedProcess::on_stdOut);
connect(this, &QProcess::readyReadStandardError, this, &LoggedProcess::on_stdErr);
connect(this, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(on_exit(int,QProcess::ExitStatus)));
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
connect(this, SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(on_error(QProcess::ProcessError)));
#else
connect(this, SIGNAL(error(QProcess::ProcessError)), this, SLOT(on_error(QProcess::ProcessError)));
#endif
connect(this, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, &LoggedProcess::on_exit);
connect(this, &QProcess::errorOccurred, this, &LoggedProcess::on_error);
connect(this, &QProcess::stateChanged, this, &LoggedProcess::on_stateChange);
}
LoggedProcess::~LoggedProcess()
{
if(m_is_detachable)
{
if (m_is_detachable) {
setProcessState(QProcess::NotRunning);
}
}
QStringList reprocess(const QByteArray& data, QTextDecoder& decoder)
QStringList LoggedProcess::reprocess(const QByteArray& data, QTextDecoder& decoder)
{
auto str = decoder.toUnicode(data);
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
auto lines = str.remove(QChar::CarriageReturn).split(QChar::LineFeed, QString::SkipEmptyParts);
#else
auto lines = str.remove(QChar::CarriageReturn).split(QChar::LineFeed, Qt::SkipEmptyParts);
#endif
if (!m_leftover_line.isEmpty()) {
str.prepend(m_leftover_line);
m_leftover_line = "";
}
auto lines = str.remove(QChar::CarriageReturn).split(QChar::LineFeed);
m_leftover_line = lines.takeLast();
return lines;
}
@ -89,39 +90,31 @@ void LoggedProcess::on_exit(int exit_code, QProcess::ExitStatus status)
m_exit_code = exit_code;
// based on state, send signals
if (!m_is_aborting)
{
if (status == QProcess::NormalExit)
{
if (!m_is_aborting) {
if (status == QProcess::NormalExit) {
//: Message displayed on instance exit
emit log({tr("Process exited with code %1.").arg(exit_code)}, MessageLevel::Launcher);
emit log({ tr("Process exited with code %1.").arg(exit_code) }, MessageLevel::Launcher);
changeState(LoggedProcess::Finished);
}
else
{
} else {
//: Message displayed on instance crashed
if(exit_code == -1)
emit log({tr("Process crashed.")}, MessageLevel::Launcher);
if (exit_code == -1)
emit log({ tr("Process crashed.") }, MessageLevel::Launcher);
else
emit log({tr("Process crashed with exitcode %1.").arg(exit_code)}, MessageLevel::Launcher);
emit log({ tr("Process crashed with exitcode %1.").arg(exit_code) }, MessageLevel::Launcher);
changeState(LoggedProcess::Crashed);
}
}
else
{
} else {
//: Message displayed after the instance exits due to kill request
emit log({tr("Process was killed by user.")}, MessageLevel::Error);
emit log({ tr("Process was killed by user.") }, MessageLevel::Error);
changeState(LoggedProcess::Aborted);
}
}
void LoggedProcess::on_error(QProcess::ProcessError error)
{
switch(error)
{
case QProcess::FailedToStart:
{
emit log({tr("The process failed to start.")}, MessageLevel::Fatal);
switch (error) {
case QProcess::FailedToStart: {
emit log({ tr("The process failed to start.") }, MessageLevel::Fatal);
changeState(LoggedProcess::FailedToStart);
break;
}
@ -148,7 +141,7 @@ int LoggedProcess::exitCode() const
void LoggedProcess::changeState(LoggedProcess::State state)
{
if(state == m_state)
if (state == m_state)
return;
m_state = state;
emit stateChanged(m_state);
@ -161,24 +154,19 @@ LoggedProcess::State LoggedProcess::state() const
void LoggedProcess::on_stateChange(QProcess::ProcessState state)
{
switch(state)
{
switch (state) {
case QProcess::NotRunning:
break; // let's not - there are too many that handle this already.
case QProcess::Starting:
{
if(m_state != LoggedProcess::NotRunning)
{
qWarning() << "Wrong state change for process from state" << m_state << "to" << (int) LoggedProcess::Starting;
break; // let's not - there are too many that handle this already.
case QProcess::Starting: {
if (m_state != LoggedProcess::NotRunning) {
qWarning() << "Wrong state change for process from state" << m_state << "to" << (int)LoggedProcess::Starting;
}
changeState(LoggedProcess::Starting);
return;
}
case QProcess::Running:
{
if(m_state != LoggedProcess::Starting)
{
qWarning() << "Wrong state change for process from state" << m_state << "to" << (int) LoggedProcess::Running;
case QProcess::Running: {
if (m_state != LoggedProcess::Starting) {
qWarning() << "Wrong state change for process from state" << m_state << "to" << (int)LoggedProcess::Running;
}
changeState(LoggedProcess::Running);
return;

View file

@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022,2023 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -43,23 +43,13 @@
* This is a basic process.
* It has line-based logging support and hides some of the nasty bits.
*/
class LoggedProcess : public QProcess
{
Q_OBJECT
public:
enum State
{
NotRunning,
Starting,
FailedToStart,
Running,
Finished,
Crashed,
Aborted
};
class LoggedProcess : public QProcess {
Q_OBJECT
public:
enum State { NotRunning, Starting, FailedToStart, Running, Finished, Crashed, Aborted };
public:
explicit LoggedProcess(QObject* parent = 0);
public:
explicit LoggedProcess(const QTextCodec* output_codec = QTextCodec::codecForLocale(), QObject* parent = 0);
virtual ~LoggedProcess();
State state() const;
@ -67,30 +57,32 @@ public:
void setDetachable(bool detachable);
signals:
signals:
void log(QStringList lines, MessageLevel::Enum level);
void stateChanged(LoggedProcess::State state);
public slots:
public slots:
/**
* @brief kill the process - equivalent to kill -9
*/
void kill();
private slots:
private slots:
void on_stdErr();
void on_stdOut();
void on_exit(int exit_code, QProcess::ExitStatus status);
void on_error(QProcess::ProcessError error);
void on_stateChange(QProcess::ProcessState);
private:
private:
void changeState(LoggedProcess::State state);
private:
QTextDecoder m_err_decoder = QTextDecoder(QTextCodec::codecForLocale());
QTextDecoder m_out_decoder = QTextDecoder(QTextCodec::codecForLocale());
QStringList reprocess(const QByteArray& data, QTextDecoder& decoder);
private:
QTextDecoder m_err_decoder;
QTextDecoder m_out_decoder;
QString m_leftover_line;
bool m_killed = false;
State m_state = NotRunning;
int m_exit_code = 0;

View file

@ -16,23 +16,87 @@
*/
#include <MMCTime.h>
#include <qobject.h>
#include <QDateTime>
#include <QObject>
#include <QTextStream>
QString Time::prettifyDuration(int64_t duration) {
int seconds = (int) (duration % 60);
QString Time::prettifyDuration(int64_t duration, bool noDays)
{
int seconds = (int)(duration % 60);
duration /= 60;
int minutes = (int) (duration % 60);
int minutes = (int)(duration % 60);
duration /= 60;
int hours = (int) (duration % 24);
int days = (int) (duration / 24);
if((hours == 0)&&(days == 0))
{
int hours = (int)(noDays ? duration : (duration % 24));
int days = (int)(noDays ? 0 : (duration / 24));
if ((hours == 0) && (days == 0)) {
return QObject::tr("%1min %2s").arg(minutes).arg(seconds);
}
if (days == 0)
{
if (days == 0) {
return QObject::tr("%1h %2min").arg(hours).arg(minutes);
}
return QObject::tr("%1d %2h %3min").arg(days).arg(hours).arg(minutes);
}
QString Time::humanReadableDuration(double duration, int precision)
{
using days = std::chrono::duration<int, std::ratio<86400>>;
QString outStr;
QTextStream os(&outStr);
bool neg = false;
if (duration < 0) {
neg = true; // flag
duration *= -1; // invert
}
auto std_duration = std::chrono::duration<double>(duration);
auto d = std::chrono::duration_cast<days>(std_duration);
std_duration -= d;
auto h = std::chrono::duration_cast<std::chrono::hours>(std_duration);
std_duration -= h;
auto m = std::chrono::duration_cast<std::chrono::minutes>(std_duration);
std_duration -= m;
auto s = std::chrono::duration_cast<std::chrono::seconds>(std_duration);
std_duration -= s;
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(std_duration);
auto dc = d.count();
auto hc = h.count();
auto mc = m.count();
auto sc = s.count();
auto msc = ms.count();
if (neg) {
os << '-';
}
if (dc) {
os << dc << QObject::tr("days");
}
if (hc) {
if (dc)
os << " ";
os << qSetFieldWidth(2) << hc << QObject::tr("h"); // hours
}
if (mc) {
if (dc || hc)
os << " ";
os << qSetFieldWidth(2) << mc << QObject::tr("m"); // minutes
}
if (dc || hc || mc || sc) {
if (dc || hc || mc)
os << " ";
os << qSetFieldWidth(2) << sc << QObject::tr("s"); // seconds
}
if ((msc && (precision > 0)) || !(dc || hc || mc || sc)) {
if (dc || hc || mc || sc)
os << " ";
os << qSetFieldWidth(0) << qSetRealNumberPrecision(precision) << msc << QObject::tr("ms"); // miliseconds
}
os.flush();
return outStr;
}

View file

@ -20,6 +20,15 @@
namespace Time {
QString prettifyDuration(int64_t duration);
QString prettifyDuration(int64_t duration, bool noDays = false);
}
/**
* @brief Returns a string with short form time duration ie. `2days 1h3m4s56.0ms`.
* miliseconds are only included if `precision` is greater than 0.
*
* @param duration a number of seconds as floating point
* @param precision number of decmial points to display on fractons of a second, defualts to 0.
* @return QString
*/
QString humanReadableDuration(double duration, int precision = 0);
} // namespace Time

View file

@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2023-2024 Trial97 <alexandru.tripon97@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -33,56 +34,55 @@
* limitations under the License.
*/
#include "MMCZip.h"
#include <quazip/quazip.h>
#include <quazip/quazipdir.h>
#include <quazip/quazipfile.h>
#include "MMCZip.h"
#include "FileSystem.h"
#include <QCoreApplication>
#include <QDebug>
#include <QFileInfo>
#include <QUrl>
#if defined(LAUNCHER_APPLICATION)
#include <QtConcurrentRun>
#endif
namespace MMCZip {
// ours
bool MMCZip::mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &contained, const FilterFunction filter)
bool mergeZipFiles(QuaZip* into, QFileInfo from, QSet<QString>& contained, const FilterFunction& filter)
{
QuaZip modZip(from.filePath());
modZip.open(QuaZip::mdUnzip);
QuaZipFile fileInsideMod(&modZip);
QuaZipFile zipOutFile(into);
for (bool more = modZip.goToFirstFile(); more; more = modZip.goToNextFile())
{
for (bool more = modZip.goToFirstFile(); more; more = modZip.goToNextFile()) {
QString filename = modZip.getCurrentFileName();
if (filter && !filter(filename))
{
qDebug() << "Skipping file " << filename << " from "
<< from.fileName() << " - filtered";
if (filter && !filter(filename)) {
qDebug() << "Skipping file " << filename << " from " << from.fileName() << " - filtered";
continue;
}
if (contained.contains(filename))
{
qDebug() << "Skipping already contained file " << filename << " from "
<< from.fileName();
if (contained.contains(filename)) {
qDebug() << "Skipping already contained file " << filename << " from " << from.fileName();
continue;
}
contained.insert(filename);
if (!fileInsideMod.open(QIODevice::ReadOnly))
{
if (!fileInsideMod.open(QIODevice::ReadOnly)) {
qCritical() << "Failed to open " << filename << " from " << from.fileName();
return false;
}
QuaZipNewInfo info_out(fileInsideMod.getActualFileName());
if (!zipOutFile.open(QIODevice::WriteOnly, info_out))
{
if (!zipOutFile.open(QIODevice::WriteOnly, info_out)) {
qCritical() << "Failed to open " << filename << " in the jar";
fileInsideMod.close();
return false;
}
if (!JlCompress::copyData(fileInsideMod, zipOutFile))
{
if (!JlCompress::copyData(fileInsideMod, zipOutFile)) {
zipOutFile.close();
fileInsideMod.close();
qCritical() << "Failed to copy data of " << filename << " into the jar";
@ -94,46 +94,58 @@ bool MMCZip::mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &containe
return true;
}
bool MMCZip::compressDirFiles(QuaZip *zip, QString dir, QFileInfoList files)
bool compressDirFiles(QuaZip* zip, QString dir, QFileInfoList files, bool followSymlinks)
{
QDir directory(dir);
if (!directory.exists()) return false;
if (!directory.exists())
return false;
for (auto e : files) {
auto filePath = directory.relativeFilePath(e.absoluteFilePath());
if( !JlCompress::compressFile(zip, e.absoluteFilePath(), filePath)) return false;
auto srcPath = e.absoluteFilePath();
if (followSymlinks) {
if (e.isSymLink()) {
srcPath = e.symLinkTarget();
} else {
srcPath = e.canonicalFilePath();
}
}
if (!JlCompress::compressFile(zip, srcPath, filePath))
return false;
}
return true;
}
bool MMCZip::compressDirFiles(QString fileCompressed, QString dir, QFileInfoList files)
bool compressDirFiles(QString fileCompressed, QString dir, QFileInfoList files, bool followSymlinks)
{
QuaZip zip(fileCompressed);
zip.setUtf8Enabled(true);
QDir().mkpath(QFileInfo(fileCompressed).absolutePath());
if(!zip.open(QuaZip::mdCreate)) {
QFile::remove(fileCompressed);
if (!zip.open(QuaZip::mdCreate)) {
FS::deletePath(fileCompressed);
return false;
}
auto result = compressDirFiles(&zip, dir, files);
auto result = compressDirFiles(&zip, dir, files, followSymlinks);
zip.close();
if(zip.getZipError()!=0) {
QFile::remove(fileCompressed);
if (zip.getZipError() != 0) {
FS::deletePath(fileCompressed);
return false;
}
return result;
}
#if defined(LAUNCHER_APPLICATION)
// ours
bool MMCZip::createModdedJar(QString sourceJarPath, QString targetJarPath, const QList<Mod*>& mods)
bool createModdedJar(QString sourceJarPath, QString targetJarPath, const QList<Mod*>& mods)
{
QuaZip zipOut(targetJarPath);
if (!zipOut.open(QuaZip::mdCreate))
{
QFile::remove(targetJarPath);
zipOut.setUtf8Enabled(true);
if (!zipOut.open(QuaZip::mdCreate)) {
FS::deletePath(targetJarPath);
qCritical() << "Failed to open the minecraft.jar for modding";
return false;
}
@ -143,37 +155,29 @@ bool MMCZip::createModdedJar(QString sourceJarPath, QString targetJarPath, const
// Modify the jar
// This needs to be done in reverse-order to ensure we respect the loading order of components
for (auto i = mods.crbegin(); i != mods.crend(); i++)
{
for (auto i = mods.crbegin(); i != mods.crend(); i++) {
const auto* mod = *i;
// do not merge disabled mods.
if (!mod->enabled())
continue;
if (mod->type() == ResourceType::ZIPFILE)
{
if (!mergeZipFiles(&zipOut, mod->fileinfo(), addedFiles))
{
if (mod->type() == ResourceType::ZIPFILE) {
if (!mergeZipFiles(&zipOut, mod->fileinfo(), addedFiles)) {
zipOut.close();
QFile::remove(targetJarPath);
FS::deletePath(targetJarPath);
qCritical() << "Failed to add" << mod->fileinfo().fileName() << "to the jar.";
return false;
}
}
else if (mod->type() == ResourceType::SINGLEFILE)
{
} else if (mod->type() == ResourceType::SINGLEFILE) {
// FIXME: buggy - does not work with addedFiles
auto filename = mod->fileinfo();
if (!JlCompress::compressFile(&zipOut, filename.absoluteFilePath(), filename.fileName()))
{
if (!JlCompress::compressFile(&zipOut, filename.absoluteFilePath(), filename.fileName())) {
zipOut.close();
QFile::remove(targetJarPath);
FS::deletePath(targetJarPath);
qCritical() << "Failed to add" << mod->fileinfo().fileName() << "to the jar.";
return false;
}
addedFiles.insert(filename.fileName());
}
else if (mod->type() == ResourceType::FOLDER)
{
} else if (mod->type() == ResourceType::FOLDER) {
// untested, but seems to be unused / not possible to reach
// FIXME: buggy - does not work with addedFiles
auto filename = mod->fileinfo();
@ -182,54 +186,49 @@ bool MMCZip::createModdedJar(QString sourceJarPath, QString targetJarPath, const
dir.cdUp();
QString parent_dir = dir.absolutePath();
auto files = QFileInfoList();
MMCZip::collectFileListRecursively(what_to_zip, nullptr, &files, nullptr);
collectFileListRecursively(what_to_zip, nullptr, &files, nullptr);
for (auto e : files) {
if (addedFiles.contains(e.filePath()))
files.removeAll(e);
}
if (!MMCZip::compressDirFiles(&zipOut, parent_dir, files))
{
if (!compressDirFiles(&zipOut, parent_dir, files)) {
zipOut.close();
QFile::remove(targetJarPath);
FS::deletePath(targetJarPath);
qCritical() << "Failed to add" << mod->fileinfo().fileName() << "to the jar.";
return false;
}
qDebug() << "Adding folder " << filename.fileName() << " from "
<< filename.absoluteFilePath();
}
else
{
qDebug() << "Adding folder " << filename.fileName() << " from " << filename.absoluteFilePath();
} else {
// Make sure we do not continue launching when something is missing or undefined...
zipOut.close();
QFile::remove(targetJarPath);
FS::deletePath(targetJarPath);
qCritical() << "Failed to add unknown mod type" << mod->fileinfo().fileName() << "to the jar.";
return false;
}
}
if (!mergeZipFiles(&zipOut, QFileInfo(sourceJarPath), addedFiles, [](const QString key){return !key.contains("META-INF");}))
{
if (!mergeZipFiles(&zipOut, QFileInfo(sourceJarPath), addedFiles, [](const QString key) { return !key.contains("META-INF"); })) {
zipOut.close();
QFile::remove(targetJarPath);
FS::deletePath(targetJarPath);
qCritical() << "Failed to insert minecraft.jar contents.";
return false;
}
// Recompress the jar
zipOut.close();
if (zipOut.getZipError() != 0)
{
QFile::remove(targetJarPath);
if (zipOut.getZipError() != 0) {
FS::deletePath(targetJarPath);
qCritical() << "Failed to finalize minecraft.jar!";
return false;
}
return true;
}
#endif
// ours
QString MMCZip::findFolderOfFileInZip(QuaZip* zip, const QString& what, const QStringList& ignore_paths, const QString& root)
QString findFolderOfFileInZip(QuaZip* zip, const QString& what, const QStringList& ignore_paths, const QString& root)
{
QuaZipDir rootDir(zip, root);
for (auto&& fileName : rootDir.entryList(QDir::Files)) {
@ -253,153 +252,177 @@ QString MMCZip::findFolderOfFileInZip(QuaZip* zip, const QString& what, const QS
}
// ours
bool MMCZip::findFilesInZip(QuaZip * zip, const QString & what, QStringList & result, const QString &root)
bool findFilesInZip(QuaZip* zip, const QString& what, QStringList& result, const QString& root)
{
QuaZipDir rootDir(zip, root);
for(auto fileName: rootDir.entryList(QDir::Files))
{
if(fileName == what)
{
for (auto fileName : rootDir.entryList(QDir::Files)) {
if (fileName == what) {
result.append(root);
return true;
}
}
for(auto fileName: rootDir.entryList(QDir::Dirs))
{
for (auto fileName : rootDir.entryList(QDir::Dirs)) {
findFilesInZip(zip, what, result, root + fileName);
}
return !result.isEmpty();
}
// ours
std::optional<QStringList> MMCZip::extractSubDir(QuaZip *zip, const QString & subdir, const QString &target)
std::optional<QStringList> extractSubDir(QuaZip* zip, const QString& subdir, const QString& target)
{
QDir directory(target);
auto target_top_dir = QUrl::fromLocalFile(target);
QStringList extracted;
qDebug() << "Extracting subdir" << subdir << "from" << zip->getZipName() << "to" << target;
auto numEntries = zip->getEntriesCount();
if(numEntries < 0) {
if (numEntries < 0) {
qWarning() << "Failed to enumerate files in archive";
return std::nullopt;
}
else if(numEntries == 0) {
} else if (numEntries == 0) {
qDebug() << "Extracting empty archives seems odd...";
return extracted;
}
else if (!zip->goToFirstFile())
{
} else if (!zip->goToFirstFile()) {
qWarning() << "Failed to seek to first file in zip";
return std::nullopt;
}
do
{
QString name = zip->getCurrentFileName();
if(!name.startsWith(subdir))
{
do {
QString file_name = zip->getCurrentFileName();
file_name = FS::RemoveInvalidPathChars(file_name);
if (!file_name.startsWith(subdir))
continue;
}
name.remove(0, subdir.size());
auto original_name = name;
auto relative_file_name = QDir::fromNativeSeparators(file_name.mid(subdir.size()));
auto original_name = relative_file_name;
// Fix subdirs/files ending with a / getting transformed into absolute paths
if (relative_file_name.startsWith('/'))
relative_file_name = relative_file_name.mid(1);
// Fix weird "folders with a single file get squashed" thing
QString path;
if(name.contains('/') && !name.endsWith('/')){
path = name.section('/', 0, -2) + "/";
FS::ensureFolderPathExists(FS::PathCombine(target, path));
QString sub_path;
if (relative_file_name.contains('/') && !relative_file_name.endsWith('/')) {
sub_path = relative_file_name.section('/', 0, -2) + '/';
FS::ensureFolderPathExists(FS::PathCombine(target, sub_path));
name = name.split('/').last();
relative_file_name = relative_file_name.split('/').last();
}
QString absFilePath;
if(name.isEmpty())
{
absFilePath = directory.absoluteFilePath(name) + "/";
}
else
{
absFilePath = directory.absoluteFilePath(path + name);
QString target_file_path;
if (relative_file_name.isEmpty()) {
target_file_path = target + '/';
} else {
target_file_path = FS::PathCombine(target_top_dir.toLocalFile(), sub_path, relative_file_name);
if (relative_file_name.endsWith('/') && !target_file_path.endsWith('/'))
target_file_path += '/';
}
if (!JlCompress::extractFile(zip, "", absFilePath))
{
qWarning() << "Failed to extract file" << original_name << "to" << absFilePath;
if (!target_top_dir.isParentOf(QUrl::fromLocalFile(target_file_path))) {
qWarning() << "Extracting" << relative_file_name << "was cancelled, because it was effectively outside of the target path"
<< target;
return std::nullopt;
}
if (!JlCompress::extractFile(zip, "", target_file_path)) {
qWarning() << "Failed to extract file" << original_name << "to" << target_file_path;
JlCompress::removeFile(extracted);
return std::nullopt;
}
extracted.append(absFilePath);
QFile::setPermissions(absFilePath, QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser | QFileDevice::Permission::ExeUser);
extracted.append(target_file_path);
auto fileInfo = QFileInfo(target_file_path);
if (fileInfo.isFile()) {
auto permissions = fileInfo.permissions();
auto maxPermisions = QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser | QFileDevice::Permission::ExeUser |
QFileDevice::Permission::ReadGroup | QFileDevice::Permission::ReadOther;
auto minPermisions = QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser;
qDebug() << "Extracted file" << name << "to" << absFilePath;
auto newPermisions = (permissions & maxPermisions) | minPermisions;
if (newPermisions != permissions) {
if (!QFile::setPermissions(target_file_path, newPermisions)) {
qWarning() << (QObject::tr("Could not fix permissions for %1").arg(target_file_path));
}
}
} else if (fileInfo.isDir()) {
// Ensure the folder has the minimal required permissions
QFile::Permissions minimalPermissions = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadGroup |
QFile::ExeGroup | QFile::ReadOther | QFile::ExeOther;
QFile::Permissions currentPermissions = fileInfo.permissions();
if ((currentPermissions & minimalPermissions) != minimalPermissions) {
if (!QFile::setPermissions(target_file_path, minimalPermissions)) {
qWarning() << (QObject::tr("Could not fix permissions for %1").arg(target_file_path));
}
}
}
qDebug() << "Extracted file" << relative_file_name << "to" << target_file_path;
} while (zip->goToNextFile());
return extracted;
}
// ours
bool MMCZip::extractRelFile(QuaZip *zip, const QString &file, const QString &target)
bool extractRelFile(QuaZip* zip, const QString& file, const QString& target)
{
return JlCompress::extractFile(zip, file, target);
}
// ours
std::optional<QStringList> MMCZip::extractDir(QString fileCompressed, QString dir)
std::optional<QStringList> extractDir(QString fileCompressed, QString dir)
{
QuaZip zip(fileCompressed);
if (!zip.open(QuaZip::mdUnzip))
{
if (!zip.open(QuaZip::mdUnzip)) {
// check if this is a minimum size empty zip file...
QFileInfo fileInfo(fileCompressed);
if(fileInfo.size() == 22) {
if (fileInfo.size() == 22) {
return QStringList();
}
qWarning() << "Could not open archive for unzipping:" << fileCompressed << "Error:" << zip.getZipError();;
qWarning() << "Could not open archive for unpacking:" << fileCompressed << "Error:" << zip.getZipError();
;
return std::nullopt;
}
return MMCZip::extractSubDir(&zip, "", dir);
return extractSubDir(&zip, "", dir);
}
// ours
std::optional<QStringList> MMCZip::extractDir(QString fileCompressed, QString subdir, QString dir)
std::optional<QStringList> extractDir(QString fileCompressed, QString subdir, QString dir)
{
QuaZip zip(fileCompressed);
if (!zip.open(QuaZip::mdUnzip))
{
if (!zip.open(QuaZip::mdUnzip)) {
// check if this is a minimum size empty zip file...
QFileInfo fileInfo(fileCompressed);
if(fileInfo.size() == 22) {
if (fileInfo.size() == 22) {
return QStringList();
}
qWarning() << "Could not open archive for unzipping:" << fileCompressed << "Error:" << zip.getZipError();;
qWarning() << "Could not open archive for unpacking:" << fileCompressed << "Error:" << zip.getZipError();
;
return std::nullopt;
}
return MMCZip::extractSubDir(&zip, subdir, dir);
return extractSubDir(&zip, subdir, dir);
}
// ours
bool MMCZip::extractFile(QString fileCompressed, QString file, QString target)
bool extractFile(QString fileCompressed, QString file, QString target)
{
QuaZip zip(fileCompressed);
if (!zip.open(QuaZip::mdUnzip))
{
if (!zip.open(QuaZip::mdUnzip)) {
// check if this is a minimum size empty zip file...
QFileInfo fileInfo(fileCompressed);
if(fileInfo.size() == 22) {
if (fileInfo.size() == 22) {
return true;
}
qWarning() << "Could not open archive for unzipping:" << fileCompressed << "Error:" << zip.getZipError();
qWarning() << "Could not open archive for unpacking:" << fileCompressed << "Error:" << zip.getZipError();
return false;
}
return MMCZip::extractRelFile(&zip, file, target);
return extractRelFile(&zip, file, target);
}
bool MMCZip::collectFileListRecursively(const QString& rootDir, const QString& subDir, QFileInfoList *files,
MMCZip::FilterFunction excludeFilter) {
bool collectFileListRecursively(const QString& rootDir, const QString& subDir, QFileInfoList* files, FilterFunction excludeFilter)
{
QDir rootDirectory(rootDir);
if (!rootDirectory.exists()) return false;
if (!rootDirectory.exists())
return false;
QDir directory;
if (subDir == nullptr)
@ -407,25 +430,241 @@ bool MMCZip::collectFileListRecursively(const QString& rootDir, const QString& s
else
directory = QDir(subDir);
if (!directory.exists()) return false; // shouldn't ever happen
if (!directory.exists())
return false; // shouldn't ever happen
// recurse directories
QFileInfoList entries = directory.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Hidden);
for (const auto& e: entries) {
for (const auto& e : entries) {
if (!collectFileListRecursively(rootDir, e.filePath(), files, excludeFilter))
return false;
}
// collect files
entries = directory.entryInfoList(QDir::Files);
for (const auto& e: entries) {
for (const auto& e : entries) {
QString relativeFilePath = rootDirectory.relativeFilePath(e.absoluteFilePath());
if (excludeFilter && excludeFilter(relativeFilePath)) {
qDebug() << "Skipping file " << relativeFilePath;
continue;
}
files->append(e); // we want the original paths for MMCZip::compressDirFiles
files->append(e); // we want the original paths for compressDirFiles
}
return true;
}
#if defined(LAUNCHER_APPLICATION)
void ExportToZipTask::executeTask()
{
setStatus("Adding files...");
setProgress(0, m_files.length());
m_build_zip_future = QtConcurrent::run(QThreadPool::globalInstance(), [this]() { return exportZip(); });
connect(&m_build_zip_watcher, &QFutureWatcher<ZipResult>::finished, this, &ExportToZipTask::finish);
m_build_zip_watcher.setFuture(m_build_zip_future);
}
auto ExportToZipTask::exportZip() -> ZipResult
{
if (!m_dir.exists()) {
return ZipResult(tr("Folder doesn't exist"));
}
if (!m_output.isOpen() && !m_output.open(QuaZip::mdCreate)) {
return ZipResult(tr("Could not create file"));
}
for (auto fileName : m_extra_files.keys()) {
if (m_build_zip_future.isCanceled())
return ZipResult();
QuaZipFile indexFile(&m_output);
if (!indexFile.open(QIODevice::WriteOnly, QuaZipNewInfo(fileName))) {
return ZipResult(tr("Could not create:") + fileName);
}
indexFile.write(m_extra_files[fileName]);
}
for (const QFileInfo& file : m_files) {
if (m_build_zip_future.isCanceled())
return ZipResult();
auto absolute = file.absoluteFilePath();
auto relative = m_dir.relativeFilePath(absolute);
setStatus("Compressing: " + relative);
setProgress(m_progress + 1, m_progressTotal);
if (m_follow_symlinks) {
if (file.isSymLink())
absolute = file.symLinkTarget();
else
absolute = file.canonicalFilePath();
}
if (!m_exclude_files.contains(relative) && !JlCompress::compressFile(&m_output, absolute, m_destination_prefix + relative)) {
return ZipResult(tr("Could not read and compress %1").arg(relative));
}
}
m_output.close();
if (m_output.getZipError() != 0) {
return ZipResult(tr("A zip error occurred"));
}
return ZipResult();
}
void ExportToZipTask::finish()
{
if (m_build_zip_future.isCanceled()) {
FS::deletePath(m_output_path);
emitAborted();
} else if (auto result = m_build_zip_future.result(); result.has_value()) {
FS::deletePath(m_output_path);
emitFailed(result.value());
} else {
emitSucceeded();
}
}
bool ExportToZipTask::abort()
{
if (m_build_zip_future.isRunning()) {
m_build_zip_future.cancel();
// NOTE: Here we don't do `emitAborted()` because it will be done when `m_build_zip_future` actually cancels, which may not occur
// immediately.
return true;
}
return false;
}
void ExtractZipTask::executeTask()
{
if (!m_input->isOpen() && !m_input->open(QuaZip::mdUnzip)) {
emitFailed(tr("Unable to open supplied zip file."));
return;
}
m_zip_future = QtConcurrent::run(QThreadPool::globalInstance(), [this]() { return extractZip(); });
connect(&m_zip_watcher, &QFutureWatcher<ZipResult>::finished, this, &ExtractZipTask::finish);
m_zip_watcher.setFuture(m_zip_future);
}
auto ExtractZipTask::extractZip() -> ZipResult
{
auto target = m_output_dir.absolutePath();
auto target_top_dir = QUrl::fromLocalFile(target);
QStringList extracted;
qDebug() << "Extracting subdir" << m_subdirectory << "from" << m_input->getZipName() << "to" << target;
auto numEntries = m_input->getEntriesCount();
if (numEntries < 0) {
return ZipResult(tr("Failed to enumerate files in archive"));
}
if (numEntries == 0) {
logWarning(tr("Extracting empty archives seems odd..."));
return ZipResult();
}
if (!m_input->goToFirstFile()) {
return ZipResult(tr("Failed to seek to first file in zip"));
}
setStatus("Extracting files...");
setProgress(0, numEntries);
do {
if (m_zip_future.isCanceled())
return ZipResult();
setProgress(m_progress + 1, m_progressTotal);
QString file_name = m_input->getCurrentFileName();
if (!file_name.startsWith(m_subdirectory))
continue;
auto relative_file_name = QDir::fromNativeSeparators(file_name.mid(m_subdirectory.size()));
auto original_name = relative_file_name;
setStatus("Unpacking: " + relative_file_name);
// Fix subdirs/files ending with a / getting transformed into absolute paths
if (relative_file_name.startsWith('/'))
relative_file_name = relative_file_name.mid(1);
// Fix weird "folders with a single file get squashed" thing
QString sub_path;
if (relative_file_name.contains('/') && !relative_file_name.endsWith('/')) {
sub_path = relative_file_name.section('/', 0, -2) + '/';
FS::ensureFolderPathExists(FS::PathCombine(target, sub_path));
relative_file_name = relative_file_name.split('/').last();
}
QString target_file_path;
if (relative_file_name.isEmpty()) {
target_file_path = target + '/';
} else {
target_file_path = FS::PathCombine(target_top_dir.toLocalFile(), sub_path, relative_file_name);
if (relative_file_name.endsWith('/') && !target_file_path.endsWith('/'))
target_file_path += '/';
}
if (!target_top_dir.isParentOf(QUrl::fromLocalFile(target_file_path))) {
return ZipResult(tr("Extracting %1 was cancelled, because it was effectively outside of the target path %2")
.arg(relative_file_name, target));
}
if (!JlCompress::extractFile(m_input.get(), "", target_file_path)) {
JlCompress::removeFile(extracted);
return ZipResult(tr("Failed to extract file %1 to %2").arg(original_name, target_file_path));
}
extracted.append(target_file_path);
auto fileInfo = QFileInfo(target_file_path);
if (fileInfo.isFile()) {
auto permissions = fileInfo.permissions();
auto maxPermisions = QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser | QFileDevice::Permission::ExeUser |
QFileDevice::Permission::ReadGroup | QFileDevice::Permission::ReadOther;
auto minPermisions = QFileDevice::Permission::ReadUser | QFileDevice::Permission::WriteUser;
auto newPermisions = (permissions & maxPermisions) | minPermisions;
if (newPermisions != permissions) {
if (!QFile::setPermissions(target_file_path, newPermisions)) {
logWarning(tr("Could not fix permissions for %1").arg(target_file_path));
}
}
} else if (fileInfo.isDir()) {
// Ensure the folder has the minimal required permissions
QFile::Permissions minimalPermissions = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadGroup |
QFile::ExeGroup | QFile::ReadOther | QFile::ExeOther;
QFile::Permissions currentPermissions = fileInfo.permissions();
if ((currentPermissions & minimalPermissions) != minimalPermissions) {
if (!QFile::setPermissions(target_file_path, minimalPermissions)) {
logWarning(tr("Could not fix permissions for %1").arg(target_file_path));
}
}
}
qDebug() << "Extracted file" << relative_file_name << "to" << target_file_path;
} while (m_input->goToNextFile());
return ZipResult();
}
void ExtractZipTask::finish()
{
if (m_zip_future.isCanceled()) {
emitAborted();
} else if (auto result = m_zip_future.result(); result.has_value()) {
emitFailed(result.value());
} else {
emitSucceeded();
}
}
bool ExtractZipTask::abort()
{
if (m_zip_future.isRunning()) {
m_zip_future.cancel();
// NOTE: Here we don't do `emitAborted()` because it will be done when `m_build_zip_future` actually cancels, which may not occur
// immediately.
return true;
}
return false;
}
#endif
} // namespace MMCZip

View file

@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* PolyMC - Minecraft Launcher
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
* Copyright (c) 2023-2024 Trial97 <alexandru.tripon97@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -35,108 +36,204 @@
#pragma once
#include <QString>
#include <QFileInfo>
#include <QSet>
#include "minecraft/mod/Mod.h"
#include <functional>
#include <quazip.h>
#include <quazip/JlCompress.h>
#include <QDir>
#include <QFileInfo>
#include <QFuture>
#include <QFutureWatcher>
#include <QHash>
#include <QSet>
#include <QString>
#include <functional>
#include <memory>
#include <optional>
namespace MMCZip
{
using FilterFunction = std::function<bool(const QString &)>;
#if defined(LAUNCHER_APPLICATION)
#include "minecraft/mod/Mod.h"
#endif
#include "tasks/Task.h"
/**
* Merge two zip files, using a filter function
*/
bool mergeZipFiles(QuaZip *into, QFileInfo from, QSet<QString> &contained,
const FilterFunction filter = nullptr);
namespace MMCZip {
using FilterFunction = std::function<bool(const QString&)>;
/**
* Compress directory, by providing a list of files to compress
* \param zip target archive
* \param dir directory that will be compressed (to compress with relative paths)
* \param files list of files to compress
* \return true for success or false for failure
*/
bool compressDirFiles(QuaZip *zip, QString dir, QFileInfoList files);
/**
* Merge two zip files, using a filter function
*/
bool mergeZipFiles(QuaZip* into, QFileInfo from, QSet<QString>& contained, const FilterFunction& filter = nullptr);
/**
* Compress directory, by providing a list of files to compress
* \param fileCompressed target archive file
* \param dir directory that will be compressed (to compress with relative paths)
* \param files list of files to compress
* \return true for success or false for failure
*/
bool compressDirFiles(QString fileCompressed, QString dir, QFileInfoList files);
/**
* Compress directory, by providing a list of files to compress
* \param zip target archive
* \param dir directory that will be compressed (to compress with relative paths)
* \param files list of files to compress
* \param followSymlinks should follow symlinks when compressing file data
* \return true for success or false for failure
*/
bool compressDirFiles(QuaZip* zip, QString dir, QFileInfoList files, bool followSymlinks = false);
/**
* take a source jar, add mods to it, resulting in target jar
*/
bool createModdedJar(QString sourceJarPath, QString targetJarPath, const QList<Mod*>& mods);
/**
* Compress directory, by providing a list of files to compress
* \param fileCompressed target archive file
* \param dir directory that will be compressed (to compress with relative paths)
* \param files list of files to compress
* \param followSymlinks should follow symlinks when compressing file data
* \return true for success or false for failure
*/
bool compressDirFiles(QString fileCompressed, QString dir, QFileInfoList files, bool followSymlinks = false);
/**
* Find a single file in archive by file name (not path)
*
* \param ignore_paths paths to skip when recursing the search
*
* \return the path prefix where the file is
*/
QString findFolderOfFileInZip(QuaZip * zip, const QString & what, const QStringList& ignore_paths = {}, const QString &root = QString(""));
#if defined(LAUNCHER_APPLICATION)
/**
* take a source jar, add mods to it, resulting in target jar
*/
bool createModdedJar(QString sourceJarPath, QString targetJarPath, const QList<Mod*>& mods);
#endif
/**
* Find a single file in archive by file name (not path)
*
* \param ignore_paths paths to skip when recursing the search
*
* \return the path prefix where the file is
*/
QString findFolderOfFileInZip(QuaZip* zip, const QString& what, const QStringList& ignore_paths = {}, const QString& root = QString(""));
/**
* Find a multiple files of the same name in archive by file name
* If a file is found in a path, no deeper paths are searched
*
* \return true if anything was found
*/
bool findFilesInZip(QuaZip * zip, const QString & what, QStringList & result, const QString &root = QString());
/**
* Find a multiple files of the same name in archive by file name
* If a file is found in a path, no deeper paths are searched
*
* \return true if anything was found
*/
bool findFilesInZip(QuaZip* zip, const QString& what, QStringList& result, const QString& root = QString());
/**
* Extract a subdirectory from an archive
*/
std::optional<QStringList> extractSubDir(QuaZip *zip, const QString & subdir, const QString &target);
/**
* Extract a subdirectory from an archive
*/
std::optional<QStringList> extractSubDir(QuaZip* zip, const QString& subdir, const QString& target);
bool extractRelFile(QuaZip *zip, const QString & file, const QString &target);
bool extractRelFile(QuaZip* zip, const QString& file, const QString& target);
/**
* Extract a whole archive.
*
* \param fileCompressed The name of the archive.
* \param dir The directory to extract to, the current directory if left empty.
* \return The list of the full paths of the files extracted, empty on failure.
*/
std::optional<QStringList> extractDir(QString fileCompressed, QString dir);
/**
* Extract a whole archive.
*
* \param fileCompressed The name of the archive.
* \param dir The directory to extract to, the current directory if left empty.
* \return The list of the full paths of the files extracted, empty on failure.
*/
std::optional<QStringList> extractDir(QString fileCompressed, QString dir);
/**
* Extract a subdirectory from an archive
*
* \param fileCompressed The name of the archive.
* \param subdir The directory within the archive to extract
* \param dir The directory to extract to, the current directory if left empty.
* \return The list of the full paths of the files extracted, empty on failure.
*/
std::optional<QStringList> extractDir(QString fileCompressed, QString subdir, QString dir);
/**
* Extract a subdirectory from an archive
*
* \param fileCompressed The name of the archive.
* \param subdir The directory within the archive to extract
* \param dir The directory to extract to, the current directory if left empty.
* \return The list of the full paths of the files extracted, empty on failure.
*/
std::optional<QStringList> extractDir(QString fileCompressed, QString subdir, QString dir);
/**
* Extract a single file from an archive into a directory
*
* \param fileCompressed The name of the archive.
* \param file The file within the archive to extract
* \param dir The directory to extract to, the current directory if left empty.
* \return true for success or false for failure
*/
bool extractFile(QString fileCompressed, QString file, QString dir);
/**
* Extract a single file from an archive into a directory
*
* \param fileCompressed The name of the archive.
* \param file The file within the archive to extract
* \param dir The directory to extract to, the current directory if left empty.
* \return true for success or false for failure
*/
bool extractFile(QString fileCompressed, QString file, QString dir);
/**
* Populate a QFileInfoList with a directory tree recursively, while allowing to excludeFilter what shouldn't be included.
* \param rootDir directory to start off
* \param subDir subdirectory, should be nullptr for first invocation
* \param files resulting list of QFileInfo
* \param excludeFilter function to excludeFilter which files shouldn't be included (returning true means to excude)
* \return true for success or false for failure
*/
bool collectFileListRecursively(const QString &rootDir, const QString &subDir, QFileInfoList *files, FilterFunction excludeFilter);
}
/**
* Populate a QFileInfoList with a directory tree recursively, while allowing to excludeFilter what shouldn't be included.
* \param rootDir directory to start off
* \param subDir subdirectory, should be nullptr for first invocation
* \param files resulting list of QFileInfo
* \param excludeFilter function to excludeFilter which files shouldn't be included (returning true means to excude)
* \return true for success or false for failure
*/
bool collectFileListRecursively(const QString& rootDir, const QString& subDir, QFileInfoList* files, FilterFunction excludeFilter);
#if defined(LAUNCHER_APPLICATION)
class ExportToZipTask : public Task {
Q_OBJECT
public:
ExportToZipTask(QString outputPath,
QDir dir,
QFileInfoList files,
QString destinationPrefix = "",
bool followSymlinks = false,
bool utf8Enabled = false)
: m_output_path(outputPath)
, m_output(outputPath)
, m_dir(dir)
, m_files(files)
, m_destination_prefix(destinationPrefix)
, m_follow_symlinks(followSymlinks)
{
setAbortable(true);
m_output.setUtf8Enabled(utf8Enabled);
};
ExportToZipTask(QString outputPath,
QString dir,
QFileInfoList files,
QString destinationPrefix = "",
bool followSymlinks = false,
bool utf8Enabled = false)
: ExportToZipTask(outputPath, QDir(dir), files, destinationPrefix, followSymlinks, utf8Enabled) {};
virtual ~ExportToZipTask() = default;
void setExcludeFiles(QStringList excludeFiles) { m_exclude_files = excludeFiles; }
void addExtraFile(QString fileName, QByteArray data) { m_extra_files.insert(fileName, data); }
using ZipResult = std::optional<QString>;
protected:
virtual void executeTask() override;
bool abort() override;
ZipResult exportZip();
void finish();
private:
QString m_output_path;
QuaZip m_output;
QDir m_dir;
QFileInfoList m_files;
QString m_destination_prefix;
bool m_follow_symlinks;
QStringList m_exclude_files;
QHash<QString, QByteArray> m_extra_files;
QFuture<ZipResult> m_build_zip_future;
QFutureWatcher<ZipResult> m_build_zip_watcher;
};
class ExtractZipTask : public Task {
Q_OBJECT
public:
ExtractZipTask(QString input, QDir outputDir, QString subdirectory = "")
: ExtractZipTask(std::make_shared<QuaZip>(input), outputDir, subdirectory)
{}
ExtractZipTask(std::shared_ptr<QuaZip> input, QDir outputDir, QString subdirectory = "")
: m_input(input), m_output_dir(outputDir), m_subdirectory(subdirectory)
{}
virtual ~ExtractZipTask() = default;
using ZipResult = std::optional<QString>;
protected:
virtual void executeTask() override;
bool abort() override;
ZipResult extractZip();
void finish();
private:
std::shared_ptr<QuaZip> m_input;
QDir m_output_dir;
QString m_subdirectory;
QFuture<ZipResult> m_zip_future;
QFutureWatcher<ZipResult> m_zip_watcher;
};
#endif
} // namespace MMCZip

View file

@ -1,8 +1,11 @@
#pragma once
#include <QCoreApplication>
#include <QDebug>
#include <QPixmapCache>
#include <QThread>
#include <QTime>
#include <limits>
#define GET_TYPE() \
Qt::ConnectionType type; \
@ -60,6 +63,8 @@ class PixmapCache final : public QObject {
DEFINE_FUNC_ONE_PARAM(remove, bool, const QPixmapCache::Key&)
DEFINE_FUNC_TWO_PARAM(replace, bool, const QPixmapCache::Key&, const QPixmap&)
DEFINE_FUNC_ONE_PARAM(setCacheLimit, bool, int)
DEFINE_FUNC_NO_PARAM(markCacheMissByEviciton, bool)
DEFINE_FUNC_ONE_PARAM(setFastEvictionThreshold, bool, int)
// NOTE: Every function returns something non-void to simplify the macros.
private slots:
@ -90,6 +95,53 @@ class PixmapCache final : public QObject {
return true;
}
/**
* Mark that a cache miss occurred because of a eviction if too many of these occur too fast the cache size is increased
* @return if the cache size was increased
*/
bool _markCacheMissByEviciton()
{
static constexpr uint maxCache = static_cast<uint>(std::numeric_limits<int>::max()) / 4;
static constexpr uint step = 10240;
static constexpr int oneSecond = 1000;
auto now = QTime::currentTime();
if (!m_last_cache_miss_by_eviciton.isNull()) {
auto diff = m_last_cache_miss_by_eviciton.msecsTo(now);
if (diff < oneSecond) { // less than a second ago
++m_consecutive_fast_evicitons;
} else {
m_consecutive_fast_evicitons = 0;
}
}
m_last_cache_miss_by_eviciton = now;
if (m_consecutive_fast_evicitons >= m_consecutive_fast_evicitons_threshold) {
// increase the cache size
uint newSize = _cacheLimit() + step;
if (newSize >= maxCache) { // increase it until you overflow :D
newSize = maxCache;
qDebug() << m_consecutive_fast_evicitons
<< tr("pixmap cache misses by eviction happened too fast, doing nothing as the cache size reached it's limit");
} else {
qDebug() << m_consecutive_fast_evicitons
<< tr("pixmap cache misses by eviction happened too fast, increasing cache size to") << static_cast<int>(newSize);
}
_setCacheLimit(static_cast<int>(newSize));
m_consecutive_fast_evicitons = 0;
return true;
}
return false;
}
bool _setFastEvictionThreshold(int threshold)
{
m_consecutive_fast_evicitons_threshold = threshold;
return true;
}
private:
static PixmapCache* s_instance;
QTime m_last_cache_miss_by_eviciton;
int m_consecutive_fast_evicitons = 0;
int m_consecutive_fast_evicitons_threshold = 15;
};

View file

@ -16,21 +16,32 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <QStringList>
#include <QDebug>
#include <QDir>
#include <QString>
#include <QStringList>
#include <QSysInfo>
#include <QtGlobal>
#include "MangoHud.h"
#include "FileSystem.h"
#include "Json.h"
#include "MangoHud.h"
#ifdef __GLIBC__
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#define UNDEF_GNU_SOURCE
#endif
#include <dlfcn.h>
#include <linux/limits.h>
#endif
namespace MangoHud {
QString getLibraryString()
{
/*
* Check for vulkan layers in this order:
/**
* Guess MangoHud install location by searching for vulkan layers in this order:
*
* $VK_LAYER_PATH
* $XDG_DATA_DIRS (/usr/local/share/:/usr/share/)
@ -38,8 +49,9 @@ QString getLibraryString()
* /etc
* $XDG_CONFIG_DIRS (/etc/xdg)
* $XDG_CONFIG_HOME (~/.config)
*
* @returns Absolute path of libMangoHud.so if found and empty QString otherwise.
*/
QStringList vkLayerList;
{
QString home = QDir::homePath();
@ -74,17 +86,88 @@ QString getLibraryString()
vkLayerList << FS::PathCombine(xdgConfigHome, "vulkan", "implicit_layer.d");
}
for (QString vkLayer : vkLayerList) {
QString filePath = FS::PathCombine(vkLayer, "MangoHud.json");
if (!QFile::exists(filePath))
continue;
for (const QString& vkLayer : vkLayerList) {
// prefer to use architecture specific vulkan layers
QString currentArch = QSysInfo::currentCpuArchitecture();
auto conf = Json::requireDocument(filePath, vkLayer);
auto confObject = Json::requireObject(conf, vkLayer);
auto layer = Json::ensureObject(confObject, "layer");
return Json::ensureString(layer, "library_path");
if (currentArch == "arm64") {
currentArch = "aarch64";
}
QStringList manifestNames = { QString("MangoHud.%1.json").arg(currentArch), "MangoHud.json" };
QString filePath{};
for (const QString& manifestName : manifestNames) {
QString tryPath = FS::PathCombine(vkLayer, manifestName);
if (QFile::exists(tryPath)) {
filePath = tryPath;
break;
}
}
if (filePath.isEmpty()) {
continue;
}
try {
auto conf = Json::requireDocument(filePath, vkLayer);
auto confObject = Json::requireObject(conf, vkLayer);
auto layer = Json::ensureObject(confObject, "layer");
QString libraryName = Json::ensureString(layer, "library_path");
if (libraryName.isEmpty()) {
continue;
}
if (QFileInfo(libraryName).isAbsolute()) {
return libraryName;
}
#ifdef __GLIBC__
// Check whether mangohud is usable on a glibc based system
QString libraryPath = findLibrary(libraryName);
if (!libraryPath.isEmpty()) {
return libraryPath;
}
#else
// Without glibc return recorded shared library as-is.
return libraryName;
#endif
} catch (const Exception& e) {
}
}
return QString();
return {};
}
QString findLibrary(QString libName)
{
#ifdef __GLIBC__
const char* library = libName.toLocal8Bit().constData();
void* handle = dlopen(library, RTLD_NOW);
if (!handle) {
qCritical() << "dlopen() failed:" << dlerror();
return {};
}
char path[PATH_MAX];
if (dlinfo(handle, RTLD_DI_ORIGIN, path) == -1) {
qCritical() << "dlinfo() failed:" << dlerror();
dlclose(handle);
return {};
}
auto fullPath = FS::PathCombine(QString(path), libName);
dlclose(handle);
return fullPath;
#else
qWarning() << "MangoHud::findLibrary is not implemented on this platform";
return {};
#endif
}
} // namespace MangoHud
#ifdef UNDEF_GNU_SOURCE
#undef _GNU_SOURCE
#undef UNDEF_GNU_SOURCE
#endif

View file

@ -24,4 +24,6 @@
namespace MangoHud {
QString getLibraryString();
}
QString findLibrary(QString libName);
} // namespace MangoHud

31
launcher/Markdown.cpp Normal file
View file

@ -0,0 +1,31 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2023 Joshua Goins <josh@redstrate.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "Markdown.h"
QString markdownToHTML(const QString& markdown)
{
const QByteArray markdownData = markdown.toUtf8();
char* buffer = cmark_markdown_to_html(markdownData.constData(), markdownData.length(), CMARK_OPT_NOBREAKS | CMARK_OPT_UNSAFE);
QString htmlStr(buffer);
free(buffer);
return htmlStr;
}

Some files were not shown because too many files have changed in this diff Show more