IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

[glade] GtkRecentChooserMenu : comment le faire marcher


Sujet :

GTK+ avec C & C++

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 602
    Points : 7 837
    Points
    7 837
    Par défaut [glade] GtkRecentChooserMenu : comment le faire marcher
    Bonjour

    J'ai mis un GtkRecentChooserMenu dans une interface gérée par glade. j'ai comme l'impression que cette entrée est inactive : il y a toujours rien de proposé alors que j'utilise souvent mon programme.

    Comment gérer cette entrée ? Je n'arrive pas à trouver une explication.

    Dans une ancienne version de mon programme, je n'avais mis qu'une entrée simple que je remplissais avec les fichiers précédemment ouverts que je mémorisais moi-même dans un répertoire caché. J'espérais avec cette option là que ce soit géré autrement, voir même que j'allais récupérer des fichiers avec mes extensions ouverts par un autre biais.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Bonjour Troumad,

    je te conseille d'essayer d'ajouter les fichiers que tu as ouverts dans le GtkRecentManager par défaut, comme indiqué dans la documentation.
    https://developer.gnome.org/gtk3/sta...er.description

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 602
    Points : 7 837
    Points
    7 837
    Par défaut
    Ce n'est pas géré automatiquement : il faut les ajouter soi-même. C'est bien ça ?
    je suis déçu.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Les rôles sont dissociés. Les widgets affichent la liste de fichiers et te permettent récupérer celui/ceux choisis par l'utilisateur, mais de ce que je comprends le GtkRecentManager est celui qui stocke les informations et les manipule. Ce n'est pas un widget. C'est un peu comme pour les GtkList: la partie "vue" est séparée du modèle qui contient les données. Cela te permet aussi de gérer des GtkRecentManager différents dans ton application si celle ci est multi-fonctions et peux ouvrir des types différents de documents par exemple. J'imagine aussi que cela te laisse le choix de savoir ce que tu veux mettre dans les document récents: un fichier que tu as ouvert ? Un fichier que tu as essayé d'ouvrir mais dont le chargement a échoué ?

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 602
    Points : 7 837
    Points
    7 837
    Par défaut
    OK.
    Je vais tester.

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 602
    Points : 7 837
    Points
    7 837
    Par défaut
    Je viens de voir que dans glade j'avais configuré un filtre de "fichiers récents - GtkRentFilter" et j'avais associé ce filtre. je viens de voir qu'on peut aussi configurer un "Gestionnaire de fichiers récents - GtkRecentManager".

    Je vais voir de ce que ça donne.

    En travaillant mon fichier glade, je tombe sur ce bug : https://bugzilla.gnome.org/show_bug.cgi?id=772485
    Il est tellement peu vu que je me demande si glade est beaucoup utilisé !


    J'ai tenté ceci, le code est bien exécuté, mais rien ne se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    void Aff_Fichiers_Recents(GtkMenuItem *menuitem, struct widgets * widgets)
    {
        GtkRecentManager * GestionMenuRecents= gtk_recent_manager_get_default (); /*GTK_RECENT_MANAGER(gtk_builder_get_object(widgets->builder,"Gestion_Derniers_Fichiers"));*/
        char aff[LONG],* ch1;
        FILE * fp;
        unsigned short i,j;
        GError *error = NULL;
     
        if (GestionMenuRecents==NULL)
        {
            printf("Erreur : impossible de trouver l'item du menu \"Gestion_Derniers_Fichiers\"\n");
        }
        else
        {
            gtk_recent_manager_purge_items (GestionMenuRecents, &error);
            if (error)
            {
                g_warning ("Erreur pour la gestion des derniers fichiers : %s\n", error->message);
                g_error_free (error);
                error=NULL;
            }
            else
            {
            }    
            ch1=getenv(MEM_PROG);
            sprintf(aff,"%s%c.perso.add%chist",ch1,SEPARATEUR,SEPARATEUR);
     
            fp = g_fopen(aff, "r");
            if (fp!=NULL)
            {   /* lecture du fichier historique : une entrée par ligne */
                for (i=0;i<MEM_FICH_MAX-1;i++)
                {
                    ch1=fgets(aff,LONG-1,fp);
                    if (aff!=NULL && ch1!=NULL)
                    {
    printf("%s\n",aff);
                        for(j=0;aff[j]!='\n' && aff[j]!=0;j++);
                        aff[j]=0;
     
                        if (gtk_recent_manager_add_item (GestionMenuRecents,aff))
                        {
    if (gtk_recent_manager_has_item (GestionMenuRecents, aff))
    {
        GtkRecentInfo *info;
        error=NULL;
        info = gtk_recent_manager_lookup_item (GestionMenuRecents, aff, &error);
        if (error)
        {
            g_warning ("Ne trouve pas le fichier %s avec l'erreur %s",aff, error->message);
            g_error_free (error);
            error=NULL;
        }
        else
        {
        }
        if (info)
        {
            printf("%s\n",gtk_recent_info_get_description (info));
            gtk_recent_info_unref (info);
        }
        else
        {
        }
    }
    else
    {
        printf("Ne trouve pas le fichier %s\n",aff);
    }
     
                           /* insertion bien passée */ 
                        }
                        else    
                        {
                            g_warning ("Incapable de rajouter '%s' à la liste des documents récemment utilisés\n",aff);
                            g_error_free (error);
                        }
                    }
                    else
                    {
                        i=MEM_FICH_MAX;
                    }
     
                }
                fclose(fp);
            }
            else
            {
                /* pas encore d'entrée */
            }
            g_object_unref (GestionMenuRecents);
        }
    }
    Mon problème, c'est que je ne vois pas pourquoi il se passerait quelque chose car je ne vois pas ce qui lie mon code à mon entrée de menu : pourquoi est-ce que je sélectionnerai bien le bon !

    édit du 21/10 9h : si j'ai bien compris, ça devrait prendre le bon, mais les docs sont en anglais et je ne saisis pas tout.
    J'ai rajouté des tests avec affichages dans mon programmes : les entrées de mon fichier "hist" sont lues, mais gtk_recent_manager_has_item (GestionMenuRecents, aff) répond que ce n'est pas bon alors que le fichier existe bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /home/troumad/Documents/add/tous/Samuel/samuel.grp
     
    Ne trouve pas le fichier /home/troumad/Documents/add/tous/Samuel/samuel.grp
    [...]
    [troumad@localhost perso]$ ll /home/troumad/Documents/add/tous/Samuel/samuel.grp
    -rw-r--r-- 1 troumad troumad 207 avril 26 18:30 /home/troumad/Documents/add/tous/Samuel/samuel.grp

  7. #7
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 602
    Points : 7 837
    Points
    7 837
    Par défaut
    Finalement, je gère tout à la main. Si ce n'est pas automatique, autant que je refasse ce que j'avais fait avant.

  8. #8
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par troumad Voir le message
    En travaillant mon fichier glade, je tombe sur ce bug : https://bugzilla.gnome.org/show_bug.cgi?id=772485
    Il est tellement peu vu que je me demande si glade est beaucoup utilisé !
    Glade n'est sans doute pas l'application la mieux maintenue, mais il y a tout de même des améliorations de prévues:
    https://people.gnome.org/~jpu/docs/2...glade_talk.pdf

    Après il est effectivement regrettable qu'il y ait peu d'activité sur les bugs ouverts, mais c'est du logiciel libre: si on veut que ça change c'est à chacun d'y mettre du sien, en contribuant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boost sur Eclipse : comment le faire marcher ?
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 12/12/2009, 11h57
  2. Réponses: 1
    Dernier message: 26/11/2007, 18h46
  3. comment faire marcher Initdb
    Par gballou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/06/2006, 17h19
  4. [ant] comment le faire marcher?
    Par afrikha dans le forum ANT
    Réponses: 11
    Dernier message: 23/12/2005, 16h18
  5. [Debutant(e)][Tomcat]Comment faire marcher Tomcat?
    Par chuck norris dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 24/11/2004, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo