Hello, you should use QStandardPaths. DataLocation is correct, it using applicationName and organizationName from you QGuiApplication instance.

11.05.2015 01:14, Nicolas Cisco пишет:
Hi,
i have some questions about what are the correct config and data paths for an application. The harbour faq [ https://harbour.jolla.com/faq#2.4.0 ] says that for these paths a subfolder during run time named <HARBOUR_APP_NAME> inside a folder defined by the XDG Base Directory Specification should be used. My question is how to get these values using QT. I though of using the QStandardPaths [ http://doc.qt.io/qt-5/qstandardpaths.html ] or the QProcessEnvironment [ http://doc.qt.io/qt-5/qprocessenvironment.html ] modules, but i don't know if i am getting the correct values.

Using the QStandardPaths module I get this output:

    [D] main:66 - QStandardPaths::DataLocation:
    "/home/nemo/.local/share/harbour-batzap/harbour-batzap"
    [D] main:67 - QStandardPaths::GenericDataLocation:
    "/home/nemo/.local/share"
    [D] main:68 - QStandardPaths::CacheLocation:
    "/home/nemo/.cache/harbour-batzap/harbour-batzap"
    [D] main:69 - QStandardPaths::GenericCacheLocation:
    "/home/nemo/.cache"
    [D] main:70 - QStandardPaths::TempLocation: "/tmp"
    [D] main:71 - QStandardPaths::ConfigLocation: "/home/nemo/.config"
    [D] main:72 - QStandardPaths::GenericConfigLocation:
"/home/nemo/.config" (i'm returning these values using: /qDebug() << "QStandardPaths::<enum-name>: " << QStandardPaths::writableLocation(QStandardPaths::<enum-name>);/

According to the harbour faq, for application data the $XDG_DATA_HOME/<harbour-name> folder should be used, ( freedesktop.org <http://freedesktop.org> says that a possible value for $XDG_DATA_HOME is "$HOME/.local/share/", so i'll assume that value, and assuming <harbour-name> is "harbour-batsap") should the correct application data folder be "/home/new/.local/share/harbour-batzap" insted "/home/new/.local/share/harbour-batzap/harbour-batzap" as qt returns for QStandardPaths::DataLocation?

Note: the qt docs suggest that /QStandardPaths::AppDataLocation/ should be used while /QStandardPaths::DataLocation/ is a deprecated value. But i'm getting errors (/AppDataLocation /is not a member of /QStandardPaths/) using /QStandardPaths::AppDataLocation/ (it was introduced in Qt 5.4, i really don't remember what Qt5 version jolla ships)

If i try to get the values of the XDG variables using the QProcessEnvironment module, i'm always getting blank values:

    [D] main:75 -
    QProcessEnvironment::systemEnvironment().value("$XDG_DATA_HOME"): ""
    [D] main:76 -
    QProcessEnvironment::systemEnvironment().value("XDG_DATA_HOME"): ""
    [D] main:77 -
    QProcessEnvironment::systemEnvironment().value("$XDG_CACHE_HOME"): ""
    [D] main:78 -
    QProcessEnvironment::systemEnvironment().value("XDG_CACHE_HOME"): ""
    [D] main:79 -
    QProcessEnvironment::systemEnvironment().value("$XDG_CONFIG_HOME"): ""
    [D] main:80 -
QProcessEnvironment::systemEnvironment().value("XDG_CONFIG_HOME"): "" (i'm returning these values using: /qDebug() << "QProcessEnvironment::systemEnvironment().value(<variable>, "");/
/
/
Using qDebug() << "getenv(<variable>): " << /getenv(<variable>);/ also returns me an empty value:

    [D] main:81 - getenv("XDG_DATA_HOME"):
    [D] main:82 - getenv("$XDG_DATA_HOME"):
    [D] main:83 - getenv("XDG_CACHE_HOME"):
    [D] main:84 - getenv("$XDG_CACHE_HOME"):
    [D] main:85 - getenv("XDG_CONFIG_HOME"):
[D] main:86 - getenv("$XDG_CONFIG_HOME"):
/
/
I'm executing the app thought qtcreator in my jolla device (deploying it as an RPM package).

What are the correct path values? and how should I get them throught qt?.

Thanks!
--
Nicolas Cisco
www.nckweb.com.ar <http://www.nckweb.com.ar>


_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to