summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
AgeCommit message (Collapse)Author
2026-03-15GeneralWidget: Add protections against invalid values in BackendWarning()OatmealDome
2025-10-15Merge pull request #13953 from TryTwo/add_osd_tabJMC47
Qt Settings: Transfer OSD settings to a new OSD pane.
2025-10-13VideoBackend: Rename GetName to GetConfigNameDentomologist
Make the function name more explicit and a better match for GetDisplayName. Change NAME to CONFIG_NAME while I'm at it.
2025-10-10Qt Setting Panes: Remove original location of options transferred to the OSD ↵TryTwo
pane.
2025-06-14DolphinQt: Move graphics config to main Settings window.Jordan Woyak
2025-06-07DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an ↵Jordan Woyak
event filter.
2025-05-02Settings: Bugfix. Remove Aspect Ratio combobox signal so it doesn't trigger ↵TryTwo
a settings changed save.
2025-04-03CoreTiming: Add a setting to use Common::PrecisionTimer.Jordan Woyak
2025-03-10DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage.Jordan Woyak
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2025-01-07Qt, Config controls system: Remove signal block so signals can refresh the ↵TryTwo
enabled status of certain options when a new config is loaded (such as on starting a game). Blocks previously unwanted behavior with a new safety check. QCheckBox::toggled and other similar signals are used to save changes and to update widget status (such as enabled).. OnConfigChanged needs to load new values and trigger widget updates, but the new value shouldn't trigger a save. A save is unnecessary (the config has the correct values and the UI is being updated to those values) and it'd trigger another ConfigChanged signal. This commit blocks the save without blocking the signal entirely.
2024-12-10Add GFX property tabs to game properties window, allowing them to be set to ↵TryTwo
the user game ini. Additionally, refactor ConfigWidgets to reduce duplication. Refactor GameConfigWidget to use config system. Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system. Supports multiple game properties being open at once. Supports editing while a game is playing, but the options only save and update the active game when the window is closed. Right-clicking will remove a property from the game ini.
2024-11-03GeneralWidget: Recommend default video backend in tooltipDentomologist
Recommend the platform's default video backend in the Backend tooltip instead of always recommending OpenGL.
2024-10-04Partially revert "Revert "Audit uses of IsRunning and GetState""JosJuice
This reverts the revert commit bc67fc97c39628c76a4dbca411b0e8a9bfaf726a, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert 72cf2bdb87f09deff22e1085de3290126aa4ad05. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.
2024-06-26Revert "Audit uses of IsRunning and GetState"JosJuice
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-05-01Core::IsRunning: Avoid Global System Accessormitaclaw
2024-04-08Core::GetState: Avoid Global System Accessormitaclaw
2024-03-24DolphinQt: Tweak the aspect ratio setting descriptionJosJuice
With this, I intend to make it clearer that Auto, Force 4:3, Force 16:9 and Custom are really the same thing, just with the aspect ratio of the simulated TV being selected in a different way. I also extended the introduction in a way I feel will clarify things but which you are welcome to bikeshed :) I was thinking of this during the review of 41b19e262f, but wanted to put it in a separate PR as to avoid blocking it on bikeshedding. I'm a bit unsure what to do about the word "analog" in "analog TV". I felt that repeating it for each of these options would be too repetitive. I suppose there's a reason why we used the word originally, but digital TVs do give you basically the same aspect ratio for GC/Wii games as analog TVs. (Of course, whether it's 4:3-like or 16:9-like depends on what aspect ratio you set in the TV's settings, but that's the case for widescreen CRTs too.)
2024-02-29Add custom relative and raw (squared pixels) aspect ratio modesFiloppi
2023-12-28Qt: Handle Overridden Graphics BackendPatrick Ferry
This fixes an issue where the game specific graphics backend would be saved as the global setting after playing a game. This also now displays the currently running graphics backend when looking in the graphics configuration window.
2023-12-18Video: implement custom aspect ratio support (already exposed to Qt).Filoppi
This also renamed some variables/functions.
2023-11-04DolphinQt: Remove unnecessary qOverloadsDentomologist
qOverload is used to disambiguate pointers to overloaded functions, but most of the usages in the code base were with non-overloaded functions.
2023-08-12DolphinQt: Set window decorations for all top-level QWidgets.Admiral H. Curtiss
2023-04-27Qt: Rename GraphicsRadioInt to ConfigRadioIntDentomologist
GraphicsRadioInt is used by the panes in the Graphics config window to create radio buttons that change their associated config setting, and update their own state when something else changes the config setting. Despite its current name nothing about this class is particular to the Graphics window, so renaming it to ConfigRadioInt better reflects its purpose. This should also make it less confusing when ConfigRadioInts are added to other config panes.
2023-04-27Qt/GeneralWidget and GraphicsWidget: Remove unused member variableDentomologist
m_xrr_config was used by the GeneralWidget::GetAvailableResolutions function to get the list of supported fullscreen resolutions when HAVE_XRANDR was set. aa4088a removed the ability to set that resolution in the UI, leaving the GetAvailableResolutions function unused. m_xrr_config is initialized in MainWindow which still uses it to toggle fullscreen, but the references in GeneralWidget and GraphicsWidget (which just ferried m_xrr_config from MainWindow to GeneralWidget) are now unnecessary and removed in this commit.
2023-04-25Qt: Rename GraphicsChoice to ConfigChoiceDentomologist
GraphicsChoice is used by the panes in the Graphics config window to create combo boxes that change their associated config setting, and update their own state when something else changes the config setting. Despite its current name nothing about this class is particular to the Graphics window, so renaming it to ConfigChoice better reflects its purpose. This should also make it less confusing when ConfigChoices are eventually added to the other config windows.
2023-04-21Qt: Rename GraphicsBool to ConfigBoolDentomologist
GraphicsBool is used by the panes in the Graphics config window to create checkboxes that change their associated config setting, and update their own state when something else changes the config setting. Despite its current name nothing about this class is particular to the Graphics window, so renaming it to ConfigBool better reflects its purpose. This should also make it less confusing when ConfigBools are eventually added to the other config windows.
2022-11-23Improve FPS/VPS Counting and Revamp AppearanceSam Belliveau
2022-08-08Resolve "implicit capture of ‘this’ via ‘[=]’ is deprecated in ↵Zopolis4
C++20" warning
2022-05-16Treat changing the graphics adapter the same as changing the backendPokechu22
This results in the list of available antialiasing modes being updated; before, it would only show the modes available for the adapter that was selected when the graphics window was opened (or the backend was last changed). The list of available modes is updated by `GraphicsWindow::OnBackendChanged`'s call to `VideoBackendBase::PopulateBackendInfoFromUI`, and then `EnhancementsWidget::LoadSettings` updates the UI. Both of these are connected to the `GraphicsWindow::BackendChanged` signal.
2021-12-10DolphinQt: Remove 5~5~5~ typosPokechu22
2021-07-09GeneralWidget: Convert Adapter tooltip to BalloonTipDentomologist
Use a BalloonTip to inform the user when their selected backend (i.e. OpenGL or NULL) doesn't support adapters, instead of using the default tooltips.
2021-07-06Merge pull request #9862 from delroth/spdx-tagsMai M
Use SPDX for Dolphin licensing info
2021-07-06Merge pull request #8416 from JosJuice/shader-compilation-namesLéo Lam
Change the names for shader compilation settings
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-05-12GeneralWidget: Fix Backend description grammarDentomologist
Unify Backend description string for Windows and other platforms.
2021-05-12GeneralWidget: Fix Log Rendertime description grammarDentomologist
2021-04-10Change the names for shader compilation settingsJosJuice
2020-12-31Rename "Use Fullscreen" setting to "Start in Fullscreen"Filippo Tarpini
The name was confusing as changing it at runtime would not change the window to fullscreen, as it effectively only affects the start of the emulation. Also blocked the ability to change it when the emulation is running, to be more inline with other similar settings, like "Render to main Window".
2020-11-30Qt: Add missing tr calls for tooltip descriptionsLéo Lam
2020-11-28DolphinQt: Add tooltip support to General Graphics tabiwubcode
2020-10-21VideoCommon: Get rid of the global g_available_video_backendsLéo Lam
Replace it with a function-local static that is initialized on first use. This gets rid of a global variable and removes the need for manual initialization in UICommon. This commit also replaces the weird find_if that looks for a non-null unique_ptr with a simple "is vector empty" check considering that none of the pointers can be null by construction.
2020-05-22Migrate video backend setting to the new config systemLéo Lam
Fixes https://bugs.dolphin-emu.org/issues/12087
2020-04-28DolphinQt: Use qOverload where applicableLioncash
Provides the same behvaior, but in a much more concise manner.
2019-10-18DolphinQt: Mark ubershader setting names as translatableJosJuice
These were marked as translatable in DolphinWX but not DolphinQt, yet both DolphinWX and DolphinQt tried to fetch translations for them. This meant that translations worked in both DolphinWX and DolphinQt back when DolphinWX existed, but that translations stopped working in DolphinQt once DolphinWX was removed (because the removal of DolphinWX triggered the removal of the strings from the .po files).
2019-08-20Enable adapter combo on emulation state change only if adapters are ↵Silent
supported by current backend
2019-07-30DolphinQt: Replace QStringLiteral with alternatives where applicableLioncash
QStringLiterals generate a buffer so that during runtime there's very little cost to constructing a QString. However, this also means that duplicated strings cannot be optimized out into a single entry that gets referenced everywhere, taking up space in the binary. Rather than use QStringLiteral(""), we can just use QString{} (the default constructor) to signify the empty string. This gets rid of an unnecessary string buffer from being created, saving a tiny bit of space. While we're at it, we can just use the character overloads of particular functions when they're available instead of using a QString overload. The characters in this case are Latin-1 to begin with, so we can just specify the characters as QLatin1Char instances to use those overloads. These will automatically convert to QChar if needed, so this is safe.
2019-07-26Factorize software renderer backend switching warning to be fetched from a ↵Silent
new GetWarningMessage in video backend - will be needed for DX11.1 feature set warnings
2019-06-26Reorder graphics configMike Kuijl