72 Commits

Author SHA1 Message Date
cristian64
8a639bd13d DolphinQt: Center dialogs on top-level parent window.
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-09-07 21:28:05 +01:00
JMC47
7ad85e875d Merge pull request #13738 from Tilka/convert_banner
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
Jordan Woyak
1786e34bd3 Merge pull request #13665 from jordan-woyak/dark-mode-filter
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 18:19:13 -05:00
Jordan Woyak
65f3ba70f5 Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
Tillmann Karras
61e8fa060b QtUtils/ImageConverter: simplify 2025-06-07 23:06:07 +01:00
Jordan Woyak
5906512847 DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter. 2025-06-07 16:15:34 -05:00
Dentomologist
2a7e8a4003 DolphinQt: Remove redundant window hints
Remove window hints clearing the flag Qt::WindowContextHelpButtonHint,
which is already off by default in Qt 6.

In Qt 5 this flag was set by default for QDialogs, and on Windows put a
? button in the corner of the title bar allowing users to activate Qt's
QWhatsThis help system for a given widget. Since we don't set that text
the ? button was useless and so we hid it manually.
2025-06-06 19:35:13 -07:00
Jordan Woyak
1e4dfc0956 DolphinQt: Fix the WiiPane hinting a larger than required size. 2025-05-26 20:58:48 -05:00
Jordan Woyak
543b85a451 DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky. 2025-05-26 20:58:48 -05:00
Jordan Woyak
a45d00d84d DolphinQt: Add utility function for creating label text with a standard icon. 2025-05-15 01:49:38 -05:00
cristian64
2eeb2fd2b9 DolphinQt: Use non-autodismissable menus in menu bar.
A new class that derives from `QMenu` has been introduced. Menus of this
`NonAutodismissibleMenu` type will stay visible when a _checkable_
action is triggered.

This is convenient in menus that feature a series of check boxes that
toggle visibility of third components (e.g. the **List Columns** menu),
allowing the user to toggle several actions at once.

For now, the new type is used in the top menu bar.
2025-05-03 20:29:21 +02:00
JosJuice
6515807685 Merge pull request #13278 from JoshuaVandaele/saves-import
Implement importing multiple saves from an export folder
2025-05-02 15:40:27 +02:00
Dr. Dystopia
f240e20e3f Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests 2025-05-01 15:00:37 +02:00
Joshua Vandaële
2c54ee94c1 linter: Apply clang-format 19.1 formatting
find ./Source/ -name '*.cpp' -o -name '*.h' | xargs clang-format-19 -i
2025-04-23 11:19:20 +02:00
Joshua Vandaële
42fb43dacf Implement multiple saves import
https://bugs.dolphin-emu.org/issues/12887
2025-03-17 10:43:09 +01:00
Jordan Woyak
f12846a0e9 DolphinQt: Make input mapping and output testing non-blocking. 2025-01-01 16:48:32 -06:00
Jordan Woyak
d920064779 Add include guard to QtUtils.h 2024-11-02 01:27:07 -05:00
Jordan Woyak
149a3721ff DolphinQt: Ensure skylanders QDateTimeEdit shows a four digit year without forcing dd-mm-yyyy format. 2024-10-31 02:38:45 -05:00
mitaclaw
9afd09598c DolphinQt: JIT Widget Refresh
Fulfilling a certain six-year-old todo.
2024-10-19 02:30:44 -07:00
Dentomologist
384e044437 QtUtils/ClearLayoutRecursively: Fix potential crash
Use QObject->deleteLater() instead of the delete operator to destroy
child widgets of the layout. This prevents crashes caused by pending
events trying to access the now-destroyed widget.
2024-07-21 17:36:05 -07:00
mitaclaw
672be6a8cf PPCSymbolDB: GetDescription by std::string_view
Should save a lot of deep copies.
2024-04-13 00:19:01 -07:00
Admiral H. Curtiss
2f9e98b77b DolphinQt: Check theme instead of system for when to apply dark title bars on Windows. 2023-11-05 18:13:00 +01:00
Admiral H. Curtiss
4b2dad074a DolphinQt: Move GraphicsModListWidget::ClearLayoutRecursively() to QtUtils. 2023-10-15 18:39:05 +02:00
Admiral H. Curtiss
e2fb8fab2f DolphinQt: Set window decorations for all top-level QWidgets. 2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
e8d23af0f2 DolphinQt: Add function to set a QWidget's window decorations to dark ones on Windows. 2023-08-12 16:54:53 +02:00
Dentomologist
6fe3cfe245 QtUtils: Remove unused FlowLayout
FlowLayout hasn't been used since
b65faa0549.
2023-07-01 11:33:54 -07:00
Lioncash
9c0cd5c81a ParallelProgressDialog: Mark WasCanceled() as const
This doesn't alter any class state.
2023-06-12 09:38:10 -04:00
Lioncash
b70894b950 ParallelProgressDialog: Initialize all data members
Ensures we always have a deterministic state.
2023-06-12 09:36:51 -04:00
Shawn Hoffman
51e528e45f DolphinQt: cache icons instead of single pixmaps
Fixes dynamically changing dpi scaling.
Load resources from svg if possible.
Currently svg support is not in Qt build in Externals,
and image files need to be added later.
2023-04-25 12:34:27 -07:00
get
a5d06fde4b Embrace nullptr over NULL and 0 2023-04-15 16:07:05 -05:00
spycrab
004e8a80b2 Add support for building against Qt 6 2022-05-02 22:39:33 -07:00
Martin
a4d031cfda Add NonDefaultQPushButton to set autoDefault of buttons to false 2022-03-08 08:51:29 +01:00
Admiral H. Curtiss
1fd9a1117e Qt/GeneralPane: Don't trigger config change events when populating GUI. 2022-02-27 17:56:35 +01:00
Pokechu22
2025763420 Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Pokechu22
ea414b06ef ParallelProgressDialog: Add missing license comment 2021-12-10 13:59:38 -08:00
Emmanuel Gil Peyrot
24db6e467a DolphinQt: Fix a -Wunused-result in gcc 11
Also use the correct error check for other similar calls in the same
file, despite nothing being doable on error.
2021-11-02 13:50:21 +01:00
sowens99
839b04014e Add wrapper function to disable hotkeys for QFileDialog
Previously, if you have "Hotkeys Require Window Focus" disabled, you could repeatedly use the "Open" hotkey, for example, to stack File Open windows over top of each other over and over.

This commit allows the hotkey manager to disable/enable on QFileDialog creation and destruction.
2021-10-09 22:43:56 -04:00
JosJuice
1a5e0c2084 DolphinQt: Reduce latency of TAS input's controller input passthrough
Fixes https://bugs.dolphin-emu.org/issues/12676.

Needs testing to see if this impacts performance when controller
inputs are changing.
2021-09-19 17:08:10 +02:00
Admiral H. Curtiss
55397b6d52 DolphinQt: Rewrite cheat search GUI. 2021-09-15 19:05:49 +02:00
Pierre Bourdon
0cf041de24 licensing: various one-off conversions to SPDX tags 2021-07-05 04:35:56 +02:00
Pierre Bourdon
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
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-07-05 04:35:56 +02:00
iwubcode
04a635e884 DolphinQt: fix Visual Studio warning about 'assignment within conditional expression' 2021-05-15 14:39:03 -05:00
Lioncash
892154f7ea DolphinQt: Resolve deprecated usage of margin()
This function has been marked as obsolete. In Qt 6.0 it's removed
entirely, so we must use getContentsMargin() explicitly instead
(margin() would do this for us).

Ditto for setMargin(), in which case we use setContentsMargin instead.
setMargin() would just pass its argument to all four parameters of
setContentsMargin(), so we can do the same.
2021-01-13 05:07:32 -05:00
Filippo Tarpini
0805b58302 DolphinQt: Remove some useless includes
[committer note: fixed commit message style]
2021-01-05 15:24:13 +01:00
Léo Lam
82f1e6204d Fix -Wsign-compare warnings 2020-11-21 02:08:09 +01:00
Léo Lam
0de6a32f4c Qt/QtUtils: Fix accidental recursion in ParallelProgressDialog
Seems to be a typo.
2020-10-19 12:39:10 +02:00
Shawn Hoffman
89b6a4cbee DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
Techjar
92812d0b0b QtUtils: Add UTF8CodePointCountValidator 2020-07-16 19:03:46 -04:00
JosJuice
9c7704c0ac DolphinQt: Attempt to fix ParallelProgressDialog constantly reopening
I believe the value returned by value() resets when we call
setValue() with the maximum (due to auto-reset). I have been
unable to test this because I can't reproduce the issue, which is
described at https://bugs.dolphin-emu.org/issues/12158#note-9.
2020-07-09 15:45:29 +02:00
JosJuice
aeeb85aa3a DolphinQt: Replace QTBUG-10561 workaround with better workaround
This workaround is not timing sensitive, unlike the old one.

Hopefully fixes https://bugs.dolphin-emu.org/issues/12158
and https://bugs.dolphin-emu.org/issues/12180.
2020-07-08 20:29:26 +02:00