[Gambas-user] File extensions

Willy Raets willy at ...2734...
Fri May 17 19:52:30 CEST 2013


On Fri, 2013-05-17 at 01:18 +0200, Benoît Minisini wrote:
> Le 16/05/2013 17:39, Willy Raets a écrit :
> > Hi all,
> >
> > I'm trying to achieve something but have no idea even where to start
> > looking.
> >
> > Let's say I have a gambas3 application named MyFileMaker
> >
> > The application MyFileMaker saves files with extension .myfile
> >
> > What I want to achieve is when double clicking a .myfile for application
> > MyFileMaker to open with the double clicked .myfile
> >
> > 1. How does my application know it is opened because a .myfile was
> > double clicked instead of opened from menu as usual as it has to act
> > differently?
> > 2. How does the system know that a .myfile needs to be opened with
> > MyFileMaker?
> > 3. How do I give the .myfile their own icon, meaning how does the system
> > know that when there is a .myfile it has to use an icon I provided?
> >
> > This all needs to work when a end user installs MyFileMaker, so:
> >
> > 4. What do I need to do when making a package. Are there any options
> > that need to be set in the packaging wizard and how do they need to be
> > set?
> >
> > Any hint or link to more information would be welcome.
> >
> 
> The 6th step of the wizard packager allows you to define which mimetypes 
> are associated with your program.
> 
> Alas, there is nothing to define a new mimetype, which is needed to make 
> the system aware of the *.myfile extension.
> 
> All the information is there:
> 
> http://freedesktop.org/wiki/Specifications/shared-mime-info-spec
> 
> A new mime type can be defined by running the 'xdg-mime install xxx.xml' 
> command where 'xxx.xml' is an XML file that defines how to identify the 
> mime type.
> 
> The syntax of that xml file is defined there:
> 
> http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.18.html#id2604543
> 
> Regards,

This has been really helpful information, thanks.

1. Implemented gb.args to get the path and file name that needs opening 
2. Added mimetype information to packager
3. Have a myapp.xml file set in place in packager (I chose
for /usr/local/share/mime/packages/)

All I need to do know is code that on first run the myapp.xml file gets
added as mimetype

All that needs to be done is:
sudo xdg-mime install /usr/local/share/mime/packages/myapp.xml
--novendor
OR
sudo update-mime-database /usr/local/share/mime/

This last option I found in the documentation and needs the xml file to
be located in /usr/local/share/mime/packages/

I'm almost there, one more thing:

Is there a likewise solution to handle the icon being associated with
the new mimetype.
Where do these icons have to be placed and how to tell the system to use
them?


P.S.
If I look at all this is could be implemented in the packager.
If mime type defined in Gambas package wizard 6th step give option to
make or browse for the xml file in packager wizard and add it
automatically to Extra files in step 8 of package wizerd to be copied to
to /usr/local/share/mime/packages/ upon installing application.
Next have the packager (if mimetype conditions are met) make a script to
be run after install doing a
update-mime-database /usr/local/share/mime/ 

All xml files residing in /usr/local/share/mime/packages/ will have
their mimetypes registered, so you don't even need to know the name of
the .xml with above command.

Could something like that be done as it would kind of automate the
mimetype configuration during packaging?
-- 
Kind regards,

Willy (aka gbWilly)

http://gambasshowcase.org/
http://howtogambas.org
http://gambos.org








More information about the User mailing list