summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/MainWindow.h
AgeCommit message (Collapse)Author
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-02-15DolphinQt: Add Triforce tab to main settings window.Jordan Woyak
2026-01-15MenuBar: Add entries to open the config and cache foldersJoshua Vandaële
2025-11-25USB: Add emulated Logitech USB MicrophoneBiendeo
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com>
2025-10-10Movie Window: Move customization options from Menu Bar to OSD pane, but add ↵TryTwo
options to toggle the window and to open the OSD pane. Add new setting to show/hide the Movie Window.
2025-09-07DolphinQt: Center dialogs on top-level parent window.cristian64
The `QtUtils::AdjustSizeWithinScreen()` function now centers the widget on their parent window after the widget's size is adjusted. This is required in some desktop environments (generally on Linux systems) to ensure that the just-resized widget remains aligned with its parent window. The creation of the **Cheats Manager** dialog is now deferred to first show, as creating it within the main window's constructor prevents the dialog from knowing the real position of its parent window, which is only properly calculated on first show. For the same reasons, the analytics prompt is now shown only when the application is ready (i.e. when the main window has been shown). | Before | After | | ------ | ----- | | <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced analytics prompt" title="[Dolphin Emulator] Misplaced analytics prompt" src="https://github.com/user-attachments/assets/c3e43b3b-cf79-4398-b531-7de6068c583e" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered analytics prompt" title="[Dolphin Emulator] Centered analytics prompt" src="https://github.com/user-attachments/assets/a10d06d9-7438-4032-b96c-dfcb48826349" /> | | <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Settings dialog" title="[Dolphin Emulator] Misplaced Settings dialog" src="https://github.com/user-attachments/assets/f35b10ee-4f07-48d4-86f9-2537ad5ca7ca" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Settings dialog" title="[Dolphin Emulator] Centered Settings dialog" src="https://github.com/user-attachments/assets/33e37237-77a4-44f6-a0e2-b709f65b672b" /> | | <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Cheats Manager dialog" title="[Dolphin Emulator] Misplaced Cheats Manager dialog" src="https://github.com/user-attachments/assets/1fbd3836-5639-4d5a-b57e-e2e21f21c9db" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Cheats Manager dialog" title="[Dolphin Emulator] Centered Cheats Manager dialog" src="https://github.com/user-attachments/assets/3f2b1b50-de16-49b7-bac4-c444c6cab0bc" /> |
2025-08-17FIFOPlayerWindow: Trigger destructor on Dolphin shutdownDentomologist
Make MainWindow::m_fifo_window a unique_ptr to ensure its destructor is triggered when MainWindow is destroyed. FIFOPlayerWindow doesn't set MainWindow as its parent in order to prevent raising MainWindow when focusing FIFOPlayerWindow. This avoids MainWindow covering up RenderWidget when, e.g., trying to use the object range feature to pinpoint the index of a particular object. As a consequence, unlike most QObjects FIFOPlayerWindow wasn't destroyed when its parent widget was since it didn't have one.
2025-06-14DolphinQt: Move graphics config to main Settings window.Jordan Woyak
2025-06-10MainWindow - Avoid excessive emulation state changesLillyJadeKatrin
Updates the Hardcore Changed callback to only signal EmulationStateChanged if the new Hardcore Mode setting is different from the previous one.
2025-06-07Merge pull request #13522 from ↵Jordan Woyak
tygyh/Enforce-overriding-destructor-style-Core&UnitTests Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-04DolphinQt: Move "Controllers" to main settings window.Jordan Woyak
2025-05-07IOS/USB: Emulate Wii Speak (OpenAL)Sketch
Credits to @degasus and shuffle2 (godisgovernment): https://github.com/degasus/dolphin/tree/wiispeak
2025-05-01Make overriding explicit and remove redundant virtual specifiers on ↵Dr. Dystopia
overriding destructors - Core & UnitTests
2025-04-25MainWindow: Fix use-after-free during shutdownDentomologist
Remove ConfigChangedCallback in MainWindow's destructor to prevent the callback from accessing the destroyed MainWindow afterward. After MainWindow is destroyed UICommon::Shutdown calls LogManager::Shutdown which ultimately triggers any remaining callbacks. This resulted in calling MainWindow::OnHardcoreChanged, which crashed in debug builds and didn't have any obvious effect in release builds.
2025-04-13Add RAIntegration event handlerLillyJadeKatrin
Some refactoring done to hardcore toggling so that it's more readily available for the toggle hardcore event.
2024-10-24MainWindow: Avoid Global System Accessormitaclaw
2024-09-27DolphinQt: Remove unneeded Win32 coderobxnano
Dolphin already uses QStyleHints::colorScheme to detect dark mode, so this code is now redundant.
2024-06-23MainWindow: Remove Show() and redistribute its logic to other places.TryTwo
bugfix: SetQWidgetWindowDecorations(this); not called before show() for Windows darkmode titlebars. The actual call to (QWidget) show() needed to come sooner. Show() was originally left alone, but with other checks needing to move with (QWidget) show(), this function became less useful. Show() was originally created to fix the render widget appearing behind the main window, but that appears to work fine in this iteration.
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-02Added Hardcore Warning WidgetLillyJadeKatrin
This widget will be used in several places to notify the player that a feature has been disabled because hardcore mode is on. It includes a button to open the Achievement Settings so that Hardcore Mode may be turned off. Also included is the framework required to open AchievementsWindow specifically on the Settings tab.
2023-08-13Merge pull request #12066 from Pokechu22/main-window-right-click-menuJMC47
Disable right-click menu on main window
2023-08-12DolphinQt: Switch dark/light theme when Windows theme changes.Admiral H. Curtiss
2023-08-11Disable right-click menu on main windowPokechu22
Before, right-clicking on the toolbar would allow toggling all dock widgets, including the debugger ones even when they are disabled. (See https://doc.qt.io/qt-5/qmainwindow.html#createPopupMenu for this behavior, and https://bugs.dolphin-emu.org/issues/13306 for an example of where it caused issues.)
2023-06-08VideoCommon: Pass WindowSystemInfo to InitBackendInfoPokechu22
2023-06-01Added AchievementsWindow QDialogLillyJadeKatrin
AchievementsWindow is the dialog box that will eventually contain the settings and progress data for RetroAchievements on Dolphin. This adds the barebones dialog, and connects it to MainWindow's MenuBar.
2023-04-28Feature: Emulate Disney Infinity BaseJoshua de Reeper
Create, Load and Clear Infinity figures on an emulated base in the UI
2023-01-31Fix warningScott Mansell
2023-01-22Emulate Skylanders within DolphinJoshua de Reeper
Ported the code from RPCS3, with improvements made to the handling of control messages and audio transfers, Co-Authored with @mandar1jn Missing new line chars Co-Authored-By: mandar1jn <49076509+mandar1jn@users.noreply.github.com>
2023-01-16MenuBar: Add action which opens the user folderOatmealDome
2022-11-21DolphinQt: Add GBA TAS input windowJosJuice
When emulated GBAs were added to Dolphin, it was possible to control them using the GC TAS input window. (Z was mapped to Select.) Unaware of this, I broke the functionality in b296248. To make it possible to control emulated GBAs using TAS input again, I'm adding a proper TAS input window for GBAs, with a real Select button and no analog controls.
2022-08-07Add hotkeys for incrementing/decrementing selected state slot (like RetroArch)askew-etc
2022-08-02DolphinQt: fix BootSessionData dtor not being calledShawn Hoffman
std::unique_ptr can't/won't call deleter on incomplete type generated warning on vs 17.3.0 preview 5.0
2021-11-22Core/Boot: Refactor storage of boot-to-savestate data into a separate class.Admiral H. Curtiss
2021-10-24DolphinQt: Add ability to start a game with Riivolution patches from the GUI.Admiral H. Curtiss
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-06-07Qt: Fix IOWindow keeping a shared ptr to devices even after them being ↵Filoppi
removed by the ControllerInterface this prevented some devices from being recreated correctly, as they were exclusive (e.g. DInput Joysticks) This is achieved by calling Settings::ReleaseDevices(), which releases all the UI devices shared ptrs. If we are the host (Qt) thread, DevicesChanged() is now called in line, to avoid devices being hanged onto by the UI. For this, I had to add a method to check whether we are the Host Thread to Qt. Avoid calling ControllerInterface::RefreshDevices() from the CPU thread if the emulation is running and we manually refresh devices from Qt, as that is not necessary anymore. Refactored the way IOWindow lists devices to make it clearer and hold onto disconnected devices. There were so many issues with the previous code: -Devices changes would not be reflected until the window was re-opened -If there was no default device, it would fail to select the device at index 0 -It could have crashed if we had 0 devices -The default device was not highlighted as such
2021-05-27Implement Cursor Locking and new input focus checks for itFiloppi
2021-02-22Simplify macro guards for HAVE_XRANDRNorbert Lange
2020-12-24DolphinQt: Move Free Look out of Graphics/Hotkey and into its own ↵iwubcode
configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads
2020-10-22DolphinQt: Don't call UICommon::InhibitScreenSaver if already in desired state.Jordan Woyak
2020-10-18Clean up screen saver inhibition and apply setting change immediately.Jordan Woyak
2020-09-06Merge pull request #8861 from JosJuice/netplay-hashJMC47
Make netplay's "same game" check more robust
2020-08-22windows: fix build if pch were to be disabledShawn Hoffman
2020-08-02Make netplay's "same game" check more robustJosJuice
Instead of comparing the game ID, revision, disc number and name, we can compare a hash of important parts of the disc including all the aforementioned data but also additional data such as the FST. The primary reason why I'm making this change is to let us catch more desyncs before they happen, but this should also fix https://bugs.dolphin-emu.org/issues/12115. As a bonus, the UI can now distinguish the case where a client doesn't have the game at all from the case where a client has the wrong version of the game.
2020-05-03Debugger: Add a Thread widgetSepalani
DebugInterface: Add GetThreads WatchWidget: Update widget on AddWatch
2020-04-27Debugger: Add a Network widgetSepalani
Display socket table, SSL context and options
2020-04-03Remove unused function Host_UpdateProgressDialogJosJuice
2020-01-27DolphinQt/MainWindow: Surround prototype of OnSignal() with relevant ifdefLioncash
This is only used on Apple and Unix-like machines, so we can enclose the prototype with an ifdef like the implementation is. This prevents false-positives about an unimplemented function prototype.
2019-11-16Make "Do you want to stop emulation?" application modal and disallow ↵Silent
multiple instances at once Fixes numerous issues with this dialog spawning multiple times and putting Dolphin in a weird state.