Ceci est une ancienne révision du document !
Liquid
Liquid est un module KDED qui permet de lister les points de montage disponibles sur un ordinateur et d'être averti lors de tout ajout ou suppression de l'un d'entre eux.
Avant tout
Vous pouvez utiliser le dépôt de Spomky afin de faciliter l'installation du logiciel et ses dépendances.
Le code source est disponible sous Launchpad et peut être téléchargé avec Bazaar.
Installation
Liquid est disponible sous forme de paquets binaires x86 et x86_64 pour Lucid Lynx.
Installez simplement le paquet apt://liquid. Pour développer en utilisant Liquid, installez le paquet apt://liquid-dev.
Activation/Désactivation
Liquid est un module KDED ; il s'exécutera en tâche de fond dès l'ouverture d'une session.
Si vous souhaitez arrêter Liquid ou désactiver le lancement automatique, rendez-vous dans le panneau "Configuration du système" de KDE, choisissez l'onglet "Avancé" puis sélectionnez "Gestionnaire de services".
Recherchez ensuite "Service Liquid" dans la partie "Services au démarrage" et activez-le comme il vous plaira.
Configuration
Liquid peut être configuré via le panneau "Configuration du système" de KDE.
Rendez-vous à l'onglet "Avancé" puis choisissez "Ponts de montage".
Vous changements sont pris en compte dès que vous les aurez validés.
Liquid utilise KNotify pour avertir les utilisateurs dès qu'un point de montage est ajouté ou supprimé. Dans l'onglet "Général", choisissez "Notifications" puis cherchez "Service Liquid".
Sélectionnez ensuite les méthodes de notifications selon votre convenance.
Utilisation
Liquid met à votre disposition une interface DBus proposant les méthodes et signaux suivants :
- Signal : Added
- Signal : Removed
- Méthode : List
- Méthode : updateSettings
Les signaux envoient une liste de chaînes de caractères. Ces chaînes de caractères représentent les points de montage.
La méthode List envoie une liste de chaînes de caractères représentant les points de montage disponibles actuellement.
updateSettings permet à Liquid de relire sa configuration. Cette méthode n'est utilie que si les paramètres ont été modifiés manuellement ou via un logiciel tiers.
Développer avec l'API Liquid
L'API Liquid met à disposition des classes objet .
notifier
notifier averti lorsqu'un point de montage est ajouté ou supprimé.
Pour utiliser notifier, ajoutez l'en-tête correspondant :
#include <Liquid/notifier.h>
Connexion des signaux
La partie de code suivante connecte les signaux de notifier aux slots correspondant au signal.
connect(Liquid::Notifier::instance(), SIGNAL( mountpointAdded( Liquid::Mountpoint& ) ), this, SLOT( newMountPointAdded( Liquid::Mountpoint& ) ) ); connect(Liquid::Notifier::instance(), SIGNAL( mountpointRemoved( Liquid::Mountpoint& ) ), this, SLOT( newMountPointDeleted( Liquid::Mountpoint& ) ) );
État de Liquid
Pour savoir si Liquid est fonctionnel -c'est à dire correctement connecté à l'interface DBus-, exécutez simplement la fonction isReady :
if( Liquid::Notifier::instance()->isReady() ) ...
Elle renvoie true si tout est bon ; sinon false.
mountpoint
mountpoint permet d'obtenir la liste des points de montage en cours et les informations sur ceux-ci.
Pour utiliser mountpoint, ajoutez l'en-tête correspondant :
#include <Liquid/mountpoint.h>
Obtenir la liste des points de montage
QList<Liquid::Mountpoint> result = Liquid::Mountpoint::allMountpoints();
Obtenir des informations sur un point de montage
L'objet Liquid::Mountpoint dispose de nombreuses fonctions :
- Vérifier si l'objet est valide : bool isValid( void ) const;
- Nom du système de fichiers : QString getFilesystemName( void ) const;
- Type du système de fichierse : QString getFilesystemType( void ) const;
- Chemin du système de fichiers : QString getFilesystemPath( void ) const;
- Nom du périphérique (si disponible) : QString getRealDeviceName( void ) const;
- Options passées à la fonction mount : QStringList getOptions( void) const;
- Taille totale : QString getSize( const SizeType type = Liquid::Mountpoint::Decimal ) const;
- Taille libre : QString getSizeFree( const SizeType type = Liquid::Mountpoint::Decimal ) const;
- Taille disponible : QString getSizeAvailable( const SizeType type = Liquid::Mountpoint::Decimal ) const;
- Nombre total de blocs : qlonglong getBlocks( void ) const;
- Taille d'un bloc : qlonglong getBlocksSize( void ) const;
- Nombre de blocs libres : qlonglong getBlocksFree( void ) const;
- Nombre de blocs disponibles : qlonglong getBlocksAvailable( void ) const;
- Nombre de fichiers : qlonglong getFiles( void ) const;
- Nombre de fichiers libres : qlonglong getFilesFree( void ) const;
- Taille maximale des noms de fichiers : qlonglong getFilenameMaxLength( void ) const;
- Identifiant du propriétaire : uid_t getOwnerUID( void ) const;
- Groupe du propriétaire : gid_t getOwnerGID( void ) const;
- Login du propriétaire : QString getOwnerLogin( void ) const;
- Nom complet du propriétaire : QString getOwnerFullName( void ) const;
Exemple
QList<Liquid::Mountpoint> result = Liquid::Mountpoint::allMountpoints(); QList<Liquid::Mountpoint>::const_iterator i; for( i = result.constBegin(); i != result.constEnd(); i ++ ) { qDebug() << "Le point de montage " << i->getFilesystemPath() << " est de type " << i->getFilesystemType(); }
Désinstallation
Supprimez le paquet apt://liquid ou apt://liquid-dev.
Vous devez quitter la session en cours et vous reconnecter pour que la désinstallation soit complète.