# Plataformas do &kde;: KService

`desktoptojson`

8

`desktoptojson`

Converte um ficheiro `.desktop` num ficheiro `.json`.

## Sintaxe

    desktoptojson --input FICHEIRO-DESKTOP --output FICHEIRO-JSON

    desktoptojson  --version --help

## Descrição

A plataforma KService usa a informação contida dentro dos ficheiros `.desktop` para localizar os serviços, incluindo os 'plugins' para as aplicações e bibliotecas baseadas em Qt5. O sistema de 'plugins' do Qt5, contudo, usa dados em JSON incorporados no próprio 'plugin'. O `desktoptojson` permite que a informação existente num ficheiro `.desktop` também seja usada como dados incorporados para um 'plugin' do Qt5, convertendo os elementos do ficheiro `.desktop` para dados em JSON.

Os dados gerados em JSON são um objecto JSON que interpreta os elementos do grupo `[Desktop Entry]` do ficheiro `.desktop`. Todos os outros grupos serão ignorados. A maioria dos elementos são apenas convertidos para dados em JSON, mas alguns desses elementos (como o `Hidden` e o `X-KDE-PluginInfo-EnabledByDefault`) são reconhecidos como valores booleanos e convertidos para tal; da mesma forma outros (como o `X-KDE-ServiceTypes` e o `X-KDE-PluginInfo-Depends`) são sempre convertidos para listas de textos.

## Opções

`--input `FICHEIRO-DESKTOP``

- O ficheiro `.desktop` a converter.

`--output `FICHEIRO-JSON``

- O ficheiro para onde gravar os dados em JSON.

`--help`

- Mostra um breve texto de ajuda.

`--version`

- Mostra a informação da versão.

## Utilização

A maioria dos utilizadores deste programa irão usar a macro do CMake `kservice_desktop_to_json` como parte do processo de compilação de um 'plugin'.

    add_library(meuplugin MODULE ${meuplugin_SRCS})
    kservice_desktop_to_json(meuplugin meuplugin.desktop)

Isto irá gerar o ficheiro JSON `meuplugin.json`, o qual poderá ser usado a partir das macros `K_PLUGIN_FACTORY_WITH_JSON` ou `Q_PLUGIN_METADATA`.

## Problemas

Existem provavelmente diversos erros. Use o sistema de gestão de erros do KDE para os comunicar.