Journal Un ch'tit patch pour konsole...

Posté par  .
Étiquettes : aucune
0
22
déc.
2005
Bon, voilà le problème :
Lorsqu'on glisse une url vers konsole, les choix proposés dans le menu contextuel sont dans l'ordre :
Coller pour coller l'adresse du lien sans autre forme de procès,
cd pour se placer dans le répertoire
cp pour faire une copie
ln pour créer un lien symbolique
et mv pour déplacer le fichier.

Je trouvais ça pas mal, sauf que j'aurais bien aimé avoir le choix de donner l'url à manger à wget.
Du coup, j'ai cherché si c'était configurable, mais je n'ai rien trouvé.
En désespoir de cause, j'ai fouillé les sources, et j'ai trouvé ces commandes en dur dans les sources de konsole, et plus particulièrement dans le fichier TEWidget.cpp.
Alors, j'ai retroussé mes manches, et j'ai codé.
Voici un fichier à utiliser comme un patch qui ajoute cette possibilité :

2119c2119
< enum dropPopupOptions { paste, cd, cp, ln, mv, wget };
---
> enum dropPopupOptions { paste, cd, cp, ln, mv };
2132d2131
< m_drop->insertItem( "wget", wget );
2152d2150
< m_drop->setItemEnabled( wget, true );
2230,2232d2227
< case wget:
< emit sendStringToEmu("wget ");
< break;
2234c2229
< if (item>cd && item<=wget) {
---
> if (item>cd && item<=mv) {


Ce n'est pas grand chose, mais j'espère que ce sera utile.
Je ne sais pas à qui poster ce code, alors je vous en fait profiter, à vous, ô fans de kde.
Sur ce, vous pouvez reprendre une activité moulesque normale.
  • # Ne rien dire, agir :)

    Posté par  (site web personnel) . Évalué à 6.

    merci
  • # Amélioration

    Posté par  (site web personnel) . Évalué à 7.

    Ce qui pourrait être encore mieux c'est que ça soit dans un fichier externe qu'on puisse éditer. Avec des lignes du genre "wget %1".


    Au boulot ! :)

    L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

    • [^] # Re: Amélioration

      Posté par  . Évalué à 2.

      klipper est déjà censé faire tout ça, non?
      Bien que ça merdouille chez moi, quand je rajoute des actions, elles partent en sucette.
  • # diff -u

    Posté par  (site web personnel) . Évalué à 3.

    Je pense que tu t'es trompé dans l'ordre de tes fichiers pour la commande diff :

    le < est pour "enlever la ligne" et le > pour "rajouter la ligne"

    Avec un diff -u, c'est un peu plus lisible :

    $ cat v1
    enum dropPopupOptions { paste, cd, cp, ln, mv };

    $ cat v2
    enum dropPopupOptions { paste, cd, cp, ln, mv, wget };

    $ diff v1 v2
    1c1
    < enum dropPopupOptions { paste, cd, cp, ln, mv };
    ---
    > enum dropPopupOptions { paste, cd, cp, ln, mv, wget };

    $ diff -u v1 v2
    --- v1 Thu Dec 22 13:21:25 2005
    +++ v2 Thu Dec 22 13:21:17 2005
    @@ -1 +1 @@
    -enum dropPopupOptions { paste, cd, cp, ln, mv };
    +enum dropPopupOptions { paste, cd, cp, ln, mv, wget };
    • [^] # Re: diff -u

      Posté par  . Évalué à 2.

      Merci pour cette remarque fort pertinente.
      Re-voici le diff, exécuté dans le bon ordre :

      2119c2119
      < enum dropPopupOptions { paste, cd, cp, ln, mv };
      ---
      > enum dropPopupOptions { paste, cd, cp, ln, mv, wget };
      2131a2132
      > m_drop->insertItem( "wget", wget );
      2150a2152
      > m_drop->setItemEnabled( wget, true );
      2227a2230,2232
      > case wget:
      > emit sendStringToEmu("wget ");
      > break;
      2229c2234
      < if (item>cd && item<=mv) {
      ---
      > if (item>cd && item<=wget) {
      • [^] # Re: diff -u

        Posté par  (site web personnel) . Évalué à 2.

        Moi aussi, je trouve "diff -u" plus lisible (unified diff). Au moins, utilises "diff -c" (context diff).

        Et gardes l'en-tête du diff avec les noms des fichiers aussi. Éventuellement,

        $ diff -u toto.c ../ancien/toto.c -L toto.c -L toto.c.orig

        pour donner un nom plus explicite que le vrai nom du fichier.
  • # poste ça sur le bugzilla de kde

    Posté par  . Évalué à 6.

    va sur http://bugs.kde.org/ puis créé un nouveau rapport de bugs avec [patch] au début du nom du rapport de bugs.

    Tu dis que c'est une nouvelle fonctionnalité.

    Poste ton patch en fichier joint.

    Accessoirement, propose dans ton rapport de bugs de rendre ça configurable, au lieu que ce soit en dur dans le code.
    • [^] # Re: poste ça sur le bugzilla de kde

      Posté par  . Évalué à 3.

      Je vais le faire, merci pour ton support !
      • [^] # Re: poste ça sur le bugzilla de kde

        Posté par  . Évalué à 2.

        C'est fait. Si certains veulent voter pour que ce soit intégré, c'est par ici http://bugs.kde.org/show_bug.cgi?id=118857
        Merci pour vos commentaires à tous.
        • [^] # Re: poste ça sur le bugzilla de kde

          Posté par  (site web personnel) . Évalué à 1.

          bon patch, moi aussi j'ai souvent eu cette réflexion.

          Hésite pas a insister si tu n'as pas de réponse après un certain temps. (en envoyant un mail directement au développeurs.) Parfois un patch n'est pas appliqué juste parce que les mainteneurs n'ont pas eu le temps de l'appliquer au moment ou il le reçoive, et puis l'oublie.

          sinon, il vaux mieux attacher les patch dans un fichier, sinon, impossible de les appliquer avec la commande patch. (et aussi diff -u c'est plus lisible)

          Aussi, un patch devrais plutôt être fait contre la version subversion la plus à jour
  • # Merci

    Posté par  . Évalué à 3.

    Merci beaucoup, c'est le genre de truc que je voulais avoir depuis pas mal de temps.

    De temps en temps on voudrait avoir une ptite fonctionnalité, en fait c'est pas si difficile de la programmer souvent.

    Il y a peu, j'ai voulu utiliser mon ordinateur pour un spectacle, et il me fallait la fonction pour arrêter de jouer après chaque piste. J'avais envie d'utiliser VLC, la fonction existait déjà mais c'était difficile de modifier le paramêtre, alors j'ai fait un pti patch pour ajouter un bouton dans la playliste. C'était tout bête et ça sert bien en fait (le patch est ici http://trac.videolan.org/vlc/ticket/464 ).

    Evidemment il faut un peu de temps pour comprendre les coding lines, pour comprendre quoi va ou, mais ensuite on a une satisfaction énorme quand ça marche, et encore plus quand c'est commité :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.