FinishBox

1. Overview

The FinishBox module presents the final page of the setup wizard.

Its principal responsibilities are:

  • Summarizes the selected snapshot backend and scheduling state
  • Shows optional operational notes
  • Confirms that initial configuration is complete

2. Class Structure and Dependencies

public class FinishBox : Gtk.Box

The source imports:

  • Gtk
  • Gee
  • TeeJee.Logging
  • TeeJee.FileSystem
  • TeeJee.JsonHelper
  • TeeJee.ProcessHelper
  • TeeJee.GtkHelper
  • TeeJee.System
  • TeeJee.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 heading
  • Gtk.Label lbl_message – descriptive page or result message
  • Gtk.Window parent_window – parent GTK window used for transient dialogs
  • bool show_notes – whether optional completion notes are displayed

4. User Interface Composition

The module primarily configures or hosts widgets created by reusable child components.


5. Initialization

FinishBox()

public FinishBox(Gtk.Window _parent_window, bool _show_notes)

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_mode
  • App.scheduled

7. Method Reference

refresh()

public void refresh()

Reloads current application state and updates the visible controls. It reads or updates central state through App.btrfs_mode, App.scheduled.


8. External Resources and Paths

The component does not directly define protected filesystem paths or external command strings.


9. Data and Event Flow

  1. Construct the component and initialize its child controls
  2. Load the current model state into the interface
  3. 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 App controller used by the surrounding workflow.

11. Implementation Considerations

  • Global coupling: the class depends on the process-wide App object 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.