blob: dd35244085ad2ce108baaa47e8c94e10340ec0d3 (
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*> uncommittedInstances;
for (Committable* c : instances)
{
if (c->isUncommitted())
uncommittedInstances << c;
}
if (uncommittedInstances.size() == 0)
return true;
return confirmFunc(uncommittedInstances);
}
|