+ // std::string used as a return value in functions below are
+ // workaround to defer messages to be displayed in UI. If message()
+ // is used directly, message string is immediately overwritten
+ // by the next multiple messages on the top of the processed dispatch
+ // machinery.
+
+ /// Unlock and commit changes. Returns log.
+ std::string checkIn();
+ /// Does the current VC supports this operation?
+ bool checkInEnabled() const;
+
+ /// Lock/update and prepare to edit document. Returns log.
+ std::string checkOut();
+ /// Does the current VC supports this operation?
+ bool checkOutEnabled() const;
+
+ /// Synchronize the whole archive with repository
+ std::string repoUpdate();
+ /// Does the current VC supports this operation?
+ bool repoUpdateEnabled() const;
+
+ /**
+ * Toggle locking property of the edited file,
+ * i.e. whether the file uses locking mechanism.
+ */
+ std::string lockingToggle();
+ /// Does the current VC support this operation?
+ bool lockingToggleEnabled() const;