PDA

View Full Version : QSettings mysteries



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

giusepped
6th November 2008, 09:12
Sorry,
I mitaken the file name :D (readSettings and writeSettings)
G