Qt: Save/restore additional window positions
Cheat Manager, Memory Scanner, CPU Debugger.
This commit is contained in:
@ -2265,16 +2265,7 @@ void MainWindow::saveStateToConfig()
|
||||
if (!isVisible() || ((windowState() & Qt::WindowFullScreen) != Qt::WindowNoState))
|
||||
return;
|
||||
|
||||
bool changed = false;
|
||||
|
||||
const QByteArray geometry(saveGeometry());
|
||||
const QByteArray geometry_b64(geometry.toBase64());
|
||||
const std::string old_geometry_b64(Host::GetBaseStringSettingValue("UI", "MainWindowGeometry"));
|
||||
if (old_geometry_b64 != geometry_b64.constData())
|
||||
{
|
||||
Host::SetBaseStringSettingValue("UI", "MainWindowGeometry", geometry_b64.constData());
|
||||
changed = true;
|
||||
}
|
||||
bool changed = QtUtils::SaveWindowGeometry("MainWindow", this, false);
|
||||
|
||||
const QByteArray state(saveState());
|
||||
const QByteArray state_b64(state.toBase64());
|
||||
@ -2291,12 +2282,7 @@ void MainWindow::saveStateToConfig()
|
||||
|
||||
void MainWindow::restoreStateFromConfig()
|
||||
{
|
||||
{
|
||||
const std::string geometry_b64 = Host::GetBaseStringSettingValue("UI", "MainWindowGeometry");
|
||||
const QByteArray geometry = QByteArray::fromBase64(QByteArray::fromStdString(geometry_b64));
|
||||
if (!geometry.isEmpty())
|
||||
restoreGeometry(geometry);
|
||||
}
|
||||
QtUtils::RestoreWindowGeometry("MainWindow", this);
|
||||
|
||||
{
|
||||
const std::string state_b64 = Host::GetBaseStringSettingValue("UI", "MainWindowState");
|
||||
@ -2322,36 +2308,20 @@ void MainWindow::restoreStateFromConfig()
|
||||
|
||||
void MainWindow::saveDisplayWindowGeometryToConfig()
|
||||
{
|
||||
QWidget* container = getDisplayContainer();
|
||||
QWidget* const container = getDisplayContainer();
|
||||
if (container->windowState() & Qt::WindowFullScreen)
|
||||
{
|
||||
// if we somehow ended up here, don't save the fullscreen state to the config
|
||||
return;
|
||||
}
|
||||
|
||||
const QByteArray geometry = container->saveGeometry();
|
||||
const QByteArray geometry_b64 = geometry.toBase64();
|
||||
const std::string old_geometry_b64 = Host::GetBaseStringSettingValue("UI", "DisplayWindowGeometry");
|
||||
if (old_geometry_b64 != geometry_b64.constData())
|
||||
{
|
||||
Host::SetBaseStringSettingValue("UI", "DisplayWindowGeometry", geometry_b64.constData());
|
||||
Host::CommitBaseSettingChanges();
|
||||
}
|
||||
QtUtils::SaveWindowGeometry("DisplayWindow", container);
|
||||
}
|
||||
|
||||
void MainWindow::restoreDisplayWindowGeometryFromConfig()
|
||||
{
|
||||
const std::string geometry_b64 = Host::GetBaseStringSettingValue("UI", "DisplayWindowGeometry");
|
||||
const QByteArray geometry = QByteArray::fromBase64(QByteArray::fromStdString(geometry_b64));
|
||||
QWidget* container = getDisplayContainer();
|
||||
if (!geometry.isEmpty())
|
||||
{
|
||||
container->restoreGeometry(geometry);
|
||||
|
||||
// make sure we're not loading a dodgy config which had fullscreen set...
|
||||
container->setWindowState(container->windowState() & ~(Qt::WindowFullScreen | Qt::WindowActive));
|
||||
}
|
||||
else
|
||||
QWidget* const container = getDisplayContainer();
|
||||
if (!QtUtils::RestoreWindowGeometry("DisplayWindow", container))
|
||||
{
|
||||
// default size
|
||||
container->resize(640, 480);
|
||||
@ -2850,11 +2820,6 @@ void MainWindow::openCPUDebugger()
|
||||
m_debugger_window->deleteLater();
|
||||
m_debugger_window = nullptr;
|
||||
});
|
||||
|
||||
// Position the debugger window to the right of the main/display window.
|
||||
const QWidget* next_to_widget =
|
||||
m_display_container ? static_cast<const QWidget*>(m_display_container) : static_cast<const QWidget*>(this);
|
||||
m_debugger_window->move(next_to_widget->pos() + QPoint(next_to_widget->width() + 16, 0));
|
||||
}
|
||||
|
||||
QtUtils::ShowOrRaiseWindow(m_debugger_window);
|
||||
|
||||
Reference in New Issue
Block a user