Page suivante Page précédente Table des matières
Le chapitre précédent couvrait le standard du Système de Fichiers de KDE, et celui-ci traite de ce que vous avez à faire pour utiliser ce système de fichiers. Un projet KDE utilise le système de fichiers au moins pour les procédures d'installation ; nous parlerons donc des paramètres d'installation des fichiers de votre projet. Votre application peut utiliser des fichiers installés par la suite, il est donc important de savoir comment récupérer le chemin relatif par le standard. Cela permet à votre application de travailler où que soit le système de fichier KDE et évite d'avoir à coder en dur les informations sur les fichiers.
Après l'installation de votre projet par les utilisateurs, votre application
peut avoir besoin d'informations sur les fichiers pendant l'exécution. Lors
de la période de développement, vous rencontrerez au moins une erreur au moment
où vous lancerez votre application dans l'environnement KDevelop : dans
"Aide"-"Contenu" ou en appuyant sur la touche F1, le manuel de l'application
sera manquant. Cela se manifeste par un message indiquant que le
fichier index.html est introuvable - si vous n'avez pas installé votre
application dans votre système de fichiers KDE. Votre application demande
à KDEHelp d'ouvrir votre page d'index en cherchant le répertoire d'installation
à travers les méthodes de KApplication
pour accéder au système de
fichiers, nous allons donc regarder ce que KApplication
propose
et examiner quelques exemples d'utilisation. D'autres classes de KDE-Core
, telles que
KIconLoader
et KLocale
, font aussi usage du système de
fichier KDE ; nous en reparlerons plus loin.
La classe KApplication offre les méthodes suivantes pour accéder au système de fichiers KDE :
void invokeHTMLHelp ( QString aFilename, QString aTopic ) const
static const QString& kde_htmldir ()
static const QString& kde_appsdir ()
static const QString& kde_icondir ()
static const QString& kde_datadir ()
static const QString& kde_localedir ()
static const QString& kde_cgidir ()
static const QString& kde_sounddir ()
static const QString& kde_toolbardir ()
static const QString& kde_wallpaperdir ()
static const QString& kde_bindir ()
static const QString& kde_configdir ()
static const QString& kde_mimedir ()
static QString localkdedir ()
static QString localconfigdir ()
static QString findFile ( const char *file )
Les méthodes sont généralement utilisées avec l'instance de KApplication
de votre application, où KApplication
offre une macro kapp
destinée à recevoir le pointeur :
#define kapp KApplication::getKApplication()
Les méthodes sont donc généralement utilisées de la façon suivante :
QString sounddir=kapp->kde_sounddir();
Cet exemple enregistre le chemin du répertoire son de KDE sous forme d'une
QString
, où vous ajouterez par exemple le nom d'un fichier son. Vous
pouvez ensuite utiliser cette information et jouer un fichier son qui se
trouve là. Vous devriez toujours tester l'existence d'un fichier en utilisant
la méthode exists()
de la classe QFileInfo
.
Au sein de ces méthodes,
void invokeHTMLHelp( QString aFilename, QString aTopic ) const [public]
occupe une place privilégiée, puisqu'elle sert à appeler l'aide de KDE.
Généralement, vous devriez l'employer partout où l'utilisateur peut
avoir besoin d'aide, par exemple lorsqu'on lui présente une boîte de dialogue.
La touche F1 ne servira pas à afficher le contenu de l'aide, mais la page
d'aide correspondante. Pour en faire bon usage, ajoutez un bouton "Aide" à
votre boîte de dialogue et créez un slot à connecter au signal pressed()
.
Dans cette méthode, utilisez invokeHTMLHelp()
avec la page et le
sujet correspondants ; au cas où la documentation de votre application n'est
pas terminée, laissez cette section vide afin de la compléter par la suite.
La documentation de KApplication
dit :
Appelle le visualiseur d'aide HTML kdehelp.
Paramètres : aTopic : cela permet l'aide contextuelle. Sa valeur sera concaténée au nom de fichier, précédé d'un "#" (dièse).
aFilename : le nom du fichier à charger. Son emplacement est déterminé automatiquement selon le KFSSTND. Si aFilename est vide, on utilise le nom logique de l'application (appname) suivi de .html.
Les méthodes de KApplication
extrairont les chemins suivants :
kde_htmldir() kdedir()/share/doc/HTML Renvoie le répertoire où KDE enregistre
sa documentation HTML
kde_appsdir() kdedir()/share/applnk Renvoie le répertoire où les applications KDE
enregistrent leur fichier .kdelnk
kde_icondir() kdedir()/share/icons Renvoie le répertoire où les icônes KDE sont stockées
kde_datadir() kdedir()/share/apps Renvoie le répertoire où les applications KDE
enregistrent leurs données propres
kde_localedir() kdedir()/share/locale Renvoie le répertoire où les information relatives aux pays
(comme les messages traduits par exemple) sont enregistrées
kde_cgidir() kdedir()/cgi-bin Renvoie le répertoire où sont stockés les scripts cgi
kde_sounddir() kdedir()/share/sounds Renvoie le répertoire où les données sonores sont stockées.
Ce répertoire est destiné aux sons spécifiques à KDE.
Les données sonores des applications devraient aller
dans le répertoire kde_datadir()
kde_toolbardir() kdedir()/share/toolbar Renvoie le répertoire où les icônes de barres d'outils sont stockées
kde_wallpaperdir() kdedir()/share/wallpapers Renvoie le répertoire où les fonds d'écran KDE sont stockés
kde_bindir() kdedir()/bin Renvoie le répertoire où les binaires des applications KDE sont stockés
kde_configdir() kdedir()/share/config Renvoie le répertoire où les fichiers de configuration sont stockés
kde_mimedir() kdedir()/share/mimelnk Renvoie le répertoire où les types MIME sont stockés
localkdedir() $HOME/.kde Renvoie le répertoire de base de KDE
localconfigdir() $HOME/.kde/share/config Renvoie le répertoire de configuration local de KDE
Pour rechercher un fichier particulier, utilisez findFile(const char *file)
qui
recherchera parmi plusieurs chemins du Système de Fichiers de KDE :
Si le fichier est introuvable, la méthode isEmpty() de la classe QString renverra True (Vrai)
QPixmap loadIcon ( const QString &name, int w = 0, int h = 0 )
QPixmap reloadIcon ( const QString &name, int w = 0, int h = 0)
QPixmap loadMiniIcon ( const QString &name , int w = 0, int h = 0 )
QPixmap loadApplicationIcon ( const QString &name, int w = 0, int h = 0 )
QPixmap loadApplicationMiniIcon ( const QString &name, int w = 0, int h = 0 )
bool insertDirectory ( int index, const QString &dir_name )
Nous avons vu plus haut où les applications KDE devraient placer leurs fichiers et comment accéder à ceux-ci pendant l'exécution, nous allons maintenant voir comment régler les propriétés des fichiers correctement afin qu'ils s'installent au bon endroit. Les Makefiles supportent un ensemble de macros permettant d'installer vos fichiers dans le Système de Fichiers de KDE, celles-ci doivent être utilisées pour configurer l'installation des fichiers.
Pour définir les propriétés, ouvrez votre projet et sélectionnez "Projet"-"Propriétés du Fichier" ce qui ouvrira la boîte de dialogue des Propriétés du Fichier. Celle-ci apparaîtra si vous sélectionnez un nom de fichier actuellement inclus dans le projet. Tout d'abord, un fichier a un type, qui peut être l'un des suivants :
Par la suite, un fichier est inclus dans le projet, si "Inclure dans la Distribution" est coché. Cela permet de s'assurer que le fichier sera inclus dans l'archive tar ou le paquetage.
Si un fichier doit être installé, vous devez activer "Installer". Cela permettra de fixer le chemin d'installation pour le fichier sélectionné, là où le nom du fichier est déjà inséré.
Maintenant, comme nous l'avons vu plus haut, le Makefile dispose déjà d'un ensemble de macros pour le Système de Fichiers Standard. Celles-ci sont utilisées pour fixer le chemin d'installation et s'assurer que les fichiers vont réellement se retrouver sur le système de fichiers de KDE et pas ailleurs. Les macros qui peuvent être utilisées doivent être encadrées de parenthèses et sont précédées d'un dollar. Lorsque le script configure construit les Makefiles sur le système de l'utilisateur final, il va déterminer les valeurs pour ces macros qui correspondent au vrai nom de répertoire et étendra la macro Makefile.am vers sa vraie destination.
Si vous regardez un projet d'application KDE standard, vous remarquerez dans les
propriétés de votre fichier index.html
qu'il utilise déjà une macro
permettant de déterminer où il doit aller :
$(kde_htmldir)/en/kscribble/index.html
Cela signifie que make doit installer le fichier index.html dans le répertoire kde-html, sous-répertoire en pour English (Anglais), sous-répertoire de l'application et le nom du fichier. Vous pourriez tout aussi bien utiliser un autre nom de fichier si vous souhaitez le renommer à la destination de l'installation.
Pour la destination des binaires vous devez pour le moment éditer le Makefile.am du projet si vous souhaitez que la destination ne soit pas la section "Application" du tableau de bord :
APPSDIR = $(kde_appsdir)/Applications
Valeurs possibles (selon le Standard du Système de Fichiers de KDE) :
Si vous ne précisez pas de répertoire, votre lien ira directement à la racine du tableau de bord.
La liste suivante contient les macros qui peuvent être utilisées lors de la configuration de l'installation des fichiers :
kde_htmldir Où vos docs doivent aller. (contient un sous-répertoire par langue)
kde_appsdir Où le fichier application (.kdelnk) doit aller.
kde_icondir Où votre icône doit aller.
kde_minidir Où votre mini-icône doit aller.
kde_datadir Où installer les données de votre application. (Utilisez un sous-répertoire)
kde_locale Où les traductions doivent aller. (contient un sous-répertoire par langue)
kde_cgidir Où les exécutables cgi-bin doivent aller.
kde_confdir Où les fichiers de configuration doivent aller.
kde_mimedir Où les types MIME doivent aller.
kde_toolbardir Où les icônes de barres d'outils doivent aller.
kde_wallpaperdir Où les fonds d'écran doivent aller.
Utilisez ces macros avec les sous-répertoires et les noms de fichiers adéquats pour configurer les propriétés d'installation. Par défaut, la destination des fichers de documentation HTML, du fichier kdelnk, de l'Icône, de la Mini-icône et des traductions est déjà configurée ; vous n'avez donc pas à faire de modification, puisque ceci a été réalisé par l'assistant d'application de KDevelop.
Un autre problème apparaît souvent dans la création d'un projet, si le développeur souhaite inclure des données supplémentaires qui devront être installées avec le projet. Vous savez où vous voudrez les installer, mais comment les organiser dans l'arborescence du source ?
Il est de bon conseil de rassembler toutes les données dans des répertoires qui
correspondent plus ou moins aux Standards du Système de Fichiers de KDE. Prenons
par exemple les icônes de barre d'outils dont peut avoir besoin votre application.
Créer ces icônes dans le répertoire principal du projet n'est pas une très bonne
idée car elles seront difficiles à retrouver avec un visualiseur de fichier externe
et les supprimer serait plus ardu. Créez donc votre icône avec "Fichier"-"Nouveau"
et choisissez le sous-répertoire toolbar
; si ce répertoire n'existe pas,
il peut facilement être créé avec la boîte de dialogue "sélection du répertoire".
Les icônes existantes peuvent être copiées et incluses dans le projet avec
"Projet"-"Ajouter fichier(s) existant(s)", où vous devez choisir le fichier et
sa destination. Lorsque vous sélectionnez le répertoire destination, vous pouvez
créer le sous-répertoire toolbar
avant tout dans la boîte de dialogue.
Quand vous avez terminé, appuyez sur OK et les fichiers seront copiés et
inclus dans le projet.
À titre d'exemple, une icône de barre d'outils peut aller au chemin suivant :
$(kde_datadir)/<appname>/toolbar/<youricon>.xpm
Les images et les icônes supplémentaires non utilisées comme les icônes de barre d'outils peuvent être stockées dans un sous-répertoire pics au lieu de toolbar.
kdelnk
Le fichier <appname>.kdelnk actuellement inclu dans votre projet s'installera dans la structure du tableau de bord de KDE. Vous pourriez penser qu'il est déjà créé, et que vous n'auriez pas d'autres informations à apporter. Malgré les qualités avancées de KDevelop pour vous aider à créer, programmer et concevoir des applications, il ne peut pas déterminer le but exact de votre application - et c'est cette information que vous devez ajouter au fichier kdelnk. Comme c'est un fichier texte, sélectionnez le depuis le RFV ou le LFV ; il sera ouvert dans la fenêtre Fichier En-Tête/Ressources.
Le fichier kdelnk par défaut ressemblera à ça :
# KDE Config File
[KDE Desktop Entry]
Type=Application
Exec=kscribble
Icon=kscribble.xpm
DocPath=kscribble/index.html
Comment=
Comment[de]=
Terminal=0
Name=kscribble
Name[de]=kscribble
Il contient déjà la configuration de base pour les données propres à l'application comme l'icône, le nom du binaire, le nom de l'application, etc. Vous pouvez voir que la section Comment (Commentaire) est toujours vide. Vous devez ajouter la bulle d'aide qui sera affichée lorsque le curseur de la souris passera au dessus de l'icône sur le bureau ou dans le tableau de bord. Si scribble était un petit programme de dessin, vous écririez par exemple :
Comment=Un simple programme de dessin
Chaque ligne de commentaire contiendra par la suite la même description traduite dans la langue symbolisée par les crochets. Demandez aux traducteurs d'ajouter une bonne traduction dans leur langue maternelle ou incluez le fichier kdelnk lorsque vous demandez à ce que le fichier po soit traduit ; la même remarque s'applique au nom de l'application fixée dans les lignes Name.
Pour plus d'informations sur le but du fichier kdelnk, en particulier pour l'interprétation de la ligne de commande, voir Référence des Bibliothèques KDE
Page suivante Page précédente Table des matières