Commit graph

407 commits

Author SHA1 Message Date
Observer KRypt0n_
84697bb917
feat: added LauncherState::WineNotInstalled state support 2023-02-26 11:50:30 +02:00
Observer KRypt0n_
099d3c232b
feat: added game/voice downloading functionality 2023-02-26 01:59:29 +02:00
Observer KRypt0n_
d80156696e
perf: ~23.5% startup performance improvements
After series of flamecharts analyzing I found some bottlenecks and fixed them
2023-02-25 23:39:50 +02:00
Observer KRypt0n_
1755faaab1
feat(core): added LauncherState::PrefixNotExists state support
Taught launcher how to create wine prefixes
2023-02-25 18:18:18 +02:00
Observer KRypt0n_
0e07cb0698
feat(core): reworked main window's messages
Some messages (relm4 component's input commands) were renamed

Added `UpdateLauncherState` message to, well, update launcher state.
By calling this status page will appear with information about
current status getting progress

Added some new error messages. Before, heavy tasks
were sending errors only to tracing logs. Now they also will generate toast messages

Added patch applying functionality to the main button.
Also made main window disappear when the game is running (like it works now in GTK launcher)
2023-02-25 18:08:25 +02:00
Observer KRypt0n_
c7a92718db
refactor(i18n): changed i18n mod again, nothing important 2023-02-25 17:16:35 +02:00
Observer KRypt0n_
681ad01835
feat(i18n): added localization to first run window 2023-02-25 16:06:43 +02:00
Observer KRypt0n_
cbd91c42aa
feat(i18n): added automatic default launcher language selection
Improved `i18n` mod to list supported languages and some other stuff

As well was added `get_default_lang` function
which will return language key based on current system language.
This function is called at the first launcher start
to update default `launcher.language` config property, so user will immediately
have proper language in initial setup window
2023-02-25 14:24:04 +02:00
Observer KRypt0n_
b7e85b7a8f
fix(ui): 🐛 added background downloading on style's change from settings
Previously launcher wasn't downloading background picture if the style was changed from the settings. This lead to situation when the window size and components position is updated, but background is fully transparent. With this change launcher will try to download picture if default background file doesn't exist. Not that launcher won't try to update this picture and this will happen only after restart, which is not an issue, I think
2023-02-24 19:31:32 +02:00
Observer KRypt0n_
6024ef885e
feat(ui): added final page to the first run window
Also loading icon was replaced by a `GtkSpinner` in components downloading page
2023-02-24 19:23:49 +02:00
Observer KRypt0n_
7e2059a33e
feat(ui): added voiceover selection page to the first run window 2023-02-24 18:21:03 +02:00
Observer KRypt0n_
5d1633efe1
feat(ui): added components downloading page to the first run window
\
2023-02-24 17:17:42 +02:00
Observer KRypt0n_
aa182e6efb
style(ui): improved style of fullscreen first run window
Centered all the components for better styling
2023-02-24 13:31:10 +02:00
Observer KRypt0n_
4bdce19063
feat(core): added speed limit applying for components downloading
Forgot to implement use of `set_downloading_speed` for components downloading. Limitation is gathered from the `config.json` file
2023-02-24 13:25:40 +02:00
Observer KRypt0n_
cd3614df83
feat(ui): added blank components downloading page to first run window
As well were experimentally changed buttons styles to "pills" (large'n'round). Maybe I'll revert this change later
2023-02-24 12:26:33 +02:00
Observer KRypt0n_
4f560eaa5e
feat(ui): added paths selection page in first run window 2023-02-24 11:13:14 +02:00
Observer KRypt0n_
9d4ad8df34
feat(ui): added new pages to the first run window
Added new "ToS warning" and "Dependencies" working pages to the first run window
2023-02-23 21:16:49 +02:00
Observer KRypt0n_
3f5ce430f9
feat(ui): initial work on adding first run window
Added blank first run window with welcome page. On first start launcher will create launcher folder and `.first-run` file inside if needed. If file exists - launcher will open first run window instead of the main one (to prevent further data loadings in `init` functions)
2023-02-23 20:37:02 +02:00
Observer KRypt0n_
fcb24f803b
feat(ui): made "update background" switcher
Now this switch will create `.keep-background` file in the launcher folder if launcher is supposed to keep current `background` file
2023-02-23 19:33:59 +02:00
Observer KRypt0n_
6340ccbd6e
feat(core): added background picture downloading 2023-02-23 16:41:13 +02:00
Observer KRypt0n_
5651544ada
style(ui): about window: updated debug info format
Slightly changed debug info messages format in about window for better readability
2023-02-23 16:39:49 +02:00
Observer KRypt0n_
5c3f6dbdf0
chore: added recommended extensions for vscode 2023-02-23 14:53:18 +02:00
Observer KRypt0n_
82657f2db8
style(tracing): added pretty formatting to debug.log file
Should greatly improve readability
2023-02-23 14:48:06 +02:00
Observer KRypt0n_
efa96b9d2b
tracing: removed env-filter and use of RUST_LOG
it increased build size by 1 MB
2023-02-23 14:29:57 +02:00
Observer KRypt0n_
1dcc1b5403
tracing: improved logs output
- now launcher can use `RUST_LOG` variable to filter logs
- removed "called event" logs from wine/dxvk/progress bar components
Also:
- fixed constant "remove_css_class" gtk errors
2023-02-23 14:14:06 +02:00
Observer KRypt0n_
4e6325dd4f
main window: added colors and tooltips to action button
- they all depend on current launcher state
2023-02-22 22:48:36 +02:00
Observer KRypt0n_
1d420d27aa
i18n: updated Russian
forgot to add new entries lol
2023-02-22 22:30:03 +02:00
Observer KRypt0n_
9497136ac6
main window: made action button to follow launcher's state
- also added "open debug file" option to the header menu
2023-02-22 22:28:28 +02:00
Observer KRypt0n_
f2a04f5ebe
main window: added initial states system support 2023-02-22 22:10:37 +02:00
Observer KRypt0n_
14067c7bdf
main window: added functionality to menu actions
- added ability to send toast messages
2023-02-22 21:43:01 +02:00
Observer KRypt0n_
8199e0eac9
components: made all preferences components async
- apparently they tend to freeze without it
- also added use of `AdwStatusPage` during heavy tasks execution
2023-02-22 20:58:01 +02:00
Observer KRypt0n_
6525fbb0d9
core: done dynamic heavy tasks initialization
- now launcher is able to load some heavy stuff in background
  so they will not freeze it during start
- patch status and latest game data is loaded in background from now
- renamed some components and their messages types for consistency
2023-02-22 20:46:47 +02:00
Observer KRypt0n_
ba75180811
preferences: made settings sections separate components
- now `General` and `Enhancements` sections are relm4 components
- this change improves code structure and should help
  adding dynamic data loading on app start in future
- settings components are also not async from now because they don't need to
2023-02-22 20:13:58 +02:00
Observer KRypt0n_
3d5cf4a8f7
styles: fixed AdwStatusPage background 2023-02-22 19:44:58 +02:00
Observer KRypt0n_
76538fbf7d
appearance settings: added initial "download background" option support
- added translations for appearance section
2023-02-22 18:43:35 +02:00
Observer KRypt0n_
5870316724
general settings: added test launcher style switcher
- classic style loads its background from "config's_tmp_path/background"
  so from "launcher folder/background" by default
- icons will be changed in some future
2023-02-21 17:32:57 +02:00
Observer KRypt0n_
949a0f37e9
packages: updated relm4 and glib-build-tools version 2023-02-18 00:33:43 +02:00
Observer KRypt0n_
b26ff37b0e
i18n: added forgoten patch-related translations 2023-02-17 16:38:12 +02:00
Observer KRypt0n_
44d074d864
Changed debug logging
- stdout logs got rid of rustls messages and now are pretty styled
- logs are saved into the `debug.log` file in the launcher folder
  they're not filtered and contain all the messages
- toasts timeout fixed to 5 seconds
- added "save" button which will, well, not save logs
  but open `debug.log` file using `xdg-open`
2023-02-11 12:34:39 +02:00
Observer KRypt0n_
4965a9f005
Settings: added toast messages on errors 2023-02-11 11:12:57 +02:00
Observer KRypt0n_
036beac9d8
Settings: added wine/dxvk applying on one's selection 2023-02-05 14:26:40 +02:00
Observer KRypt0n_
82fdb7b2a2
Changed --debug behavior to only affect stdout debug/info messages 2023-02-04 16:13:09 +02:00
Observer KRypt0n_
5ad110a9b4
Removed unnecessary things 2023-02-04 16:05:14 +02:00
Observer KRypt0n_
fe898e6b90
Progress bar: added status translations 2023-02-04 15:48:29 +02:00
Observer KRypt0n_
28d7663420
Progress bar: added proper title updating 2023-02-04 15:40:53 +02:00
Observer KRypt0n_
0916894165
core: made some components async and updated launcher sdk
which fixed app's blocking when downloading wine/dxvk
2023-02-04 14:44:19 +02:00
Observer KRypt0n_
2a96982fd7
Components list: added on_downloaded / deleted events 2023-02-03 17:23:17 +02:00
Observer KRypt0n_
7ba025489d
preferences: added downloaded wine/dxvks lists 2023-02-03 13:25:40 +02:00
Observer KRypt0n_
29702782e2
settings: added patch status displaying 2023-01-29 15:11:13 +02:00
Observer KRypt0n_
84163c470d
config: fixed test path fox game diff getter 2023-01-28 21:19:13 +02:00