summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Settings.cpp
AgeCommit message (Collapse)Author
2026-05-07Core: Implement automatic symbol demanglingAmber Brault
2026-04-18Merge pull request #14604 from cristian64/fusion_qgroupbox_style_qt660Dentomologist
DolphinQt: Use custom style for `QGroupBox` only with Qt 6.6.0+.
2026-04-18Merge pull request #14565 from SuperSamus/cpp-argument-move-referenceJosJuice
Improve usage of std::move and const references parameters
2026-04-18DolphinQt: Use custom style for `QGroupBox` only with Qt 6.6.0+.cristian64
This is a follow-up to 3e788399b6f608a270fe0 (#14153), where a custom style for `QGroupBox` widgets was introduced when the Fusion style is used. However, it was overlooked that the custom QSS does not get along well with Qt versions older than 6.6.0; on Windows, Qt 6.5.1 is used. | With Qt 6.5.3 | With Qt 6.11.0 | | ------------- | -------------- | | <img alt="Dolphin with Qt 6.5.3" title="Dolphin with Qt 6.5.3" src="https://github.com/user-attachments/assets/9d341eef-0438-44c0-b341-8d0a53d9eb09" /> | <img alt="Dolphin with Qt 6.11.0" title="Dolphin with Qt 6.11.0" src="https://github.com/user-attachments/assets/1bc793d2-c958-413b-b99c-51d064104a75" /> | Compile checks have been added now to only apply the custom style if Qt 6.6.0 (or newer) is used.
2026-04-17Improve usage of std::move and const references parametersMartino Fontana
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`. Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move. Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
2026-04-03DolphinQt: Custom style for QGroupBox in Fusion.cristian64
Fusion is the fallback style that Qt provides in systems that do not offer a OS-specific style. Basically, anything that is not Windows, macOS, or KDE (NOTE: Since #13919, users on these systems can opt in to Fusion too). Its default style for `QGroupBox` is not very conventional, and has been customized to align with more popular designs. | Before | After | | --- | --- | | ![Default QGroupBox style in Fusion](https://github.com/user-attachments/assets/b9f63e21-4282-4a61-a93c-93806ee589a4) | ![Custom QGroupBox style in Fusion](https://github.com/user-attachments/assets/1c8f7f1e-11a2-4712-b1b2-c5e5045b120e) |
2026-03-13GameList: Add status bar with game countDentomologist
The status bar shows the number of games in your collection. If any games are hidden by the platform, region, or search filters it will also show how many games are visible and how many are filtered. The visibility of the status bar can be toggled from the menu by selecting `View`->`Show Game Count`. Implements https://bugs.dolphin-emu.org/issues/9517.
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2026-01-17Fix various typos and spelling mistakesSintendo
2025-11-16Merge pull request #13689 from JosJuice/lock-core-any-threadJosJuice
Core: Let any thread call previously host-thread-only functions
2025-11-14DolphinQt: Add Fusion-based styles.cristian64
Fusion is one of the built-in styles that Qt ships with, and that is generally supported in all platforms and handles custom color palettes properly. The color palettes have been borrowed from the Dolphin Memory Engine buddy application. The new styles are: - **Fusion Light** - **Fusion Dark Gray** - **Fusion Dark** A demo of each style on Windows: | System | Light | Dark | Fusion Light | Fusion Dark Gray | Fusion Dark | | ------ | ----- | ---- | ------------ | ---------------- | ----------- | | <img width="1920" height="1080" alt="Dolphin Emulator System style" src="https://github.com/user-attachments/assets/7f55a19d-d9a1-43d1-a435-1e1d5b29abe2" /> | <img width="1920" height="1080" alt="Dolphin Emulator Light style" src="https://github.com/user-attachments/assets/4c70f2f9-16b8-4777-b72b-55b2dffcd1e4" /> | <img width="1920" height="1080" alt="Dolphin Emulator Dark style" src="https://github.com/user-attachments/assets/5e669477-d2a5-4d19-b2c5-a2ed9bb1e6fe" /> | <img width="1920" height="1080" alt="Dolphin Emulator Light Fusion style" src="https://github.com/user-attachments/assets/b1f95c47-0691-4809-bd74-99e913c17684" /> | <img width="1920" height="1080" alt="Dolphin Emulator Dark Gray Fusion style" src="https://github.com/user-attachments/assets/c9d30aa3-f941-4fc5-806f-d3fbd2cae0cc" /> | <img width="1920" height="1080" alt="Dolphin Emulator Dark Fusion style" src="https://github.com/user-attachments/assets/123d2125-e126-4e8c-aa42-793ded8ffacc" /> | > [!NOTE] > Notice that the **Light** and **Dark** styles remain available only on > Windows due to limitations on how styles in the various platforms > handle (or mishandle) custom color palettes. > [!IMPORTANT] > Due to [`KDE-511547`](https://bugs.kde.org/show_bug.cgi?id=511547), > after having used Breeze (default style in Plasma systems), top tool > bars in tools areas will lose their correct background color; a > restart will be required in order to get the updated color in the main > window. > > UPDATE: The issue has been fixed upstream and should be available in > KDE Plama 6.5.3 and newer.
2025-11-14DolphinQt: Define tool tip padding as factor of font size.cristian64
2025-11-10Core: Remove IsHostThreadJosJuice
The core no longer cares which thread is the host thread. Cleaning up Android's HostThreadLock is left for another PR, in part because the HostThreadLock in NativeConfig.cpp still serves a purpose, and in part to make any issues easier to bisect.
2025-11-09Core: Make AddOnStateChangedCallback use HookableEvent.Jordan Woyak
2025-11-06Common: Remove the string parameters from the HookableEvent interface.Jordan Woyak
2025-11-05InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use ↵Jordan Woyak
Common::HookableEvent.
2025-10-27WiiPane: Use ConfigControls where applicableJoshua Vandaële
2025-08-01Merge pull request #13776 from jordan-woyak/win-dark-mode-stylesAdmiral H. Curtiss
DolphinQt: Fix Windows dark theme when using external stylesheets.
2025-07-21DolphinQt: Stop re-enabling Code widget when toggling debug modeAmphitryon
It is useful enough for the Code widget to be enabled the first time debugging is enabled, but it should not be re-enabled every time the setting is toggled off and then back on. This also ensures that the interface is consistent if debugging is enabled without using the checkbox.
2025-06-25DolphinQt: Fix Windows dark theme when using external stylesheets.Jordan Woyak
2025-05-07HotkeyManager: Add HK_TOGGLE_WII_SPEAK_MUTESepalani
2025-04-25Settings: Remove ConfigChangedCallback on shutdownDentomologist
2025-03-26AudioPanel: Refactor to use Config system. Some options were changed to a ↵TryTwo
different format, for easier compatibility. Removed VolumeChanged signal, as ConfigChanged will trigger what is needed. Only applies UpdateSoundStream to things that can change during emulation. Settings::SetVolume might no longer be used, but left it in.
2025-01-30DolphinQt: Use global settings object also for debugger settings.cristian64
A number of settings in the `debugger` group were wrongly using a newly constructed `QSettings` object instead of the singleton object that `GetQSettings()` provides. This made the application create a spurious, extra configuration file in the user directory: ``` ~/.config/Dolphin Emulator/dolphin-emu.conf ``` Notice that, by default, the application configuration files are stored in `~/.config/dolphin-emu`; not in `~/.config/Dolphin Emulator`.
2025-01-01Simplify `std::find` with `Common::Contains`mitaclaw
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp). The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2024-10-17Simplify `std::remove` with `std::erase`mitaclaw
`std::erase` is a replacement for the remove-erase idiom. Changes to `OpenModeToAndroid` inadvertently revealed that the prior implementation had UB (potentially deleting the end iterator). This is now fixed.
2024-09-27DolphinQt: Remove unneeded Win32 coderobxnano
Dolphin already uses QStyleHints::colorScheme to detect dark mode, so this code is now redundant.
2024-07-29GeneralPane: Add BalloonTip to cheats checkboxDentomologist
2024-06-26FrameAdvance: Fix continuous frame advancing while the debug UI is open. ↵TryTwo
Blocks signals from being spammed to update the UI.
2024-06-23DolphinQt: fix two -Wunused-lambda-capture warningsTillmann Karras
Also clean up signals a bit.
2024-06-06Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't definedJosJuice
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the code base, reducing visual clutter. In particular, needing an ifdef for each call to IsHardcodeModeActive was annoying to me. This also reduces the risk that someone writes code that accidentally fails to compile with USE_RETRO_ACHIEVEMENTS disabled. We could cut down on ifdefs even further by making HardcodeWarningWidget always exist, but that would result in non-trivial code ending up in the binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out of this PR. It's not a lot of code though, so I might end up revisiting it at some point.
2024-05-31InterfacePane: Add BalloonTip to cursor visible radio buttonsDentomologist
2024-05-31InterfacePane: Add BalloonTip to lock mouse checkboxDentomologist
2024-05-31InterfacePane: Add BalloonTip to top window checkboxDentomologist
2024-05-31InterfacePane: Add BalloonTip to theme comboboxDentomologist
2024-05-02Disabled Hardcore Mode when Achievements disabledLillyJadeKatrin
Bugfix for hardcore-disabled items being disabled when hardcore was true but achievement integration was false, which should mean hardcore is effectively disabled. Now everything checks the IsHardcoreModeActive method in AchievementManager which processes the setting AND the game state to determine if hardcore mode is actually active.
2023-12-16Merge pull request #11497 from vyuuui/debugger_assembler_uiTilka
Built-in assembler for debugger interface
2023-12-13Parser and Assembler implementationsvyuuui
2023-12-02Disable Debug Mode in hardcore modeLillyJadeKatrin
Debug Mode gives players direct read and write access to memory, which could be used to completely manipulate RetroAchievements logic and therefore is not allowed in hardcore mode.
2023-11-05DolphinQt/Settings: Add option to force the light or dark style on Windows.Admiral H. Curtiss
2023-11-05DolphinQt/Settings: Split setting of the user style into two functions.Admiral H. Curtiss
This makes it so that if you just want to reload the current style (eg. on program start, or in response to a system event), you don't need to know the name of the currently selected user style. It's also more consistent with the way the 'userstyle/enabled' flag works.
2023-08-12DolphinQt: Adjust panel-specific colors and syntax highlighting for dark theme.Admiral H. Curtiss
2023-08-12DolphinQt: Set the application palette to a matching one when the Windows ↵Admiral H. Curtiss
dark theme is in use.
2023-08-12DolphinQt: Switch dark/light theme when Windows theme changes.Admiral H. Curtiss
2023-08-12DolphinQt: Auto-load embedded dark theme on Windows if the user uses a ↵Admiral H. Curtiss
system-wide dark theme.
2023-08-12DolphinQt: On Windows, detect whether the system is using a dark theme.Admiral H. Curtiss
Co-authored-by: FearlessTobi <thm.frey@gmail.com>
2023-06-02Core: Assert that only the Host thread may call PauseAndLock().Admiral H. Curtiss
2023-04-17Only force-show the code widget when first enabling the debuggerPokechu22
Before, any call of Settings::SetDebugModeEnabled(true) would show it. This means that if the debugging UI is enabled, but the user manually closed the code widget, then toggling any option on the interface pane (such as "Pause on Focus Loss") would cause the code widget to reappear. Additionally, closing and reopening dolphin did not call SetDebugModeEnabled, so the code widget did not reappear in that case (it only appeared after touching the interface pane). This is a bit silly, so now only enabling the debugger does it. This also somewhat resolves an inconsistency introduced by the previous commit: prior to it, --debugger would call SetDebugModeEnabled(true) and thus show the code pane; after these commits, it does not, as it acts like a config change. This is a behavior difference, but not a particularly important one.
2023-01-31Cleanup headersScott Mansell
2022-11-06AudioCommon: Pass Core::System to AudioCommon functions.Admiral H. Curtiss