summaryrefslogtreecommitdiff
path: root/domain/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-16 10:02:47 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-16 10:02:47 +0200
commit5bb826fa63b2b2d6f7b8bca354fa4a1606781dc3 (patch)
treefdff35f04a92965e7044ef84133d93280fac11b7 /domain/src
parent4e3b7165738d6d3648af70553da7fa2096606eb3 (diff)
downloadturns-5bb826fa63b2b2d6f7b8bca354fa4a1606781dc3.tar.xz
turns-5bb826fa63b2b2d6f7b8bca354fa4a1606781dc3.zip
turns: implement basic disposition integration
Diffstat (limited to 'domain/src')
-rw-r--r--domain/src/participant.cpp27
-rw-r--r--domain/src/turn_order.cpp4
2 files changed, 26 insertions, 5 deletions
diff --git a/domain/src/participant.cpp b/domain/src/participant.cpp
index 08c6deb..5265eb3 100644
--- a/domain/src/participant.cpp
+++ b/domain/src/participant.cpp
@@ -8,13 +8,14 @@
namespace turns::domain
{
- auto participant::create(Glib::ustring name, float priority) -> Glib::RefPtr<participant>
+ auto participant::create(Glib::ustring name, float priority, disposition disposition) -> Glib::RefPtr<participant>
{
- return Glib::make_refptr_for_instance(new participant{name, priority});
+ return Glib::make_refptr_for_instance(new participant{name, priority, disposition});
}
- participant::participant(Glib::ustring name, float priority)
+ participant::participant(Glib::ustring name, float priority, disposition disposition)
: Glib::ObjectBase{typeid(participant)}
+ , m_disposition{*this, "disposition", disposition}
, m_name{*this, "name", name}
, m_priority{*this, "priority", priority}
{
@@ -25,6 +26,16 @@ namespace turns::domain
return m_priority <=> other.m_priority;
}
+ auto participant::get_disposition() const noexcept -> disposition
+ {
+ return m_disposition;
+ }
+
+ auto participant::set_disposition(disposition value) -> void
+ {
+ m_disposition = value;
+ }
+
auto participant::get_name() const -> Glib::ustring
{
return m_name;
@@ -45,6 +56,16 @@ namespace turns::domain
m_priority = value;
}
+ auto participant::property_disposition() -> Glib::PropertyProxy<disposition>
+ {
+ return m_disposition.get_proxy();
+ }
+
+ auto participant::property_disposition() const -> Glib::PropertyProxy_ReadOnly<disposition>
+ {
+ return m_disposition.get_proxy();
+ }
+
auto participant::property_name() -> Glib::PropertyProxy<Glib::ustring>
{
return m_name.get_proxy();
diff --git a/domain/src/turn_order.cpp b/domain/src/turn_order.cpp
index eddd468..4f1ed3b 100644
--- a/domain/src/turn_order.cpp
+++ b/domain/src/turn_order.cpp
@@ -42,9 +42,9 @@ namespace turns::domain
}
}
- auto turn_order::append(Glib::ustring const & name, float priority) -> void
+ auto turn_order::append(Glib::ustring const & name, float priority, disposition disposition) -> void
{
- auto participant = participant::create(name, priority);
+ auto participant = participant::create(name, priority, disposition);
participant->property_priority().signal_changed().connect([this] { sort(comparator); });
append(participant);
}