Risoluzione Bug #1413283

Coordinamento delle attività e informazioni sui progetti del gruppo: creazione, modifica e gestione dei pacchetti di Ubuntu e relative problematiche.

Moderatore: Gruppo Sviluppo

Risoluzione Bug #1413283

Messaggioda Zalone93 » sabato 20 giugno 2015, 18:11

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.
Avatar utente
Zalone93
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 300
Iscrizione: luglio 2009
Desktop: Unity
Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)

Re: Risoluzione Bug #1413283

Messaggioda rpadovani » sabato 20 giugno 2015, 21:02

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:

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>


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
Codice: Seleziona tutto
nautilus-view.c:   builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/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!
Avatar utente
rpadovani
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3427
Iscrizione: dicembre 2008
Località: Munich, Germany
Desktop: Unity 7
Distribuzione: Ubuntu 16.04 x86_64
Sesso: Maschile

Re: Risoluzione Bug #1413283

Messaggioda Zalone93 » domenica 21 giugno 2015, 12:41

Dove si trova questo file?
nautilus-view-context-menus.xml
in che cartella? non sono riuscito a trovarlo :muro:
Comunque per quanto riguarda il meccanismo sei stato molto chiaro! e ti ringrazio :)
Avatar utente
Zalone93
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 300
Iscrizione: luglio 2009
Desktop: Unity
Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)

Re: Risoluzione Bug #1413283

Messaggioda Zalone93 » domenica 21 giugno 2015, 12:47

I miei sorgenti sono diversi... da quel che ho capito, tu utilizzi i sorgenti di sistema, io invece ho scaricato con
Codice: Seleziona tutto
bzr branch lp:ubuntu/trusty-updates/nautilus
la versione trusty per la 14.04... Infatti alla riga 5558 io ho l'inizializzazione di un ciclo for...
Avatar utente
Zalone93
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 300
Iscrizione: luglio 2009
Desktop: Unity
Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)

Re: Risoluzione Bug #1413283

Messaggioda rpadovani » domenica 21 giugno 2015, 16:07

Uh, pensavo avessi scaricato direttamente il codice sorgente:
Codice: Seleziona tutto
bzr branch lp:nautilus


I bug si fixano nel repo principale, poi eventualmente le patch vengono backportate nei vari sistemi attraverso SRU https://wiki.ubuntu.com/StableReleaseUpdates
Avatar utente
rpadovani
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3427
Iscrizione: dicembre 2008
Località: Munich, Germany
Desktop: Unity 7
Distribuzione: Ubuntu 16.04 x86_64
Sesso: Maschile

Re: Risoluzione Bug #1413283

Messaggioda Zalone93 » domenica 21 giugno 2015, 16:49

I bug si fixano nel repo principale, poi eventualmente le patch vengono backportate nei vari sistemi attraverso SRU https://wiki.ubuntu.com/StableReleaseUpdates


Inesperienza pura, :D chiedo scusa, questa cosa non la sapevo, allora riscarico il sorgente principale e lavorerò li ^^
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 :birra:
Avatar utente
Zalone93
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 300
Iscrizione: luglio 2009
Desktop: Unity
Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)

Re: Risoluzione Bug #1413283

Messaggioda rpadovani » domenica 21 giugno 2015, 17:19

Se vuoi c'è anche il canale IRC del gruppo sviluppo, #ubuntu-it-dev su Freenode, potresti ottenere supporto anche lì ;-)
Avatar utente
rpadovani
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3427
Iscrizione: dicembre 2008
Località: Munich, Germany
Desktop: Unity 7
Distribuzione: Ubuntu 16.04 x86_64
Sesso: Maschile


Torna a Gruppo Sviluppo

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 1 ospite