Na ovoj stranici

Core::DocumentManager Class

class Core::DocumentManager

Klasa DocumentManager upravlja skupom dokumenata. Više...

Header: #include <coreplugin/documentmanager.h>
Inherits: QObject

Javne utore

Statični javni članovi

void addDocument(Core::IDocument *document, bool addWatcher = true)
void addDocuments(const QList<Core::IDocument *> &documents, bool addWatcher = true)
void addToRecentFiles(const Utils::FilePath &filePath, Utils::Id editorId = {})
Utils::FilePath defaultLocationForNewFiles()
void expectFileChange(const Utils::FilePath &filePath)
Utils::FilePath fileDialogInitialDirectory()
Utils::FilePath fileDialogLastVisitedDirectory()
Utils::FilePath filePathKey(const Utils::FilePath &filePath, Core::DocumentManager::ResolveMode resolveMode)
Utils::FilePaths getOpenFileNames(const QString &filters, const Utils::FilePath &pathIn = {}, QString *selectedFilter = nullptr, int options = {})
Utils::FilePath getSaveAsFileName(const Core::IDocument *document)
QList<Core::IDocument *> modifiedDocuments()
Utils::FilePath projectsDirectory()
QList<Core::DocumentManager::RecentFile> recentFiles()
bool removeDocument(Core::IDocument *document)
void renamedFile(const Utils::FilePath &from, const Utils::FilePath &to)
bool saveAllModifiedDocuments(const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
bool saveAllModifiedDocumentsSilently(bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
bool saveModifiedDocument(Core::IDocument *document, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
bool saveModifiedDocumentSilently(Core::IDocument *document, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
bool saveModifiedDocuments(const QList<Core::IDocument *> &documents, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
bool saveModifiedDocumentsSilently(const QList<Core::IDocument *> &documents, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)
void setDefaultLocationForNewFiles(const Utils::FilePath &location)
void setFileDialogLastVisitedDirectory(const Utils::FilePath &directory)
void setProjectsDirectory(const Utils::FilePath &directory)
void setUseProjectsDirectory(bool useProjectsDirectory)
void unexpectFileChange(const Utils::FilePath &filePath)
bool useProjectsDirectory()

Detaljan opis

Uslužni program DocumentManager nadzire skup predmeta klase e IDocument.

Ovaj odjeljak koristi sljedeću terminologiju:

  • Datoteka znači skup podataka pohranjenih na disku pod imenom (to jest, uobičajeno značenje pojma datoteka u računarstvu).
  • Dokument sadrži otvoren sadržaj u Qt Creator u. Ako odgovara datoteci, može se razlikovati od nje jer je izmijenjen. No dokument možda uopće ne odgovara datoteci. Na primjer, dokumenti preglednika razlika (diff viewer) ili Git zapisi o krivnji (blame) ili zapisima (log) stvaraju se i prikazuju od strane Qt Creator na zahtjev.
  • editor pruža prikaz dokumenta koji je korisniku zapravo vidljiv i potencijalno omogućuje uređivanje dokumenta. Više uređivača može otvoriti prikaze istog dokumenta.

Dodaci bi trebali registrirati dokumente s kojima rade u usluzi za upravljanje dokumentima. Datoteke na koje upućuju objekti IDocument nadzirat će se na razini datotečnog sustava. Ako se datoteka promijeni na disku, status objekta IDocument primjereno će se prilagoditi. Prilikom izlaska iz aplikacije korisnik će biti upitan da spremi sve izmijenjene dokumente.

Različiti objekti IDocument u skupu mogu upućivati na istu datoteku u datotečnom sustavu. Praćenje za IDocument može se blokirati korištenjem klase Core::FileChangeBlocker.

Funkcije expectFileChange() i unexpectFileChange() označavaju promjenu datoteke kao očekivanu. Prilikom očekivanih promjena datoteka svi objekti IDocument obaviješteni su da se ponovno učita.

Usluga DocumentManager također pruža praktične funkcije za spremanje dokumenata, kao što su saveModifiedDocuments() i saveModifiedDocumentsSilently(). One korisnicima prikazuju dijalog koji navodi sve izmijenjene dokumente i pita ih koji se dokumenti trebaju spremiti.

Servis također upravlja popisom nedavnih datoteka koje se prikazuju korisniku.

Vidi također addToRecentFiles() i recentFiles().

Dokumentacija funkcija člana

[static] void DocumentManager::addDocument(Core::IDocument *document, bool addWatcher = true)

Dodaje document u kolekciju. Ako je addWatcher true (po zadanom), datoteka dokumenta se dodaje nadzorniku datotečnog sustava koji obavještava upravitelja dokumenata o promjenama datoteka.

[static] void DocumentManager::addDocuments(const QList<Core::IDocument *> &documents, bool addWatcher = true)

Dodaje popis documents a u zbirku. Ako je addWatcher postavljen na true (po zadanom), datoteke dokumenata dodaju se nadzorniku datotečnog sustava koji obavještava upravitelja dokumenata o promjenama datoteka.

[static] void DocumentManager::addToRecentFiles(const Utils::FilePath &filePath, Utils::Id editorId = {})

Dodaje datoteku filePath na popis nedavnih datoteka. Povezuje datoteku koja se ponovno otvara s uređivačem koji ima navedenu editorId, ako je moguće. editorId prema zadanim postavkama koristi prazan ID, što omogućuje Qt Creator u da sam odabere najbolji uređivač.

[slot] void DocumentManager::clearRecentFiles()

Očisti popis nedavnih datoteka. Trebalo bi ga pozivati samo u osnovnom dodatku kada korisnik odabere čišćenje popisa.

[static] Utils::FilePath DocumentManager::defaultLocationForNewFiles()

Vraća zadanu lokaciju za nove datoteke.

Vidi također setDefaultLocationForNewFiles() i fileDialogInitialDirectory()

[static] void DocumentManager::expectFileChange(const Utils::FilePath &filePath)

Tretira svaku naknadnu promjenu u filePath kao očekivanu promjenu datoteke.

Vidi također unexpectFileChange().

[static] Utils::FilePath DocumentManager::fileDialogInitialDirectory()

Vraća početni direktorij za dijalog o novoj datoteci. Ako postoji trenutni dokument povezan s datotekom, koristi ga. Ili, ako postoji zadana lokacija za nove datoteke, koristi je. U suprotnom, koristi posljednji posjećeni direktorij.

Vidi također setFileDialogLastVisitedDirectory() i setDefaultLocationForNewFiles().

[static] Utils::FilePath DocumentManager::fileDialogLastVisitedDirectory()

Vraća zadnju posjećenu mapu u dijalogu za datoteke.

Vidi također setFileDialogLastVisitedDirectory() i fileDialogInitialDirectory()

[static] Utils::FilePath DocumentManager::filePathKey(const Utils::FilePath &filePath, Core::DocumentManager::ResolveMode resolveMode)

Vraća zajamčeno očišćenu apsolutnu putanju datoteke za filePath. Rješava simboličke poveznice ako je resolveMode postavljeno na ResolveLinks.

[static] Utils::FilePaths DocumentManager::getOpenFileNames(const QString &filters, const Utils::FilePath &pathIn = {}, QString *selectedFilter = nullptr, int options = {})

Traži od korisnika skup imena datoteka za otvaranje. Argumenti filters i selectedFilter tumače se kao u QFileDialog::getOpenFileNames(). pathIn određuje putanju za otvaranje dijaloga ako to korisnikova politika ne nadjačava.

Argument options sadrži različite opcije o načinu pokretanja dijaloga. Pogledajte enum QFileDialog::Option za više informacija o zastavicama koje možete proslijediti.

[static] Utils::FilePath DocumentManager::getSaveAsFileName(const Core::IDocument *document)

Traži od korisnika novo ime datoteke (Save File As) za document.

[static] QList<Core::IDocument *> DocumentManager::modifiedDocuments()

Vraća popis IDokumenata koji su izmijenjeni.

[static] Utils::FilePath DocumentManager::projectsDirectory()

Vraća direktorij za projekte. Zadano je HOME.

Vidi također setProjectsDirectory() i setUseProjectsDirectory().

[static] QList<Core::DocumentManager::RecentFile> DocumentManager::recentFiles()

Vraća popis nedavnih datoteka.

[static] bool DocumentManager::removeDocument(Core::IDocument *document)

Uklanja document iz kolekcije.

Vraća true ako je dokument imao postavljen argument addWatcher za addDocument().

[static] void DocumentManager::renamedFile(const Utils::FilePath &from, const Utils::FilePath &to)

Obavještava upravitelja dokumenata da je datoteka na disku preimenovana iz from u to unutar Qt Creator.

Treba se pozvati odmah nakon stvarnog preimenovanja na disku (tj. prije nego što nadzornik datotečnog sustava može prijaviti događaj tijekom sljedećeg izvršavanja ciklusa događaja).

from Mora biti apsolutna putanja do datoteke. Time će se sve objekte IDocument koji upućuju na tu datoteku obavijestiti o preimenovanju pozivom metode IDocument::setFilePath(), te će se ažurirati pohranjene informacije o vremenu i dozvolama kako se korisnik ne bi uznemiravao skočnim obavijestima o uklanjanju datoteke.

[static] bool DocumentManager::saveAllModifiedDocuments(const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Prikazuje korisnicima dijalog sa svim izmijenjenim dokumentima i pita ih koji od njih trebaju biti spremljeni.

Ova metoda može korisniku prikazati dodatne dijaloge, npr. ako datoteka nije zapisaiva.

Tekst dijaloga može se postaviti pomoću message. Ako korisnici otkažu bilo koji od dijaloga s kojima su komunicirali, postavlja se canceled i metoda vraća false.

alwaysSaveMessage prikazuje dodatnu potvrdnu kućicu u dijalogu. Stanje te potvrdne kućice spremno je u alwaysSave ako je postavljeno.

Ako se proslijedi metodi, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] bool DocumentManager::saveAllModifiedDocumentsSilently(bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Tiho sprema sve dokumente i vraća true ako su svi izmijenjeni dokumenti uspješno spremljeni.

Ova metoda nastoji izbjeći prikazivanje dijaloga korisniku, ali to može učiniti i dalje (npr. ako datoteka nije zapisaiva).

Ako su korisnici otkazali bilo koji od dijaloga s kojima su komunicirali, postavlja se canceled. Ako se proslijedi metodi, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] bool DocumentManager::saveModifiedDocument(Core::IDocument *document, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Prikazuje korisnicima dijalog s poljem za unos teksta ( document ) i pita ih treba li ga spremiti.

Ova metoda može korisniku prikazati dodatne dijaloge, npr. ako datoteka nije zapisaiva.

Tekst dijaloga može se postaviti pomoću message. Ako korisnici otkažu bilo koji od dijaloga s kojima su komunicirali, postavlja se canceled i metoda vraća false.

alwaysSaveMessage prikazuje dodatnu potvrdnu kućicu u dijalogu. Stanje te potvrdne kućice zapisuje se u alwaysSave ako je postavljena.

Ako se proslijedi metodi, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] bool DocumentManager::saveModifiedDocumentSilently(Core::IDocument *document, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Tiho sprema document i vraća true ako je spremanje uspješno.

Ova metoda nastoji izbjeći prikazivanje dijaloga korisniku, ali to može učiniti i dalje (npr. ako datoteka nije zapisaiva).

Ako korisnici otkažu bilo koji od dijaloga s kojima su komunicirali, postavlja se canceled. Ako se metoda pozove s parametrom, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] bool DocumentManager::saveModifiedDocuments(const QList<Core::IDocument *> &documents, const QString &message = QString(), bool *canceled = nullptr, const QString &alwaysSaveMessage = QString(), bool *alwaysSave = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Prikazuje korisnicima dijalog s e documents ima i pita ih koje od njih treba spremiti.

Ova metoda može korisniku prikazati dodatne dijaloge, npr. ako datoteka nije zapisaiva.

Tekst dijaloga može se postaviti pomoću message. Ako korisnici otkažu bilo koji od dijaloga s kojima su komunicirali, postavlja se canceled i metoda vraća false.

alwaysSaveMessage prikazuje dodatnu potvrdnu kućicu u dijalogu. Stanje te potvrdne kućice zapisuje se u alwaysSave ako je postavljena.

Ako se proslijedi metodi, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] bool DocumentManager::saveModifiedDocumentsSilently(const QList<Core::IDocument *> &documents, bool *canceled = nullptr, QList<Core::IDocument *> *failedToClose = nullptr)

Tiho sprem documents i vraća true ako su svi uspješno spremljeni.

Ova metoda nastoji izbjeći prikazivanje dijaloga korisniku, ali to može učiniti i dalje (npr. ako datoteka nije zapisaiva).

Ako su korisnici otkazali bilo koji od dijaloga s kojima su bili u interakciji, postavlja se canceled. Ako se metoda pozove s parametrom, failedToClose vraća popis dokumenata koji nisu mogli biti spremljeni.

[static] void DocumentManager::setDefaultLocationForNewFiles(const Utils::FilePath &location)

Postavlja zadani location za nove datoteke.

Vidi također defaultLocationForNewFiles().

[static] void DocumentManager::setFileDialogLastVisitedDirectory(const Utils::FilePath &directory)

Postavlja zadnju posjećen­u directory u dijaloga za datoteke koja će se zapamtiti za sljedeći.

Vidi također fileDialogLastVisitedDirectory() i fileDialogInitialDirectory().

[static] void DocumentManager::setProjectsDirectory(const Utils::FilePath &directory)

Postavlja directory za projekte.

Vidi također projectsDirectory() i useProjectsDirectory().

[static] void DocumentManager::setUseProjectsDirectory(bool useProjectsDirectory)

Postavlja hoće li se za direktorij projekata koristiti useProjectsDirectory.

Vidi također projectsDirectory() i useProjectsDirectory().

[static] void DocumentManager::unexpectFileChange(const Utils::FilePath &filePath)

Ponovno smatra sve promjene na filePath neočekivanim.

Vidi također expectFileChange().

[static] bool DocumentManager::useProjectsDirectory()

Vraća informaciju o tome treba li se koristiti direktorij za projekte ili je korisnik odabrao trenutni direktorij.

Vidi također setProjectsDirectory() i setUseProjectsDirectory().

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.