Qt: Drop Qt 6.1 workaround in Host::GetTopLevelWindowInfo()
This commit is contained in:
parent
c40cc4ef43
commit
5a0a6ebe06
|
@ -2645,11 +2645,14 @@ void MainWindow::checkForSettingChanges()
|
|||
updateWindowState();
|
||||
}
|
||||
|
||||
void MainWindow::getWindowInfo(WindowInfo* wi)
|
||||
std::optional<WindowInfo> MainWindow::getWindowInfo()
|
||||
{
|
||||
std::optional<WindowInfo> opt_wi(QtUtils::GetWindowInfoForWidget(this));
|
||||
if (opt_wi.has_value())
|
||||
*wi = opt_wi.value();
|
||||
if (!m_display_widget || isRenderingToMain())
|
||||
return QtUtils::GetWindowInfoForWidget(this);
|
||||
else if (QWidget* widget = getDisplayContainer())
|
||||
return QtUtils::GetWindowInfoForWidget(widget);
|
||||
else
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
void MainWindow::onCheckForUpdatesActionTriggered()
|
||||
|
|
|
@ -104,7 +104,7 @@ public Q_SLOTS:
|
|||
bool requestShutdown(bool allow_confirm = true, bool allow_save_to_state = true, bool save_state = true);
|
||||
void requestExit(bool allow_confirm = true);
|
||||
void checkForSettingChanges();
|
||||
void getWindowInfo(WindowInfo* wi);
|
||||
std::optional<WindowInfo> getWindowInfo();
|
||||
|
||||
void checkForUpdates(bool display_message);
|
||||
|
||||
|
|
|
@ -118,6 +118,7 @@ EmuThread::~EmuThread() = default;
|
|||
void QtHost::RegisterTypes()
|
||||
{
|
||||
// Register any standard types we need elsewhere
|
||||
qRegisterMetaType<std::optional<WindowInfo>>("std::optional<WindowInfo>()");
|
||||
qRegisterMetaType<std::optional<bool>>();
|
||||
qRegisterMetaType<std::function<void()>>("std::function<void()>");
|
||||
qRegisterMetaType<std::shared_ptr<SystemBootParameters>>();
|
||||
|
@ -1632,11 +1633,8 @@ void Host::RequestExit(bool allow_confirm)
|
|||
|
||||
std::optional<WindowInfo> Host::GetTopLevelWindowInfo()
|
||||
{
|
||||
// Normally we'd just feed the std::optional all the way through here. But that won't work because of some bug
|
||||
// in Qt 6.1, and we can't upgrade that because of raging/abusive Win7 users... to anyone still using that dead
|
||||
// OS, this is a passive-aggressive "screw you".
|
||||
WindowInfo ret;
|
||||
QMetaObject::invokeMethod(g_main_window, "getWindowInfo", Qt::BlockingQueuedConnection, Q_ARG(WindowInfo*, &ret));
|
||||
std::optional<WindowInfo> ret;
|
||||
QMetaObject::invokeMethod(g_main_window, &MainWindow::getWindowInfo, Qt::BlockingQueuedConnection, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue