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, npr., ovisnostima). 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 putova pretraživanja prilikom kompajliranja dodatka i mora imati ekstenziju .json. JSON datoteka se kompajlira u dodatak kao metapodaci, koje zatim Qt Creator čita prilikom učitavanja 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 neobaveznih 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. navesti 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 Bilješku o verzijama dodataka.
Kompatibilna verzijaNizOpcionalno. Ako nije navedeno, implicitno se postavlja na istu vrijednost kao 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 sa svim verzijama dodatka sve do 2.0.0 (uključivo).
EksperimentalnoBooleanNeobavezno. Zadano je false. Eksperimentalni dodaci se prema zadanim postavkama 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ćenPoZadanojPostavciBolejskiOpcionalno. 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 učiniti za dodatke za koje se ne očekuje da će ih koristiti toliko ljudi da bi se opravdao dodatni trošak resursa.
ZastarjeloBolejskiNeobavezno. 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čitavanjeBoleanskaOpcionalno. Zadano je false. Soft loadable dodatke moguće je učitati tijekom izvođenja bez ponovnog pokretanja. To je moguće za dodatke koji se priključuju samo na funkcionalnost koja podržava ažuriranje tijekom izvođenja.
ObaveznoBolejskiOpcionalno. Zadano je false. Koristi se kao naznaka u dijalogu About Plugins... da korisnik ne bi ručno onemogućio 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 koji opisuju dodatak

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 pravaNizKratka obavijest o autorskim pravima, poput (C) 2016 MyCompany.
LicencaNiz ili niz znakovaMoguće višestruki redak informacija o licenci o dodatku. 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, opsežniji 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 https://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 ID odgovara, a verzija 2.3.0_2 navedena u tagu ovisnosti nalazi se u rasponu od 2.2.0 do 3.1.0.

KljučVrsta vrijednostiZnač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 da bi ispunio ovisnost, u obliku x.y.z_n. Može biti prazna ako verzija nije važna.
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 dodaci 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 unijeti 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 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.
ParametarNizOpcionalno. 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 (na jednoj liniji) 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" : "https://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

key u obliku FirstKey > SecondKey znači da je vrijednost za FirstKey JSON objekt koji uključuje SecondKey.

KljučTip vrijednostiZnačenje
MimetypesNiz ili niz znakovaMoguće više redaka XML MIME-informacija koje se koriste za registraciju dodatnih MIME tipova ili prilagodbu ugrađenih.
core > VcsDetectionFilesNiz znakovnih nizovaPopis imena datoteka. Ako se jedna od njih pronađe u nadređenim direktorijima otvorene datoteke ili projekta, a ovaj dodatak ili ekstenzija je onemogućen, korisnik se obavještava da se čini kako je datoteka ili projekt pod kontrolom verzija te da može omogućiti ovaj dodatak ili ekstenziju kako bi omogućio specifičnu podršku za taj sustav kontrole verzija.
core > ProjectFileMimeTypesNiz znakovnih nizovaPopis naziva MIME tipova. Ako korisnik otvori datoteku tog MIME tipa, a ovaj dodatak ili ekstenzija je onemogućen, korisnik se obavještava da može omogućiti ovaj dodatak ili ekstenziju kako bi omogućio specifičnu podršku za taj tip projekta.
languageclient > Konfiguracija radnog prostoraObjektSpaja zadani JSON objekt s podacima poslanim na poslužitelje jezika za obavijest o promjeni jezika ( workspace/didChangeConfiguration ).
projectexplorer > JsonWizardPathsNiz nizovaPopis putanja relativnih u odnosu na lokaciju dodatka ili putanja do Qt sustava resursa koje 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 navesti verziju u ovom punom obliku – svaki izostavljeni dio implicitno će se postaviti 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.