aboutsummaryrefslogtreecommitdiff
path: root/app/src/windows/participant_editor.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-15 00:06:06 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-15 00:06:06 +0200
commit081627fcfb9076ce243a9adde4743117bc48a767 (patch)
treec2a53a7215bf9c55f314c684002d2518533bc060 /app/src/windows/participant_editor.cpp
parentea42d061b3f9ec56eb179014c9a76053f3f4c042 (diff)
downloadturns-081627fcfb9076ce243a9adde4743117bc48a767.tar.xz
turns-081627fcfb9076ce243a9adde4743117bc48a767.zip
app/ui: turn participant creation dialog into generic edit dialog
Diffstat (limited to 'app/src/windows/participant_editor.cpp')
-rw-r--r--app/src/windows/participant_editor.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/src/windows/participant_editor.cpp b/app/src/windows/participant_editor.cpp
new file mode 100644
index 0000000..f89fc20
--- /dev/null
+++ b/app/src/windows/participant_editor.cpp
@@ -0,0 +1,45 @@
+#include "turns/app/windows/participant_editor.hpp"
+
+#include <print>
+
+#include <gtkmm/editable.h>
+#include <gtkmm/listboxrow.h>
+
+namespace turns::app::windows
+{
+
+ participant_editor::participant_editor(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder)
+ : Gtk::Widget{base}
+ , m_adw{ADW_DIALOG(gobj())}
+ , m_finish{builder->get_widget<Gtk::Button>("finish")}
+ {
+ m_disposition = ADW_COMBO_ROW(builder->get_widget<Gtk::ListBoxRow>("disposition")->gobj());
+ m_name = ADW_ENTRY_ROW(builder->get_widget<Gtk::ListBoxRow>("name")->gobj());
+ m_priority = ADW_SPIN_ROW(builder->get_widget<Gtk::ListBoxRow>("priority")->gobj());
+
+ m_finish->signal_clicked().connect(sigc::mem_fun(*this, &participant_editor::handle_finish_clicked));
+ }
+
+ auto participant_editor::present(Gtk::Widget * parent) -> void
+ {
+ adw_dialog_present(m_adw, parent->gobj());
+ }
+
+ auto participant_editor::set_title(Glib::ustring const & value) -> void
+ {
+ adw_dialog_set_title(m_adw, value.c_str());
+ }
+
+ auto participant_editor::signal_finished() -> signal_finished_type
+ {
+ return m_signal_finished;
+ }
+
+ auto participant_editor::handle_finish_clicked() -> void
+ {
+ auto name = gtk_editable_get_text(GTK_EDITABLE(m_name));
+ auto priority = adw_spin_row_get_value(m_priority);
+ m_signal_finished.emit(name, priority);
+ adw_dialog_close(m_adw);
+ }
+} // namespace turns::app::windows \ No newline at end of file