elsid
5859fd464c
Add option to disable precompiled headers
...
To be able to use ccache.
Also fix compilation errors appeared due to absence of precompiled
headers.
2024-03-08 02:11:51 +01:00
AnyOldName3
a130ca57a4
Track source of settings
...
This one's a biggie.
The basic idea's that GameSettings should know:
* what the interpreted value of a setting is, so it can actually be used.
* what the original value the user put in their config was, so it can be put back when the config's saved.
* which path it's processing the openmw.cfg from so relative paths can be resolved correctly.
* whether a setting's a user setting that can be modified, or from one of the other openmw.cfg files that can't necessarily be modified.
This had fairly wide-reaching implications.
The first is that paths are resolved properly in cases where they previously wouldn't have been.
Without this commit, if the launcher saw a relative path in an openmw.cfg, it'd be resolved relative to the process' working directory (which we always set to the binary directory for reasons I won't get into).
That's not what the engine does, so is bad.
It's also not something a user's likely to suspect.
This mess is no longer a problem as paths are resolved correctly when they're loaded instead of on demand when they're used by whatever uses them.
Another problem was that if paths used slugs like ?userconfig? would be written back to openmw.cfg with the slugs replaced, which defeats the object of using the slugs.
This is also fixed.
Tracking which settings are user settings and which are in a non-editable openmw.cfg allows the launcher to grey out rows so they can't be edited (which is sensible as they can't be edited on-disk) while still being aware of content files that are provided by non-user data directories etc.
This is done in a pretty straightforward way for the data directories and fallback-archives, as those bits of UI are basic, but it's more complicated for content files as that uses a nmodel/view approach and has a lot more moving parts.
Thankfully, I'd already implemented that when dealing with builtin.omwscripts, so it just needed wiring up.
One more thing of note is that I made the SettingValue struct storable as a QVariant so it could be attached to the UI widgets as userdata, and then I could just grab the original representation and use it instead of needing any complicated mapping from display value to on-disk value.
2024-03-06 00:36:13 +00:00
AnyOldName3
1af59c3a43
Tooltips for data-local and resources/vfs
2024-02-29 00:48:03 +00:00
AnyOldName3
f476301670
There's no such thing as the global data directory
...
That's what resources/vfs is for.
2024-02-27 14:11:48 +00:00
AnyOldName3
357bf3db61
Load all config files
2024-02-25 14:01:20 +00:00
psi29a
518f34c869
Merge branch 'bsa_archive' into 'master'
...
Cleanup and optimize BSA archives code
See merge request OpenMW/openmw!3876
2024-02-22 08:02:12 +00:00
Andrei Kortunov
3971abf5e6
Minor launcher improvements (feature 7843)
2024-02-20 14:02:59 +04:00
Andrei Kortunov
6f1710dee1
Fix viewing distance spinbox in the launcher (bug 7840)
2024-02-19 16:14:52 +04:00
elsid
cc9f9b53ba
Convert BsaVersion to enum class
2024-02-18 14:54:51 +01:00
psi29a
1280345296
Merge branch 'copy_qtbase' into 'master'
...
Copy qtbase translations
See merge request OpenMW/openmw!3840
2024-02-15 09:26:42 +00:00
Andrei Kortunov
9a7b9572fd
Deploy base Qt translations when needed
2024-02-15 09:26:14 +04:00
psi29a
744cd50520
Merge branch 'decoupled-audio' into 'master'
...
Add option to use camera as sound listener
Closes #5944
See merge request OpenMW/openmw!3836
2024-02-13 09:18:18 +00:00
Epoch
6486f3f2cf
Add option to use camera as sound listener
2024-02-13 09:18:18 +00:00
AnyOldName3
3149761c85
Fix grammar for A2C checkbox
...
An alternative would be *Anti-alias alpha testing*.
The original was wrong because anti-alias is a verb acting on alpha testing, but it treated the whole thing as a noun phrase.
2024-02-11 23:49:18 +00:00
BPengu1n
4cdb76975a
added force PPL checkbox
2024-02-11 16:39:16 -06:00
Andrei Kortunov
7e345436f4
Localize Launcher and Wizard
2024-02-01 09:47:25 +04:00
Yury Stepovikov
c90ebcc86b
Allow multiselect in the archives tab ( #7606 )
2024-01-28 21:33:10 +00:00
Andrei Kortunov
a340b49cbc
Enhance light settings tweaking
2024-01-16 10:23:13 +04:00
Andrei Kortunov
6cefe2c118
Rework launcher tabs
2024-01-14 14:05:14 +04:00
Yury Stepovikov
52623ddd7d
Set MacOS current_path before reading configuration files [ #7706 ]
2024-01-11 00:59:27 +00:00
Evil Eye
672cefd594
Track checked EsmFile pointers instead of full paths
2024-01-09 17:40:14 +01:00
psi29a
a0c0509e3f
Merge branch 'rm_unused_apps_includes' into 'master'
...
Use "" to quote apps/openmw includes and remove unused
See merge request OpenMW/openmw!3727
2024-01-09 08:59:23 +00:00
elsid
067957f57b
Use "" to quote apps/openmw includes and remove unused
...
Using "" makes clangd to find unused includes which makes it quite easy to
remove them.
2024-01-07 17:57:11 +01:00
Andrei Kortunov
828c40c710
Do not copy due to auto misuse
2024-01-07 18:52:10 +04:00
Andrei Kortunov
7ffb2bc3c4
Use error messages instead of unhandled exceptions
2024-01-03 21:48:25 +04:00
elsid
dc8c979d1a
Merge branch 'avoid_duplication' into 'master'
...
Store generated UI by pointer to avoid redundant processing
See merge request OpenMW/openmw!3680
2023-12-26 09:39:47 +00:00
Andrei Kortunov
1ca2a0ef66
Store generated UI by pointer to avoid redundant processing
2023-12-24 20:35:19 +04:00
Andrei Kortunov
81f7149f42
Use a multiplication sign for custom resolution
2023-12-24 19:00:16 +04:00
Andrei Kortunov
e6690bbcc7
Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
2023-12-19 19:58:52 +04:00
Andrei Kortunov
2e041073fc
Move *.ui files for different applications to different folders
2023-12-19 15:21:08 +04:00
Andrei Kortunov
ca19f7006c
Make hardcoded strings in Launcher and Wizard localizable
2023-12-11 12:02:43 +04:00
Alexei Kotov
53f5e4dd3c
Merge branch 'highlight_color' into 'master'
...
Highlight new items in launcher by text formatting, not by color
See merge request OpenMW/openmw!3625
2023-12-03 20:29:25 +00:00
Evil Eye
8d8e970aba
Merge branch 'message_formatting' into 'master'
...
Do not include formatting spaces to localizable strings
See merge request OpenMW/openmw!3624
2023-12-01 15:36:22 +00:00
Andrei Kortunov
c5b16d1ba2
Do not include formatting spaces to localizable strings
2023-11-30 13:06:50 +04:00
Andrei Kortunov
5e96825e6b
Highlight new items in launcher by text formatting, not by color
2023-11-29 11:14:44 +04:00
Andrei Kortunov
623510c073
Use multiplication character in the launcher instead of 'x'
2023-11-28 22:47:27 +04:00
Andrei Kortunov
81a6a7cd2f
Rework resolution selection (feature 7709)
2023-11-28 22:22:34 +04:00
Andrei Kortunov
c945735f3b
Fix resolution dropdown in the launcher
2023-11-26 19:07:38 +04:00
elsid
f08ab9af56
Use SDL2 generate cmake files to find the package
2023-11-24 15:56:54 +01:00
elsid
8f27178a0b
Use settings values for navigator in the launcher
2023-11-12 16:33:44 +01:00
Alexei Kotov
bdc019647a
Merge branch 'figure-skaters' into 'master'
...
Use accumulated movement when possible
Closes #5062
See merge request OpenMW/openmw!3549
2023-11-07 03:01:56 +00:00
Mads Buvik Sandvei
9c93d907dc
Settings page entry for the "player movement ignores animation" setting.
2023-11-02 19:30:51 +01:00
elsid
f4efbcc1c4
Use settings values for Shadows settings
2023-11-02 16:36:44 +01:00
elsid
dcd81d026f
Use settings values for Video settings
...
* Convert window mode, vsync mode into enums, screenshot type into a struct.
* Add missing doc for screenshot type.
2023-10-27 14:31:23 +02:00
Alexei Kotov
f68bd3ba97
Launcher: Improve directory appending UX and heuristics (bug #7502 )
...
- Recognize more asset directories and omwgame files
- Always let the user append the selected directory
- Automatically pick the user-selected directory if it's the only valid directory
- Add a caption to directory selection dialog, properly handle cancellation
2023-10-22 16:20:19 +03:00
elsid
a84e412a37
Use settings values for Sound settings
2023-10-13 12:58:58 +02:00
elsid
08902371b4
Use settings values for Shaders settings
2023-10-12 20:43:53 +02:00
Petr Mikheev
f260fa006e
Show OpenMW version and Lua API revision in documentation.
2023-08-31 20:56:02 +02:00
Alexei Kotov
5e5a25f901
Show BA2 files in the launcher
2023-08-17 02:12:31 +03:00
psi29a
3151452e25
Merge branch 'pandorasbox' into 'master'
...
Launcher, content selector: support ESM4 files, allow using game files as addon files
See merge request OpenMW/openmw!3219
2023-08-08 08:54:10 +00:00
Andrei Kortunov
d3d7a663c6
Move some objects instead of copying
2023-07-31 20:43:46 +04:00
AnyOldName3
34fcfb63cf
Eliminate redundant version checks
2023-07-20 00:43:56 +01:00
Alexei Dobrohotov
d589b46f96
Launcher, content selector: support ESM4 files
...
Cell name loader ignores ESM4 files
2023-07-11 05:31:58 +03:00
elsid
f6fce5ee15
Cleanup includes
2023-07-08 11:28:56 +02:00
elsid
86e5b94ef6
Convert setting value int to CollisionShapeType on initialization
2023-07-01 00:59:35 +02:00
Evil Eye
9214ffb50b
Replace some empty constructors and destructors with default
2023-05-29 13:37:19 +02:00
psi29a
4fd8ed8f13
Merge branch 'qt_scene' into 'master'
...
Migrate from GraphicsWindowQt to QOpenGLWidget
See merge request OpenMW/openmw!2895
2023-04-11 10:51:07 +00:00
elsid
ec01d3cd0c
Use typed settings storage in the launcher settings page
2023-04-11 00:19:58 +02:00
elsid
121b75212f
Move SettingsPage settings related functions to anonymous namespace
2023-04-11 00:02:41 +02:00
Andrei Kortunov
8df7ce545e
Migrate from GraphicsWindowQt to QOpenGLWidget
2023-04-05 19:43:42 +04:00
fredzio
37c4587ca4
Display directories that contains omwscripts.
...
Display newly added omwscripts as new.
2023-03-30 21:32:01 +02:00
elsid
9815f930d9
Setup launcher configuration manager and logging before initializing UI
2023-03-21 21:29:57 +01:00
elsid
de112a2950
Simplify converting file names into absolute file paths
2023-03-21 09:34:27 +01:00
elsid
d18d860ea2
Catch and log exceptions on loading cell names
...
Instead of terminating the process.
2023-03-21 09:34:27 +01:00
elsid
5a691380ea
Use single set to check presence of archives
2023-03-21 09:34:27 +01:00
elsid
b1765cf05a
Do single lookup for widget item
2023-03-21 09:34:27 +01:00
elsid
62536d5cf7
Use static QFile::exists instead of creating object
2023-03-21 09:34:27 +01:00
elsid
ecb9c35268
Remove unused variable
2023-03-21 09:34:27 +01:00
elsid
9280957581
Save original paths
...
If directory path is a symlink it should be showed and written to config files
as is. Between launcher runs the resulting canonical path may be different so
the resolved path becomes outdated.
2023-03-21 01:37:26 +01:00
elsid
ff7fcd752a
Use set to track visited directories instead of removing duplicates
2023-03-21 01:22:41 +01:00
elsid
1857d8a68c
Use target_compile_options to add --coverage
2023-03-10 15:34:08 +01:00
elsid
cc066efa11
Fix identation in CMakeLists.txt
2023-03-10 15:28:06 +01:00
psi29a
eca26e8b18
Merge branch 'Support-BA2-file-format' into 'master'
...
Support ba2 file format
See merge request OpenMW/openmw!2787
2023-03-08 22:00:43 +00:00
Cédric Mocquillon
c1fbe90953
Handle GNRL case of ba2 format
2023-03-02 18:19:58 +01:00
Andrei Kortunov
be488649c3
Add support for non-adaptive VSync (feature 7129)
2023-02-26 15:19:19 +04:00
Andrei Kortunov
7e2aedf637
Add an initial Qt6 support
2023-02-06 18:38:59 +04:00
psi29a
aee7716c3a
Merge branch 'launcher_typed_settings' into 'master'
...
Typed launcher settings
See merge request OpenMW/openmw!2650
2023-02-04 23:41:59 +00:00
elsid
c44bc5ade5
Setup logging with properly initialized configuration manager
...
Default constructed instance may provide different paths from initialized one.
2023-01-30 09:30:55 +01:00
elsid
8be2fc9fd7
Stop updating navmeshtool progress on first bad message
2023-01-27 19:10:53 +01:00
elsid
cf75363290
Typed launcher settings
...
QMultiMap is not clear about what settings exist and it's not efficient way to
access them after they are loaded.
2023-01-27 12:42:05 +01:00
elsid
b1d0ee1f1b
Load only launcher.cfg from user folder
...
There is no other launcher.cfg.
2023-01-27 12:41:33 +01:00
elsid
0961720835
Join path components using path::operator/ instead of string::operator+
2023-01-27 01:07:15 +01:00
florent.teppe
3780033837
Reverts Cell name to a string
2023-01-21 18:39:42 +01:00
psi29a
757cf7098d
Merge branch 'minor-cleanup' into 'master'
...
Use dedicated function to convert QString to std::filesystem::path
See merge request OpenMW/openmw!2636
2023-01-21 16:36:07 +00:00
AnyOldName3
438b03908d
Use dedicated function to convert QString to std::filesystem::path II
...
Some missed conversions identified in review.
2023-01-20 23:39:30 +00:00
AnyOldName3
f757ac642a
Use dedicated function to convert QString to std::filesystem::path
...
I noticed this while reviewing something else and trying to find the
function to recommend using it.
2023-01-19 22:36:51 +00:00
elsid
dd89403df0
Move ensureUtf8Encoding to named namespace
...
To follow https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf21-dont-use-an-unnamed-anonymous-namespace-in-a-header
Add QtGlobal include to define QT_VERSION and QT_VERSION_CHECK macroses before
they're used.
2023-01-18 22:58:35 +01:00
Andrei Kortunov
0864d997d0
Add missing includes
2023-01-15 20:09:56 +04:00
Andrei Kortunov
902c48d1bb
Rework launcher UI
2023-01-15 12:36:08 +04:00
jvoisin
c90d22f3b2
Replace usage of QRegularExpression::anchoredPattern with ^
and $
...
Using `^` and `$` is shorter than `QRegularExpression::anchoredPattern`,
and even allows us in one case to get rid of a trailing `.*`.
2023-01-12 22:52:00 +01:00
Andrei Kortunov
bfcbc2350d
Handle UTF-8 in Qt streams in the Qt6-compatible way
2023-01-12 15:39:50 +04:00
Andrei Kortunov
307a60e87c
Migrate from QRegExp to more modern QRegularExpression
2023-01-11 11:21:46 +04:00
glassmancody.info
9a4977d334
rain occlusion
2023-01-06 22:23:03 -08:00
Petr Mikheev
1869aeae5c
Move some of player controls logic from C++ to Lua
2022-12-28 22:04:19 +01:00
florent.teppe
2c30575b3b
CellName is now a RefId, makes more sense that way.
2022-12-27 19:16:21 +01:00
AnyOldName3
66b8d4fb29
Add a setting to control coverage adjustment
...
With it on, which was always the case before this setting was added,
vanilla content and poorly-made mods will look acceptable, but well-made
mods will have alpha-tested meshes appear to grow and potentially gain a
weird outline as they get further away.
With it off, which replicates the 0.46 behaviour, well-made mods will
look really good, but vanilla content and poorly-made mods will have
alpha-tested meshes shrink as they get further away.
It's been bugging me that this was forced on since 0.47 released, and
I'd hoped to figure out a solution for automatic detection at some point
before 0.48 branched off, but I didn't, so now this is what we're
getting to have Tamriel Rebuilt look right.
2022-12-09 00:22:08 +00:00
Evil Eye
a648e4cc11
Add option to restore non-MCP Calm spell behaviour
2022-11-23 20:59:37 +01:00
elsid
843753da14
Remove unused includes
2022-10-09 16:44:18 +02:00
elsid
624d8bc931
Support unsigned settings values
2022-10-04 01:34:53 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base
2022-09-22 21:35:26 +03:00