aboutsummaryrefslogtreecommitdiff
path: root/app/src/windows/participant_editor.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-24 13:23:55 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-24 13:23:55 +0200
commit4d0a7d99ebf55ad2d0e583759699b8b4d77a7907 (patch)
tree302a2661c5ae099129db40c75cbadf6b5e8c9bd4 /app/src/windows/participant_editor.cpp
parentf3317ddcaa8af0fb7b4be475dc97ef0649d1975b (diff)
downloadturns-4d0a7d99ebf55ad2d0e583759699b8b4d77a7907.tar.xz
turns-4d0a7d99ebf55ad2d0e583759699b8b4d77a7907.zip
app: move ui code to ui library
Diffstat (limited to 'app/src/windows/participant_editor.cpp')
-rw-r--r--app/src/windows/participant_editor.cpp91
1 files changed, 0 insertions, 91 deletions
diff --git a/app/src/windows/participant_editor.cpp b/app/src/windows/participant_editor.cpp
deleted file mode 100644
index 1c8d05c..0000000
--- a/app/src/windows/participant_editor.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "turns/app/windows/participant_editor.hpp"
-
-#include "turns/core/disposition.hpp"
-#include "turns/core/participant.hpp"
-#include "turns/lang/messages.hpp"
-
-#include <glibmm/i18n.h>
-
-#include <gtkmm/editable.h>
-#include <gtkmm/label.h>
-#include <gtkmm/listboxrow.h>
-#include <gtkmm/stringobject.h>
-
-#include <ranges>
-
-namespace turns::app::windows
-{
-
- participant_editor::participant_editor(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder, Glib::RefPtr<core::participant> obj)
- : Gtk::Widget{base}
- , m_adw{ADW_DIALOG(gobj())}
- , m_disposition{ADW_COMBO_ROW(builder->get_widget<Gtk::ListBoxRow>("disposition")->gobj())}
- , m_finish{builder->get_widget<Gtk::Button>("finish")}
- , 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_disposition_factory{Gtk::SignalListItemFactory::create()}
- , m_disposition_model{Gtk::StringList::create()}
- , m_participant{obj}
-
- {
- adw_dialog_set_title(m_adw, _(obj ? lang::edit_participant : lang::add_participant));
- m_finish->signal_clicked().connect(sigc::mem_fun(*this, &participant_editor::handle_finish_clicked));
-
- for (auto n : std::views::iota(std::uint8_t{}, static_cast<std::uint8_t>(core::disposition::END)))
- {
- m_disposition_model->append(presentation_name_for(core::disposition{n}));
- }
-
- m_disposition_factory->signal_bind().connect(sigc::mem_fun(*this, &participant_editor::handle_item_bind));
- m_disposition_factory->signal_setup().connect(sigc::mem_fun(*this, &participant_editor::handle_item_setup));
-
- adw_combo_row_set_factory(m_disposition, GTK_LIST_ITEM_FACTORY(m_disposition_factory->gobj()));
- adw_combo_row_set_model(m_disposition, G_LIST_MODEL(m_disposition_model->gobj()));
-
- if (m_participant)
- {
- gtk_editable_set_text(GTK_EDITABLE(m_name), m_participant->name().get_value().c_str());
- adw_spin_row_set_value(m_priority, m_participant->priority());
- adw_combo_row_set_selected(m_disposition, static_cast<unsigned>(m_participant->disposition().get_value()));
- }
- }
-
- auto participant_editor::present(Gtk::Widget * parent) -> void
- {
- adw_dialog_present(m_adw, parent->gobj());
- }
-
- 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);
- auto disposition = static_cast<core::disposition>(adw_combo_row_get_selected(m_disposition));
-
- if (m_participant)
- {
- m_participant->name() = name;
- m_participant->priority() = priority;
- m_participant->disposition() = disposition;
- }
-
- m_signal_finished.emit(name, priority, disposition);
- adw_dialog_close(m_adw);
- }
-
- auto participant_editor::handle_item_bind(Glib::RefPtr<Gtk::ListItem> item) -> void
- {
- auto value = std::dynamic_pointer_cast<Gtk::StringObject>(item->get_item())->get_string();
- dynamic_cast<Gtk::Label *>(item->get_child())->set_label(value);
- }
-
- auto participant_editor::handle_item_setup(Glib::RefPtr<Gtk::ListItem> item) -> void
- {
- item->set_child(*Gtk::make_managed<Gtk::Label>());
- }
-
-} // namespace turns::app::windows \ No newline at end of file