diff options
| author | 2014-12-06 17:33:25 -0500 | |
|---|---|---|
| committer | 2014-12-06 17:33:25 -0500 | |
| commit | 7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch) | |
| tree | a35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/coreSQLiteStudio/committable.cpp | |
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/committable.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/committable.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/committable.cpp b/SQLiteStudio3/coreSQLiteStudio/committable.cpp new file mode 100644 index 0000000..892437a --- /dev/null +++ b/SQLiteStudio3/coreSQLiteStudio/committable.cpp @@ -0,0 +1,41 @@ +#include "committable.h" +#include <QDebug> + +Committable::ConfirmFunction Committable::confirmFunc = nullptr; +QList<Committable*> Committable::instances; + +Committable::Committable() +{ + instances << this; +} + +Committable::~Committable() +{ + instances.removeOne(this); +} + +void Committable::init(Committable::ConfirmFunction confirmFunc) +{ + Committable::confirmFunc = confirmFunc; +} + +bool Committable::canQuit() +{ + if (!confirmFunc) + { + qCritical() << "No confirm function defined for Committable!"; + return true; + } + + QList<Committable*> uncommitedInstances; + for (Committable* c : instances) + { + if (c->isUncommited()) + uncommitedInstances << c; + } + + if (uncommitedInstances.size() == 0) + return true; + + return confirmFunc(uncommitedInstances); +} |
