# Utilizzo avanzato

## Opzioni da linea di comando

Quando si lancia &appname; da linea di comando sono disponibili diverse opzioni per aprire i file dati. Possono essere visualizzate lanciando `tellico --help`. Può essere anche abilitata la registrazione diagnostica, che crea una voce di menu per mostrarla. L'opzione `--logfile` ridireziona la registrazione su un file.

    Uso: tellico [opzioni] [nome del file]

    Tellico - un software libero e semplice per la gestione di collezioni

    Opzioni:
      --nofile                  Non riaprire l'ultimo file aperto
      --bibtex                  Importa <nome del file> come file bibtex
      --mods                    Import <nome del file> come file MODS
      --ris                     Import <nome del file> come file RIS
      --pdf                     Importa <nome del file> come file PDF
      --log                     Registra l'output diagnostico
      --logfile <logfile>       Scrivi l'output diagnostico su <nome del file>

    Argomenti:
      [nome del file]                  File da aprire

## Interfaccia &DBus;

&appname; ha un'interfaccia &DBus; minima che può essere usata per lo scripting o per interagire con un'applicazione in esecuzione attraverso la linea di comando. Come per tutte le chiamate &DBus;, è necessario specificare il servizio a cui ci si vuole interfacciare ed indicare l'interfaccia. Il nome del servizio &DBus; è `org.kde.tellico`.

### Comandi &DBus;

Nell'interfaccia di Tellico sono disponibili due oggetti &DBus;: `Tellico` e `Collections`.

#### L'oggetto `Tellico`

Di seguito è mostrata la lista completa dei comandi &DBus; per l'oggetto `tellico`:

    bool importTellico(QString file, QString action)
    bool importBibtex(QString file, QString action)
    bool importMODS(QString file, QString action)
    bool importPDF(QString file, QString action)
    bool importRIS(QString file, QString action)
    bool exportXML(QString file, bool filtered)
    bool exportZip(QString file, bool filtered)
    bool exportBibtex(QString file, bool filtered)
    bool exportHTML(QString file, bool filtered)
    bool exportCSV(QString file, bool filtered)
    QList<int> selectedEntries()
    QList<int> filteredEntries()
    void openFile(QString file)
    void setFilter(QString text)
    bool showEntry(int id)

Per i quattro comandi di importazione, il primo argomento è il file da importare, mentre il secondo è l'azione di importazione. Sono disponibili tre azioni: replace, append, e merge. Per l'importazione sono supportati quattro formati di file: file Tellico &XML;, file Bibtex, file MODS, e file RIS. Possono essere importati i metadati dai file &PDF;.

Per ognuno dei comandi per esportare del testo, un nome del file verrà messo di seguito a `--` nello standard output.

La collezione attualmente aperta in &appname; può essere esportata in un file, sia nei formati Tellico &XML;, Tellico ZIP, Bibtex, &HTML;, sia in formato CSV (comma-separated values, valori separati da virgole). Il comando di esportazione accetta un argomento opzionale per specificare se la collezione debba essere limitata al file corrente oppure no.

Una lista degli id elementi selezionati o filtrati facilita la visualizzazione o l'aggiornamento degli elementi nella vista.

Un nuovo file dati può essere aperto usando il comando `openFile()`. È necessario specificare il percorso completo.

Si può impostare un nuovo filtro usando il comando `setFilter()`, che equivale a digitare nella casella del filtro della finestra principale.

Dato un ID elemento `showEntry()` selezionerà quell'elemento e restituirà i dettagli dell'elemento nella finestra principale.

#### L'oggetto `Collections`

La lista completa dei comandi &DBus; per l'oggetto `Collections` è mostrata qui sotto:

    int addEntry()
    bool removeEntry(int entryID)
    QStringList allValues(QString fieldName)
    QStringList entryValues(int entryID, QString fieldName)
    QStringList selectedBibtexKeys()
    QString entryBibtexKey(int entryID)
    bool setEntryValue(int entryID, QString fieldName, QString value)
    bool addEntryValue(int entryID, QString fieldName, QString value)

Un nuovo elemento vuoto può essere creato nella collezione corrente usando il comando `addEntry()`. Il valore risultante sarà l'ID elemento, che può essere usato per impostare i valori dei campi dell'elemento. Un elemento può essere cancellato dalla collezione usando `removeEntry()`.

L'invocazione di `allValues()` utilizzando il nome di un campo restituirà come risultato tutti i valori di quel campo per gli elementi selezionati. Se non vi sono elementi selezionati la lista sarà vuota. Se un ID di un elemento viene incluso nel comando verranno restituiti i valori di campo di quello specifico elemento.

Se la collezione corrente è una bibliografia, l'invocazione di `selectedBibtexKeys()` restituirà le chiavi di citazione Bibtex per tutti gli elementi selezionati. La chiave Bibtex di uno specifico elemento può essere individuata con il comando `entryBibtexKey()`.

Gli elementi possono essere modificati direttamente dall'interfaccia &DBus;. Dato l'ID di un elemento, `setEntryValue()` imposterà direttamente il valore del campo. Per aggiungere un valore senza modificare quelli già inseriti, usa `addEntryValue()`. I nuovi valori verranno aggiunti in fondo alla lista attuale.

### Esempi di &DBus;

Ecco alcuni esempi per l'utilizzo di script in &appname; utilizzando l'interfaccia &DBus;. Nota che il comando `qdbus` nel tuo sistema può esistere come `qdbus-qt5` o simile.

    Aprire un file Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "/home/roberto/reference.bib" "replace"
    true

    Esportare un file Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib
    true

    Esportare un file Bibtex usando il filtro corrente
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib true
    true

    Visualizza la chiave di citazione della selezione attuale
    % qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
    stephenson2004

    Aggiunge un nuovo elemento ed imposta il titolo
    % myid=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
    % qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $myid title "Il mio nuovo libro"
    true