Commit Graph

416 Commits

Author SHA1 Message Date
flow
afa1a5e932
feat: modify InfoFrame and ResourcePackPage to show ResourcePack info
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:21 -03:00
flow
7b6d269904
refactor: make NetJob inherit from ConcurrentTask as well!
Avoids lots of code duplication

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-28 16:29:01 -03:00
Sefa Eyeoglu
f371ec210c
Merge pull request #1052 from flowln/resource_model 2022-08-28 16:52:53 +02:00
DioEgizio
13184eb8e9 fix: fix urls on ftb legacy
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-08-24 12:31:38 +02:00
flow
e2ab2aea32
change: add enable/disable to resources
TIL that zip resource packs, when disabled, actually have the effect of
not showing up in the game at all. Since this can be useful to someone,
I moved the logic for it to the resources.

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

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

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

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

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

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:45:01 -03:00
Sefa Eyeoglu
afb9ebcd99
fix: distinguish Coremods
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-08-20 12:53:13 +02:00
Sefa Eyeoglu
7e8644430c
Merge pull request #1007 from Gingeh/disable-update-button 2022-08-20 12:50:19 +02:00
timoreo
c375e7b4df
Merge pull request #897 from jamierocks/atl-updating-initial 2022-08-11 08:50:05 +02:00
Robb
cebac3c10e
Make new title strings translatable
Signed-off-by: Robb <computerguy440+gh@gmail.com>
2022-08-10 12:07:24 -05:00
Robb
cd30f75173
fix: Make world safety nag title text match the action being performed instead of always saying 'Copy World'
Signed-off-by: Robb <computerguy440+gh@gmail.com>
2022-08-09 16:01:21 -05:00
Sefa Eyeoglu
68f3f98bc3
feat: detect GameMode and MangoHud's presence
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-08-08 21:16:37 +02:00
Sefa Eyeoglu
f873cd5b1a
refactor: store current capabilities
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-08-08 21:16:37 +02:00
Gingeh
a8aa862919 Move large condition into a new lambda
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
2022-08-03 16:39:30 +10:00
Gingeh
f33b31e048 Check for running instance when re-opening the mod folder page and when selecting mods
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
2022-08-02 14:14:45 +10:00
Gingeh
0d10ebb7ca Update launcher/ui/pages/instance/ModFolderPage.h
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
2022-08-02 12:50:25 +10:00
flow
4a8abc948e
fix: prevent segfault due to callbacks into deleted objects
Since network requests are, for the most part, asynchronous, there's a
chance a request only comes through after the request sender has already
been deleted.

This adds a global (read static) hash table relating models for the mod
downloader to their status (true = alive, false = destroyed). It is a
bit of a hack, but I couldn't come up with a better way of doing this.

To reproduce the issue before this commit: scroll really quickly through
CF mods, to trigger network requests for their versions and description.
Then, in the middle of it close the mod downloader. Sometimes this will
create a crash.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 18:34:15 -03:00
Gingeh
77b640b76b Disable "Check for Updates" and "Download Mods" while the game is running
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
2022-08-01 20:56:05 +10:00
Gingeh
a8dfe98b1a Disable "Check for Updates" if all mods are removed
Signed-off-by: Gingeh <39150378+Gingeh@users.noreply.github.com>
2022-08-01 20:56:05 +10:00
flow
cee41b87f7
fix(ui): force redraw of mod list when (de)selecting a mod
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:31 -03:00
flow
6aaf1f4f21
feat: lazy-load CF mod descriptions
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
0808a10b7b
feat: cache mod versions
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
6f052baa94
refactor: use function cb instead of class cb in getVersions
I've discovered even more functional programming! :^)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
5bc67d3f6b
feat: cache extra mod info (like links and body)
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
74c6c5cfbc
refactor: use function cb instead of class cb in getModInfo
I've discovered functional programming :^)
This makes this route more fit for general use.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
158b7fd166
feat+refactor: clean up ProgressWidget and add progress indicatior to
mod downloader

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
c3f647dc96
feat: add (semi) instant searching in mod downloader
It has a delay of 350ms from the last typed character to search, in
order to cache small changes while typing.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:30 -03:00
flow
5936c7b65c
change: preserve search term across different mod providers
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
flow
a8bcd85c93
feat+refactor: add shortcuts to mod downloader and clean up
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
flow
6e9a27f40f
feat: display the 'body' of a MR mod on the mod downloader
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
flow
4a13dbe3bb
feat: create delegate for project item views
This allows us to define custom painting for list view items. In
particular, this is applied to the mod downloader, in order to allow
displaying both the mod name and mod description, and settings their
effects (like bold or underline) independent of each other.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-01 07:33:29 -03:00
Sefa Eyeoglu
fb289c6b17
chore: add license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-26 20:33:29 +02:00
Sefa Eyeoglu
75a7ea55d4
feat: implement mod resolving for FTB
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-26 20:33:10 +02:00
flow
3aa2003951
fix: filter in external resource pages not working
For some reason, using setFilterFixedString() doesn't seem to update the
QRegularExpression object with a new value, instead leaving it empty. It
updates QRegExp just fine, so maybe that's an Qt bug? o.O

Anyway, using regex in the filter is kinda cool actually :D

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-23 23:50:56 -03:00
flow
813dfbd2d3
fix: hide the entire performance tab on instance settings in non-Linux
"just woke up after a major release has just been made" coding style

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-23 13:29:39 -03:00
Sefa Eyeoglu
28ae5d710e
fix: fix translations for mod updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-19 18:03:45 +02:00
flow
de9e304236
fix: std::list -> QList
Qt6 removed Qlist::toStdList() 😭

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:45 -03:00
flow
c4316e81e6
change: make Mod a QObject used as a pointer
Prevents problems when copying it around!

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:44 -03:00
flow
9a07ede615
fix: filter out opted-out mods in mod downloader
Maintains Pre-Updater behaviour

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow
2d10c246a8
feat: add update mods to the ui / mod model
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00
Sefa Eyeoglu
8f4d7ac655
Merge pull request #678 from Scrumplex/improvements-around-proprietary-services 2022-07-11 14:56:09 +02:00
Sefa Eyeoglu
b3b76d5d56
Merge branch 'develop' into feature/sparkle-mac
# Conflicts:
#	.github/workflows/build.yml
2022-07-10 19:38:30 +02:00
Jamie Mansfield
bf560f4594
ATLauncher: Move the UI support implementation into it's own class
This will allow it to be used in multiple locations.
2022-07-10 11:27:42 +01:00
Sefa Eyeoglu
3b4539de79
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
15c5bbcf22
fix: fix slots for Qt 6
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00
Sefa Eyeoglu
ff2cd50bfa
refactor: replace QRegExp with QRegularExpression
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
Sefa Eyeoglu
984692dc62
refactor: fix deprecation up to Qt 5.15
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:17:52 +02:00
dada513
3b187b5246
Merge pull request #876 from Scrumplex/revert-updater-stuff
Revert "fix: remove updater if it is not used"
2022-07-10 10:50:03 +02:00
flow
35a698ef72
Merge pull request #884 from jopejoe1/ftbuifixed
Updated FTB Classic layout
2022-07-08 16:19:14 -03:00
Sefa Eyeoglu
08989bde5e
Merge pull request #839 from flowln/modrinth_packs_bug_hunt 2022-07-08 16:25:35 +02:00
Sefa Eyeoglu
87cbff391c
fix: disable MSA login if it is NOT supported
Co-authored-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 16:25:03 +02:00
Sefa Eyeoglu
311b081e60
feat: add validation for Flame key and MSA client ID
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 16:25:03 +02:00
Sefa Eyeoglu
4103948132
feat: track capabilities of application
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 16:25:03 +02:00
Sefa Eyeoglu
906f26698b
fix: spelling of CF
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 16:25:03 +02:00
Sefa Eyeoglu
8a1a583afe
refactor: rename references to CurseForge to Flame
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-08 16:25:03 +02:00
jopejoe1
9e19b73ce6 Updated FTB Classic layout
Signed-off-by: jopejoe1 <johannes@joens.email>
2022-07-07 23:18:13 +02:00
Sefa Eyeoglu
e210a4b244
Revert "fix: remove updater if it is not used"
This reverts commit 2ff0aa09e3.

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

Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
2022-07-06 09:34:14 +02:00
flow
e5f6dc1b14
fix: aborts when using a Qt build with assertions enabled
Preventing undefined behaviour hooray! :D

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:44:19 -03:00
flow
145da82cd8
fix: show invalid version even when there's none
Having a blank instead of _anything_ is bad UX. Instead, even when
there's not a valid version (most likely disabled redistribution), we
show a message in the UI, to differentiate from the loading state.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:05 -03:00
flow
64776d6bac
feat+fix: cache Flame modpack versions
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:05 -03:00
flow
64d123f524
fix: use better naming for Modrinth pack versions
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:04 -03:00
flow
0ec4ade683
feat+fix: cache versions and extra info in Modrinth packs
When you change a copy thinking you're changing the original data smh

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:04 -03:00
flow
4232b1cedb
fix: don't use uniform sizes in Modrinth modpack viewer
Apparently, when Qt sees an icon with the height smaller than the rest,
with this option set, it will change the height of all other items to be
that one, causing #828.

While we do lose some performance changing this option, the issue is
gone, so :|

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-03 12:43:00 -03:00
Sefa Eyeoglu
474d77ac57
feat: resolve JARs dynamically
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-03 17:31:01 +02:00
Sefa Eyeoglu
278d2169da
fix: initialize accountIsOnline to fix build
CMAKE_BUILD_TYPE=Release makes the build fail otherwise.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-03 14:32:31 +02:00
Sefa Eyeoglu
5599b5a337
Merge pull request #855 from Gingeh/account-list 2022-07-03 12:55:36 +02:00
Ezekiel Smith
7aba7b6064
Merge pull request #818 from flowln/tiny_mod_icons
Always scale mod icons to the right size
2022-07-03 01:49:09 +10:00
flow
02201631e7
feat: use ConcurrentTask for mod downloads
Way faster :)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-01 08:34:17 -03:00
Sefa Eyeoglu
63dfc0633f
Merge pull request #652 from flowln/mod_page 2022-07-01 10:00:36 +02:00
Gingeh
dbb63b97bd
Merge branch 'PolyMC:develop' into account-list 2022-07-01 10:43:41 +10:00
flow
5f951e8f21
change: better regex for removing 'The' when sorting mods
Teh :|

Co-authored-by: timoreo22 <timo.oreo34@gmail.com>
2022-06-30 07:04:47 -03:00
timoreo22
ed5415aeb8
Merge pull request #837 from DioEgizio/fix-sort-mr 2022-06-30 08:24:51 +02:00
Gingeh
bef79df6bb Disable the refresh button for offline accounts 2022-06-30 09:08:53 +10:00
Gingeh
d6f4ff26b5 Disable skin buttons for offline accounts 2022-06-29 18:46:39 +10:00
Gingeh
b606a2e040 Make the profile and account name columns use all available space 2022-06-29 18:45:36 +10:00
DioEgizio
04e8780dd0
fix(modrinth): fix sorting 2022-06-24 10:47:02 +02:00
DioEgizio
0fe4384067
Update launcher/ui/pages/modplatform/flame/FlamePage.ui
Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-06-23 17:58:54 +02:00
DioEgizio
bdfcd0b99e chore(flame): reword warning 2022-06-23 17:06:49 +02:00
flow
a135c06bcf
fix: scale mod icons to the right size 2022-06-21 06:41:56 -03:00
Ezekiel Smith
3e8d450741
Merge pull request #665 from jamierocks/h-managed-packs
PackPlatforms: Record where packs come from
2022-06-14 23:54:44 +10:00
Ezekiel Smith
27239b2dde
Merge pull request #634 from flowln/donate_links
More links for CF / Modrinth mods / modpacks
2022-06-14 23:52:00 +10:00
Sefa Eyeoglu
e25cdd9d12
refector: move download action to ExternalResourcesPage 2022-06-14 07:04:31 -03:00
flow
d394235ee0
refactor: Create a more clear hierarchy for some instance pages
Previously, the Shaders, Texture packs and Resource packs tabs had as
parent the ModFolderPage, making it so that making changes only to the
Mods page would require checking the id of the page for the correct one.
This was hackish and error-prone.

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

This is still not a clear separation, since internally, all those
resources are derived from Mods, so for now there's still some awkward
common code :/
2022-06-14 07:04:31 -03:00
Sefa Eyeoglu
a4ef0940ed
chore: add license headers 2022-06-12 13:50:58 +02:00
Sefa Eyeoglu
2ff0aa09e3
fix: remove updater if it is not used 2022-06-12 13:39:47 +02:00
Sefa Eyeoglu
8856c8cd62
refactor(test): fix loading mod metadata setting 2022-06-12 13:33:17 +02:00
dada513
2bd8e7dca4
Merge pull request #780 from flowln/guo_ext_2 2022-06-11 19:45:51 +02:00
dada513
2ee4b6768d
Merge pull request #770 from flowln/technic_links 2022-06-11 19:34:59 +02:00
Sefa Eyeoglu
81daffe68e
fix: remove file filter from translation 2022-06-11 14:10:42 +02:00
flow
2ea20a8b29
fix: allow discovering mrpacks in languages without dot 2022-06-11 07:12:59 -03:00
Sefa Eyeoglu
2257c875f5
Merge pull request #708 from ryanccn/custom-user-agent 2022-06-11 10:53:58 +02:00
flow
1b1f728c58
fix: allow opening external links in technic modpack page 2022-06-09 18:46:19 -03:00
Sefa Eyeoglu
7a3acc3249
refactor(ui): use tabs for APIPage 2022-06-04 22:04:36 +02:00
Ryan Cao
4cecba8787
make $LAUNCHER_VER actually work 2022-06-04 22:59:57 +08:00
Ryan Cao
5930acc418
change UI to scroll
let me just say, this does not look right
2022-06-04 22:54:05 +08:00
Sefa Eyeoglu
1ab00ca8b2
Merge pull request #426 from flowln/mod_perma
Add on-disk mod metadata information
2022-06-04 13:23:38 +02:00