blob: 892437a91af92f3be23eb983cceeeee639c6dc99 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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);
}
|