mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 12:35:43 +08:00
#28 Save window geometry in an ini file in the application settings directory
This commit is contained in:
@@ -401,10 +401,20 @@ namespace BlackGui
|
|||||||
QGuiApplication::modalWindow()->raise();
|
QGuiApplication::modalWindow()->raise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QString& CGuiApplication::fileForWindowGeometryAndStateSettings()
|
||||||
|
{
|
||||||
|
static const QString filename = []
|
||||||
|
{
|
||||||
|
QString dir = CFileUtils::appendFilePaths(CDirectoryUtils::normalizedApplicationDataDirectory(), "settings/qgeom");
|
||||||
|
return CFileUtils::appendFilePaths(dir, QFileInfo(QCoreApplication::applicationFilePath()).completeBaseName() + ".ini");
|
||||||
|
}();
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
bool CGuiApplication::saveWindowGeometryAndState(const QMainWindow *window) const
|
bool CGuiApplication::saveWindowGeometryAndState(const QMainWindow *window) const
|
||||||
{
|
{
|
||||||
if (!window) { return false; }
|
if (!window) { return false; }
|
||||||
QSettings settings(settingsOrganization(), this->getApplicationName());
|
QSettings settings(fileForWindowGeometryAndStateSettings(), QSettings::IniFormat);
|
||||||
settings.setValue("geometry", window->saveGeometry());
|
settings.setValue("geometry", window->saveGeometry());
|
||||||
settings.setValue("windowState", window->saveState());
|
settings.setValue("windowState", window->saveState());
|
||||||
return true;
|
return true;
|
||||||
@@ -413,7 +423,7 @@ namespace BlackGui
|
|||||||
void CGuiApplication::resetWindowGeometryAndState()
|
void CGuiApplication::resetWindowGeometryAndState()
|
||||||
{
|
{
|
||||||
QByteArray ba;
|
QByteArray ba;
|
||||||
QSettings settings(settingsOrganization(), this->getApplicationName());
|
QSettings settings(fileForWindowGeometryAndStateSettings(), QSettings::IniFormat);
|
||||||
settings.setValue("geometry", ba);
|
settings.setValue("geometry", ba);
|
||||||
settings.setValue("windowState", ba);
|
settings.setValue("windowState", ba);
|
||||||
}
|
}
|
||||||
@@ -421,7 +431,7 @@ namespace BlackGui
|
|||||||
bool CGuiApplication::restoreWindowGeometryAndState(QMainWindow *window)
|
bool CGuiApplication::restoreWindowGeometryAndState(QMainWindow *window)
|
||||||
{
|
{
|
||||||
if (!window) { return false; }
|
if (!window) { return false; }
|
||||||
const QSettings settings(settingsOrganization(), this->getApplicationName());
|
const QSettings settings(fileForWindowGeometryAndStateSettings(), QSettings::IniFormat);
|
||||||
const QString location = settings.fileName();
|
const QString location = settings.fileName();
|
||||||
CLogMessage(this).info(u"GUI settings are here: '%1'") << location;
|
CLogMessage(this).info(u"GUI settings are here: '%1'") << location;
|
||||||
|
|
||||||
|
|||||||
@@ -396,6 +396,9 @@ namespace BlackGui
|
|||||||
|
|
||||||
//! \copydoc BlackGui::CGuiUtility::superviseMainWindowMinSizes
|
//! \copydoc BlackGui::CGuiUtility::superviseMainWindowMinSizes
|
||||||
void superviseWindowMinSizes();
|
void superviseWindowMinSizes();
|
||||||
|
|
||||||
|
//! Settings ini filename
|
||||||
|
static const QString &fileForWindowGeometryAndStateSettings();
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user