KParts::ReadWritePart Class
class KParts::ReadWritePartBase class for an "editor" part. More...
Header: | #include <KParts/ReadWritePart> |
CMake: | find_package(KF6 REQUIRED COMPONENTS Parts) target_link_libraries(mytarget PRIVATE KF6::Parts) |
Inherits: | KParts::ReadOnlyPart |
Public Functions
ReadWritePart(QObject *parent = nullptr, const KPluginMetaData &data = {}) | |
virtual | ~ReadWritePart() override |
virtual bool | closeUrl(bool promptToSave) |
bool | isModified() const |
bool | isReadWrite() const |
virtual bool | queryClose() |
virtual bool | saveAs(const QUrl &url) |
virtual void | setModified(bool modified) |
virtual void | setReadWrite(bool readwrite = true) |
Reimplemented Public Functions
virtual bool | closeUrl() override |
Public Slots
virtual bool | save() |
void | setModified() |
bool | waitSaveComplete() |
Signals
void | sigQueryClose(bool *handled, bool *abortClosing) |
Protected Functions
Detailed Description
This class handles network transparency for you. Anything that can open a URL, allow modifications, and save (to the same URL or a different one).
A read-write part can be set to read-only mode, using setReadWrite().
Part writers: Any part inheriting ReadWritePart should check isReadWrite before allowing any action that modifies the part. The part probably wants to reimplement setReadWrite, disable those actions. Don't forget to call the parent setReadWrite.
Member Function Documentation
[explicit]
ReadWritePart::ReadWritePart(QObject *parent = nullptr, const KPluginMetaData &data = {})
Constructor See parent constructor for instructions.
[override virtual noexcept]
ReadWritePart::~ReadWritePart()
Destructor Applications using a ReadWritePart should make sure, before destroying it, to call closeUrl(). In KMainWindow::queryClose(), for instance, they should allow closing only if the return value of closeUrl() was true. This allows to cancel.
[override virtual]
bool ReadWritePart::closeUrl()
Reimplements: ReadOnlyPart::closeUrl().
Called when closing the current url (e.g. document), for instance when switching to another url (note that openUrl() calls it automatically in this case).
If the current URL is not fully loaded yet, aborts loading.
If isModified(), queryClose() will be called.
Returns false on cancel
[virtual]
bool ReadWritePart::closeUrl(bool promptToSave)
Call this method instead of the above if you need control if the save prompt is shown. For example, if you call queryClose() from KMainWindow::queryClose(), you would not want to prompt again when closing the url.
Equivalent to promptToSave ? closeUrl() : ReadOnlyPart::closeUrl()
bool ReadWritePart::isModified() const
Returns true if the document has been modified.
bool ReadWritePart::isReadWrite() const
Returns true if the part is in read-write mode
[virtual]
bool ReadWritePart::queryClose()
If the document has been modified, ask the user to save changes. This method is meant to be called from KMainWindow::queryClose(). It will also be called from closeUrl().
Returns true if closeUrl() can be called without the user losing important data, false if the user chooses to cancel.
[virtual slot]
bool ReadWritePart::save()
Save the file in the location from which it was opened. You can connect this to the "save" action. Calls saveFile() and saveToUrl(), no need to reimplement.
[virtual]
bool ReadWritePart::saveAs(const QUrl &url)
Save the file to a new location.
Calls save(), no need to reimplement
[pure virtual protected]
bool ReadWritePart::saveFile()
Save to a local file. You need to implement it, to save to the local file. The framework takes care of re-uploading afterwards.
Returns true on success, false on failure. On failure the function should inform the user about the problem with an appropriate message box. Standard error messages can be constructed using KIO::buildErrorString() in combination with the error codes defined in kio/global.h
[virtual protected]
bool ReadWritePart::saveToUrl()
Save the file.
Uploads the file, if url is remote. This will emit started(), and either completed() or canceled(), in case you want to provide feedback.
Returns true on success, false on failure.
[slot]
void ReadWritePart::setModified()
Call setModified() whenever the contents get modified. This is a slot for convenience, since it simply calls setModified(true), so that you can connect it to a signal, like textChanged().
See also isModified().
[virtual]
void ReadWritePart::setModified(bool modified)
Sets the modified flag of the part.
[virtual]
void ReadWritePart::setReadWrite(bool readwrite = true)
Changes the behavior of this part to readonly or readwrite.
readwrite set to true to enable readwrite mode
See also isReadWrite().
[signal]
void ReadWritePart::sigQueryClose(bool *handled, bool *abortClosing)
set handled to true, if you don't want the default handling set abortClosing to true, if you handled the request, but for any reason don't want to allow closing the document
[slot]
bool ReadWritePart::waitSaveComplete()
Waits for any pending upload job to finish and returns whether the last save() action was successful.