Commit Graph

962 Commits

Author SHA1 Message Date
Nathan Adams 6cca9bb3b7 chore: Use workspace version for clap 2024-04-04 17:29:00 +02:00
Nathan Adams 26df7d78c4 chore: Use workspace version for chrono 2024-04-04 17:29:00 +02:00
Nathan Adams 937664e737 chore: Use workspace version for bytemuck 2024-04-04 17:29:00 +02:00
Nathan Adams 8a390163d6 chore: Use workspace version for async-channel 2024-04-04 17:29:00 +02:00
Nathan Adams 8e4127aef6 chore: Use workspace version for anyhow 2024-04-04 17:29:00 +02:00
Nathan Adams f18d890bea frontend-utils: Move Bookmark from desktop 2024-04-04 11:16:50 +02:00
Nathan Adams 2b4cec664a frontend-utils: Made ParseResult return a DocumentHolder directly 2024-04-04 11:16:50 +02:00
Nathan Adams 2bd28c9c1c frontend-utils: Add a DocumentHolder<T> helper type, use it for preferences and bookmarks 2024-04-04 11:16:50 +02:00
Nathan Adams 5ed6115dcc frontend-utils: Add new package and moved custom toml parsing utilities there 2024-04-04 11:16:50 +02:00
Crowdin Bot 51d91b2c17 chore: Update translations from Crowdin 2024-04-04 00:02:09 +02:00
sleepycatcoding 92f437ec15 desktop: Add storage backend preference 2024-04-03 23:44:27 +02:00
sleepycatcoding 9cab16eb68 desktop: use location instead of url
URL might be a bit misleading when you can also use local files as bookmarks.
2024-04-03 22:20:55 +02:00
sleepycatcoding 02a27db372 desktop: add bookmark add dialog
Now you can add bookmarks while not playing anything, fields are defaulted based on the current movie (if there is one).
2024-04-03 22:20:55 +02:00
sleepycatcoding 5cb9988183 desktop: custom bookmark names
Bookmark names can now be changed by the user, defaults to the URL file.
2024-04-03 22:20:55 +02:00
sleepycatcoding 231fbb7d66 desktop: redesign bookmark UI
lets be fair, the previous one was ugly + this one allows you to actually
change the URL!
2024-04-03 22:20:55 +02:00
sleepycatcoding 077cf7c77b desktop: split PathOrUrlField into widgets module
Makes possible to reuse this element in bookmarks UI
2024-04-03 22:20:55 +02:00
sleepycatcoding e30c866484 desktop: recreate bookmark array of tables if type is incorrect 2024-04-03 22:20:55 +02:00
sleepycatcoding fb93ef9cb6 desktop: allow multiple bookmarks with the same URL 2024-04-03 22:20:55 +02:00
sleepycatcoding e1f9b5e5df desktop: add UI for bookmarks 2024-04-03 22:20:55 +02:00
sleepycatcoding 0b7b9eb0a1 desktop: add `bookmarks.toml` file for storing bookmark data
This is in a separate file to not create clutter in the main preferences.toml file.
2024-04-03 22:20:55 +02:00
sleepycatcoding f657208860 desktop: Refactor preferences system to make it easier to reuse
The goal of this refactor is to make it easier to load other TOML files similarly how preferences are loaded currently.
2024-04-03 22:20:55 +02:00
Crowdin Bot a8136c45e1 chore: Update translations from Crowdin 2024-04-03 09:19:19 +02:00
TÖRÖK Attila 9822e96b41 chore: Bump `egui` to `v0.27.2` 2024-04-03 08:01:53 +02:00
sleepycatcoding 6a74af5f6f desktop: pop keys off of `ParseContext` regardless if parse succeeded
previously the keys were not popped off on some code paths,
resulting in incorrect diagnostics later down the road.
2024-04-01 23:15:42 +02:00
sleepycatcoding fc4c2cb3a8 desktop: cleanup warning boilerplate from preferences reader
The current item path is now kept track of dynamically removing the need for a hardcoded warnings.
and the caller no longer has to call `result.add_warning` themselves (mostly).
2024-04-01 23:15:42 +02:00
Crowdin Bot 5677447576 chore: Update translations from Crowdin 2024-04-01 14:46:40 +02:00
sleepycatcoding df7d95bf43 desktop: show translated string for currently selected language 2024-03-31 20:54:18 +02:00
TÖRÖK Attila a59ec413ad chore: Update `egui` to `v0.27.1` 2024-03-29 14:46:25 +01:00
TÖRÖK Attila 5b4f808769 chore: Update `egui` to `v0.27.0` 2024-03-29 10:02:52 +01:00
Kamil Jarosz 589e7bfb31 desktop: Prevent egui from consuming the Tab key 2024-03-27 00:40:24 +01:00
renovate[bot] 9dfc6dc224 fix(deps): update rust dependencies 2024-03-26 13:56:59 +01:00
Crowdin Bot cea993b5ac chore: Update translations from Crowdin 2024-03-26 13:19:21 +01:00
sleepycatcoding d4e5e54dc0 desktop: Fix window title after closing the file
Previously the title showed the filename in the title even after the file
had been long closed.
2024-03-25 20:13:56 +01:00
Crowdin Bot 9793e3968d chore: Update translations from Crowdin 2024-03-24 22:55:51 +01:00
Nathan Adams ad34f04b7a desktop: Make sure all backends are tried in the Preferences dialog 2024-03-24 21:04:09 +01:00
Nathan Adams 38f7443605 desktop: Try each graphics backend one-by-one until we have a result 2024-03-24 21:04:09 +01:00
Adrian Wielgosik 08157a056e build: Fix redundant import warnings 2024-03-23 19:23:18 +01:00
renovate[bot] d70560cb82 fix(deps): update rust dependencies 2024-03-22 11:10:59 +01:00
Crowdin Bot 65129a08da chore: Update translations from Crowdin 2024-03-21 20:49:11 +01:00
TÖRÖK Attila d9f17dac44 chore: Bump `image` to `v0.25`, without the `dxt` feature 2024-03-19 00:14:48 +01:00
TÖRÖK Attila 7a269c054d fix(deps): update rust dependencies 2024-03-18 12:21:47 +01:00
Crowdin Bot 8345ace97e chore: Update translations from Crowdin 2024-03-18 11:49:48 +01:00
Adrian Wielgosik 27cd08deeb avm2: Provide an option to disable the optimizer 2024-03-16 22:40:15 +01:00
Crowdin Bot fc8f4ef4cf chore: Update translations from Crowdin 2024-03-15 20:30:28 +01:00
TÖRÖK Attila 3399662c76 desktop: Follow `Document` -> `DocumentMut` change in `toml_edit` 2024-03-14 16:45:29 +01:00
renovate[bot] 3f9f19b7ac fix(deps): update rust dependencies 2024-03-14 16:45:29 +01:00
Colin Kinloch f472bbc701 desktop: Use egui-winit clipboard
The `egui-winit` clipboard implementation provides a nice interface to
`smithay-clipboard` which correctly implements the core wayland
selection protocol. It uses `arboard` as a fallback for other platforms.
2024-03-13 23:30:15 +01:00
renovate[bot] 8d193f8944 fix(deps): update rust crate winit to 0.29.15 2024-03-13 23:07:24 +01:00
Crowdin Bot a60d781fb4 chore: Update translations from Crowdin 2024-03-13 22:44:32 +01:00
Crowdin Bot 1a66916c6c chore: Update translations from Crowdin 2024-03-13 08:06:34 +01:00
Colin Kinloch 787b6f5dfb desktop: Make clipboard support optional
On wayland ruffle only supports `wlr-data-control-unstable-v1` which is
not intended to be supported by all compositors.
2024-03-12 20:32:23 +01:00
TÖRÖK Attila aa834e6530 desktop: Turn off default features of `image` 2024-03-12 00:24:59 +01:00
Nathan Adams eaab481dcc desktop: Default RUST_LOG to warn,ruffle=info,avm_trace=info 2024-03-11 21:28:25 +01:00
Nathan Adams a5fe7e1c81 desktop: Add log filename pattern (e.g. with timestamp) to preferences 2024-03-11 21:28:25 +01:00
Nathan Adams 6585ffdd28 desktop: Log to ruffle.log in addition to stdout 2024-03-11 21:28:25 +01:00
Daniel Williams 4927baf290
desktop: URL-decode the window title (fix #15454) 2024-03-11 16:54:56 +00:00
Crowdin Bot 60d7b14c59 chore: Update translations from Crowdin 2024-03-08 22:19:45 +01:00
Nathan Adams 6971a1aa5e desktop: Persist volume to disk 2024-03-07 20:38:06 +01:00
Nathan Adams e18055d351 desktop: Don't translate opengl, metal etc 2024-03-07 20:38:06 +01:00
Crowdin Bot 6fc7a1beaf chore: Update translations from Crowdin 2024-03-07 11:39:50 +01:00
renovate[bot] a916369f21 fix(deps): update rust dependencies 2024-03-06 21:58:40 +01:00
renovate[bot] 7201efdec1 fix(deps): update rust crate winit to 0.29.14 2024-03-06 16:55:52 +01:00
Kamil Jarosz 3d04971ae4 desktop: Make WinitAsyncExecutor thread-safe and prevent deadlocks
Not thread-safe WinitAsyncExecutor was wrapped with a Mutex, making
any access to the instance exclusive. It was problematic, because
when a task was awoken from within another task, it resulted in
a deadlock, because the mutex was not reentrant.

This patch makes WinitAsyncExecutor thread-safe and changes how tasks
are locked. Specifically, instead of locking all tasks, only
the currently executed task is being locked. This allows waking any
other task from within it.
2024-03-05 23:14:08 +01:00
Crowdin Bot de8f63ec88 chore: Update translations from Crowdin 2024-03-05 22:56:34 +01:00
Tom Schuster 587fdff1ac chore: Update `cpal` to `0.15.3`
This reduces the number of duplicate `nix` versions by one.
2024-03-05 14:24:29 +01:00
Nathan Adams 571f60abff desktop: Document preferences a little 2024-03-05 00:02:27 +01:00
Nathan Adams c713f56ac0 desktop: Allow changing the audio output device 2024-03-05 00:02:27 +01:00
Nathan Adams 09dfa6427e desktop: Allow changing the language in Preferences 2024-03-05 00:02:27 +01:00
Nathan Adams baa0c5c7cd desktop: Use custom (de)serialization for preferences, not serde 2024-03-05 00:02:27 +01:00
Nathan Adams ed56c70b55 desktop: Only show possibly-available backends for the current system 2024-03-05 00:02:27 +01:00
Nathan Adams d62963c2d4 desktop: Rename config.rs to preferences.rs 2024-03-05 00:02:27 +01:00
Nathan Adams 8b589a9620 desktop: If the preferred graphics backend is unavailable, pick another one and warn 2024-03-05 00:02:27 +01:00
Nathan Adams b9c6db1cb9 desktop: Add preferences dialog, allow setting of graphics backend/power 2024-03-05 00:02:27 +01:00
Nathan Adams 8df7efb662 desktop: Load graphics preferences from disk 2024-03-05 00:02:27 +01:00
Nathan Adams acd01e2eb0 desktop: Add GlobalPreferences struct, prep for storing preferences to disk 2024-03-05 00:02:27 +01:00
Nathan Adams 6136d14179 desktop: Add --save-directory 2024-03-05 00:02:27 +01:00
Nathan Adams 145275af86 desktop: Remove backwards compatibility code from 3 years ago 2024-03-05 00:02:27 +01:00
renovate[bot] fae1c458ec fix(deps): update rust dependencies 2024-03-04 22:18:19 +01:00
TÖRÖK Attila 755fa6cded chore: Switch `fluent-templates` back from `master` to `v0.9.0` 2024-03-04 11:05:08 +01:00
TÖRÖK Attila 9e8c406cd9 desktop: Introduce a `TaskKey` type for the slotmap in `executor.rs` 2024-03-03 21:18:39 +01:00
TÖRÖK Attila 5b920b8447 chore: Deduplicate the `fluent-templates` dependency 2024-03-02 19:54:00 +01:00
TÖRÖK Attila 55773f0205 chore: Replace `generational-arena` with `slotmap` 2024-03-02 19:42:11 +01:00
renovate[bot] 90bf13ebd2 fix(deps): update rust crate winit to 0.29.13 2024-03-02 19:17:37 +01:00
Kamil Jarosz a0f2941a2e desktop: Update winit to 0.29.12
This fixes critical crashes on X11
2024-03-01 12:10:37 +01:00
Crowdin Bot 4e87d34068 chore: Update translations from Crowdin 2024-03-01 11:15:11 +01:00
Tom Schuster a03355458f desktop: Add gamepad support using gilrs 2024-02-28 21:21:09 +01:00
Kamil Jarosz 9bc6700531 desktop: Get rid of busy waiting in connect_socket
This patch makes connect_socket await on recv
instead of spin and wake the CPU each 10 milliseconds.
2024-02-28 19:42:54 +01:00
Kamil Jarosz f5d52272ca desktop: Flush pending data before socket closes
This patch makes sure that any pending data is sent before
the socket closes. Without this fix Ruffle ignored the data sent
right before calling socket.close.
2024-02-28 19:42:54 +01:00
Kamil Jarosz f6907a5c73 desktop: Add tests for connect_socket
Add tests for ExternalNavigatorBackend::connect_socket.
2024-02-28 19:42:54 +01:00
Kamil Jarosz 2535b926a7 desktop: Add WinitFutureSpawner
This improves testability, decouples ExternalNavigatorBackend
from the event loop, and improves readability.

Instead of passing a channel to send the future to and an event loop
to poll, a WinitFutureSpawner is created which performs the
action of spawning a future and polling the event loop.
2024-02-28 19:42:54 +01:00
Kamil Jarosz cc8b0aa5dd core: Use async channels in NavigatorBackend
This has several advantages:
1. it allows using async variants of send and recv,
2. it adds consistency as until now Receiver was async,
   and Sender was not.
2024-02-28 19:42:54 +01:00
TÖRÖK Attila e56a4597cc desktop: chore: Update winit to 0.29.11 2024-02-27 22:43:59 +01:00
renovate[bot] 9cdb2f31cc fix(deps): update rust dependencies 2024-02-26 08:14:26 +01:00
TÖRÖK Attila d2e854fb73 nit: desktop/navigator: Fix a typo in a comment: ownerhsip -> ownership 2024-02-22 21:14:41 +01:00
Kamil Jarosz 98c0dc4616 desktop: Prevent resource leak on reload
This patch makes TaskHandle reference the executor by a weak reference.
Prior to this change, there was a possibility of a resource leak, where
the executor, its tasks, and resources held by them were not properly
dropped due to existing references to the executor.

This manifested by e.g. unclosed sockets after reload, which required
the whole program to be restarted in order to be closed properly.
2024-02-21 21:45:01 -05:00
renovate[bot] 6b89737093 fix(deps): update rust dependencies 2024-02-19 11:32:22 +01:00
renovate[bot] 1651b7a5b0 desktop: chore: Update `egui` to 0.26.2 2024-02-16 01:52:41 +01:00
Crowdin Bot 45c5d8f10c chore: Update translations from Crowdin 2024-02-12 00:25:24 +01:00
Crowdin Bot 5c6930d72e chore: Update translations from Crowdin 2024-02-09 17:56:24 +01:00
TÖRÖK Attila 28c380cfac desktop: Update egui to 0.26.0 2024-02-05 19:05:10 +01:00