Commit graph

217 commits

Author SHA1 Message Date
goaaats
b4e62571a6 Add option to auto-update disabled plugins 2025-05-10 01:10:53 +02:00
Haselnussbomber
33605e3ace
Move AntiDebug to xivfixes (#2264)
* Move AntiDebug to xivfixes

* Update BootEnabledGameFixes

* Check BootEnabledGameFixes

* Apply suggestions from code review

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>

---------

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2025-05-09 13:53:44 -07:00
goaaats
2b49170f6a Add configurable "anchor position" for notifications 2025-05-07 00:00:32 +02:00
goaaats
ddf0a97c83 Add plugin error notifications, per-plugin event invocation wrappers 2025-05-01 20:47:03 +02:00
goaaats
731d7e0f6e Un-whether-or-not the codebase 2025-04-25 22:49:05 +02:00
goaaats
0db49a5642 DalamudConfiguration.ForceSave should wait for the save task to exit 2025-04-25 22:49:05 +02:00
marzent
7cac19ce81
Implement dalamud-platform launch argument (#1452)
* implement dalamud platform launch arg
* implement cross-platform gamePath fallback
* refactor platform detection heuristic
* add cross platform dalamud runtime detection
2025-03-24 08:42:24 -07:00
goat
35b49823e5 WindowSystem: fix clickthrough option not applying to child windows, persist options
Persistence is pretty WIP. I want to offer multiple presets in the future, and save more things like window positions.
2024-12-30 21:14:08 +01:00
goat
c79b1cd83a config: save asynchronously to prevent hitches 2024-12-29 13:17:03 +01:00
goat
b79c646b9b only turn ImGui asserts on if we are actually loading a devplugin 2024-12-25 23:48:07 +01:00
goat
12bf2f4478 replace nonfunctional managed asserts with proper imgui-handled assert mechanism 2024-12-25 12:47:38 +01:00
Infi
2e6cb6ef00
- Add chat notification back to AutoUpdate (#2146)
- ImRaii UI elements in AutoUpdate tab
- Fix scoping in IconButton
2024-12-19 22:19:50 +01:00
Infi
0fdcffd3ad
Fix small typo (#2115) 2024-11-24 23:00:50 +01:00
goat
2265b389b1 config: rename ReShade handling mode property to force new default 2024-07-25 21:36:53 +02:00
Soreepeong
d8861ec7da write code 2024-07-25 21:07:49 +09:00
Soreepeong
3215b6dddf Add optional vtable swapchain hook mode 2024-07-23 10:57:09 +09:00
Soreepeong
d71fbc52fb Add reshade unwrapping options 2024-07-22 20:29:26 +09:00
srkizer
19d182546c
Always specify TypeNameHandling for types under Dalamud assembly (#1910)
LoadForType{T} intentionally does not specify TypeNameHandling which
seemingly is required for handling inheritance for nested properties.
Added a custom JsonConverter that will force TypeNameHandling=Objects
for types under Dalamud assembly, as a quick workaround for forcing font
related types to be correctly handled during deserialization.
2024-07-09 22:03:45 +02:00
goat
c2d52cc6b0 remove built-in RMT filtering 2024-06-29 00:10:00 +02:00
github-actions[bot]
263610c9e7 Merge remote-tracking branch 'origin/master' into apiX-rollup 2024-06-15 22:45:08 +00:00
goat
08a411728c use a map to track ftue levels per-feature instead 2024-06-15 22:08:30 +02:00
goat
8d18940108 initial implementation of new auto-update UX 2024-06-15 01:00:50 +02:00
goat
9fdc704834 add missing history property to config 2024-06-10 21:23:45 +02:00
github-actions[bot]
4e331b1d85 Merge remote-tracking branch 'origin/master' into apiX-rollup 2024-06-08 23:34:08 +00:00
goat
31e541fae5 deps: upgrade StyleCop, fix warnings
...fixes new array initializer expression
2024-06-07 21:19:16 +02:00
Soreepeong
0d7c0a0375 Merge remote-tracking branch 'upstream/apiX' into feature/itextureprovider-updates 2024-06-04 23:54:38 +09:00
srkizer
0a219fcd82
Add IME state indicator opacity setting (#1811) 2024-05-21 08:41:25 +02:00
Soreepeong
8c7771bf7d Merge branch 'apiX' into feature/itextureprovider-updates 2024-05-12 22:17:32 +09:00
meoiswa
00311b4dca
DalamudPluginInterface functions for opening Settings and DevMenu (#1795)
* Add functions for plugins to open the Developer Menu and Dalamud Settings windows

* Do not break ABI by instead declaring a new method OpenPluginsInstallerTo
Replace OpenDalamudSettings with OpenDalamudSettingsTo
2024-04-30 00:30:09 +02:00
goat
448b0d16ea
Add "loading dialog" for service init, unify blocking logic (#1779)
* wip

* hacky fix for overlapping event text in profiler

* move IsResumeGameAfterPluginLoad logic to PluginManager

* fix some warnings

* handle exceptions properly

* remove ability to cancel, rename button to "hide" instead

* undo Dalamud.Service refactor for now

* warnings

* add explainer, show which plugins are still loading

* add some text if loading takes more than 3 minutes

* undo wrong CS merge
2024-04-21 17:28:37 +02:00
goaaats
b2df6e2a2b pi: allow "dismissing" validation problems 2024-03-27 21:10:21 +01:00
goaaats
f9847398d2 settings: get "reduced motion" setting from WinApi 2024-03-20 22:14:24 +01:00
srkizer
95defa200f
Add Reduced Motion for Notifications (#1732)
When Reduced Motion configuration is on, the expiry progressbar is
removed, and instead a pie on top right is shown, and relative time
update interval increases to 15 seconds. Progress wave animation also is
suppressed.
2024-03-20 21:53:20 +01:00
srkizer
87b9edb448
Add IInternal/PublicDisposableService (#1696)
* Add IInternal/PublicDisposableService

Plugins are exposed interfaces that are not inherited from
`IDisposable`, but services implementing plugin interfaces often
implement `IDisposable`. Some plugins may try to call
`IDisposable.Dispose` on everything provided, and it also is possible to
use `using` clause too eagerly while working on Dalamud itself, such as
writing `using var smth = await Service<SomeService>.GetAsync();`. Such
behaviors often lead to a difficult-to-debug errors, and making those
services either not an `IDisposable` or making `IDisposable.Dispose` do
nothing if the object has been loaded would prevent such errors. As
`ServiceManager` must be the only class dealing with construction and
disposal of services, `IInternalDisposableService` has been added to
limit who can dispose the object. `IPublicDisposableService` also has
been added to classes that can be constructed and accessed directly by
plugins; for those, `Dispose` will be ignored if the instance is a
service instance, and only `DisposeService` will respond.

In addition, `DalamudPluginInterface` and `UiBuilder` also have been
changed so that their `IDisposable.Dispose` no longer respond, and
instead, internal functions have been added to only allow disposal from
Dalamud.

* Cleanup

* Postmerge fixes

* More explanation on RunOnFrameworkThread(ClearHooks)

* Mark ReliableFileStorage public ctor obsolete

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-03-16 15:58:05 +00:00
Soreepeong
6a0f774625 Add texture leak tracker 2024-03-05 01:06:02 +09:00
AzureGem
0651c643b1
Limit console log lines held in memory (#1683)
* Add AG.Collections.RollingList

* Use RollingList for logs + Adaption changes

* Create Dalamud.Utility.ThrowHelper

* Create Dalamud.Utility.RollingList

* ConsoleWindow: Remove dependency

* Remove NuGet Dependency

* Add Log Lines Limit configuration

* Use Log Lines Limit configuration and handle changes

* Make log lines limit configurable
2024-02-27 19:15:11 +01:00
srkizer
34daa73612
Implement FontChooserDialog (#1637)
* Implement FontChooserDialog

* Minor fixes

* Fixes 2

* Add Reset default font button

* Add failsafe

* reduce uninteresting exception message

* Add remarks to use AttachExtraGlyphsForDalamudLanguage

* Support advanced font configuration options

* fixes

* Shift ui elements

* more fixes

* Add To(Localized)String for IFontSpec

* Untie GlobalFontScale from default font size

* Layout fixes

* Make UiBuilder.DefaultFontSize point to user configured value

* Update example for NewDelegateFontHandle

* Font interfaces: write notes on not intended for plugins to implement

* Update default gamma to 1.7 to match closer to prev behavior (1.4**2)

* Fix console window layout
2024-02-13 20:09:46 +00:00
Soreepeong
63b16bcc7c Reapply "IFontAtlas: font atlas per plugin"
This reverts commit b5696afe94.
2024-01-19 07:26:56 +09:00
goat
b5696afe94 Revert "IFontAtlas: font atlas per plugin" 2024-01-18 12:51:58 -08:00
Soreepeong
e86c5458a2 Remove font gamma configuration 2024-01-03 23:37:00 +09:00
srkizer
b66be84b93
Better Service dependency handling (#1535) 2023-11-28 22:20:16 +01:00
srkizer
7a0de45f87
Miscellaneous improvements (#1537) 2023-11-26 22:58:26 +01:00
goat
5daef60422
chore: rename config key for title bar options, move to experimental tab 2023-11-14 18:48:10 +01:00
goat
3939731cb0
chore: make window additional options opt-in for now 2023-11-11 14:19:24 +01:00
goat
f10a597566
feat: add title bar buttons API to Window, make clickthrough/pinning window a title bar button 2023-11-06 23:10:55 +01:00
goat
9875a7ea31
feat: allow configuring the default page the installer opens to 2023-10-25 17:32:42 +02:00
goat
bef5e7c3f5
fix: we need ReliableFileStorage still when disposing config 2023-10-01 22:13:29 +02:00
goat
4a1b220d4a
fix: register interfaces for provided services 2023-09-30 01:09:25 +02:00
goat
f027b684ed
fix: specify WorkingPluginId when saving 2023-09-27 23:27:51 +02:00
goat
1d8b579b04
feat: also use reliable storage for plugin configs 2023-09-27 22:39:09 +02:00