[SailfishDevel] QStandardPaths not working when app is run from Launcher

Sylvain B. sthocs at hotmail.com
Mon Jan 20 20:59:51 UTC 2014


Hey guys,
While trying to build a little app to show the issue, I understood what I was doing wrong:
I was calling QStandardPaths::writableLocation(QStandardPaths::CacheLocation) in the constructor of my c++ class and storing the result.
And in the main(), I was instantiating this c++ class before calling SailfishApp::application(argc, argv);
So the app name was not yet set, thus I was storing a bad path.

Vesku, you are right, QStandardPaths use applicationName and organizationName
      when constructing paths.

The only thing that I don't understand is why it was working from the Terminal, but that's not that important :)

Thanks for your answers!!
Sylvain.

Date: Mon, 20 Jan 2014 11:19:38 +0200
From: vesa-matti.hartikainen at jolla.com
To: devel at lists.sailfishos.org
Subject: Re: [SailfishDevel] QStandardPaths not working when app is run from Launcher


  
    
  
  
    Hi,

      

       I think QStandardPaths use applicationName and organizationName
      when constructing paths.

      

       So solution would be something like 

          app->setApplicationName("harbour-yourapp");

          app->setOrganizationName("harbour-yourapp");

      

       And then QStandardPaths will start giving paths that follow
      harbour guidance.

      

      BR,

       Vesku

      

      

      On 01/19/2014 05:32 PM, Robin Burchell wrote:

    
    
      
      Hi,
      

      
      Can you please provide a small sample demonstrating this? As
        I’m quite sure it works for our own uses.
      

      
      BR,
      Robin
      

        
          On 19 Jan 2014, at 14:34, Sylvain B. <sthocs at hotmail.com>
            wrote:
          
          
            
              Hey,

                My app did not want to read the some cached content it
                was supposed to have written in QStandardPaths::CacheLocation.

                To understand why, I tried to run it from the terminal,
                and... everything is working fine.

                Since we don't have logs when we run the app directly
                from Launcher, I updated it to display some logs
                directly in the UI and I figured out that, when the app
                is run from the Launcher on the actual device (it's ok
                on the emulator), QStandardPaths does not work
                correctly:

                

                QStandardPaths::CacheLocation returns
                /home/nemo/.cache/mdeclarativecache_pre_initialized_qapplication-XXXXX

                

                XXXXX is a random number, so each time I run my app, it
                creates a new one.

                When run from terminal, QStandardPaths::CacheLocation correctly
                returns /home/nemo/.cache/

                

                I tried with QStandardPaths::DataLocation but it's
                the same, I get
/home/nemo/.local/share/AppName/mdeclarativecache_pre_initialized_qapplication-XXXXX

                

                So for the moment, I temporarily hardcoded
                /home/nemo/.cache/

                

                Thanks!

                Sylvain.

              
              _______________________________________________

              SailfishOS.org Devel mailing list
          
        
        

      
      

      
      

      _______________________________________________
SailfishOS.org Devel mailing list
    
    

    

    -- 
Vesa-Matti Hartikainen
Jolla Oy
http://jolla.com
p. +358 50 487 6067
  


_______________________________________________
SailfishOS.org Devel mailing list 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140120/dabbb877/attachment.html>


More information about the Devel mailing list