Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[Solved] Saving settings to a file



  • I'm porting a app, that saves and loads setting to a file using QFile. I'm not using QSettings and a ini file, because I'm using serialization, wich I believe is not supported by QSettings. However the file fails to save. I'm guessing it's because I'm using the app current location, wich probably doesnt allow saving.

    @//loading in the constructor
    QFile file("conversions.dat");
    if (file.open(QIODevice::ReadOnly)) // if file exists reads from file
    {
    QDataStream in(&file);
    in>>m_CategoriesUnits_List;
    in>>current_category_index;
    file.close();
    //QMessageBox::about(0,"","File does exist.");

    }
    else //if file does not exists reads from defaul constructor settings
    {
        //QMessageBox::about(0,"","File dont exist.");
        loadInitialConversions();
    }@
    

    @//saving in the destructor
    QFile file("conversions.dat");
    if (file.open(QIODevice::WriteOnly))
    {
    QDataStream out(&file); // we will serialize the data into the file
    out<<m_CategoriesUnits_List;
    out<<current_category_index;
    file.close();
    }
    else
    QMessageBox::about(0,"","Cant save file.");@

    Any ideias for a quick and dirty solution :) ?



  • Have you looked at what the "error string":http://qt-project.org/doc/qt-4.8/qiodevice.html#errorString returns? Maybe that can give you a starting point as to where things are going wrong.



  • Instead of just writing a file, maybe you can puth a real path in the front. Something based on QDir::homePath() would work nicely.



  • Not that there is anything wrong with using a file, but of course you can serialize towards QSettings if you want. Why would you think it is not supported?



  • Change the path. "data/conversations.dat" should work.



  • Thansk for the sugestions guys, I'll tried that and let you know.
    Andre: I read the QSettings docs and got the impression that it would not work, but I'll check again with another eyes :)



  • [quote author="codenode" date="1359624507"]Change the path. "data/conversations.dat" should work.[/quote]

    This works. Thank you.



  • read this "link":http://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/accessible_folders.html for more info regarding filesystem access permissions in BB10

    it is also recommended to use absolute file paths, instead of relative paths


Log in to reply