# Uso avançado

## Opções de Linha de Comando

Ao executar o &appname; a partir da linha de comando, existem várias opções para abrir os arquivos de dados. Elas poderão ser consultadas com o comando `tellico --help`.

    Uso: tellico [opções do Qt] [opções do KDE] [opções] [arquivo]

    Tellico - um gerenciador de coleções para o KDE

    Opções:
      --nofile                  Não reabrir o último arquivo aberto
      --bibtex                  Importar o <arquivo> como um arquivo bibtex
      --mods                    Importar o <arquivo> como um arquivo MODS
      --ris                     Importar o <arquivo> como um arquivo RIS

    Argumentos:
      arquivo                  O arquivo a abrir

## Interface &DBus;

O &appname; tem uma interface mínima de &DBus;, que pode ser usada para programar ou interagir com uma aplicação em execução, a partir da linha de comando. Como acontece com todas as chamadas de &DBus;, você terá que indicar a aplicação com que deseja interagir, assim como a interface em particular. O nome do serviço de &DBus; é `org.kde.tellico`.

### Comandos do &DBus;

Estão disponíveis dois objetos &DBus; na interface do Tellico: `Tellico` e `Collections`.

#### O Objeto `Tellico`

A lista completa de comandos de &DBus; do objeto `tellico` encontra-se disponível abaixo:

    bool importTellico(QString arquivo, QString ação)
    bool importBibtex(QString arquivo, QString ação)
    bool importMODS(QString arquivo, QString ação)
    bool importRIS(QString arquivo, QString ação)
    bool exportXML(QString arquivo)
    bool exportZip(QString arquivo)
    bool exportBibtex(QString arquivo)
    bool exportHTML(QString arquivo)
    bool exportCSV(QString arquivo)
    bool exportPilotDB(QString arquivo)
    QList<int> selectedEntries()
    QList<int> filteredEntries()
    void openFile(QString arquivo)
    void setFilter(QString texto)
    bool showEntry(int id)

Para os quatro comandos de importação, o primeiro argumento é o arquivo a importar, e o segundo é a ação de importação. Três ações estão disponíveis: replace (substituir), append (adicionar), e merge (mesclar). Quatro formatos de arquivo são suportados para importação: arquivos &XML; Tellico, arquivos Bibtex, arquivos MODS e arquivos RIS.

A coleção atualmente aberta no &appname; poderá ser exportada para um arquivo, sendo no formato &XML; do Tellico, no formato ZIP do mesmo, em Bibtex, &HTML;, valores separados por vírgulas (CSV) ou no formato PilotDB.

Uma lista dos IDs dos elementos atualmente selecionados ou filtrados permite facilitar a apresentação ou atualização dos itens na janela.

Você poderá abrir um novo arquivo de dados com o comando `openFile()`. Deverá indicar a localização completa.

Poderá definir um novo filtro com o comando `setFilter()`, o qual é o equivalente a escrever o mesmo filtro no campo respectivo da janela principal.

Fornecido um ID de um elemento, o `showEntry()` irá selecionar esse item e mostrar os seus detalhes na janela principal.

#### O Objeto `Collections`

A lista completa de comandos &DBus; do objeto `Collections` encontra-se descrita abaixo:

    int addEntry()
    bool removeEntry(int idItem)
    QStringList allValues(QString nomeCampo)
    QStringList entryValues(int idItem, QString nomeCampo)
    QStringList selectedBibtexKeys()
    QString entryBibtexKey(int idItem)
    bool setEntryValue(int idItem, QString nomeCampo, QString valor)
    bool addEntryValue(int idItem, QString nomeCampo, QString valor)

Você poderá criar um novo elemento vazio na coleção atual, usando o comando `addEntry()`. O valor devolvido é o ID do elemento, que poderá ser usado para definir os valores dos campos do mesmo elemento. Você poderá apagar um elemento da coleção com o comando `removeEntry()`.

Se invocar o `allValues()` com apenas um nome de campo, irá devolver todos os valores desse campo, para os itens selecionados no momento. Se não for selecionado nenhum elemento, é devolvida uma lista vazia. Se for incluído um ID de elemento no comando, são devolvidos os valores dos campos para esse elemento em particular.

Se a coleção atual for uma bibliografia, a invocação do `selectedBibtexKeys()` irá devolver a citação do Bibtex para todos os itens selecionados. A 'bibtexKey' de um item específico poderá ser obtida com o comando `entryBibtexKey()`.

Você poderá editar os elementos diretamente com a interface &DBus;. Fornecido um ID de elemento, o `setEntryValue()` irá configurar o valor do campo diretamente. Para adicionar um valor, sem afetar os valores existentes, use o `addEntryValue()`. O novo valor é adicionado ao fim da lista existente.

### Exemplos de &DBus;

Aqui estão alguns exemplos de programação do &appname; usando a interface &DBus;. Uma vez que o pid deve ser conhecido, a maneira mais fácil de descobri-lo em um comando do console é a seguinte: `dbus $(dbus | grep tellico) tellico`.

    Abrir um arquivo do Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "/home/roberto/referência.bib" "replace"
    true

    Exportar um arquivo do Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documentos/referência.bib
    true

    Apresentar a chave de citação da seleção atual
    % qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
    stephenson2004

    Adicionar um novo elemento e modificar o título
    % o_meu_id=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
    % qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $meu_id título "Meu Livro Novo"
    true