+ skip FreeCAD version when saving&reading main window state

This commit is contained in:
wmayer 2016-04-09 17:06:50 +02:00
parent 1d75efea75
commit 384316f691

View File

@ -1095,17 +1095,21 @@ void MainWindow::loadWindowSettings()
{ {
QString vendor = QString::fromLatin1(App::Application::Config()["ExeVendor"].c_str()); QString vendor = QString::fromLatin1(App::Application::Config()["ExeVendor"].c_str());
QString application = QString::fromLatin1(App::Application::Config()["ExeName"].c_str()); QString application = QString::fromLatin1(App::Application::Config()["ExeName"].c_str());
QString version = QString::fromLatin1(App::Application::Config()["ExeVersion"].c_str());
int major = (QT_VERSION >> 0x10) & 0xff; int major = (QT_VERSION >> 0x10) & 0xff;
int minor = (QT_VERSION >> 0x08) & 0xff; int minor = (QT_VERSION >> 0x08) & 0xff;
QString qtver = QString::fromLatin1("Qt%1.%2").arg(major).arg(minor); QString qtver = QString::fromLatin1("Qt%1.%2").arg(major).arg(minor);
QSettings config(vendor, application); QSettings config(vendor, application);
config.beginGroup(version);
config.beginGroup(qtver);
this->resize(config.value(QString::fromLatin1("Size"), this->size()).toSize());
QPoint pos = config.value(QString::fromLatin1("Position"), this->pos()).toPoint();
QRect rect = QApplication::desktop()->availableGeometry(); QRect rect = QApplication::desktop()->availableGeometry();
int maxHeight = rect.height();
int maxWidth = rect.width();
config.beginGroup(qtver);
QPoint pos = config.value(QString::fromLatin1("Position"), this->pos()).toPoint();
maxWidth -= pos.x();
maxHeight -= pos.y();
this->resize(config.value(QString::fromLatin1("Size"), QSize(maxWidth, maxHeight)).toSize());
int x1,x2,y1,y2; int x1,x2,y1,y2;
// make sure that the main window is not totally out of the visible rectangle // make sure that the main window is not totally out of the visible rectangle
rect.getCoords(&x1, &y1, &x2, &y2); rect.getCoords(&x1, &y1, &x2, &y2);
@ -1124,7 +1128,6 @@ void MainWindow::loadWindowSettings()
statusBar()->setVisible(config.value(QString::fromLatin1("StatusBar"), true).toBool()); statusBar()->setVisible(config.value(QString::fromLatin1("StatusBar"), true).toBool());
config.endGroup(); config.endGroup();
config.endGroup();
ToolBarManager::getInstance()->restoreState(); ToolBarManager::getInstance()->restoreState();
std::clog << "Toolbars restored" << std::endl; std::clog << "Toolbars restored" << std::endl;
@ -1134,13 +1137,11 @@ void MainWindow::saveWindowSettings()
{ {
QString vendor = QString::fromLatin1(App::Application::Config()["ExeVendor"].c_str()); QString vendor = QString::fromLatin1(App::Application::Config()["ExeVendor"].c_str());
QString application = QString::fromLatin1(App::Application::Config()["ExeName"].c_str()); QString application = QString::fromLatin1(App::Application::Config()["ExeName"].c_str());
QString version = QString::fromLatin1(App::Application::Config()["ExeVersion"].c_str());
int major = (QT_VERSION >> 0x10) & 0xff; int major = (QT_VERSION >> 0x10) & 0xff;
int minor = (QT_VERSION >> 0x08) & 0xff; int minor = (QT_VERSION >> 0x08) & 0xff;
QString qtver = QString::fromLatin1("Qt%1.%2").arg(major).arg(minor); QString qtver = QString::fromLatin1("Qt%1.%2").arg(major).arg(minor);
QSettings config(vendor, application); QSettings config(vendor, application);
config.beginGroup(version);
config.beginGroup(qtver); config.beginGroup(qtver);
config.setValue(QString::fromLatin1("Size"), this->size()); config.setValue(QString::fromLatin1("Size"), this->size());
config.setValue(QString::fromLatin1("Position"), this->pos()); config.setValue(QString::fromLatin1("Position"), this->pos());
@ -1148,7 +1149,6 @@ void MainWindow::saveWindowSettings()
config.setValue(QString::fromLatin1("MainWindowState"), this->saveState()); config.setValue(QString::fromLatin1("MainWindowState"), this->saveState());
config.setValue(QString::fromLatin1("StatusBar"), this->statusBar()->isVisible()); config.setValue(QString::fromLatin1("StatusBar"), this->statusBar()->isVisible());
config.endGroup(); config.endGroup();
config.endGroup();
DockWindowManager::instance()->saveState(); DockWindowManager::instance()->saveState();
ToolBarManager::getInstance()->saveState(); ToolBarManager::getInstance()->saveState();