Na ovoj stranici

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 vrijednostiZnačenje
IdNiz (mora biti pisano malim slovima)Ovo se koristi kao identifikator za dodatak i može se npr. referencirati u ovisnostima drugog dodatka.
NazivNizOvo se koristi kao prikazano ime vašeg dodatka u korisničkom sučelju.
VendorIdNiz (mora biti pisano malim slovima)Jedinstveni identifikator za dobavljača, poput mycompany.
VerzijaNizNiz verzije u obliku x.y.z_n, koji se koristi za identifikaciju dodatka. Također pogledajte Napomenu o verzijama dodataka.
Kompatibilna verzijaNizOpcionalno. 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).
EksperimentalnoBooleanNeobavezno. 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ćenPoZadanojPostavciBojanOpcionalno. 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.
ZastarjeloBuloškoNeobavezno. 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čitavanjeBolejskiOpcionalno. 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.
PotrebnoBolejskiOpcionalno. 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.
PlatformaNizNeobavezno. 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 vrijednostiZnačenje
KategorijaNizZadano je Utilities. Koristi se za grupiranje povezanih dodataka pod istim čvorom stabla u pregledu dodataka About Plugins....
DobavljačNizNiz koji opisuje tvorca/dobavljača dodatka, poput MyCompany.
Autorska pravaNizKratko obavještenje o autorskim pravima, poput (C) 2016 MyCompany.
LicencaNiz ili niz znakovaMoguć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.
OpisNizKratak opis onoga što dodatak treba pružiti. Ovo se prikazuje pri pokretanju Qt Creator s -version.
Dugačak opisNiz ili niz znakovaMož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.
URLNizPoveznica na dodatne informacije o dodatku, poput http://www.mycompany-online.com/products/greatplugin.
URL za dokumentacijuNizPoveznica na online dokumentaciju za dodatak, poput https://www.mycompany-online.com/docs/greatplugin/manual.html.
PreporučujeNiz ili niz znakovaPopis 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 Id odgovara DependencyId, 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 TipZnačenje
OvisnostiNiz objekata ovisnostiOpisuje ovisnosti o drugim dodatcima.

Objekt ovisnosti je JSON objekt sa sljedećim ključevima:

KljučTip vrijednostiZnačenje
IdNizID dodatka na koji se ovaj dodatak oslanja.
VerzijaNizVerzija s kojom dodatak mora biti kompatibilan kako bi ispunio ovisnost, u obliku x.y.z_n. Može biti prazna ako verzija nije bitna.
TipNizNeobavezno. 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 vrijednostiZnačenje
ArgumentiNiz objekata argumenataOpisuje argumente naredbenog retka koje dodatak želi obraditi.

Objekt argumenta je JSON objekt sa sljedećim ključevima:

KljučTip vrijednostiZnačenje
NazivNizSam argument naredbenog retka, uključujući prefiks e -, npr. -my-parameter.
ParametarNizNeobavezno. 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.
OpisNizNeobavezno. 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 vrijednostiZnačenje
Tipovi MIME-aNiz ili niz znakovaMoguće više redaka XML MIME-informacija koje se koriste za registraciju dodatnih ili prilagodbu ugrađenih MIME tipova.
JsonWizardPathsNiz znakovnih nizovaPopis 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.