Save window geometry and state

This commit is contained in:
2019-10-25 22:34:21 +02:00
parent b61e01e758
commit ab70721ed4
2 changed files with 15 additions and 0 deletions
+14
View File
@@ -18,6 +18,7 @@
#include <sys/ioctl.h>
#include <linux/btrfs.h>
#include <sys/socket.h>
#include <QSettings>
#endif
int MainWindow::socketPair[2] = {0, 0};
@@ -31,6 +32,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
m_info = new ImageInfo(this);
QDockWidget *infoDock = new QDockWidget(tr("Image info"), this);
infoDock->setWidget(m_info);
infoDock->setObjectName("infoDock");
addDockWidget(Qt::LeftDockWidgetArea, infoDock);
m_image = new ImageScrollArea(this);
setCentralWidget(m_image);
@@ -39,6 +41,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
PhotoCapture *photoCapture = new PhotoCapture(this);
QDockWidget *captureDock = new QDockWidget(tr("Photo capture"), this);
captureDock->setWidget(photoCapture);
captureDock->setObjectName("captureDock");
addDockWidget(Qt::BottomDockWidgetArea, captureDock);
setWindowTitle(tr("Tenmon"));
@@ -106,6 +109,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
menuBar()->addMenu(dockMenu);
setupSigterm();
QSettings settings;
restoreGeometry(settings.value("mainwindow/geometry").toByteArray());
restoreState(settings.value("mainwindow/state").toByteArray());
}
MainWindow::~MainWindow()
@@ -169,6 +175,14 @@ void MainWindow::signalHandler(int)
::write(socketPair[0], &a, sizeof(a));
}
void MainWindow::closeEvent(QCloseEvent *event)
{
QSettings settings;
settings.setValue("mainwindow/geometry", saveGeometry());
settings.setValue("mainwindow/state", saveState());
QMainWindow::closeEvent(event);
}
void MainWindow::socketNotify()
{
socketNotifier->setEnabled(false);