diff --git a/mainwindow.cpp b/mainwindow.cpp index aecd3d6..d3f0f0e 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #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); diff --git a/mainwindow.h b/mainwindow.h index 8c43b2b..fd8e6a1 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -27,6 +27,7 @@ protected: void keyReleaseEvent(QKeyEvent *event); void setupSigterm(); static void signalHandler(int); + void closeEvent(QCloseEvent *event); protected slots: void socketNotify(); void updateWindowTitle();