Na ovoj stranici

ExtensionSystem::IPlugin Class

class ExtensionSystem::IPlugin

Klasa IPlugin je apstraktna bazna klasa koja se mora implementirati jednom za svaki dodatak. Više...

Header: #include <extensionsystem/iplugin.h>
Inherits: QObject

Javne vrste

enum ShutdownFlag { SynchronousShutdown, AsynchronousShutdown }

Javne funkcije

virtual ExtensionSystem::IPlugin::ShutdownFlag aboutToShutdown()
void addTestCreator(const ExtensionSystem::TestCreator &creator)
virtual bool delayedInitialize()
virtual void extensionsInitialized()
virtual Utils::Result<> initialize(const QStringList &arguments)
virtual QObject *remoteCommand(const QStringList &options, const QString &workingDirectory, const QStringList &arguments)

Signali

Zaštićene funkcije

virtual void initialize()

Detaljan opis

Dodatak mora osigurati metapodatke uz stvarnu biblioteku dodatka, kako bi upravitelj dodataka mogao pronaći dodatak, riješiti njegove ovisnosti i učitati ga. Za više informacija pogledajte Metapodaci dodataka.

Dodaci moraju osigurati jednu implementaciju klase IPlugin, smještenu u biblioteci koja odgovara atributu name navedenom u njihovim metapodacima. Implementacija klase IPlugin mora biti izvozna i poznata Qt-ovom sustavu dodataka, koristeći makro Q_PLUGIN_METADATA s IID-om postavljenim na "org.qt-project.Qt.QtCreatorPlugin".

Za više informacija pogledajte Životni ciklus dodatka.

Dokumentacija o vrsti člana

enum IPlugin::ShutdownFlag

Ova enum vrsta pohranjuje je li se dodatak isključio sinkrono ili asinkrono.

KonstantaVrijednostOpis
ExtensionSystem::IPlugin::SynchronousShutdown0Dodatak se isključuje sinkrono.
ExtensionSystem::IPlugin::AsynchronousShutdown1Plugin mora izvršiti asinkrone radnje prije nego što se zatvori.

Dokumentacija funkcija člana

[virtual] ExtensionSystem::IPlugin::ShutdownFlag IPlugin::aboutToShutdown()

Poziva se tijekom postupka gašenja u istom redoslijedu kao i inicijalizacija, prije nego što se plugini obrnutim redoslijedom izbrišu.

Ovu funkciju treba koristiti za odspajanje od drugih dodataka, skrivanje cijelog korisničkog sučelja i opću optimizaciju gašenja. Ako dodatak treba odgoditi stvarno gašenje na neko vrijeme, na primjer ako mora pričekati da se vanjski procesi završe radi čistog gašenja, dodatak može iz ove funkcije vratiti IPlugin::AsynchronousShutdown. Time će glavna petlja događaja ostati aktivna nakon završetka sekvence aboutToShutdown(), sve dok svi dodaci koji su zatražili asinhrono gašenje ne pošalju signal asynchronousShutdownFinished().

Zadana implementacija ove funkcije ne radi ništa i vraća IPlugin::SynchronousShutdown.

Vraća IPlugin::AsynchronousShutdown ako dodatak treba izvršiti asinkrone radnje prije gašenja.

Vidi također asynchronousShutdownFinished().

void IPlugin::addTestCreator(const ExtensionSystem::TestCreator &creator)

Registrira objekt funkcije koji stvara testni objekt s vlasnikom creator.

Stvoreni objekti namijenjeni su prosljeđivanju QTest::qExec().

Objekti funkcije bit će pozvani ako korisnik pokrene Qt Creator s parametrima -test PluginName ili -test all.

Vlasništvo nad stvorenim objektom prenosi se na dodatak.

[signal] void IPlugin::asynchronousShutdownFinished()

Pošalje implementacija dodatka nakon što je asinkrono zatvaranje spremno za nastavak postupka zatvaranja.

Vidi također aboutToShutdown().

[virtual] bool IPlugin::delayedInitialize()

Poziva se nakon što je pozvana funkcija extensionsInitialized() svih dodataka i nakon što su pozvane funkcije delayedInitialize() dodataka koji ovise o ovom dodatku.

delayedInitialize() funkcije dodataka pozivaju se nakon što je aplikacija već pokrenuta, s odmakom od nekoliko milisekundi od pokretanja aplikacije i između pojedinačnih poziva delayedInitialize() funkcija. Kako bi se izbjegli nepotrebni odmaki, dodatak bi trebao iz te funkcije vratiti true ako je doista implementira, kako bi naznačio da sljedeći poziv delayedInitialize() dodataka treba biti odgođen za nekoliko milisekundi kako bi se događaji unosa i iscrtavanja imali priliku obraditi.

Ova se funkcija može koristiti ako dodatak treba izvršiti složenu pripremu koja ne mora nužno biti izvršena odmah pri pokretanju, ali bi trebala biti izvršena unutar kratkog vremena nakon toga. Time se može znatno smanjiti percipirano vrijeme pokretanja dodatka ili aplikacije uz vrlo malo truda.

Vidi također initialize() i extensionsInitialized().

[virtual] void IPlugin::extensionsInitialized()

Poziva se nakon što je pozvana funkcija initialize() i nakon što su pozvane i funkcije initialize() i extensionsInitialized() () dodataka koji ovise o ovom dodatku.

U ovoj funkciji dodatak može pretpostaviti da su dodaci koji ovise o ovom dodatku u potpunosti pokrenuti. To je dobro mjesto za pretraživanje globalnog bazena objekata u potrazi za objektima koje su osigurali slabije ovisni dodaci.

Vidi također initialize() i delayedInitialize().

[virtual protected] void IPlugin::initialize()

Ova se funkcija poziva kao zadana implementacija initialize(const QStringList &arguments) i može se prebrisati umjesto verzije s punim argumentima u slučajevima kada implementacija ne koristi parametre i nema pogreške za izvješćivanje.

Vidi također extensionsInitialized() i delayedInitialize().

[virtual] Utils::Result<> IPlugin::initialize(const QStringList &arguments)

Poziva se nakon što je dodatak učitano i instanca IPlugin -a stvorena.

Funkcije initialize dodataka koji ovise o ovom dodatku pozivaju se nakon što je funkcija initialize ovog dodatka pozvana s parametrom arguments. Dodaci bi u ovoj funkciji trebali inicijalizirati svoje unutarnje stanje.

Vraća je li inicijalizacija uspjela.

Vidi također extensionsInitialized() i delayedInitialize().

[virtual] QObject *IPlugin::remoteCommand(const QStringList &options, const QString &workingDirectory, const QStringList &arguments)

Kada se Qt Creator izvrši s argumentom -client dok je još jedna instanca Qt Creator u tijeku, ova se funkcija dodatka poziva u toj instanci.

Argument workingDirectory određuje radni direktorij pozivajućeg procesa. Na primjer, ako se nalazite u nekom direktoriju i pokrenete qtcreator -client file.cpp, radni direktorij pozivajućeg procesa prosljeđuje se aktivnoj instanci i file.cpp pretvara se u apsolutnu putanju počevši od tog direktorija.

Argumenti specifični za dodatak prosljeđuju se u options, dok se ostali argumenti prosljeđuju u arguments.

Vraća QObject koji blokira naredbu dok se ne uništi, ako se koristi -block.

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.