summaryrefslogtreecommitdiffstats
path: root/shemov.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-05-10 15:41:08 +0200
committerArno <am@disconnect.de>2010-05-10 15:41:08 +0200
commit9f0caecf7875f998dc9c85d4f35f985335222d67 (patch)
tree0cd54108b7461d7944194e8e46e7b95859788230 /shemov.cpp
parent2038b81df36cc44b63c44313a4fe39557c850760 (diff)
downloadSheMov-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.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/shemov.cpp b/shemov.cpp
index b4b7327..53ae8de 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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);
+ }
+}