DesktopFile Class Reference

.desktop file reader and writer More...

#include <edelib/DesktopFile.h>

Inheritance diagram for DesktopFile:
Config

List of all members.

Public Member Functions

 DesktopFile ()
 ~DesktopFile ()
bool load (const char *fname)
bool save (const char *fname)
void create_new (DesktopFileType t)
 operator bool (void) const
DesktopFileType type (void)
bool name (char *val, int len)
bool generic_name (char *val, int len)
bool comment (char *val, int len)
bool icon (char *val, int len)
bool exec (char *val, int len)
bool try_exec (bool &program_found)
bool path (char *val, int len)
bool url (char *val, int len)
bool mime_type (char *val, int len)
bool no_display (void)
bool hidden (void)
bool terminal (void)
bool startup_notify (void)
bool only_show_in (char *val, int len)
bool only_show_in (list< String > &lst)
bool not_show_in (char *val, int len)
bool not_show_in (list< String > &lst)
void set_type (DesktopFileType t)
void set_name (const char *val)
void set_generic_name (const char *val)
void set_comment (const char *val)
void set_icon (const char *val)
void set_exec (const char *val)
void set_try_exec (const char *val)
void set_path (const char *val)
void set_url (const char *val)
void set_mime_type (const char *val)
void set_no_display (bool val)
void set_hidden (bool val)
void set_terminal (bool val)
void set_startup_notify (bool val)
void set_only_show_in (const list< String > &lst)
void set_not_show_in (const list< String > &lst)

Detailed Description

.desktop file reader and writer

Desktop file (or desktop entries) are config files ending with .desktop extension. This is text file, readable with Config class. These files are (ab)used to describe desktop icons, menu entries and etc.

Current implementation conforms to http://www.freedesktop.org specification version 1.0 with few exceptions (read, some sections are ignored). Those are:

In case you want to create .desktop file from scratch, make sure you call create_new() before you fill the data, so DesktopFile can setup mandatory data prior file saving, like:

   DesktopFile f;
   f.create_new(DESK_FILE_TYPE_APPLICATION);
   f.set_name("MyApp");
   f.save("myapp.desktop");

create_new() will also clear all current hold conten


Constructor & Destructor Documentation

DesktopFile (  ) 

Initialize internal data

~DesktopFile (  ) 

Empty destructor


Member Function Documentation

bool comment ( char *  val,
int  len 
)

Get value from Comment key. Returning value will match current locale.

Returns:
true if key exists and was readed, or false
Parameters:
val is destination
len size of destination
void create_new ( DesktopFileType  t  ) 

Create new .desktop context. To create new .desktop file, you must call this function first and then fill it

bool exec ( char *  val,
int  len 
)

Get value from Exec key. The value should be an executable program optionally followed by one or more arguments. If executable program wasn't specified with its full path, the executable is looked up in $PATH environment variable. If not found, this function will return false.

Todo:
special variables and symbol escaping are not implemented yet
bool generic_name ( char *  val,
int  len 
)

Get value from GenericName key. Returning value will match current locale.

Returns:
true if key exists and was readed, or false
Parameters:
val is destination
len size of destination
bool hidden ( void   ) 

Get value from Hidden key.

bool icon ( char *  val,
int  len 
)

Get value from Icon key. Returned value can be absolute path (with given icon extension) or just icon name (without extension, which is often done). In latter case final application should figure out will use IconTheme or load icon directly.

bool load ( const char *  fname  ) 

Load file checking if is .desktop file

Returns:
true if file loaded or false if error occured
Parameters:
fname is file to load

Reimplemented from Config.

bool mime_type ( char *  val,
int  len 
)

Get value from MimeType key.

bool name ( char *  val,
int  len 
)

Get value from Name key. Returning value will match current locale.

Returns:
true if key exists and was readed, or false
Parameters:
val is destination
len size of destination
bool no_display ( void   ) 

Get value from NoDisplay key.

bool not_show_in ( list< String > &  lst  ) 

Get list of values from NotShowIn key. If key wasn't found, list will not be altered.

bool not_show_in ( char *  val,
int  len 
)

Get full value from NotShowIn. This value will be in form: foo;baz;.

bool only_show_in ( list< String > &  lst  ) 

Get list of values from OnlyShowIn key. If key wasn't found, list will not be altered.

bool only_show_in ( char *  val,
int  len 
)

Get full value from OnlyShowIn. This value will be in form: foo;baz;.

operator bool ( void   )  const [inline]

Used to check if current loaded file is .desktop file. Can be used like:

   DesktopFile desk;
   desk.load("foo.desktop");
   if(!desk)
      // save the world

Reimplemented from Config.

bool path ( char *  val,
int  len 
)

Get value from Path key. If value is not empty and type is DESK_FILE_TYPE_APPLICATION it will fill destination and return true. Otherwise, false.

bool save ( const char *  fname  ) 

Save file

Returns:
true if was succesfull or false if not
Parameters:
fname is file to be saved

Reimplemented from Config.

void set_comment ( const char *  val  ) 

Set Comment key

void set_exec ( const char *  val  ) 

Set Exec key

void set_generic_name ( const char *  val  ) 

Set GenericName key

void set_hidden ( bool  val  ) 

Set Hidden key

void set_icon ( const char *  val  ) 

Set Icon key

void set_mime_type ( const char *  val  ) 

Set MimeType key

void set_name ( const char *  val  ) 

Set Name key

void set_no_display ( bool  val  ) 

Set NoDisplay key

void set_not_show_in ( const list< String > &  lst  ) 

Set NotShowIn key. Note that only OnlyShowIn or NotShowIn keys can exists. If one of them is already set, this function will do nothing.

void set_only_show_in ( const list< String > &  lst  ) 

Set OnlyShowIn key. Note that only OnlyShowIn or NotShowIn keys can exists. If one of them is already set, this function will do nothing.

void set_path ( const char *  val  ) 

Set Path key

void set_startup_notify ( bool  val  ) 

Set StartupNotify key

void set_terminal ( bool  val  ) 

Set Terminal key

void set_try_exec ( const char *  val  ) 

Set TryExec key

void set_type ( DesktopFileType  t  ) 

Set type of desktop file

void set_url ( const char *  val  ) 

Set URL key

bool startup_notify ( void   ) 

Get value from StartupNotify key.

bool terminal ( void   ) 

Get value from Terminal key.

bool try_exec ( bool &  program_found  ) 

Get value from TryExec key. TryExec key contains program executable name and this function will try to determine if the program is actually installed. This will be done by looking either if full path was given or in $PATH environment variable.

Returns:
false if TryExec is not present in the file
Parameters:
program_found will be true if program found; otherwise will be false
DesktopFileType type ( void   ) 

Return type of desktop file. It will be one of DesktopFileType

bool url ( char *  val,
int  len 
)

Get value from URL key. If value is not empty and type is DESK_FILE_TYPE_LINK it will fill destination and return true. Otherwise, false.


The documentation for this class was generated from the following file:

Generated on 7 May 2013 for edelib by  doxygen 1.6.1