Commit Graph

42 Commits

Author SHA1 Message Date
Trial97 8f8c8394dc remove some QEventLoops
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2025-03-02 08:36:48 +02: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
timoreo 736ecf266d Merge pull request #3019 from Trial97/task_parent
fixed double deletion for tasks
2024-11-15 06:19:40 +01: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 0e80aae1b8 Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into lambda 2024-10-30 19:35:25 +02: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
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 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
Trial97 766ddc80e3 refactored hassing task
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-06-18 16:51:26 +03: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 35b5c8097c Merge branch 'develop' into resource-meta
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2024-01-23 23:20:40 +00: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 2aeb829176 removed the concurent task destructor behaivior
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-10-22 19:58:10 +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 ad16d61208 Resource metadata writing
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-09-01 17:42:05 +01:00
TheKodeToad 93876e27f8 Generalise resource metadata
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-31 17:54:22 +01: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 db9f5f44e0 Split in two the options
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-07-14 22:26:22 +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
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
Trial97 67db141203 Renamed getResults to resultsReady
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-23 14:38:23 +03:00
Trial97 0161520b33 Fixed leaks
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2023-06-18 23:27:26 +03: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
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 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 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 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 2186b134a4 fix: Mod type enum -> Resource type enum
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-28 14:47:52 -03:00
Sefa Eyeoglu f371ec210c Merge pull request #1052 from flowln/resource_model 2022-08-28 16:52:53 +02: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 7b27f200b1 fix: don't mutate QHash while iterating over it
Even though it was using a QMutableHashIterator, sometimes it didn't
work quite well, so this is a bit better.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05 16:30:12 -03:00
flow f4b207220c fix: add some more nullptr checks / protection
die sigsegv 🔫

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-08-05 15:10:44 -03:00
flow e6f2a3893a refactor+feat: improve code separation in ensure metadata
... and avoid calculating the same hash multiple times

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:54 -03:00
flow b1763353ea feat: do incremental calculation of CF's hash
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:53 -03:00
flow 15ec1abb6a feat: use QIODevice for calcuating the JAR hash on Modrinth
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24 17:46:53 -03:00
flow 6bb8332b4b fix: bogus returns in EnsureMetadataTask
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:43:12 -03: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 5f75e531e6 fix: handling around disabled mods
Don't update disabled mods to prevent mod duplication. Also, chop
filename in the metadata with a '.disabled'.

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow 4e6978ff6f feat: improve metadata gen. networking and performance
This makes the metadata generation code a lot messier and harder to use,
but there's not really much else that can be done about it while
preserving all it's capabilities :(

At least we now have speed

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:43 -03:00
flow 844b245776 feat: add EnsureMetadataTask
This task is responsible for checking if the mod has metadata for a
specific provider, and create it if it doesn't.

In the context of the mod updater, this is not the best architecture,
since we do a single task for each mod. However, this way of structuring
it allows us to use it later on in more diverse scenarios.

This way we decouple this task from the mod updater, trading off some performance
(though that will be mitigated when we have a way of running arbitrary tasks
concurrently).

Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17 11:33:42 -03:00