Commit Graph

79 Commits

Author SHA1 Message Date
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
Tayou
668b19d119
Add hint about Cat
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-10 16:09:57 +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
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
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
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
0516055b31
Merge pull request #630 from leo78913/yeet-scrollbars 2022-12-17 08:02:41 -08: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
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
d95625ed88
Merge pull request #486 from flowln/wide_bar_customization 2022-12-11 04:16:45 -08:00
flow
9e17ff884f
feat: add PageContainer::getPage
This allows us to directly access a page from outside. This will be
useful for telling the ManagedPackPage who is the window it's on, so
that we can close it when updating :^)

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 16:54:54 -03:00
flow
4a1d082614
reafctor(WideBar): connect to signal instead of overriding menu method
This makes stuff more standard and closer to what we do in other places
in the codebase.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-25 09:33:05 -03:00
flow
20c281d6f8
fix: reset wide bar settings when the list of actions changes
This prevents changes to the actions to cause non-intuitive issues in
the Wide bar, hiding items that previously weren't hidden.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-22 14:30:54 -03:00
Sefa Eyeoglu
884fe0d574
feat: validate maximum memory allocation in wizard
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-11-20 18:16:19 +01:00
flow
479843f56b
feat(WideBar): allow loading/unloading visibility via a byte array
I really wanted to use a QBitArray :c

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-19 18:41:31 -03:00
flow
6e1639551b
feat(WideBar): allow hiding buttons with right-click
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-19 18:41:30 -03:00
flow
2367903ac6
refactor: clean up WideBar a bit
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-19 18:41:30 -03:00
flow
7956e6f04e
fix: don't use forward-declared Ptr types in meta/
This would cause ODR violations when those headers were included in
other places that also included stuff like "Version.h" (note the
"meta/Version.h"), which can cause problems, especially in LTO.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-01 19:48:26 -03:00
Sefa Eyeoglu
12d8409e65
Merge pull request #39 from Sebbl0508/mod_dialog_fontsize 2022-10-21 15:25:28 +02:00
flow
5d27633821
fix: show a single line in ProjectItem's desc. when there's no more space
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-20 15:03:46 -03:00
Sebastian Rueth
b46c4a81e0
check space requirements of project description
if there isn't enough space for 2 lines of project description, only
draw one

Signed-off-by: Sebastian Rueth <sebastian.rueth@protonmail.com>
2022-10-20 08:02:05 +02:00
flow
d6479e133d fix: properly center project descriptions
In particular, this takes into account the space used by the title, so
(hopefully) there won't be problems with custom themes with that.

Signed-off-by: flow <flowlnlnln@gmail.com>
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Signed-off-by: Sebastian Rüth <sebastian.rueth@protonmail.com>
2022-10-19 20:12:50 +02:00
Sebastian Rüth
50bbf2aacc fix text clipping
Signed-off-by: Sebastian Rüth <sebastian.rueth@protonmail.com>
2022-10-19 20:12:50 +02:00
Sefa Eyeoglu
4e08f28246
Merge pull request #31 from flowln/who_needs_webview 2022-10-19 14:28:29 +02:00
Sefa Eyeoglu
3ac398ac49
fix: use display name in code
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-10-18 09:50:27 +02:00
flow
d194b02e28
fix: prevent images overriding content when changing pages
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-11 15:51:54 -03:00
flow
ea3be17220
feat: add widget for a text browser with image support
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-10-08 14:11:20 -03:00
Sefa Eyeoglu
787234a53a
Merge pull request #1163 from flowln/fix_list_icons 2022-10-08 12:12:38 +02:00
flow
1862f3c124
fix: set icon sizes correctly in ProjectItemDelegate
no more dumb hacks with icons!!

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-23 16:59:40 -03:00
Sefa Eyeoglu
777ab3416f
feat: also format resource/texture pack names
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-21 15:00:28 +02:00
Sefa Eyeoglu
ecf5ab75e7
feat: support more formatting codes
also fix some crashes

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-21 14:59:01 +02:00
Sefa Eyeoglu
ebbcc9f6da
fix: actually render color codes for texture packs
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
Sefa Eyeoglu
07dcefabcb
feat: add texture pack parsing
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-20 10:26:15 +02:00
flow
f65d506f26
Merge pull request #997 from flowln/fix_major_version_filter 2022-09-07 10:34:50 -03:00
flow
333dbca01e
Merge pull request #1105 from flowln/better_resource_packs
Add basic resource pack parsing and fix issues
2022-09-07 08:30:36 -03:00
flow
42eb265624
refactor: create mod pages and filter widget by factory methods
This takes most expensive operations out of the constructors.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-07 08:29:58 -03:00
flow
8a65726e9d
fix: use more robust method of finding matches for major version
This uses the proper version list to find all MC versions matching the
major number (_don't say anything about SemVer_ 🔫).

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-07 08:27:53 -03:00
flow
1b0ca47682
Merge pull request #939 from flowln/mod_downloader_improve
Some more UI / UX improvements to the mod downloader!
2022-09-07 08:27:11 -03:00
flow
3b13e692d2
feat: move resource pack images to QPixmapCache
This takes care of evicting entries when the cache gets too big for us,
so we can add new entries without much worries.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:22 -03:00
flow
dd9e30b24a
feat: add resource icon to InfoFrame
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-03 13:37:21 -03:00
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
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
3225f514f6
refactor: move general info from Mod to Resource
This allows us to create other resources that are not Mods, but can
still share a significant portion of code.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-20 10:41:59 -03:00
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
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
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
flow
032ceefa1d
feat: add some helping methods to WideBar
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:41 -03:00
Sefa Eyeoglu
3b4539de79
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-07-10 12:19:15 +02:00