# Avancerad användning

## Kommandoradsväljare

När &appname; körs från kommandoraden finns det flera alternativ för att öppna datafiler. De visas genom att köra `tellico --help`.

    Usage: tellico [Qt-options] [KDE-options] [options] [filename]

    Tellico - a collection manager for KDE

    Options:
      --nofile                  Do not reopen the last open file
      --bibtex                  Import <filename> as a bibtex file
      --mods                    Import <filename> as a MODS file
      --ris                     Import <filename> as a RIS file

    Arguments:
      filename                  File to open

## &DBus;-gränssnitt

&appname; har ett minimalt &DBus;-gränssnitt, som kan vara användbart för skript eller för att kommunicera med ett program som kör från kommandoraden. Som med alla &DBus;-anrop måste du ange programmet du vill kommunicera med, och det specifika gränssnittet. Namnet på &DBus;-tjänsten är `org.kde.tellico`.

### &DBus;-kommandon

Två &DBus;-objekt är tillgängliga i gränssnittet tellico: `Tellico` och `Collections`.

#### Objektet `Tellico`

Den fullständiga listan med &DBus;-kommandon i objektet `tellico` visas nedan:

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

För de fyra importkommandona är det första argumentet filen att importera, och det andra är importåtgärden. Tre åtgärder är tillgängliga: replace (ersätt), append (lägg till) och merge (sammanfoga). Fyra filformat för import stöds: Tellico &XML;-filer, Bibtex-filer, MODS-filer och RIS-filer.

Samlingen som för närvarande är öppen i &appname; kan exporteras till en fil, antingen med Tellico &XML;-format, Tellico ZIP-format, Bibtex, HTML, CSV (värden åtskilda med kommatecken) eller PilotDB-format.

En lista med postidentifierarna som för närvarande är markerade eller filtreras ger möjlighet att visa eller uppdatera posterna i vyn.

En ny datafil kan öppnas genom att använda kommandot `openFile()`. Den fullständiga sökvägen måste anges.

Ett nytt filter kan anges med kommandot `setFilter()`, vilket är ekvivalent med att skriva i huvudfönstrets filterruta.

Givet en postidentifierare, markerar `showEntry()` den posten och visar postens detaljinformation i huvudfönstret.

#### Objektet `Collections`

Den fullständiga listan med &DBus;-kommandon i objektet `Collections` visas nedan:

    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)

En ny tom post kan skapas i den nuvarande samlingen genom att använda kommandot `addEntry()`. Returvärdet är postidentifieraren, som därefter kan användas för att tilldela postens fältvärden. En post kan tas bort från samlingen genom att anropa `removeEntry()`.

Att bara använda ett fältnamn för att anropa `allValues()` returnerar alla värden i fältet för posterna som för närvarande är markerade. Om inga poster är markerade är den returnerade listan tom. Om en postidentifierare ingår i kommandot, returneras fältvärden för den specifika posten.

Om den nuvarande samlingen är en bibliografi, returneras Bibtex hänvisningsnyckel för alla markerade poster genom att anropa kommandot `selectedBibtexKeys()`. Hänvisningsnyckeln för en specifik post kan hittas genom att använda kommandot `entryBibtexKey()`.

Poster kan redigeras direkt med &DBus;-gränssnittet. Givet en postidentifierare, tilldelar `setEntryValue()` fältvärdet direkt. För att lägga till ett värde utan att påverka befintliga värden, använd `addEntryValue()`. Det nya värdet läggs till sist i den befintliga listan.

### &DBus;-exempel

Här är några exempel på att använda skript för &appname; med användning av &DBus;-gränssnittet.

    Öppna en Bibtex-fil
    % qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "~/documents/reference.bib" "replace"
    true

    Exportera en Bibtex-fil
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib
    true

    Visa den nuvarande markeringens hänvisningsnyckel
    % qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
    stephenson2004

    Lägg till en ny post och ange titel
    % myid=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
    % qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $myid title "Min nya bok"
    true