Commit Graph

2162 Commits

Author SHA1 Message Date
4ed4fb2314 remove useless setEnabled calls
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
f16989bea9 feat(WideBar): custom context menu actions
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
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
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
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
b2de01b076 feat(WideBar): Allow disabling alt shortcuts
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:45:43 -03:00
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
3da1d6a464 feat: add Widebar::InsertWidgetBefore method
Signed-off-by: leo78913 <leo3758@riseup.net>
2023-01-20 19:44:39 -03:00
cdc9f93f71 make MainWindow cat update instantly
Signed-off-by: Tayou <tayou@gmx.net>
2023-01-20 15:16:25 +01:00
bcebb1920f refactor: clean up Section struct
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 11:15:26 -03:00
81848e05f1 refactor: simplify Version operators
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-20 11:15:26 -03:00
0199d8a74f Version.cpp: Add new line
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-19 14:12:59 +02:00
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
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
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
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
730f714e97 Version.cpp: Remove unnecessary QStringList include
Signed-off-by: Edgars Cīrulis <edgarsscirulis@gmail.com>
2023-01-17 22:39:19 +02:00
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
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
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
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
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
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
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
cd893e18d2 chore: update license headers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-14 17:21:52 +01:00
cf022524d1 Merge pull request #743 from flowln/fix_mods_with_wrong_modListVersion 2023-01-14 12:19:12 -03:00
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
3de681d2d6 Merge pull request #685 from byteduck/instance-accounts 2023-01-13 17:21:12 -03:00
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
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
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
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
bd36f8e220 fix(RD): set resource strings for ReviewMessageBox too
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13 16:23:09 -03:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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