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

Zalone93
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 302
Iscrizione: mercoledì 29 luglio 2009, 15:35
Desktop: Unity
Distribuzione: Linux Ubuntu 14.04 LTS (x86_64)

Risoluzione Bug #1413283

Messaggio da Zalone93 »

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
rpadovani
Imperturbabile Insigne
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

Messaggio da rpadovani »

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!
Solutions Architect at nextbit | About me
Changing the world bit by bit
Zalone93
Scoppiettante Seguace
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

Messaggio da Zalone93 »

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 :)
Zalone93
Scoppiettante Seguace
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

Messaggio da Zalone93 »

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
rpadovani
Imperturbabile Insigne
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

Messaggio da rpadovani »

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
Solutions Architect at nextbit | About me
Changing the world bit by bit
Zalone93
Scoppiettante Seguace
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

Messaggio da Zalone93 »

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
rpadovani
Imperturbabile Insigne
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

Messaggio da rpadovani »

Se vuoi c'è anche il canale IRC del gruppo sviluppo, #ubuntu-it-dev su Freenode, potresti ottenere supporto anche lì ;-)
Solutions Architect at nextbit | About me
Changing the world bit by bit
Scrivi risposta

Ritorna a “Gruppo Sviluppo”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti