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 :

Nouvelle version de l'éditeur a terminaux intégrés it-edit (version 2.91).


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut Nouvelle version de l'éditeur a terminaux intégrés it-edit (version 2.91).
    it-edit (Integrated Terminals Editor) est disponible en version 2.91.


    Cette nouvelle version n'apporte pas de nombreuses améliorations par rapport à la version 2.0, mais constitue une étape importante, car elle est désormais basée sur la nouvelle version majeure de la bibliothèque libvte (bibliothèque implémentant un widget d'émulateur de terminal, utilisé par Gnome-terminal.) it-edit se met donc à niveau. À cette occasion, de nombreux bugs et imperfections ont été corrigés.

    Nom : it-edit-2.91_Main_Interface_matrix_scheme_Terminals_expanded_800.png
Affichages : 6012
Taille : 152,5 Ko




    * Page officielle de it-edit-2.91

    * Paquets Debian de it-edit-2.91

    * Tarball de it-edit-2.91

    * it-edit-2.91 sur Github

    * README de it-edit-2.91

    * ChangeLog de it-edit-2.91




    La plus importante des améliorations étant l'utilisation du chargeur de fichiers intégré à la bibliothèque gtksourceview3.0, qui permet de charger des fichiers codés dans tous les jeux de caractères (pas seulement UTF-8) ; l'éditeur s'est bien sûr amélioré avec le temps et la sortie des nouvelles moutures d'Ubuntu (Xenial) et de Debian (Jessie) ayant bien évolué depuis les versions précédentes.

    Une intégration de la coloration syntaxique pour de nouveaux langages a été faite, comme par exemple le ReST sur lequel se base le générateur de documentation sphinx.


    Concernant libvte (sur laquelle le nouveau gnome-terminal est basé) de nouvelles fonctionnalités apparaissent dans les menus contextuels des terminaux de it-edit :


    * ouvrir un nouvel onglet dans le panneau latéral de terminaux ;
    * fermer l'onglet actuel depuis ce panneau latéral ;
    * incrémenter la taille de la police (Font-scale, aussi configurable depuis le panneau de configuration) ;
    * décrémenter la taille de la police (Font-scale, aussi configurable depuis le panneau de configuration) ;
    * réinitialiser le terminal ;
    * et d'autres, accessibles depuis le panneau de configuration ;
    * la mauvaise nouvelle étant que libvte ne permet plus de mettre des images en arrière-plan des terminaux…




    Mais je vous invite à tester ou à mettre à jour vers cette nouvelle version de it-edit en espérant que vous en serez satisfait(e). Je pense qu'il est utile de réellement tester un outil avant de l'adopter.


    PS: it-edit ne se limite pas aux distributions de la famille Debian, il suffit de disposer des bibliothèques nécessaires par le biais du build de it-edit-2.91 basé sur les autotools.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Salut Luke.

    Je vois que tu ne chômes pas cet été . Je viens d'installer la toute nouvelle version (2.91) sur ma Debian sid. Pas de souci particulier de ce côté là.

    Je lance l'application sans problème. J'ouvre un premier fichier, je le modifie et je le ferme. Aucun message d'avertissement pour me dire que le fichier est modifié et non sauvé ! Gênant, non ?

    Autre petite chose. Lorsque tu ouvres un fichier, le premier onglet vide reste vide. Un nouvel onglet s'ouvre pour afficher le fichier sélectionné. Ca serait peut être d'ouvrir ce fichier dans l'onglet vide de départ.

  3. #3
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Salut gérald3d,

    Je lance l'application sans problème. J'ouvre un premier fichier, je le modifie et je le ferme. Aucun message d'avertissement pour me dire que le fichier est modifié et non sauvé ! Gênant, non ?
    Cela fait plusieurs fois que tu me fait la remarque sur l'avertissement manquant concernant la petite croix (16x16) dans le tab pour fermer le fichier.

    Je pense qu'il est inutile de mettre un message d'avertissement sur cette croix car il existe de multiples manières de sauver un fichier et puis quand il ne l'est pas un asterix est placer a coté du nom de fichier ouvert...

    Cela saute peut-être aux yeux quand ont teste mais en pratique:

    cela fait plus d'un an que j'utilise cet éditeur et fermer un fichier non-sauvegarder par mégarde m'est arriver qu'une seule et unique fois alors que j'ai de maintes fois fermer des fichier non-sauvegarder exprésemment.

    Je ne veut pas submerger l'utilisateur que je suis de messages pas forcement utiles quand l'on sait ce que l'on fait.

    ----

    Et puis Firefox me gonfle a force de me demander si je désire confirmer l'exit du programme quand il y a plus d'un onglet ouvert. Alors qu'est-ce que ça serai si il le faisait par onglet...

    Autre petite chose. Lorsque tu ouvres un fichier, le premier onglet vide reste vide. Un nouvel onglet s'ouvre pour afficher le fichier sélectionné. Ca serait peut être d'ouvrir ce fichier dans l'onglet vide de départ.
    Effectivement c'est le comportement par défaut quand on ouvre l'application sans fichiers sélectionnés
    sinon si l'on ouvre un|des fichiers grâce aux navigateur de fichiers le|les fichiers sélectionnés sont ouvert dans l'éditeur, d'ailleurs il est possible de mettre it-edit comme éditeur par défaut (par le biais du panneau de configuration) et dans ce cas là plus de besoin de "open with" c'est automatique.

    Car la plupart des mimetypes de fichier textes sont lié a l'éditeur it-edit (excluant la famille XML et XSLT (*.html, *.htm)) .

    Comme quoi il faut utiliser l'éditeur un peu plus que 2 ou 3 tests avant de décider si l'on désire vraiment s'en servir (une semaine est suffisante), comme toute applications importante je pense.

    Mais n'hésite pas a critiquer mon oeuvre, c'est toujours la bienvenue même une mauvaise critique, car cela me fait avancer.

    PS:

    Sinon je voulais te demander si tu savait construire un paquetage debian a la sauce Launchpad car mes paquetages fonctionne parfaitement et sont valide (lintian) car je les construit avec

    $ dpkg -b

    mais Launchpad ou plutôt debuild demande de remplacer le fichier control par un fichier nommer changelog ce qui n'a de sens:

    Launchpad dit qu'il n'accepte que les fichiers debian contruit avec:

    $ debuild -S

  4. #4
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut Corrigez le(s) problème(s) de it-edit avec >= Gtk+-3.20 !
    Changement subite du comportement de it-edit ?

    Vous avez récemment fait une mise a jour de votre distribution,

    et vous avez remarquer que votre éditeur avec terminaux intégrées: it-edit

    souffrait de problèmes récurrents...

    Et bien c'est sûrement a cause d'un changement de version de Gtk3 (<= gtk+-3.18 vers >= gtk-+3.20).




    Introduction aux changements

    Quand je distribue un programme sous forme de tarball ou de paquetage debian

    et bien je copie les sources dans le dossier ${pkgdatadir} (/usr(/local)/share/it-edit/source) accompagner

    d'un Makefile, multi-usages.




    Je vous recommande donc de faire les peu de changements présenté içi,

    grâce aux sources, et au Makefile, livrée avec it-edit.

    Afin que it-edit soit de nouveau comme avant !




    Problème de police de caractères ?

    Si vous avez remarquer que it-edit a changer de police après la mise a jours

    et que cela vous dérange, je vous invite a faire le petit changement suivant

    dans la fonction situé dans le fichier situé:

    /usr(/local)/share/it-edit/source/GUI/configure/configure_gui_elements.c
    nommer: setting_sourceview_settings(...).

    Une fois que vous avez trouver le fichier:

    éditer le ainsi: Vous pouvez faire un copier-coller en écrasant la fonction.

    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
     
     
    void setting_sourceview_settings(GtkSourceView *view) {
      /** Configure the GtkSourceView according to configuration. **/
     
      #ifdef DEBUG
        DEBUG_FUNC_MARK
      #endif
     
      gtk_source_view_set_auto_indent(view, settings.use_auto_indent) ;
      gtk_source_view_set_indent_on_tab(view, TRUE);
      gtk_source_view_set_indent_width(view, settings.indent_width) ;
     
      gtk_source_view_set_insert_spaces_instead_of_tabs(view, settings.use_spaces_as_tabs);
      /** FIXME: ??? gtk_source_view_set_smart_home_end(view, GTK_SOURCE_SMART_HOME_END_BEFORE) ;   ??? **/
     
     
      gtk_source_view_set_show_line_numbers(view, settings.display_line_numbers) ;
     
      gtk_source_view_set_tab_width(view, settings.tabs_width) ;
     
      if (settings.display_tabs_chars) {
        gtk_source_view_set_draw_spaces(view, GTK_SOURCE_DRAW_SPACES_TAB) ;
      }
     
     
     
     
      /** This part of the function can be replace,
      GtkCssProvider *provider = gtk_css_provider_new ();
     
      gchar *text_css = g_strconcat("GtkTextView {\n"
                                     "font : ",
                                     settings.editor_font,
                                     "}\n",
                                     NULL) ;
     
     
      gtk_css_provider_load_from_data(provider, text_css, -1, NULL) ;
     
      g_free(text_css) ;
     
     
      GdkDisplay *display = gdk_display_get_default() ;
     
      GdkScreen *screen = gdk_display_get_default_screen(display) ;
     
      gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER) ;
     
     
     
      g_object_unref(provider) ;
      */
     
      /** By this GtkTextView configuration setting: **/
      gtk_text_view_set_monospace( GTK_TEXT_VIEW(view), TRUE ) ;
     
      return ;
     
    }
    Cela remplace la police actuelle par la police Monospace par défaut du widget GtkTextView.




    Problèmes au démarrage de it-edit

    Si vous avez des problèmes en lançant it-edit:

    - La barre latéral de terminaux qui ne s'affiche plus, ou quand elle veut.

    - Problèmes d'affichage de la barre de recherche(s) et de remplacement(s).

    - Des problèmes pour ouvrir un fichier.

    Éditez la fin de la fonction main(...) situé dans le fichier:

    /usr(/local)/share/it-edit/source/main.c
    Comme cela,

    changez juste la fin de la fonction main(...) afin d'introduire la boucle (while(...) indiquer) au bon endroit:

    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
     
     
    /** ...  **/
     
    int main(int argc, char*argv[]) {
     
      //...
     
      /** Hide the search and replace bar at application start. **/
      gtk_widget_hide(gui->search_and_replace-search_and_replace_main_vbox) ;
     
      /** Hide the terminals at application start. **/
      gtk_widget_hide(gui->terminal_notebook) ;
     
     
      /** Insert the following loop (which wait until all events are completed)
        * is sufficent so that you get no problems by starting it-edit.
        ************************************************************************/
      while ( gtk_events_pending() ) {
     
        gtk_main_iteration() ;
     
      }
     
     
     
      /** Set editor notebook page. **/
      gtk_notebook_set_current_page(GTK_NOTEBOOK(gui->main_notebook), 0) ;
     
     
     
      /** This function set the terminals default size in relationship to your screen relationship because the application is maximize at start. And set startup settings. **/
      g_signal_connect(G_OBJECT(gui->main_window), "size-allocate", G_CALLBACK(on_size_allocated), NULL) ;
     
      gtk_main() ;
     
      exit(EXIT_SUCCESS) ;
     
    }
     
    /** ... **/



    Rendez les changements effectifs

    Une fois ces deux fonctions réparés,

    il nous reste a compiler it-edit de nouveau et a le réinstaller dans le dossier des binaires.

    Aller dans le dossier ${pkgdatadir} situer à:

    /usr(/local)/share/it-edit
    Et taper la commande suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sudo make install
    # or
    $ su root
    ...
    $ make install
    Maintenant it-edit devrai fonctionner comme avant a part que si vous

    avez éditer la fonction setting_sourceview_settings(...)

    et bien vous ne devriez pas pouvoir changer la police de l'éditeur.


    Mais elle ne vous plaisait pas de toute façon.


    Peut-être subsiste-t-ils encore quelques problèmes mineurs

    que je n'ai pas encore remarquer avec la nouvelle mouture de Gtk3.

    Mais malgré tout it-edit reste un bon éditeur avec terminaux intégrés.




    Infos et News

    Une nouvelle version de it-edit est prévue pour l'année prochaine !

    Je n'ai actuellement pas encore écrit une seule ligne mais mon savoir concernant gtk s'est affutée...

    Je vous promet un it-edit encore plus puissant pour l'année prochaine...

    Quelques idées d'améliorations en vrac:

    - La possibilité d'ouvrir une URI non locale.

    - La possibilité de mettre les permission voulus lors de la sauvegarde

    Cela permettra aux programmeurs qui utilisent un langage de script

    qu'il n'y aura plus de besoin de rendre la script exécutable

    pour le lancer immédiatement dans un des terminaux intégrer.
    - L'on corrigera ce petit problème avec l'historique qu'a it-edit.

    Et que le gnome-terminal semble avoir aussi.
    - Peut-être que it-edit embarquera un correcteur orthographique,...


    Merci a tout les utilisateurs de it-edit,

    Votre serviteur.

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Bonjour Luke.

    Ton projet avance. Il serait peut-être temps pour lui de passer la vitesse supérieure .

    En plongeant un peu dans ton code il serait peut être intéressant de le modifier pour le faire passer à la programmation orientée objet façon Gtk+.

    Par exemple, tu disposes d'une structure Terminal. Tu pourrais transformer tout ce petit monde en un objet dérivant directement d'un GtkBox. Ainsi, il te suffirait de déclarer un nouvel objet que tu pourrais appeler GtkItTerm par exemple. Cet objet intégrerait directement un GtkBox, un GtkScrollBar et bien sûr un VteTerminal. Ce n'est qu'un exemple...

    Tout ceci pour rendre ton code encore plus robuste et aussi plus facile à maintenir.

    Si le cœur t'en dit, je dispose d'un peu de temps devant moi d'ici la fin de l'année pour te mettre le pied à l'étrier .

  6. #6
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Salut gérald3d,

    ça faisait longtemps, en faîtes je ne sais pas du tout comment l'on fait:

    + Un custom widget ( si ce n'est changer la couleur de fond basée sur un gtk_drawing_area ).

    + Et encore moins comment l'on définis un G_OBJECT personnalisé.

    Sinon j'avance petit a petit avec la GLib, Gio, pandoc, gdk-pixbuf, mais juste en utilisant les fonctions prédéfinis...

    Donc ton aide serai la bienvenue pour une nouvelle version de it-edit.

    Sinon, tu peut jeter un coup d'oeil a Micro Music Player (mmp-3.0) pour voir l'avancement de ma technique GTK+, comme l'utilisation d'une GtkApplication au lieu de la paire gtk_init(...)/gtk_main(...) par exemple.

    Merci pour ta réponse.

    PS:

    Il faut dire que les développeurs de GTK+3 ont fait de graves changements, de comportement entre autres, entre 3.18 et >= 3.20.

    Est-ce parce que l'on pourrai dire que gtk passe de GTK+-3.1(8) a GTK+-3.2(0) ?

    Ou c'est tout le temps comme cela ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/01/2011, 17h38

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