16class PoolProjectManagerApplication :
public Gtk::Application {
18 PoolProjectManagerApplication();
21 static Glib::RefPtr<PoolProjectManagerApplication> create();
22 const std::string &get_ep_broadcast()
const;
23 void send_json(
int pid,
const json &j);
27 void add_recent_item(
const std::string &path);
30 friend PoolProjectManagerApplication;
31 UserConfig() =
default;
32 void load(
const std::string &filename);
33 void save(
const std::string &filename);
36 std::map<std::string, Glib::DateTime> recent_items;
37 std::deque<UUID> part_favorites;
38 bool pool_doc_info_bar_dismissed =
false;
39 std::string project_author;
40 std::string project_base_path;
46 void close_appwindows(std::set<Gtk::Window *> wins);
50 const std::string &token =
"");
52 class PreferencesWindow *show_preferences_window(guint32 timestamp = 0,
const std::string &token =
"");
53 class PoolsWindow *show_pools_window(guint32 timestamp = 0,
const std::string &token =
"");
54 class LogWindow *show_log_window(guint32 timestamp = 0,
const std::string &token =
"");
56 typedef sigc::signal<void, std::vector<std::string>> type_signal_pool_items_edited;
57 type_signal_pool_items_edited signal_pool_items_edited()
59 return s_signal_pool_items_edited;
62 typedef sigc::signal<void, std::string> type_signal_pool_updated;
63 type_signal_pool_updated signal_pool_updated()
65 return s_signal_pool_updated;
68 typedef sigc::signal<void> type_signal_recent_items_changed;
69 type_signal_recent_items_changed signal_recent_items_changed()
71 return s_signal_recent_items_changed;
78 bool close_windows(std::vector<CloseOrHomeWindow> windows);
80 bool present_existing_window(
const std::string &path);
84 void on_activate()
override;
85 void on_startup()
override;
87 void on_open(
const Gio::Application::type_vec_files &files,
const Glib::ustring &hint)
override;
89 std::string sock_broadcast_ep;
94 void on_hide_window(Gtk::Window *window);
95 void on_action_quit();
96 void on_action_new_window();
97 void on_action_about();
105 type_signal_pool_items_edited s_signal_pool_items_edited;
106 type_signal_pool_updated s_signal_pool_updated;
107 type_signal_recent_items_changed s_signal_recent_items_changed;
109 std::string get_config_filename();
112 const UUID ipc_cookie;
113 zmq::socket_t sock_broadcast;