Meta podaci dodatka
Datoteka s metapodacima dodatka je JSON datoteka koja sadrži sve informacije potrebne za učitavanje biblioteke dodatka, određivanje hoće li se dodaci učitavati i kojim redoslijedom (ovisno o ovisnostima, npr.). Osim toga, sadrži tekstualne opise tko je stvorio dodatak, čemu služi i gdje pronaći više informacija o njemu. Datoteka mora biti smještena na jednoj od uključnih putanja pri kompajliranju dodatka i mora imati ekstenziju .json. JSON datoteka se kompajlira u dodatak kao metapodaci, koje zatim čita Qt Creator pri učitavanju dodataka.
Glavni ključevi
Glavni ključevi koji se koriste za identifikaciju vašeg dodatka i definiranje zadanog ponašanja pri učitavanju sastoje se od obaveznih ključeva Id i Version te opcionalnih ključeva CompatVersion, Experimental, DisabledByDefault, Required i Platform.
| Ključ | Vrsta vrijednosti | Značenje |
|---|---|---|
| Id | Niz (mora biti pisano malim slovima) | Ovo se koristi kao identifikator za dodatak i može se npr. referencirati u ovisnostima drugog dodatka. |
| Naziv | Niz | Ovo se koristi kao prikazano ime vašeg dodatka u korisničkom sučelju. |
| VendorId | Niz (mora biti pisano malim slovima) | Jedinstveni identifikator za dobavljača, poput mycompany. |
| Verzija | Niz | Niz verzije u obliku x.y.z_n, koji se koristi za identifikaciju dodatka. Također pogledajte Napomenu o verzijama dodataka. |
| Kompatibilna verzija | Niz | Opcionalno. Ako nije navedeno, implicitno se postavlja na istu vrijednost kao i Version. Verzija kompatibilnosti navodi verziju ovog dodatka s kojom je trenutna verzija binarno kompatibilna unatrag i koristi se za rješavanje ovisnosti o ovom dodatku. Npr. Version od 2.1.1 i CompatVersion od 2.0.0 znači da je ova verzija 2.1.1 dodatka binarno kompatibilna unatrag sa svim verzijama dodatka sve do 2.0.0 (uključivo). |
| Eksperimentalno | Boolean | Neobavezno. Zadano je false. Eksperimentalni dodaci se po zadanome ne učitavaju, već ih korisnik mora izričito omogućiti. Ovaj atribut treba omogućiti za nove dodatke koji bi mogli negativno utjecati na korisničko iskustvo. |
| OnemogućenPoZadanojPostavci | Bojan | Opcionalno. Zadano je false. Ako je postavljeno, odgovarajući dodatak se ne učitava prema zadanim postavkama, već ga korisnik mora izričito omogućiti. To bi se trebalo primjenjivati na dodatke za koje se ne očekuje da će ih koristiti toliko ljudi da bi se opravdao dodatni trošak resursa. |
| Zastarjelo | Buloško | Neobavezno. Zadano je false. Plugini koji su zastarjeli ne učitavaju se prema zadanim postavkama, već ih korisnik mora izričito omogućiti. Ovaj atribut je naznaka da plugin više nije podržan i da bi to moglo negativno utjecati na korisničko iskustvo. |
| Mekano učitavanje | Bolejski | Opcionalno. Zadano je false. Soft loadable dodatke moguće je učitati tijekom izvršavanja bez ponovnog pokretanja. To je moguće za dodatke koji se priključuju samo na funkcionalnost koja podržava ažuriranje tijekom izvršavanja. |
| Potrebno | Bolejski | Opcionalno. Zadano je false. Koristi se kao naznaka u dijalogu About Plugins... da korisnik ne smije ručno onemogućiti ovaj dodatak. Koristi se samo za dodatak Core. |
| Platforma | Niz | Neobavezno. Regularni izraz koji odgovara nazivima platformi na kojima dodatak radi. Izostavljanje oznake podrazumijeva da se dodatak učitava na svim platformama. |
Ključevi za opis plugina
Ovi se koriste isključivo za detaljniji (korisnički usmjeren) opis dodatka. Svi su opcionalni.
| Ključ | Tip vrijednosti | Značenje |
|---|---|---|
| Kategorija | Niz | Zadano je Utilities. Koristi se za grupiranje povezanih dodataka pod istim čvorom stabla u pregledu dodataka About Plugins.... |
| Dobavljač | Niz | Niz koji opisuje tvorca/dobavljača dodatka, poput MyCompany. |
| Autorska prava | Niz | Kratko obavještenje o autorskim pravima, poput (C) 2016 MyCompany. |
| Licenca | Niz ili niz znakova | Moguće višestruki redak informacija o licenci za dodatak. Ipak bi trebalo ostati relativno kratko, budući da sučelje nije dizajnirano za duge tekstove. |
| Opis | Niz | Kratak opis onoga što dodatak treba pružiti. Ovo se prikazuje pri pokretanju Qt Creator s -version. |
| Dugačak opis | Niz ili niz znakova | Možda višestruki, opširniji opis onoga što dodatak treba pružiti. I dalje bi trebao biti relativno kratak, budući da sučelje nije dizajnirano za duge tekstove. |
| URL | Niz | Poveznica na dodatne informacije o dodatku, poput http://www.mycompany-online.com/products/greatplugin. |
| URL za dokumentaciju | Niz | Poveznica na online dokumentaciju za dodatak, poput https://www.mycompany-online.com/docs/greatplugin/manual.html. |
| Preporučuje | Niz ili niz znakova | Popis ID-ova dodataka koji su omogućeni (ako su instalirani) kada je ovaj dodatak omogućen. Ovo može biti korisno kada je dodatak koji je prema zadanim postavkama onemogućen proširen drugim prethodno instaliranim dodacima (koji su također prema zadanim postavkama onemogućeni, jer bi inače neizravno omogućili ovaj dodatak). |
Ovisnosti
Dodatak može imati ovisnosti o drugim dodacima. One se navode u metapodacima dodatka kako bi se osiguralo da se ti drugi dodaci učita prije ovog dodatka.
Ovisnosti se deklariraju ključem Dependency, koji sadrži niz JSON objekata sa obaveznim ključevima Id i Version te opcionalnim ključem Type.
Sljedeće formule ilustriraju kako se podudara informacija o ovisnosti. U formulama je Id potrebnog dodatka (kako je definirano u Id objektu ovisnosti) označen kao DependencyId, a potrebna verzija dodatka označena je kao DependencyVersion. Dodatak s danim Id, Version i CompatVersion kako je definirano u metapodacima dodatka podudara se s ovisnošću ako
- njegov
IdodgovaraDependencyId, i CompatVersion <= DependencyVersion <= Version. Na primjer, ovisnost
Na primjer, ovisnost
{
"Id" : "someotherplugin",
"Version" : "2.3.0_2"
}bi odgovarala dodatku s
{
"Id" : "someotherplugin",
"Name" : "SomeOtherPlugin",
"Version" : "3.1.0",
"CompatVersion" : "2.2.0",
...
}budući da se ID podudara, a verzija 2.3.0_2 navedena u tagu ovisnosti nalazi se u rasponu od 2.2.0 do 3.1.0.
| Ključ | Vrijednost Tip | Značenje |
|---|---|---|
| Ovisnosti | Niz objekata ovisnosti | Opisuje ovisnosti o drugim dodatcima. |
Objekt ovisnosti je JSON objekt sa sljedećim ključevima:
| Ključ | Tip vrijednosti | Značenje |
|---|---|---|
| Id | Niz | ID dodatka na koji se ovaj dodatak oslanja. |
| Verzija | Niz | Verzija s kojom dodatak mora biti kompatibilan kako bi ispunio ovisnost, u obliku x.y.z_n. Može biti prazna ako verzija nije bitna. |
| Tip | Niz | Neobavezno. Vrijednost required, optional ili test. Definira je li ovisnost strogi zahtjev, neobavezna ili potrebna za pokretanje testova dodatka. Zadano je required. |
Izborne ovisnosti
Plugin može navesti da je ovisnost o drugom pluginu neobavezna dodavanjem "Type" : "optional" u objekt ovisnosti:
- Ako se ovisnost može riješiti, dodatak i njegova ovisnost se učitavaju i inicijaliziraju kao kod ovisnosti
required. - Ako se ovisnost ne može riješiti, dodatak se učitava i inicijalizira kao da ovisnost uopće nije bila deklarirana.
Dodatak se ni na koji način ne obavještava o postojanju neobaveznih ovisnosti. Budući da ovisnost može biti učitana ili ne, dodatak se također možda neće povezati s ovisnošću. Uobičajen način za pristup objektima iz neobaveznih ovisnosti jest dobivanje objekta iz globalnog fonda objekata putem ExtensionSystem::PluginManager::getObjectByName() i korištenje funkcija QMetaObject za pozivanje funkcija na njemu.
Testne ovisnosti
Kada korisnik pokrene aplikaciju s argumentom naredbenog retka -test, učitavaju se samo navedeni dodatci i njihove ovisnosti. To se radi kako bi se ubrzalo izvršavanje testova izbjegavanjem učitavanja nepotrebnih dodataka.
Plugin može navesti dodatne ovisnosti koje su potrebne za pokretanje njegovih testova, ali ne i za njegovo normalno izvršavanje, deklariranjem ovisnosti pomoću "Type" : "test". Testne ovisnosti se obavezno učitavaju i ne utječu na redoslijed učitavanja.
Ova vrsta ovisnosti nije tranzitivna.
Argumenti naredbenog retka
Dodaci mogu registrirati argumente naredbenog retka koje korisnik može navesti pri pokretanju aplikacije. Ti se argumenti naredbenog retka prikazuju s jednolinijskim opisom kada korisnik pokrene aplikaciju s argumentom naredbenog retka -help, a upravitelj dodataka vrši analizu naredbenog retka i osnovne provjere ispravnosti na temelju tih informacija. Ako upravitelj dodataka pronađe odgovarajuće argumente naredbenog retka za dodatak, prosljeđuje ih funkciji initialize() dodatka.
Argumenti naredbenog retka definiraju se putem ključa Arguments, koji sadrži niz objekata argumenata. Svaki pojedinačni objekt argumenta ima obavezni ključ Name i opcionalne ključeve Parameter i Description.
| Ključ | Tip vrijednosti | Značenje |
|---|---|---|
| Argumenti | Niz objekata argumenata | Opisuje argumente naredbenog retka koje dodatak želi obraditi. |
Objekt argumenta je JSON objekt sa sljedećim ključevima:
| Ključ | Tip vrijednosti | Značenje |
|---|---|---|
| Naziv | Niz | Sam argument naredbenog retka, uključujući prefiks e -, npr. -my-parameter. |
| Parametar | Niz | Neobavezno. Ako je navedeno, argument naredbenog retka očekuje dodatni parametar, npr. -my-parameter somevalue. Vrijednost ovog atributa koristi se kao vrlo kratak opis parametra za korisnika. |
| Opis | Niz | Neobavezno. Opis argumenta (u jednom retku) za pomoć u retku naredbi. |
Primjer Test.json
{
"Id" : "test",
"Name" : "Test",
"Version" : "1.0.1",
"CompatVersion" : "1.0.0",
"VendorId" : "mycompany",
"Vendor" : "My Company",
"Copyright" : "(C) 2016 MyCompany",
"License" : [
"This is a default license bla",
"blubbblubb",
"end of terms"
],
"Category" : "My Company Additions",
"Description" : [
"This plugin is just a test.",
"It demonstrates the great use of the plugin meta data."
],
"Url" : "http://www.mycompany-online.com/products/greatplugin",
"DocumentationUrl" : "https://www.mycompany-online.com/docs/greatplugin/manual.html",
"Arguments" : [
{
"Name" : "-variant",
"Parameter" : "fancy|boring",
"Description" : "Brings up the fancy or boring user interface"
}
],
"Dependencies" : [
{ "Id" : "someotherplugin", "Version" : "2.3.0_2" },
{ "Id" : "evenother", "Version" : "1.0.0" }
]
}Ostali metapodaci
| Ključ | Tip vrijednosti | Značenje |
|---|---|---|
| Tipovi MIME-a | Niz ili niz znakova | Moguće više redaka XML MIME-informacija koje se koriste za registraciju dodatnih ili prilagodbu ugrađenih MIME tipova. |
| JsonWizardPaths | Niz znakovnih nizova | Popis putanja relativnih prema lokaciji dodatka ili putanja do Qt sustava resursa koji se pretražuju za čarobnjake temeljene na predlošcima. |
Napomena o verzijama dodataka
Verzije dodataka su u obliku x.y.z_n, gdje su x, y, z i n ne-negativni cjelobrojni brojevi. Ne morate navoditi verziju u ovom punom obliku – svaki izostavljeni dio implicitno će biti postavljen na nulu. Dakle, 2.10_2 jednako je 2.10.0_2, a 1 isto je kao 1.0.0_0.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.