2 #include "common/common.hpp"
3 #include "rules/rules.hpp"
4 #include "rules/cache.hpp"
5 #include "util/uuid.hpp"
6 #include "util/changeable.hpp"
7 #include "util/window_state_store.hpp"
17 typedef sigc::signal<void, Coordi, UUID> type_signal_goto;
18 type_signal_goto signal_goto()
23 typedef sigc::signal<void> type_signal_canvas_update;
24 type_signal_canvas_update signal_canvas_update()
26 return s_signal_canvas_update;
32 void set_enabled(
bool enable);
35 Gtk::ListBox *lb_rules =
nullptr;
36 Gtk::ListBox *lb_multi =
nullptr;
37 Gtk::Revealer *rev_multi =
nullptr;
38 Gtk::Button *button_rule_instance_add =
nullptr;
39 Gtk::Button *button_rule_instance_remove =
nullptr;
40 Gtk::Button *button_rule_instance_move_up =
nullptr;
41 Gtk::Button *button_rule_instance_move_down =
nullptr;
42 Gtk::Box *rule_editor_box =
nullptr;
43 Gtk::Button *run_button =
nullptr;
44 Gtk::Button *apply_button =
nullptr;
45 Gtk::Stack *stack =
nullptr;
46 Gtk::StackSwitcher *stack_switcher =
nullptr;
47 Gtk::Revealer *rev_warn =
nullptr;
48 Glib::RefPtr<Gtk::SizeGroup> sg_order;
50 void rule_selected(RuleID
id);
51 void rule_instance_selected(RuleID
id,
const UUID &uu);
52 void update_rule_instances(RuleID
id);
53 void update_rule_instance_labels();
54 void update_rules_enabled();
55 void update_warning();
63 class Block *get_block();
64 type_signal_goto s_signal_goto;
65 type_signal_canvas_update s_signal_canvas_update;
66 RuleID rule_current = RuleID::NONE;
72 class TreeColumns :
public Gtk::TreeModelColumnRecord {
76 Gtk::TreeModelColumnRecord::add(name);
77 Gtk::TreeModelColumnRecord::add(result);
78 Gtk::TreeModelColumnRecord::add(has_location);
79 Gtk::TreeModelColumnRecord::add(location);
80 Gtk::TreeModelColumnRecord::add(sheet);
81 Gtk::TreeModelColumnRecord::add(running);
82 Gtk::TreeModelColumnRecord::add(status);
83 Gtk::TreeModelColumnRecord::add(pulse);
85 Gtk::TreeModelColumn<Glib::ustring> name;
86 Gtk::TreeModelColumn<RulesCheckErrorLevel> result;
87 Gtk::TreeModelColumn<bool> has_location;
88 Gtk::TreeModelColumn<Coordi> location;
89 Gtk::TreeModelColumn<UUID> sheet;
90 Gtk::TreeModelColumn<bool> running;
91 Gtk::TreeModelColumn<std::string> status;
92 Gtk::TreeModelColumn<int> pulse;
94 TreeColumns tree_columns;
96 Glib::RefPtr<Gtk::TreeStore> check_result_store;
97 Gtk::TreeView *check_result_treeview =
nullptr;
99 Glib::Dispatcher dispatcher;
103 RuleRunInfo(Gtk::TreeModel::Row &r) : row(r)
108 Gtk::TreeModel::Row row;
111 std::map<RuleID, RuleRunInfo> run_store;
112 std::mutex run_store_mutex;
114 std::unique_ptr<RulesCheckCache> cache;
116 void check_thread(RuleID
id);
117 sigc::connection pulse_connection;