Hi ,
I am trying to solve a bug. I am storing some values passed as an input by the user in QSettings array : I have the following code:
void ServerManager::readSettings()
{
QStringList info;
QList<QTreeWidgetItem*> favoriteList;
settings->beginGroup("ServerManager");
int size = settings->beginReadArray("ServerItems");
// size value is zero whereas if I put a numeric value 5 below and see the qDebug values it has the strings in it.
for (int i = 0; i < 5; ++i)
{
settings->setArrayIndex(i);
info << settings->value("Servername").toString();
info << settings->value("Server").toString();
info << settings->value("Port").toString();
info << settings->value("Game").toString();
qDebug() << info ;
QTreeWidgetItem *favoriteItem = new QTreeWidgetItem(ui->treeWidget, info);
favoriteList.append(favoriteItem);
favorites->addChildren(favoriteList);
}
settings->endArray();
settings->endGroup();
}
The data is arranged like this :
("qwer", "qwer", "1234", "Battlefield 2")
("qwer", "qwer", "1234", "Battlefield 2", "abdc", "abdc", "1234", "Battlefield 2")
("qwer", "qwer", "1234", "Battlefield 2", "abdc", "abdc", "1234", "Battlefield 2",
"bnmp", "nbmp", "1231", "Battlefield 2")
("qwer", "qwer", "1234", "Battlefield 2", "abdc", "abdc", "1234", "Battlefield 2",
"bnmp", "nbmp", "1231", "Battlefield 2", "server12", "server21", "1231", "Battlefield 2")
("qwer", "qwer", "1234", "Battlefield 2", "abdc", "abdc", "1234", "Battlefield 2",
"bnmp", "nbmp", "1231", "Battlefield 2", "server12", "server21", "1231", "Battlefield 2", "qwef", "qsdf", "1231", "Battlefield 2")
I am writing the data in the Qsetting as follows:
void ServerManager::writeSettings()
{
Servermanger *sme = new ServerMangerEdit() ;
if (sme->exec() == QDialog::Accepted) {
QStringList info;
info << sme->getServername();
info << sme->getServer();
info << sme->getPort();
info << sme->getGame();
qDebug() << info ;
settings->beginGroup("ServerManager");
settings->beginWriteArray("ServerItems");
settings->setArrayIndex(i);
settings->setValue("Servername", sme->getServername());
settings->setValue("Server", sme->getServer());
settings->setValue("Port", sme->getPort() );
settings->setValue("Game", sme->getGame());
settings->endArray();
settings->endGroup();
QTreeWidgetItem *serverItem = new QTreeWidgetItem(ui->treeWidget, info);
favorites->addChild(serverItem);
favorites->setHidden(false);
}
Can Anyone tell me why the size is Zero even after adding the data . How to find the size of the QSettings array .
Thanks
Bookmarks