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", | ||