From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- SQLiteStudio3/coreSQLiteStudio/committable.cpp | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 SQLiteStudio3/coreSQLiteStudio/committable.cpp (limited to 'SQLiteStudio3/coreSQLiteStudio/committable.cpp') 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 + +Committable::ConfirmFunction Committable::confirmFunc = nullptr; +QList 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 uncommitedInstances; + for (Committable* c : instances) + { + if (c->isUncommited()) + uncommitedInstances << c; + } + + if (uncommitedInstances.size() == 0) + return true; + + return confirmFunc(uncommitedInstances); +} -- cgit v1.2.3