diff options
author | Arno <am@disconnect.de> | 2010-05-10 15:41:08 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-05-10 15:41:08 +0200 |
commit | 9f0caecf7875f998dc9c85d4f35f985335222d67 (patch) | |
tree | 0cd54108b7461d7944194e8e46e7b95859788230 /shemov.cpp | |
parent | 2038b81df36cc44b63c44313a4fe39557c850760 (diff) | |
download | SheMov-9f0caecf7875f998dc9c85d4f35f985335222d67.tar.gz SheMov-9f0caecf7875f998dc9c85d4f35f985335222d67.tar.bz2 SheMov-9f0caecf7875f998dc9c85d4f35f985335222d67.zip |
Implemented read/write settings at startup/exit
The window position and size is now written to disk on exit and read on
startup. Also, the expanded directories from the tree are saved and
restored. This means I can get rid of this ugly expand dirs on startup
thing. Never liked it very much.
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -24,6 +24,7 @@ #include <QFont> #include <QFontMetrics> #include <QLocale> +#include <QCloseEvent> #include <sys/vfs.h> #include "shemov.h" @@ -101,10 +102,18 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla QWidget *centralWidget = new QWidget; centralWidget->setLayout(mainLayout); setCentralWidget(centralWidget); - showMaximized(); + readSettings(); + mFSWidget->readSettings(); + show(); mFSWidget->fileView()->setFocus(Qt::ActiveWindowFocusReason); } +void SheMov::closeEvent(QCloseEvent *event){ + mFSWidget->writeSettings(); + writeSettings(); + event->accept(); +} + void SheMov::updateSelectionCount(const QItemSelection & /* sel */, const QItemSelection & /* prev */){ QLocale l; switch (mTab->currentIndex()) { @@ -444,3 +453,22 @@ void SheMov::createExtractMenu(){ } } +void SheMov::writeSettings(){ + QSettings s; + s.setValue("windows/mainpos", pos()); + s.setValue("windows/mainsize", size()); + bool winState = windowState() & Qt::WindowMaximized; + s.setValue("windows/maximized", winState); +} + +void SheMov::readSettings(){ + QSettings s; + QPoint winPos = s.value("windwos/mainpos").toPoint(); + QSize winSize = s.value("windows/mainsize").toSize(); + bool winState = s.value("windows/maximized", false).toBool(); + resize(winSize); + move(winPos); + if(winState){ + setWindowState(Qt::WindowMaximized); + } +} |