aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/modrinth
AgeCommit message (Collapse)Author
2023-05-01feat: add `details` signal to `Task`Rachel Powers
feat: add details to mod pack downloading feat: add logging rule sloading form `ligging.ini at data path root feat: add `launcher.task` `launcher.task.net` and `launcher.task.net.[down|up]load` logging categories fix: add new subtask progress to the end of the lay out not the beginning (cuts down on flickering) Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-05-01feat: Propogated subtask progressRachel Powers
Oh boy this is big. > TaskStepProgress struct is now QMetaObject compatabile and can be sent through signals > Task now has a method to propogates sub task progress it must be signal bound by each task containing a task wishing to report progress of it's children. > Downloads report speed > Tasks now have UUIDS to track them - use when reporting - use when logging - use when storeing them or objects related to them Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-05feat(RD): add shader pack downloaderflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-05feat(RD): add resource pack downloaderflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2023-02-02fix(Inst.Import): don't allow bad file path in mrpack importflow
This checks the URL of the path of the file to be downloaded, ensuring that it always contains the root .minecraft target folder, following the warning in the mrpack documentation. Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-25refactor: make shared_qobject_ptr ctor explicitflow
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-24Merge branch 'develop' into remove-updaterSefa Eyeoglu
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-01-23fix(license): add/fix my copyright/license headersflow
*sobbing in messy legal stuff i know nothing about* Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13fix(ModUpdater): ensure instead of require icon_urlflow
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-13refactor: change some ResourceAPI from NetJob to Taskflow
This makes it easier to create resource apis that aren't network-based. Signed-off-by: flow <flowlnlnln@gmail.com>
2023-01-13refactor(RD): clear up sorting methodsflow
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-13refactor(RD): decouple ResourceModels from ResourcePagesflow
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-13refactor: generalize mod models and APIs to resourcesflow
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-12fix: Remove extra line breaks for modrinth descriptionsJoshua Goins
Signed-off-by: Joshua Goins <josh@redstrate.com>
2022-12-17refactor(Inst. Import): use m_* for member variables in MR componentsflow
Makes it clearer what is being changed when. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-17fix(Inst. Import): correctly set component versions when updatingflow
This makes it so that the later call to parse the old manifest doesn't change the class data, so that the new data con continue there and be reflected on the component list later. Co-authored-by: Sefa Eyeoglu <contact@scrumplex.net> Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-13fix(Inst.Import): don't set managed pack info from imported ZIPsflow
This prevents the Managed Pack page from showing up even though there's no way for it to work correctly. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06fix(ManagedPackPage): only update the current instance exactlyflow
Also carry on the original ID to avoid updating the wrong instance. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06feat+fix: allow forwarding extra info to InstanceImportTaskflow
This allows us to pass to the creation instances their actual pack ID and version ID, that in Flame's case, are only available before starting to create an instance. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06feat: allow skipping the update confirmation dialogflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06refactor: abstract away update confirmation dialogflow
... so that we can avoid code duplication. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-12-06feat: add logic for the modrinth instance modpack pageflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-11-04Fix: Resolve ambiguous overload errorsTheLastRar
Clang-cl fails to select the correct function and instead errors Signed-off-by: TheLastRar <TheLastRar@users.noreply.github.com>
2022-10-28fix: avoid segfault for unexpected API reponseSefa Eyeoglu
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2022-09-26fix: Fixed memory leaktimoreo
Signed-off-by: timoreo <contact@timoreo.fr>
2022-09-26huge nit: added const refs, everywheretimoreo
Signed-off-by: timoreo <contact@timoreo.fr>
2022-09-20feat: add dialog to ask whether to chaneg instance's nameflow
This prevents custom names from being lost when updating, by only changing the name if the old instance name constains the old version, so that we can update it if the user whishes to. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20fix: show warning in case there's no old index when updatingflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20refactor: setAbortStatus -> setAbortableflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20fix: move file deletion to the end of the instance updateflow
This makes it harder for problems in the updating process to affect the current instance. Network issues, for instance, will no longer put the instance in an invalid state. Still, a possible improvement to this would be passing that logic to InstanceStaging instead, to be handled with the instance commiting directly. However, as it is now, the code would become very spaguetti-y, and given that the override operation in the commiting could also put the instance into an invalid state, it seems to me that, in order to fully error-proof this, we would need to do a copy operation on the whole instance, in order to modify the copy, and only in the end override everything an once with a rename. That also has the possibility of corrupting the instance if done without super care, however, so I think we may need to instead create an automatic backup system, with an undo command of sorts, or something like that. This doesn't seem very trivial though, so it'll probably need to wait until another PR. In the meantime, the user is advised to always backup their instances before doing this kind of action, as always. What a long commit message o.O Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20fix: some abort-related issuesflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20feat(ui): improve info dialog before updating an instanceflow
Adds a 'Cancel' option, and add a note about doing a backup before updating. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20fix: hook up setAbortStatus in instance import tasksflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20fix: correctly set all managed pack fields in Modrinth packflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20feat: add override handling in modrinth pack updateflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20refactor: change the way instance names are handledflow
While working on pack updating, instance naming always gets in the way, since we need both way of respecting the user's name choice, and a standarized way of getting the original pack name / version. This tries to circunvent such problems by abstracting away the naming schema into it's own struct, holding both the original name / version, and the user-defined name, so that everyone can be happy and world peace can be achieved! (at least that's what i'd hope :c). Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20feat: add early modrinth pack updatingflow
Still some FIXMEs and TODOs to consider, but the general thing is here! Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-20refactor: move modrinth modpack import to separate fileflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-09-07Merge pull request #939 from flowln/mod_downloader_improveflow
Some more UI / UX improvements to the mod downloader!
2022-08-01feat: display the 'body' of a MR mod on the mod downloaderflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24refactor: add a HashUtils place for hashing stuffflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-24feat: use QIODevice for calcuating the JAR hash on Modrinthflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: std::list -> QListflow
Qt6 removed Qlist::toStdList() :sob: Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: don't use shared_ptr for a background task T_Tflow
Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17change: make Mod a QObject used as a pointerflow
Prevents problems when copying it around! Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17fix: handling around disabled modsflow
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-17fix: don't require non-essential items in mod indexflow
Also adds slug field. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17feat: add some mod api callsflow
- Get Project: Already existed but required a specific caller type. This is more general. - Get Projects: A single call to multiple of the above Both providers support these calls. Signed-off-by: flow <flowlnlnln@gmail.com>
2022-07-17feat: improve metadata gen. networking and performanceflow
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-17feat: add mod update dialogflow
This subclasses the Review mods dialog to make a "Update review" one. Also, all the necessary components built until now are put together in a coherent unity that checks and generates metadata on-the-fly and checks for mod updates, while giving and receiving feedback to the user. Signed-off-by: flow <flowlnlnln@gmail.com>