1. Overview
The RestoreFinishBox module presents the final restoration result.
Its principal responsibilities are:
- Adapts the message for RSYNC, BTRFS, cloning, and current-system restore
- Shows success or failure information
- Provides reboot-oriented guidance where required
2. Class Structure and Dependencies
public class RestoreFinishBox : Gtk.Box
The source imports:
GtkGeeTeeJee.LoggingTeeJee.FileSystemTeeJee.JsonHelperTeeJee.ProcessHelperTeeJee.GtkHelperTeeJee.SystemTeeJee.Misc
The GTK inheritance and imported modules allow the component to participate in the application event loop, share the central backup state, and construct native GTK4 controls.
3. Primary Runtime State
The principal fields declared by the module include:
Gtk.Label lbl_header– page or result headingGtk.Label lbl_message– descriptive page or result messageGtk.Window parent_window– parent GTK window used for transient dialogs
4. User Interface Composition
The module primarily configures or hosts widgets created by reusable child components.
5. Initialization
RestoreFinishBox()
public RestoreFinishBox(Gtk.Window _parent_window)
Initializes the class instance, creates its GTK controls, and prepares the initial state.
6. Central Controller Integration
The module reads or modifies the following Main controller members through the global App object:
App.btrfs_modeApp.mirror_systemApp.restore_current_system
7. Method Reference
update_message()
public void update_message(bool success, string message_header, string message_body)
Updates final-page labels according to the operation result. It reads or updates central state through App.btrfs_mode, App.mirror_system, App.restore_current_system.
8. External Resources and Paths
The component does not directly define protected filesystem paths or external command strings.
9. Data and Event Flow
- Construct the component and initialize its child controls
- Read or update central backup and restore state through the global controller
10. Runtime and Security Considerations
- Shared controller state: the component reads and modifies the global
Appcontroller used by the surrounding workflow.
11. Implementation Considerations
- Global coupling: the class depends on the process-wide
Appobject rather than receiving a controller through dependency injection.
12. Licensing
The source header contains the following copyright notices:
Copyright 2012-2018 Tony George <teejeetech@gmail.com>
The file is distributed under the GNU General Public License version 2 or later.
