Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
Loading...
Searching...
No Matches
intent.h
Go to the documentation of this file.
1
#ifndef COCKATRICE_INTENT_H
2
#define COCKATRICE_INTENT_H
3
4
#include <QObject>
5
#include <QString>
6
#include <qtmetamacros.h>
7
8
class
Intent
:
public
QObject
9
{
10
Q_OBJECT
11
12
public
:
13
explicit
Intent
(QObject *parent =
nullptr
);
14
~Intent
()
override
;
15
16
void
execute
();
17
18
signals:
19
void
finished
();
20
void
failed
(QString reason);
21
void
cancelled
();
22
23
protected
:
24
// --- Subclasses must implement these ---
25
virtual
bool
checkPrecondition
()
const
= 0;
26
virtual
void
onPreconditionSatisfied
() = 0;
27
virtual
void
onPreconditionNotSatisfied
() = 0;
28
29
// Helper to chain another intent
30
void
runDependency
(
Intent
*dependency);
31
32
// Emit the outcome exactly once; ignore late signals after the intent is done.
33
void
emitFinished
();
34
void
emitFailed
(
const
QString &reason);
35
void
emitCancelled
();
36
37
private
:
38
bool
completed
=
false
;
39
};
40
41
#endif
// COCKATRICE_INTENT_H
Intent::completed
bool completed
Definition
intent.h:38
Intent::onPreconditionSatisfied
virtual void onPreconditionSatisfied()=0
Intent::emitCancelled
void emitCancelled()
Definition
intent.cpp:52
Intent::onPreconditionNotSatisfied
virtual void onPreconditionNotSatisfied()=0
Intent::emitFinished
void emitFinished()
Definition
intent.cpp:36
Intent::runDependency
void runDependency(Intent *dependency)
Definition
intent.cpp:23
Intent::failed
void failed(QString reason)
Intent::~Intent
~Intent() override
Intent::finished
void finished()
Intent::emitFailed
void emitFailed(const QString &reason)
Definition
intent.cpp:44
Intent::execute
void execute()
Definition
intent.cpp:14
Intent::checkPrecondition
virtual bool checkPrecondition() const =0
Intent::cancelled
void cancelled()
Intent::Intent
Intent(QObject *parent=nullptr)
Definition
intent.cpp:3
cockatrice
src
interface
intents
intent.h
Generated by
1.18.0