1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Enabled persistent window and panel locations

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26565 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-05 07:14:03 +00:00
parent e7f38daf17
commit 0af8860775
4 changed files with 38 additions and 18 deletions

View file

@ -24,6 +24,7 @@
#include <QDesktopWidget>
#include <QFileSystemModel>
#include <QSettings>
EditorWindow::EditorWindow(QWidget *parent) :
QMainWindow(parent),
@ -37,17 +38,37 @@ EditorWindow::EditorWindow(QWidget *parent) :
void EditorWindow::loadSettings()
{
/* When there are settings to load, they'll be loaded here */
/* For now, we'll just set the window to take up most of the screen */
QDesktopWidget* desktop = QApplication::desktop();
QRect availableSpace = desktop->availableGeometry(desktop->primaryScreen());
QRect buffer(availableSpace.left() + availableSpace.width() / 10,
availableSpace.top() + availableSpace.height() / 10,
availableSpace.width() * 8 / 10,
availableSpace.height() * 8 / 10);
this->setGeometry(buffer);
QSettings settings;
/* Main Window location */
settings.beginGroup("MainWindow");
QSize size = settings.value("size").toSize();
QPoint pos = settings.value("position").toPoint();
QByteArray state = settings.value("state").toByteArray();
settings.endGroup();
if(!(size.isNull() || pos.isNull() || state.isNull()))
{
resize(size);
move(pos);
restoreState(state);
}
}
void EditorWindow::saveSettings()
{
QSettings settings;
/* Saving window and panel positions */
settings.beginGroup("MainWindow");
settings.setValue("position", pos());
settings.setValue("size", size());
settings.setValue("state", saveState());
settings.endGroup();
}
void EditorWindow::setupUI()
@ -57,10 +78,6 @@ void EditorWindow::setupUI()
model->setRootPath(QDir::currentPath());
ui->fileTree->setModel(model);
/* Connecting the buttons */
QObject::connect(ui->fromTree, SIGNAL(pressed()),
this, SLOT(updateCode()));
}
void EditorWindow::setupMenus()
@ -97,6 +114,7 @@ void EditorWindow::showPanel()
void EditorWindow::closeEvent(QCloseEvent* event)
{
saveSettings();
event->accept();
}