Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
utilisateurs:quent57:tutoriel:singlet_unity_lens [Le 02/02/2013, 15:54] quent57 [Les types de catégories] |
utilisateurs:quent57:tutoriel:singlet_unity_lens [Le 11/09/2022, 13:13] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
L'idée d'ici est de créer une lense et un scope qui montrent toutes les possibilités à disposition par les lens et scope unity, et au passage de comprendre comment utiliser et comment fonctionne singlet. | L'idée d'ici est de créer une lense et un scope qui montrent toutes les possibilités à disposition par les lens et scope unity, et au passage de comprendre comment utiliser et comment fonctionne singlet. | ||
- | Le projet sera facilement compilable pour pouvoir réellement visualiser et tester toutes les possibilités de des lenses unity. | + | Le projet sera facilement compilable pour pouvoir réellement visualiser et tester toutes les possibilités de des lenses unity. |
Ce tutoriel ne contiendra pas d'images qui risquerai de rapidement devenirs obsolètes. | Ce tutoriel ne contiendra pas d'images qui risquerai de rapidement devenirs obsolètes. | ||
Ligne 15: | Ligne 15: | ||
</code> | </code> | ||
- | Maintenant utilisons cette nouvelle lens : | + | Maintenant utilisons cette nouvelle lens : |
<code bash> | <code bash> | ||
cd tutorial | cd tutorial | ||
Ligne 27: | Ligne 27: | ||
Nous avons actuellement une seul catégorie d'affichée. | Nous avons actuellement une seul catégorie d'affichée. | ||
- | Ouvrir le fichier | + | Ouvrir le fichier |
tutorial/__init__.py | tutorial/__init__.py | ||
- | On observe dans ce fichier | + | On observe dans ce fichier |
example_category = ListViewCategory("Examples", 'help') | example_category = ListViewCategory("Examples", 'help') | ||
Cela correspond donc à cette catégorie. | Cela correspond donc à cette catégorie. | ||
Ligne 36: | Ligne 36: | ||
Nous allons la renommer et ajouter tous les types connus. | Nous allons la renommer et ajouter tous les types connus. | ||
- | La doc officielle des type de catégories ((http://developer.ubuntu.com/api/ubuntu-12.04/python/Unity-5.0.html#Unity.CategoryRenderer)) nous propose 4 types : | + | La doc officielle des type de catégories ((http://developer.ubuntu.com/api/ubuntu-12.04/python/Unity-5.0.html#Unity.CategoryRenderer)) nous propose 4 types : |
* VERTICAL_TILE | * VERTICAL_TILE | ||
* HORIZONTAL_TILE | * HORIZONTAL_TILE | ||
* LIST_TILE | * LIST_TILE | ||
* FLOW | * FLOW | ||
- | Mais singlet que 2 : | + | Mais singlet que 2 : |
- | * IconViewCategory (VERTICAL_TILE) | + | * IconViewCategory (VERTICAL_TILE) |
* ListViewCategory (HORIZONTAL_TILE) | * ListViewCategory (HORIZONTAL_TILE) | ||
- | remplacer cette ligne par ce code, la méthode permet de peupler une catégorie : | + | remplacer cette ligne par ce code, la méthode permet de peupler une catégorie : |
<code python> | <code python> | ||
list_view_category = ListViewCategory("ListViewCategory", 'help') | list_view_category = ListViewCategory("ListViewCategory", 'help') | ||
Ligne 69: | Ligne 69: | ||
</code> | </code> | ||
- | Remplaçons le contenu de la méthode search par : | + | Remplaçons le contenu de la méthode search par : |
<code python> | <code python> | ||
self.populate_category(self.list_view_category, results) | self.populate_category(self.list_view_category, results) | ||
Ligne 75: | Ligne 75: | ||
</code> | </code> | ||
- | Et comme on parle français et qu'on a envie de pouvoir mettre des accents utf-8, ajouter un première ligne du fichier : | + | Et comme on parle français et qu'on a envie de pouvoir mettre des accents utf-8, ajouter un première ligne du fichier : |
<code ptyhon> | <code ptyhon> | ||
# -*-coding:utf-8 -* | # -*-coding:utf-8 -* | ||
Ligne 82: | Ligne 82: | ||
Testez ! | Testez ! | ||
- | Alors ok, ça fonctionne et on observe 2 types de catégorie, essayons quand même les autres (singlet nous le permet, et c'est tant mieux !) ! | + | Alors ok, ça fonctionne et on observe 2 types de catégorie, essayons quand même les autres (singlet nous le permet, et c'est tant mieux !) ! |
<code python> | <code python> | ||
Ligne 93: | Ligne 93: | ||
</code> | </code> | ||
- | Nous ajouterons aussi les 2 imports suivants : | + | Nous ajouterons aussi les 2 imports suivants : |
<code python> | <code python> | ||
from singlet.lens.category import Category | from singlet.lens.category import Category | ||
Ligne 108: | Ligne 108: | ||
En effet, ce sont juste des membre de notre classe ! </note> | En effet, ce sont juste des membre de notre classe ! </note> | ||
- | Il utilise pour cela l'introspection ((singlet/lens.base.py)) : | + | Il utilise pour cela l'introspection ((singlet/lens.base.py)) : |
<code python> | <code python> | ||
for aName, a in attrs.items(): | for aName, a in attrs.items(): | ||
Ligne 139: | Ligne 139: | ||
On vas donc essayer de la définir pour afficher nos catégories dans le meme ordre que ci dessus, car ce n'est pas le cas. | On vas donc essayer de la définir pour afficher nos catégories dans le meme ordre que ci dessus, car ce n'est pas le cas. | ||
- | Pour cela, ajouter dans la classe Meta : | + | Pour cela, ajouter dans la classe Meta : |
<code python> | <code python> | ||
category_order=['list_view_category','icon_view_category','list_tile_category','flow_category'] | category_order=['list_view_category','icon_view_category','list_tile_category','flow_category'] | ||
Ligne 149: | Ligne 149: | ||
On vois ci dessus que l'on peux aussi définir des filtres | On vois ci dessus que l'on peux aussi définir des filtres | ||
- | Suivant la doc, voici l'arborescence des classes : | + | Suivant la doc, voici l'arborescence des classes : |
* Unity.Filter | * Unity.Filter | ||
* Unity.RatingsFilter | * Unity.RatingsFilter | ||
Ligne 160: | Ligne 160: | ||
Voila qui est intéressant, testons donc tous ces filtres ! | Voila qui est intéressant, testons donc tous ces filtres ! | ||
- | On ajoutera aussi l'import : | + | On ajoutera aussi l'import : |
<code pyhon> | <code pyhon> | ||
from gi.overrides.Gio import Gio | from gi.overrides.Gio import Gio | ||
Ligne 170: | Ligne 170: | ||
C'est très important car cela signifie que si on ajoute ces filtres en tant que membre de la classe, il *faut* qu'ils aient déja tous leur éléments ! | C'est très important car cela signifie que si on ajoute ces filtres en tant que membre de la classe, il *faut* qu'ils aient déja tous leur éléments ! | ||
- | Donc je propose d'ajouter cette fonction *en dessus* de la classe : | + | Donc je propose d'ajouter cette fonction *en dessus* de la classe : |
<code python> | <code python> | ||
def populate_option_filter(option_filter): | def populate_option_filter(option_filter): | ||
Ligne 178: | Ligne 178: | ||
</code> | </code> | ||
- | ensuite, ajouter en dessous des catégories non filtres : | + | ensuite, ajouter en dessous des catégories non filtres : |
<code python> | <code python> | ||
ratings_filter = Unity.RatingsFilter.new("ratings_filter", | ratings_filter = Unity.RatingsFilter.new("ratings_filter", |