This PR rearranges things in the CMake system to make compiling with Qt6 possible
1. Camera API has changed in Qt6, so the camera feature is disabled
2. A previous fix involving QLocale is now version gated.
3. QRegExp replaced with QRegularExpression, see #5343
4. Qt6_LOCATION option added to specify a location to search for Qt6
(see examples below)
5. windeployqt is used to copy Qt6 files into the build directory on Windows
Notes for Arch Linux
Arch install happened to have qt6-base qt6-declarative qt6-translations installed
mkdir build && cd build
cmake .. -GNinja -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_TESTS=OFF -DENABLE_QT6=YES -DYUZU_USE_BUNDLED_QT=NO
Windows (MSVC)
Qt wants users to download precompiled libraries via an online installer,
it is worth noting that the GPL/LGPL takes precendence over any ...
In the Qt Maintenance tool, under a version, such as 6.3.1
Select "MSVC 2019 64-bit"
Under Additional Libraries Qt Multimedia may be of use for Camera support
For the Web Applet I had to select the following:
PDF Positioning WebChannel WebEngine
mkdir build && cd build
cmake -G "Visual Studio 16 2019" -DQt6_LOCATION=C:/Qt/6.4.0/msvc2019_64/ \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=YES -DYUZU_USE_BUNDLED_QT=NO \
-DENABLE_QT_TRANSLATION=YES -DENABLE_QT6=YES ..
Some numbers for reference (msvc2019_64)
Qt5 (slimmed down) 508 MB
Qt5.15.2 all in 929 MB
Qt6.3.1 1.71 GB
Qt6.3.2 1.73 GB
Qt6.4.0-beta3 1.83 GB
Qt6.4.0 1.67 GB
Uses fmt::print opposed to std::fprintf for error printing.
Call exit instead of returning to caller to prevent a like issue the
previous commit was trying to solve.
Removes unneeded comment.
Co-authored-by: liamwhite <liamwhite@users.noreply.github.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
Spawns a child using fork and exec as opposed to fork alone. Workaround
for the macos file manager complaining about not supporting fork without
exec.
Control flow for *nix is now roughly the same as for Windows.
Gating the IR Sensor code behind a macro like so
`#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA`
The YUZU_USE_QT_MULTIMEDIA flag is implemented in later commit
Also the locale fix in src/yuzu/main.cpp is now gated against Qt6,
as it causes compilation error
A hopefully more informative dialog that most importantly notifies the
user that their saves will be deleted with the user profile.
cpm: Only keep track of UI elements that we need
cpm: Remove unused forward declarations
cpm: Add missing include
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.
I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw
R_THROW macro leads towards a return
Requested by Italian translator (Fs00 in Discord)
"Remove Installed Game %1?"
"Error Removing %1"
I didn't press for translated strings, so have a taste direct from deepl
Rimuovere il contenuto del gioco installato?
Rimuovere l'aggiornamento del gioco installato?
Rimuovere il DLC del gioco installato?
- Prevent sleep via xdg-desktop-portal after fa7abafa5f
- Pause on suspend after b7642cff36
- Exit on SIGINT/SIGTERM after 9479940a1f
- Improve dark themes after b51db12567
Remember that time we renamed the Undocked option to Handheld in the
status bar, and then later remembered the Controller Configuration?
Scrolling through Transifex I noticed that we still have one instance of
"Undocked" in the text.
Option is added directly below the option for the addons column
Defaulting to hide compatibility list. Changing default works properly.
Co-authored-by: Piplup <piplup55@users.noreply.github.com>
On Windows there are currently two fonts used.
The first, does the Menu, QTreeView and Tooltips
Second is Everything else which is a default font.
From inspecting QApplication::font() at runtime
Windows 10 English: QFont(MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0)
Windows 11 Japanese: MS UI Gothic,9 ,-1,5,50,0,0,0,0,0
Windows 11 Traditional Chinese: PMingLiU,9 ,-1,5,50,0,0,0,0,0
Windows 11 Simplified Chinese: SimSun,9 ,-1,5,50,0,0,0,0,0
Windows 11 Korean: Gulim,9 ,-1,5,50,0,0,0,0,0
I initially investigated dynamically changing the font when
the UI language is English, but this was getting quite messy
Qt6 makes changes to default font in some situations, so this
PR is being narrowed in scope to only effect Chinese font choices.
This change only effects rendering of Latin/Cyrillic characters.
The startup check apparently confuses other programs when yuzu launches
2 processes and then quickly closes one of them. Though this isn't
really our issues it's also not a big deal for me to add an option to
work around that issue.
colorful theme has been default theme for awhile. having colorful theme
try and grab icons from other theme doesn't work on Linux.
Also adding two additional icons, info is to hint to the user that they
should hit verify after pasting in a token, sync is to show that the
verification is occurring.
Uses fmt::print as opposed to std::fprintf. Adds a missing return.
static's a single-use function. Initializes structs as opposed to
std::memset where possible. Fixes CMake linkage.
Co-authored-by: Lioncash <mathew1800@gmail.com>
mini_dump: Use a namespace
Co-authored-by: Lioncash <mathew1800@gmail.com>
Configuration -> General -> Debug is getting a bit crowded.
yzct12345 submit this originally, so I'm tagging them as a co-author.
The original #6714 also modifies the Controls -> Player N sections,
but it looks like more work is needed to make the current area scrollable.
Co-authored-by: yzct12345 <87620833+yzct12345@users.noreply.github.com>
Previously, accessing the room_network when it was already freed would crash the emulator on shutdown.
Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com>
make about dialog a bit taller for full message on more systems
for direct_connect.ui hedging bets here, there is a text field for port
number that possibly shouldn't be translated, marking as such, but also
adding a translation note for the event that it makes sense to translate
the placeholder text to something other than the default multiplayer
direct connect port.