Extensions

Introducció
Les extensions són petits programes que es poden afegir per a interactuar amb el Kstars/Ekos/INDI per tal de proporcionar funcions i característiques addicionals.
Les extensions estan separades del Kstars/Ekos/INDI. No es proporcionen com a part d'aquest programari. Només es proporciona un mitjà per a cridar-les per comoditat. Assegureu-vos que enteneu els requisits i els riscos d'utilitzar una extensió.

Requisits
Cada extensió cal que tingui 2 fitxers com a mínim, amb un tercer fitxer opcional d'icona.
El fitxer del programa. Aquest és qualsevol fitxer executable que s'executarà en el sistema dels usuaris. L'usuari amb el qual s'està executant el KStars ha de tenir permís d'execució d'aquest fitxer.
El fitxer de configuració. Aquest és un fitxer de text que defineix les entrades necessàries i opcionals per a l'extensió. S'ha d'anomenar el mateix que l'executable de l'extensió amb l'addició d'una extensió de nom de fitxer «.conf».
És obligatori que el fitxer de configuració contingui una línia que comenci per minimum_kstars_version=n.n.n on n.n.n és la versió més baixa del KStars que admet l'extensió, , 3.7.3
De manera opcional (i no preferida) el fitxer de configuració pot contenir una línia que comença per runDetached=true. Si està present, aquesta línia farà que l'extensió s'executi independentment del KStars. Una vegada s'ha iniciat, l'extensió no pot tornar a passar la informació d'estat a l'Ekos. Això només s'ha d'utilitzar amb les extensions que necessiten continuar executant-se després que el KStars s'hagi tancat. L'extensió també ha de proporcionar la seva pròpia interfície d'usuari.
Addicionalment, el fitxer de configuració pot contenir qualsevol altre paràmetre que l'autor de l'extensió decideixi i text lliure.
El fitxer d'icona, si està present, s'ha de nomenar el mateix que l'executable de l'extensió amb l'addició de l'extensió de nom de fitxer apropiada per al format d'imatge, s'admeten «.jpg», «.bmp», «.gif», «.png» i «.svg». Si es proporciona, aquesta icona s'utilitzarà al quadre combinat de selecció d'extensions. Si no es proporciona una icona, s'utilitzarà una icona predeterminada.
Tots els fitxers de l'extensió (executable, configuració i opcional d'icona) s'han de copiar a la ubicació de dades escrivibles del KStars /extensions, /.local/share/kstars/extensions
Les extensions que estan presents, tenen un fitxer de configuració vàlid i tenen una versió mínima del KStars no superior a la instal·lació actual, es detectaran quan s'iniciï l'Ekos. Si no hi ha cap extensió vàlida detectada, no es mostrarà l'element d'interfície d'usuari de l'extensió. Els elements de la interfície d'usuari de l'extensió són un quadre combinat que mostra el nom i la icona de cada extensió detectada, i un botó d'inici/aturada. Si l'extensió no es tanca dins dels 10 segons a partir del clic en el botó d'aturada, es torna a activar com un botó d'interrompre que forçarà el tancament de l'extensió. Només es pot utilitzar una extensió a la vegada.

Desenvolupament
A continuació es descriuen punts addicionals per als desenvolupadors d'extensions.
Hi ha alguns codis font d'extensió, incloent-hi un esquelet d'exemple d'extensió al Github d'extensions del KStars
Cada extensió ha de comprovar l'existència i la validesa del seu propi fitxer de configuració. L'entrada «minimum_kstars_version» del fitxer de configuració s'ha de comprovar amb una referència interna per a confirmar que el fitxer de configuració coincideix amb els requisits de l'extensió. Vegeu l'esquelet d'exemple.
La versió de crida del KStars es passa a l'extensió com «arg(1)» en la crida QProcess de llançament.
Tota interacció amb el KStars/Ekos/INDI ha de ser a través de la interfície DBus. Vegeu l'exemple d'esquelet. Les eines útils per a interrogar, controlar i entendre el DBus inclouen D-Feet i Bustle
Pot semblar en la investigació inicial que l'ús del sistema Qt DBus Adaptors seria molt més fàcil que l'ús directe de les interfícies/missatges de Qt DBus i que el KStars proporcionés les definicions xml necessàries. No obstant això, actualment hi ha un ús intensiu de tipus personalitzats de definicions, els quals es combinen amb altres informacions en el codi font del KStars. Això dona com a resultat un conjunt gran de fitxers del KStars que requereixen inclusió dins d'una extensió per tal de fer ús dels Qt DBus Adaptors. Esperem que això s'abordi en el futur.