summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/MainWindow.cpp
AgeCommit message (Collapse)Author
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-04Improve NAND import progress dialogTillmann Karras
Now with cancel button and an actual progress bar. For simplicity, we do two passes on the progress bar, one for loading the NAND into memory and one for extracting it. The user directory is likely on an SSD, making the extraction pass invisibly fast.
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-02-15MainWindow: Remove the check preventing Triforce volumes from booting ↵Jordan Woyak
without the Baseboard hardware attached. The hardware is now automatically attached later in the boot process.
2026-02-15Triforce: Warning silencing and other minor cleanups.Jordan Woyak
2026-02-15Triforce: Optimized codecrediar
Removed unneeded code Removed unused code Added EINPROGRESS to fix networking on Linux systems Added function NetworkBufferCheck and NetworkCMDBufferCheck to verify buffer sizes Added NetworkCMDBufferRead/NetworkCMDBufferWrite/NetworkBufferRead/NetworkBufferWrite Added multiply buffer size checks Rewrote GetGameType() Moved AMMediaboard::Shutdown to DVDInterface::Shutdown() Changed JVSIOMessage overrun check Changed SwapBuffers function to be a member function Added sanity checks for buffer sizes Added translation prefix for Triforce buttons Updated text for misconfigurations when trying to boot normal games with Triforce hardware connected Fixed NAMCAM for Mario Kart GP
2026-02-15Added Triforce supportcrediar
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-15MenuBar: Add entries to open the config and cache foldersJoshua Vandaële
2025-12-11MainWindow: Fix sscanf type/width specifiers for DWORDCraig Carnell
2025-11-25Merge pull request #14066 from Biendeo/masterJosJuice
IOS: Logitech USB Microphone Basic Support
2025-11-25USB: Add emulated Logitech USB MicrophoneBiendeo
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com>
2025-11-10Merge pull request #14052 from jordan-woyak/DirectIOFileJordan Woyak
Common and DiscIO: Introduce a thread safe DirectIOFile and make BlobReader implementations use it.
2025-11-09Merge pull request #13956 from jordan-woyak/SA_RESTARTAdmiral H. Curtiss
Main: Add SA_RESTART to sigaction sa_flags.
2025-11-09DiscIO: Make all BlobReader implementations use DirectIOFile to make ↵Jordan Woyak
CopyReader functionality thread safe.
2025-11-03MainWindow: Change save state file filter to use *.s?? patternVampireFlower
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-19Main: Add SA_RESTART to signal handler sigaction sa_flags.Jordan Woyak
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-07-03Merge pull request #13736 from jordan-woyak/main-config-gfxJordan Woyak
DolphinQt: Move graphics config to main Settings window.
2025-06-17MainWindow: Show hardcore mode error for recording playbackDentomologist
Show an error message when attempting to play an input recording while RetroAchievements hardcore mode is active, instead of silently doing nothing.
2025-06-14DolphinQt: Move graphics config to main Settings window.Jordan Woyak
2025-06-14Source: Remove redundant lambda parameter listsDr. Dystopia
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-07DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an ↵Jordan Woyak
event filter.
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-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-23Fix debugger disabled bugLillyJadeKatrin
Fixing an oversight: this was causing the debugger to be disabled if achievements were disabled but hardcore mode was still enabled in the .ini. This fix properly checks for hardcore state via AchievementManager which takes both settings into account.
2025-04-21Merge pull request #12949 from LillyJadeKatrin/retroachievements-new-dev-branchJMC47
RetroAchievements - Dev Branch Refactor
2025-04-21Adding support for detecting .bin imagesZopolis4
2025-04-16Added modified achievements confirmationLillyJadeKatrin
Added a line to the close game confirmation dialog to tell the dev if there are unsaved modifications to the achievement assets.
2025-04-13Add RAIntegration event handlerLillyJadeKatrin
Some refactoring done to hardcore toggling so that it's more readily available for the toggle hardcore event.
2025-04-13Load RA_Integration.DLL at init if presentLillyJadeKatrin
2024-11-02Merge pull request #13151 from mitaclaw/core-global-system-6Tilka
MainWindow: Avoid Global System Accessor
2024-10-28Merge pull request #12954 from LillyJadeKatrin/retroachievements-confirmJMC47
Achievements Confirmation Dialogs
2024-10-24MainWindow: Avoid Global System Accessormitaclaw
2024-10-19DolphinQt: JIT Widget Refreshmitaclaw
Fulfilling a certain six-year-old todo.
2024-10-12Merge pull request #13076 from robxnano/dbus-inhibitTilka
Linux: Use D-Bus to inhibit screensaver
2024-10-11Merge pull request #13075 from robxnano/qt-color-schemeTilka
Remove unneeded Win32 code for color scheme
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-10-03Turn off debug mode if hardcore is active on emulator startLillyJadeKatrin
Found this bug while testing; if I manually edit the config files while Dolphin is closed I was able to get debug and hardcore on at the same time, this resolves that.
2024-09-27linux: Use D-Bus to inhibit screensaverrobxnano
2024-09-27DolphinQt: Remove unneeded Win32 coderobxnano
Dolphin already uses QStyleHints::colorScheme to detect dark mode, so this code is now redundant.
2024-09-20DolphinQt: A Ubiquitous Signal For When Breakpoints Changemitaclaw
There were three distinct mechanisms for signaling breakpoint changes in DolphinQt, and the wiring had room for improvement. The behavior of these signals has been consolidated into the new `Host::PPCBreakpointsChanged` signal, which can be emitted from anywhere in DolphinQt to properly update breakpoints everywhere in DolphinQt. This improves a few things: - For the `CodeViewWidget` and `MemoryViewWidget`, signals no longer need to propagate through the `CodeWidget` and `MemoryWidget` (respectively) to reach their destination (incoming or outgoing). - For the `BreakpointWidget`, by self-triggering from its own signal, it no longer must manually call `Update()` after all of the emission sites. - For the `BranchWatchDialog`, it now has one less thing it must go through the `CodeWidget` for, which is a plus.
2024-08-27MainWindow: Prevent Confirm On Stop dialog from being hiddenDentomologist
Set the Render Window as the parent of the Confirm On Stop confirmation dialog when Keep Window On Top is enabled, ensuring it will always be visible. Previously, when Confirm On Stop and Keep Window On Top were both enabled the Confirm On Stop dialog could be hidden by the render window in the following situations: * Clicking Stop in the Main Window * Clicking the Main Window's close button * Pressing the Stop hotkey while in FullScreen mode This was particularly troublesome because the confirm dialog is modal, preventing the user from moving the render window out of the way if it was obscuring the dialog. Fixes https://bugs.dolphin-emu.org/issues/13247.
2024-07-28i18n: Add comments and improve source stringsJosJuice
Most of these changes are to improve consistency in capitalization.
2024-07-06Add Open Achievements HotkeyLillyJadeKatrin
Adds a hotkey to pause emulation and bring up the Achievements dialog.