Ceci est une ancienne révision du document !
Liquid
Liquid est un module KDED qui permet de lister les points de montage disponible 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.
Il fait partie du projet Fusible mais ne dépend que de SMUDd.
Installation
Liquid est disponible sous forme de paquets binaires x86 et x86_64 pour Intrepid Ibex.
Installez simplement le paquet apt://liquid. Pour développer en utilisant Liquid, installez le paquet apt://liquid-dev.
Utilisation
Liquid met à disposition deux classes objet : mountpoint et notifier. Ces object se trouvent dans l'espace de nommage Liquid.
notifier
notifier averti lorsqu'un point de montage est ajouté ou supprimé et indique si la connexion avec l'interface DBus de SMUDd est créé.
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é à SMUDd-, 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;
Pour les fonctions permettant d'obtenir les tailles totales, libres et disponibles, le paramètre est soit Liquid::Mountpoint::Decimal, soit Liquid::Mountpoint::Binary. Il permet d'obtenir la taille en octets décimaux (Mo, Go, To, …) ou en octets binaires (Mio, Gio, Tio, …).
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.