[Development] Differences: QDesktopServices vs QStandardPaths

David Faure faure at kde.org
Wed Jul 10 10:57:39 CEST 2013


Le mercredi 10 juillet 2013 09:41:59 Mark a écrit :
> > QString paths =
> > QDesktopServices::storageLocation(QDesktopServices::DataLocation);

After reading the forum post, I have a more complete answer; posting here for 
posterity.
If your Qt4 code does the above, in Qt5 you can either:
* move the data once and for all (from data/org/app to org/app)
* keep using the deprecated QDesktopServices::DataLocation
* port to this instead:
QStandardPaths::writableLocation(GenericDataLocation) + “data/org/app”.

The latter is the future-proof way of accessing that (old) data/org/app 
directory under local/share, for people who don't want to move it.

Please confirm that this solution works for you, and I'll add porting 
documentation to QDesktopServices about this solution.

I withdraw my suggestion of a Qt4DataLocation because this is basically what 
QDesktopServices::DataLocation is. IOW, the compat code already exists, it's 
exactly there in QDesktopServices -- and there is another difference than the 
"data" subdir, it's what happens when the applicationName isn't set, in Qt4 it 
was empty, in Qt5 it comes from the executable name.

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE, in particular KDE Frameworks 5




More information about the Development mailing list