Core::DocumentManager Class
class Core::DocumentManagerKlasa DocumentManager upravlja skupom dokumenata. Više...
| Header: | #include <coreplugin/documentmanager.h> |
| Inherits: | QObject |
Javni slotovi
| void | clearRecentFiles() |
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
Usluga 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 za pregled razlika (diff viewer) ili Git zapisi o krivnji (blame) ili evidenciji (log) stvaraju se i prikazuju pomoću Qt Creator a 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 kod usluge 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 prilagodit će se u skladu s tim. 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 zbirku. 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 koju treba ponovno otvoriti 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 odredi 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 na 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 zadnji posjećeni direktorij 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 navodi putanju u kojoj će se dijalog otvoriti ako to korisnikova politika ne nadjađe.
Argument options sadrži razne 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 novi naziv 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 IDocument::setFilePath(), te će se ažurirati pohranjene informacije o vremenu i dozvolama kako bi se izbjegli dosadni iskačući prozori s porukom "datoteka je uklonjena".
[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 zapisuje se u alwaysSave ako je postavljena.
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 korisnici otkažu 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 document om 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 spremaju documents i vraćaju 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ćenu karticu ' directory ' dijaloga za datoteke koja će biti zapamćena za sljedeći put.
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 je li za projekte treba koristiti direktorij ili je korisnik odabrao korištenje trenutnog direktorija.
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.