giusepped
6th November 2008, 09:10
I have simply
void mainWindow::readSettings()
{
QSettings settings("GDEM","Rubic 1.0");
settings.beginGroup("mainWindow");
resize(settings.value("size",QSize(400,400)).toSize());
move(settings.value("pos",QPoint(200,200)).toPoint());
if (settings.contains("splitterSize"))
splitterSettings = (settings.value("splitterSize").toByteArray());
#ifdef DEBUG
qDebug()<<"createConnection, database loaded ok:"<<databaseName<<settings.value("pos").toString().isEmpty()
<<settings.contains("size");
#endif
settings.endGroup();
settings.beginGroup("database");
if (settings.contains("databaseName") && (!settings.value("databaseName").toString().isEmpty())) {
databaseName = settings.value("databaseName").toString();
currentDatabase = databaseName;
}
else
databaseName="rubric.db";
settings.endGroup();
#ifdef DEBUG
qDebug()<<"settings loaded ok:"<<settings.value("size").toString();
#endif
settings.sync();
}
and
void mainWindow::writeSettings()
{
QSettings settings("GDEM","Rubi 1.0");
settings.beginGroup("mainWindow");
settings.setValue("pos",pos());
settings.setValue("size",size());
settings.setValue("splitterSize",mainSplitter->saveState());
settings.endGroup();
settings.beginGroup("database");
settings.setValue("databaseName",currentDatabase);
settings.endGroup();
settings.sync();
}
and
void mainWindow::closeEvent(QCloseEvent *event)
{ writeSettings();
QSqlDatabase database = QSqlDatabase::database();
QSqlDatabase::removeDatabase();
event->accept();
}
I checked the file Rubic 1.0
[mainWindow]
pos=@Point(200 200)
size=@Size(400 400)
splitterSize=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x 2\0\0\0^\0\0\0\xa1\x1\0\0\0\x6\x1\0\0\0\x2)
[database]
databaseName=rubric.db
and if I resize the window the values accordingly change.
But: if I re-run the application the values are not loaded.
Why?
I call readsettings in the constructor
void mainWindow::readSettings()
{
QSettings settings("GDEM","Rubic 1.0");
settings.beginGroup("mainWindow");
resize(settings.value("size",QSize(400,400)).toSize());
move(settings.value("pos",QPoint(200,200)).toPoint());
if (settings.contains("splitterSize"))
splitterSettings = (settings.value("splitterSize").toByteArray());
#ifdef DEBUG
qDebug()<<"createConnection, database loaded ok:"<<databaseName<<settings.value("pos").toString().isEmpty()
<<settings.contains("size");
#endif
settings.endGroup();
settings.beginGroup("database");
if (settings.contains("databaseName") && (!settings.value("databaseName").toString().isEmpty())) {
databaseName = settings.value("databaseName").toString();
currentDatabase = databaseName;
}
else
databaseName="rubric.db";
settings.endGroup();
#ifdef DEBUG
qDebug()<<"settings loaded ok:"<<settings.value("size").toString();
#endif
settings.sync();
}
and
void mainWindow::writeSettings()
{
QSettings settings("GDEM","Rubi 1.0");
settings.beginGroup("mainWindow");
settings.setValue("pos",pos());
settings.setValue("size",size());
settings.setValue("splitterSize",mainSplitter->saveState());
settings.endGroup();
settings.beginGroup("database");
settings.setValue("databaseName",currentDatabase);
settings.endGroup();
settings.sync();
}
and
void mainWindow::closeEvent(QCloseEvent *event)
{ writeSettings();
QSqlDatabase database = QSqlDatabase::database();
QSqlDatabase::removeDatabase();
event->accept();
}
I checked the file Rubic 1.0
[mainWindow]
pos=@Point(200 200)
size=@Size(400 400)
splitterSize=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x 2\0\0\0^\0\0\0\xa1\x1\0\0\0\x6\x1\0\0\0\x2)
[database]
databaseName=rubric.db
and if I resize the window the values accordingly change.
But: if I re-run the application the values are not loaded.
Why?
I call readsettings in the constructor