Horizon
Loading...
Searching...
No Matches
pool_download_window.hpp
1#pragma once
2#include <gtkmm.h>
3#include <git2.h>
4#include "util/status_dispatcher.hpp"
5
6namespace horizon {
7
8class PoolDownloadWindow : public Gtk::Window {
9public:
10 PoolDownloadWindow(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, const class PoolIndex *idx);
11 static PoolDownloadWindow *create(const class PoolIndex *idx);
12
13 typedef sigc::signal<void, std::string> type_signal_downloaded;
14 type_signal_downloaded signal_downloaded()
15 {
16 return s_signal_downloaded;
17 }
18
19private:
20 static int git_transfer_cb(const git_transfer_progress *stats, void *payload);
21 static void git_checkout_progress_cb(const char *path, size_t completed_steps, size_t total_steps, void *payload);
22 bool downloading = false;
23 bool download_cancel = false;
24
25 void handle_do_download();
26 void handle_cancel();
27
28 void download_thread(std::string gh_username, std::string gh_repo, std::string dest_dir);
29
30 Gtk::Button *download_button = nullptr;
31 Gtk::Button *cancel_button = nullptr;
32
33 StatusDispatcher download_status_dispatcher;
34
35 Gtk::Revealer *download_revealer = nullptr;
36 Gtk::Label *download_label = nullptr;
37 Gtk::Spinner *download_spinner = nullptr;
38 Gtk::ProgressBar *download_progress = nullptr;
39
40 Gtk::Entry *download_gh_username_entry = nullptr;
41 Gtk::Entry *download_gh_repo_entry = nullptr;
42 Gtk::Entry *download_dest_dir_entry = nullptr;
43 Gtk::Button *download_dest_dir_button = nullptr;
44
45 type_signal_downloaded s_signal_downloaded;
46};
47} // namespace horizon
Definition pool_download_window.hpp:8
Definition pool_index.hpp:9
Definition status_dispatcher.hpp:8