Commit Graph

928 Commits

Author SHA1 Message Date
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
Tayou
cdc9f93f71
make MainWindow cat update instantly
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-20 15:16:25 +01: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
Sefa Eyeoglu
cd893e18d2
chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-14 17:21:52 +01: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
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
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
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
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
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
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
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
Sefa Eyeoglu
ca9b2525c8
Merge pull request #715 from getchoo/add-teawie 2023-01-09 09:46:31 +01: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
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
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
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
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
TheKodeToad
cbe5af235c Make requested changes
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2022-12-24 08:59:55 +00:00
flow
0516055b31
Merge pull request #630 from leo78913/yeet-scrollbars 2022-12-17 08:02:41 -08: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
leo78913
c8d8dda79a fix: only show scrollbars when needed
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-15 16:34:52 -03: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
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
e05ccc0e55
Merge pull request #601 from Scrumplex/fix-translations-3 2022-12-13 07:01:23 -08:00
Sefa Eyeoglu
107977f3d1
fix: update source strings
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-12-13 10:40:35 +01: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
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
DioEgizio
9eb14e6b9b fix: remove leftover TODO
Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-12-11 20:35:39 +01:00
flow
d95625ed88
Merge pull request #486 from flowln/wide_bar_customization 2022-12-11 04:16:45 -08:00
flow
4a13d72997
Merge pull request #32 from flowln/modpack_update_page
Closes https://github.com/PrismLauncher/PrismLauncher/issues/180
Closes https://github.com/PrismLauncher/PrismLauncher/issues/170
2022-12-10 06:34:18 -08:00
Rachel Powers
8f30237765 fix: prevent potental crash if droping non local files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-09 17:21:40 -07:00
Sefa Eyeoglu
e427174ff0
Merge pull request #571 from Ryex/blocked-targetFolder
fix(blockedmods): Track and use targetFolder for blocked files
2022-12-09 08:33:10 +01:00
flow
9ad4ae5340
Merge pull request #568 from leo78913/flatpak-shortcuts 2022-12-08 17:53:33 -08:00
Rachel Powers
0f48e0fc06 fix(blockedmods): Track and use targetFolder for blocked files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2022-12-08 18:42:51 -07:00
leo78913
37ad1b40d8 fix: fix creating instance shortcuts in flatpak
Signed-off-by: leo78913 <leo3758@riseup.net>
2022-12-08 20:18:07 -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
flow
34230bfcf4
fix: don't try updating Flame instance names when updating versions
Since the exact version string is only available in the manifest,
there's no easy way of getting it before commiting to the update, so
there's not much of a good way of showing the updated name in the UI,
and using the displayName is weird and gives some buggy behavior.

We may want to re-enable it in the future if we find a reliable way of
showing the correct info on the UI before starting the update.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-07 18:05:46 -03:00
DioEgizio
b0d69db878 fix: add instance shortcut creation action to menubar
also moves deleteinstance to the same place as the instance toolbar

Signed-off-by: DioEgizio <83089242+DioEgizio@users.noreply.github.com>
2022-12-07 16:52:06 +01: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
flow
6f50809457
fix(FlamePage): don't assert / suggest blocked modpacks
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:35 -03:00
flow
bb386a1162
fix(ManagedPackPage): only update the current instance exactly
Also carry on the original ID to avoid updating the wrong instance.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
80054e4db2
fix(ManagedPackPage): preserve pack ID from Modrinth update
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
1630a23fb0
refactor(InstanceImport): require rvalue from 'extra_info' mappings
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
4e75419e08
fix(ManagedPagePage): don't reload pack info when not needed
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
089018015a
refactor(ManagedPackPage): use smart pointers instead of raw ones
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
feb6f285ce
feat(ManagedPackPage): add reload button when in a fail state
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00
flow
cb12c51afc
fix(ManagedPackPage): check app capabilities for creating the CF page
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06 17:00:34 -03:00