fix: backup progress window + real-time rsync output
- Replace small popup with big backup progress window (750x500) - Shows rsync command in header, real-time output in monospace textview - Progress bar with percentage, Cancel/Close button - Output with color-coded tags (error=red, success=green, cmd=gray italic) - Auto-scrolls to bottom during backup - Fixed live log not updating (stdbuf -oL for unbuffered rsync output) - Fixed double closing brace compilation error - Downloaded proper backup icon
This commit is contained in:
+12
-15
@@ -28,22 +28,16 @@ private:
|
||||
void build_ui();
|
||||
void build_menu();
|
||||
void build_toolbar();
|
||||
void build_sidebar();
|
||||
void build_file_browser();
|
||||
void build_statusbar();
|
||||
|
||||
void refresh_snapshot_list();
|
||||
void load_selected_snapshot();
|
||||
void browse_path(const std::string& snapshot, const std::string& path);
|
||||
void navigate_up();
|
||||
|
||||
void on_backup_clicked();
|
||||
void on_restore_clicked();
|
||||
void on_delete_snapshot_clicked();
|
||||
void on_new_backup_clicked();
|
||||
|
||||
void show_sudo_dialog(std::function<void(const std::string&)> callback);
|
||||
void show_progress_dialog(const std::string& title);
|
||||
void open_backup_window(const std::string& description = "");
|
||||
void close_backup_window();
|
||||
void append_backup_line(const std::string& line, const char* tag = nullptr);
|
||||
|
||||
void install_cronjob();
|
||||
void remove_cronjob();
|
||||
@@ -80,22 +74,25 @@ private:
|
||||
GtkWidget* file_tree_ = nullptr;
|
||||
GtkWidget* path_entry_ = nullptr;
|
||||
GtkWidget* statusbar_ = nullptr;
|
||||
GtkWidget* progress_bar_ = nullptr;
|
||||
GtkWidget* progress_label_ = nullptr;
|
||||
GtkWidget* progress_window_ = nullptr;
|
||||
GtkWidget* nav_label_ = nullptr;
|
||||
|
||||
GtkListStore* file_store_ = nullptr;
|
||||
GtkWidget* toolbar_ = nullptr;
|
||||
GtkWidget* log_window_ = nullptr;
|
||||
GtkWidget* log_textview_ = nullptr;
|
||||
guint log_timer_ = 0;
|
||||
|
||||
GtkWidget* live_log_textview_ = nullptr;
|
||||
GtkWidget* live_log_label_ = nullptr;
|
||||
GtkWidget* backlog_textview_ = nullptr;
|
||||
GtkWidget* backlog_scrolled_ = nullptr;
|
||||
|
||||
/* Backup progress window */
|
||||
GtkWidget* backup_win_ = nullptr;
|
||||
GtkWidget* backup_cmd_label_ = nullptr;
|
||||
GtkWidget* backup_output_view_ = nullptr;
|
||||
GtkWidget* backup_progress_ = nullptr;
|
||||
GtkWidget* backup_status_label_ = nullptr;
|
||||
GtkWidget* backup_cancel_btn_ = nullptr;
|
||||
GtkWidget* backup_close_btn_ = nullptr;
|
||||
|
||||
std::string log_path_;
|
||||
|
||||
std::string current_snapshot_;
|
||||
|
||||
Reference in New Issue
Block a user