Helper class to manager transaction (i.e. undo/redo) More...
#include <AutoTransaction.h>
Public Member Functions | |
AutoTransaction (const char *name=0, bool tmpName=false) | |
Constructor. More... | |
void | close (bool abort=false) |
Close or abort the transaction. More... | |
~AutoTransaction () | |
Destructor. More... | |
Static Public Member Functions | |
static void | setEnable (bool enable) |
Enable/Disable any AutoTransaction instance in the current stack. More... | |
Detailed Description
Helper class to manager transaction (i.e. undo/redo)
Constructor & Destructor Documentation
◆ AutoTransaction()
AutoTransaction::AutoTransaction | ( | const char * | name = 0 , |
bool | tmpName = false |
||
) |
Constructor.
- Parameters
-
name optional new transaction name on construction tmpName if true and a new transaction is setup, the name given is considered as temporary, and subsequent construction of this class (or calling Application::setActiveTransaction()) can override the transaction name.
The constructor increments an internal counter (Application::_activeTransactionGuard). The counter prevents any new active transaction being setup. It also prevents close (i.e. commits) the current active transaction until it reaches zero. It does not have any effect on aborting transaction, though.
References App::GetApplication().
◆ ~AutoTransaction()
AutoTransaction::~AutoTransaction | ( | ) |
Destructor.
This destructor decrease an internal counter (Application::_activeTransactionGuard), and will commit any current active transaction when the counter reaches zero.
References App::GetApplication().
Member Function Documentation
◆ close()
void AutoTransaction::close | ( | bool | abort = false | ) |
Close or abort the transaction.
This function can be used to explicitly close (i.e. commit) the transaction, if the current transaction ID matches the one created inside the constructor. For aborting, it will abort any current transaction
References App::Application::closeActiveTransaction(), and App::GetApplication().
Referenced by Gui::TreeWidget::dropEvent(), and setEnable().
◆ setEnable()
|
static |
Enable/Disable any AutoTransaction instance in the current stack.
Once disabled, any empty temporary named transaction is closed. If there are non-empty or non-temporary named active transaction, it will not be auto closed.
This function may be used in, for example, Gui::Document::setEdit() to allow a transaction live past any command scope.
References close(), and App::GetApplication().
Referenced by Gui::Command::invoke(), Gui::TreeWidget::mouseDoubleClickEvent(), App::Application::setActiveTransaction(), Gui::Document::setEdit(), and Gui::ControlSingleton::showDialog().
The documentation for this class was generated from the following files:
- src/App/AutoTransaction.h
- src/App/AutoTransaction.cpp