X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXVC.h;h=b81269f4473c3873cecc1a9e88c4773c1ecbd29a;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=86d7dcc370bf4c5c1367b81a4dd6dfba636c48fc;hpb=0129d2fad1bbc8f0017bc700ad3d5c43f5abd07b;p=lyx.git diff --git a/src/LyXVC.h b/src/LyXVC.h index 86d7dcc370..b81269f447 100644 --- a/src/LyXVC.h +++ b/src/LyXVC.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -65,17 +65,37 @@ public: void setBuffer(Buffer *); /// Register the document as an VC file. - void registrer(); + bool registrer(); - /// Unlock and commit changes. - void checkIn(); + + // 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 checkInEnabled(); + bool checkOutEnabled() const; - /// Lock and prepare to edit document. - void checkOut(); + /// Synchronize the whole archive with repository + std::string repoUpdate(); /// Does the current VC supports this operation? - bool checkOutEnabled(); + 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; /// Revert to last version void revert(); @@ -83,7 +103,7 @@ public: /// Undo last check-in. void undoLast(); /// Does the current VC supports this operation? - bool undoLastEnabled(); + bool undoLastEnabled() const; /** * Generate a log file and return the filename. @@ -92,18 +112,36 @@ public: */ const std::string getLogFile() const; - /// + /** + * We do not support this generally. In RCS/SVN file read-only flag + * is often connected with locking state and one has to be careful to + * keep things in synchro once we would allow user to toggle + * read-only flags. + */ void toggleReadOnly(); /// Is the document under administration by VCS? - bool inUse(); + bool inUse() const; + /// FIXME resurrect version once we add version info + /// into SVN. RCS parser is already prepared. /// Returns the version number. //std::string const & version() const; /// Returns the version number. std::string const versionString() const; - /// Returns the userid of the person who has locked the doc. + /** + * Returns the userid of the person who has locked the doc. + * FIXME This property is descendant from the original VCS + * and used in RCS for user id or "unlocked" strings. + * It would be problem to use this under SVN since getting + * the locker would need connection to server any time we + * load document. SVN currently (mis)uses this as a signal + * for locking state, as we do not have API for vcstatus(). + * The RCS code for user id parsing is working but we don't display + * it anywhere. One possibility is to provide proper vcstatus() + * interface and kill the whole locker thing. + */ std::string const & locker() const; private: