Risoluzione Bug #1413283
Moderatore: Gruppo Sviluppo
-
- Scoppiettante Seguace
- Messaggi: 302
- Iscrizione: mercoledì 29 luglio 2009, 15:35
- Desktop: Unity
- Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)
Risoluzione Bug #1413283
Buonasera a tutti, vi scrivo per chiedervi lumi sulla risoluzione di questo bug (#1413283).
Ho scaricato i sorgenti di nautilus per poterci lavorare sopra e purtroppo a questo punto mi sono bloccato.
Nella cartella dei sorgenti, vi sono tantissimi file e a questo proposito volevo chiedervi se qualcuno di voi sa qual'è il file che gestisce la scheda "Apri con" e la scheda "Proprietà" quando si clicca con il tasto destro del mouse su un file.
Avevo pensato come soluzione di copiare la parte di codice che permette di settare come default un programma dalla scheda "Proprietà" a quella "Apri con" ma non so quali sono i sorgenti da analizzare e su cui lavorare.... Spero possiate aiutarmi e vi ringrazio. Vi auguro inoltre buon fine settimana.
Ho scaricato i sorgenti di nautilus per poterci lavorare sopra e purtroppo a questo punto mi sono bloccato.
Nella cartella dei sorgenti, vi sono tantissimi file e a questo proposito volevo chiedervi se qualcuno di voi sa qual'è il file che gestisce la scheda "Apri con" e la scheda "Proprietà" quando si clicca con il tasto destro del mouse su un file.
Avevo pensato come soluzione di copiare la parte di codice che permette di settare come default un programma dalla scheda "Proprietà" a quella "Apri con" ma non so quali sono i sorgenti da analizzare e su cui lavorare.... Spero possiate aiutarmi e vi ringrazio. Vi auguro inoltre buon fine settimana.
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: Risoluzione Bug #1413283
Beh, capire dov'è un bug e perché capita fa parte proprio del lavoro di correzione di bug, scrivere il codice è il meno :-)
Comunque, io non ho mai lavorato su Nautilus quindi non ho idea di come sia organizzato.
Inizieri facendo così:
- una volta scaricato il codice, do un'occhiata alla struttura generale delle directory, per capire come funziona il programma nel suo complesso. Ovviamente il codice è nella directory src/
- fatto ciò, cercherei di capire quali file potrebbero interessarmi. In particolare vediamo che c'è un file chiamato nautilus-view-context-menus.xml, che contiene le voci del menù contestuale.
- In particolare c'è questa voce:
Ora si tratta di capire cos'è l'azione view.open-with-other-application.
Dove viene usato il file view.open-with-other-application? Verifichiamo con grep: grep -ir nautilus-view-context-menus.xml
Ecco qua! Vediamo cosa fa nautilus-view.c della azione open-with-other-application:
La assegna a una funzione:
{ "open-with-other-application", action_open_with_other_application } (linea 5558).
Cerchiamo quindi questa funzione, sempre nello stesso file, linea 1080. Vediamo che richiama un'altra funzione, open_with_other_program, qualche linea più sopra, che a sua volta richiama choose_program, dichiarata nella linea 1032.
Vediamo che questa funzione chiama gtk_app_chooser_dialog_new, che come riportato nella documentazione, non ha "Set as default" (https://developer.gnome.org/gtk3/unstab ... ialog.html)
Procedendo allo stesso modo guardi come funziona l'apri con nella scheda delle proprietà (hint, utilizza un file scritto apposta, nautilus-mime-application-chooser.c)
Spero di esserti stato d'aiuto!
Comunque, io non ho mai lavorato su Nautilus quindi non ho idea di come sia organizzato.
Inizieri facendo così:
- una volta scaricato il codice, do un'occhiata alla struttura generale delle directory, per capire come funziona il programma nel suo complesso. Ovviamente il codice è nella directory src/
- fatto ciò, cercherei di capire quali file potrebbero interessarmi. In particolare vediamo che c'è un file chiamato nautilus-view-context-menus.xml, che contiene le voci del menù contestuale.
- In particolare c'è questa voce:
Codice: Seleziona tutto
<item>
<attribute name="label" translatable="yes">Open With Other _Application</attribute>
<attribute name="action">view.open-with-other-application</attribute>
<attribute name="hidden-when">action-disabled</attribute>
</item>
Dove viene usato il file view.open-with-other-application? Verifichiamo con grep: grep -ir nautilus-view-context-menus.xml
Codice: Seleziona tutto
nautilus-view.c: builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/nautilus-view-context-menus.xml");
La assegna a una funzione:
{ "open-with-other-application", action_open_with_other_application } (linea 5558).
Cerchiamo quindi questa funzione, sempre nello stesso file, linea 1080. Vediamo che richiama un'altra funzione, open_with_other_program, qualche linea più sopra, che a sua volta richiama choose_program, dichiarata nella linea 1032.
Vediamo che questa funzione chiama gtk_app_chooser_dialog_new, che come riportato nella documentazione, non ha "Set as default" (https://developer.gnome.org/gtk3/unstab ... ialog.html)
Procedendo allo stesso modo guardi come funziona l'apri con nella scheda delle proprietà (hint, utilizza un file scritto apposta, nautilus-mime-application-chooser.c)
Spero di esserti stato d'aiuto!
-
- Scoppiettante Seguace
- Messaggi: 302
- Iscrizione: mercoledì 29 luglio 2009, 15:35
- Desktop: Unity
- Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)
Re: Risoluzione Bug #1413283
Dove si trova questo file?
Comunque per quanto riguarda il meccanismo sei stato molto chiaro! e ti ringrazio
in che cartella? non sono riuscito a trovarlonautilus-view-context-menus.xml
Comunque per quanto riguarda il meccanismo sei stato molto chiaro! e ti ringrazio
-
- Scoppiettante Seguace
- Messaggi: 302
- Iscrizione: mercoledì 29 luglio 2009, 15:35
- Desktop: Unity
- Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)
Re: Risoluzione Bug #1413283
I miei sorgenti sono diversi... da quel che ho capito, tu utilizzi i sorgenti di sistema, io invece ho scaricato con la versione trusty per la 14.04... Infatti alla riga 5558 io ho l'inizializzazione di un ciclo for...
Codice: Seleziona tutto
bzr branch lp:ubuntu/trusty-updates/nautilus
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: Risoluzione Bug #1413283
Uh, pensavo avessi scaricato direttamente il codice sorgente:
I bug si fixano nel repo principale, poi eventualmente le patch vengono backportate nei vari sistemi attraverso SRU https://wiki.ubuntu.com/StableReleaseUpdates
Codice: Seleziona tutto
bzr branch lp:nautilus
-
- Scoppiettante Seguace
- Messaggi: 302
- Iscrizione: mercoledì 29 luglio 2009, 15:35
- Desktop: Unity
- Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)
Re: Risoluzione Bug #1413283
Inesperienza pura, chiedo scusa, questa cosa non la sapevo, allora riscarico il sorgente principale e lavorerò li ^^I bug si fixano nel repo principale, poi eventualmente le patch vengono backportate nei vari sistemi attraverso SRU https://wiki.ubuntu.com/StableReleaseUpdates
PS. in futuro potrei chiedere aiuto sulla fase di testing e pacchettizzazione del codice corretto... Quindi sarebbe possibile non chiudere questa discussione per non aprirne un'altra successivamente?
Grazie mille
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: Risoluzione Bug #1413283
Se vuoi c'è anche il canale IRC del gruppo sviluppo, #ubuntu-it-dev su Freenode, potresti ottenere supporto anche lì ;-)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 7 ospiti