Skip to content
API Documentation
BastionGuard™
DeleteWindow Class Reference
Inheritance diagram for DeleteWindow:

Public Types

enum  Tabs { SNAPSHOT_LIST = 0 , DELETE = 1 , DELETE_FINISH = 2 }

Public Member Functions

signal void request_close ()
 DeleteWindow (bool embedded=false)
Gtk.Widget detach_root_widget ()
void reload_themed_icons ()

Private Member Functions

bool init_delayed ()
bool on_close_request ()
void create_actions ()
void action_buttons_set_initial_visibility (bool visible)
void go_first ()
void go_prev ()
void go_next ()
void initialize_tab ()
bool validate_current_tab ()
void set_page (int page)
Gtk.Image themed_icon (string icon_name, int size)

Private Attributes

Gtk.Box vbox_main
Gtk.Stack page_stack
int current_page = -1
Gtk.Box bbox_action
SnapshotListBox snapshot_list_box
DeleteBox delete_box
DeleteFinishBox delete_finish_box
Gtk.Button btn_prev
Gtk.Button btn_next
Gtk.Button btn_hide
Gtk.Button btn_cancel
Gtk.Button btn_close
uint tmr_init
int def_width = 500
int def_height = 500
bool success = false
bool embedded_mode = false
Gee.ArrayList< Gtk.Image > themed_img_list = new Gee.ArrayList<Gtk.Image>()
Gee.ArrayList< string > themed_img_name = new Gee.ArrayList<string>()
Gee.ArrayList< int > themed_img_size = new Gee.ArrayList<int>()

Detailed Description

Definition at line 35 of file DeleteWindow.vala.

Member Enumeration Documentation

◆ Tabs

Enumerator
SNAPSHOT_LIST 
DELETE 
DELETE_FINISH 

Definition at line 398 of file DeleteWindow.vala.

398 {
399 SNAPSHOT_LIST = 0,
400 DELETE = 1,
401 DELETE_FINISH = 2
402 }

Constructor & Destructor Documentation

◆ DeleteWindow()

DeleteWindow.DeleteWindow ( bool embedded = false)
inline

Definition at line 62 of file DeleteWindow.vala.

62 {
63 embedded_mode = embedded;
64
65 log_debug("DeleteWindow: DeleteWindow()");
66
67 this.title = _("Delete Snapshots");
68 if (!embedded_mode) this.modal = true;
69 this.set_default_size (def_width, def_height);
70 this.set_icon_name("bastionguard-backup");
71
72 if (!embedded_mode) this.close_request.connect(on_close_request);
73
74 this.set_default_size(def_width, def_height);
75
76 // vbox_main
77 vbox_main = new Gtk.Box(Orientation.VERTICAL, 6);
78 vbox_main.margin_start = 0;
79 vbox_main.margin_end = 0;
80 vbox_main.margin_top = 0;
81 vbox_main.margin_bottom = 0;
82 set_child(vbox_main);
83
84 page_stack = new Gtk.Stack();
85 page_stack.hexpand = true;
86 page_stack.vexpand = true;
87 vbox_main.append(page_stack);
88
89 // create tab
90
91 var vbox_tab = new Gtk.Box(Orientation.VERTICAL, 6);
92 vbox_tab.margin_start = 12;
93 vbox_tab.margin_end = 12;
94 vbox_tab.margin_top = 12;
95 vbox_tab.margin_bottom = 12;
96
97 add_label_header(vbox_tab, _("Select Snapshots"), true);
98
99 add_label(vbox_tab, _("Select the snapshots to be deleted"));
100
101 var label = new Gtk.Label(_("Snapshots"));
102
105 snapshot_list_box.margin_start = 0;
106 snapshot_list_box.margin_end = 0;
107 snapshot_list_box.margin_top = 0;
108 snapshot_list_box.margin_bottom = 0;
109 vbox_tab.append(snapshot_list_box);
110
111 page_stack.add_named(vbox_tab, "select");
112
113 label = new Gtk.Label(_("Delete"));
114 delete_box = new DeleteBox(this);
115 delete_box.margin_start = 12;
116 delete_box.margin_end = 12;
117 delete_box.margin_top = 12;
118 delete_box.margin_bottom = 12;
119 page_stack.add_named(delete_box, "delete");
120
121 label = new Gtk.Label(_("Finish"));
123 delete_finish_box.margin_start = 12;
124 delete_finish_box.margin_end = 12;
125 delete_finish_box.margin_top = 12;
126 delete_finish_box.margin_bottom = 12;
127 page_stack.add_named(delete_finish_box, "finish");
128
130
131 if (!embedded_mode)
132 show();
133
134 //go_first();
135
136 tmr_init = Timeout.add(100, init_delayed);
137
138 log_debug("DeleteWindow: DeleteWindow(): exit");
139 }
#define _(s)
DeleteBox(Gtk.Window _parent_window)
DeleteFinishBox(Gtk.Window _parent_window)
Gtk.Box vbox_main
SnapshotListBox snapshot_list_box
DeleteFinishBox delete_finish_box
bool on_close_request()
DeleteBox delete_box
Gtk.Stack page_stack
void create_actions()
SnapshotListBox(Gtk.Window _parent_window)
Gtk.Label add_label(Gtk.Box box, string text, bool bold=false, bool italic=false, bool large=false)
void log_debug(string message)

References _, TeeJee.GtkHelper.add_label(), create_actions(), def_height, def_width, delete_box, delete_finish_box, DeleteBox.DeleteBox(), DeleteFinishBox.DeleteFinishBox(), embedded_mode, SnapshotListBox.hide_context_menu(), init_delayed(), TeeJee.Logging.log_debug(), on_close_request(), page_stack, snapshot_list_box, SnapshotListBox.SnapshotListBox(), tmr_init, and vbox_main.

Referenced by MainWindow.open_delete_flow().

Member Function Documentation

◆ action_buttons_set_initial_visibility()

void DeleteWindow.action_buttons_set_initial_visibility ( bool visible)
inlineprivate

Definition at line 246 of file DeleteWindow.vala.

246 {
247
248 btn_prev.visible = visible;
249 btn_next.visible = visible;
250 btn_hide.visible = visible;
251 btn_close.visible = visible;
252 btn_cancel.visible = visible;
253 }

Referenced by create_actions(), and initialize_tab().

◆ create_actions()

void DeleteWindow.create_actions ( )
inlineprivate

Definition at line 158 of file DeleteWindow.vala.

158 {
159
160 var hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 6);
161 vbox_main.append(hbox);
162
163 var bbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 8);
164 bbox.margin_start = 12;
165 bbox.margin_end = 12;
166 bbox.margin_top = 12;
167 bbox.margin_bottom = 12;
168 bbox.spacing = 6;
169 bbox.hexpand = true;
170 hbox.append(bbox);
171
172 bbox_action = bbox;
173
174 #if GTK3_18
175 bbox.halign = Gtk.Align.CENTER;
176 #endif
177
178 Gtk.SizeGroup size_group = null; //new Gtk.SizeGroup(SizeGroupMode.HORIZONTAL);
179
180 // previous
181
182 btn_prev = add_button(bbox, _("Previous"), "", size_group, null);
183 btn_prev.get_style_context().add_class("btn-back");
184
185 btn_prev.clicked.connect(()=>{
186 go_prev();
187 });
188
189 // next
190
191 btn_next = add_button(bbox, _("Next"), "", size_group, null);
192 btn_next.get_style_context().add_class("btn-next");
193
194 btn_next.clicked.connect(()=>{
195 go_next();
196 });
197
198 // close
199
200 btn_close = add_button(bbox, _("Close"), "", size_group, null);
201 btn_close.get_style_context().add_class("btn-finish");
202
203 btn_close.clicked.connect(()=>{
204 if (embedded_mode)
206 else
207 this.destroy();
208 });
209
210 // hide
211
212 btn_hide = add_button(bbox, _("Hide"), "", size_group, null);
213 btn_hide.set_tooltip_text(_("Hide this window (files will be deleted in background)"));
214
215 btn_hide.clicked.connect(()=>{
216 if (embedded_mode)
218 else
219 this.destroy();
220 });
221
222 // cancel
223
224 btn_cancel = add_button(bbox, _("Cancel"), "", size_group, null);
225 btn_cancel.get_style_context().add_class("btn-cancel");
226
227 btn_cancel.clicked.connect(()=>{
228 // clear queue
229 App.delete_list.clear();
230 // kill current task
231 if (App.delete_file_task != null){
233 }
234
235 if (embedded_mode)
237 else
238 this.destroy(); // TODO: Show error page
239 });
240
241 btn_prev.hexpand = btn_next.hexpand = btn_cancel.hexpand = btn_close.hexpand = btn_hide.hexpand = true;
242
244 }
Main App
AppStatus
void stop(AppStatus status_to_update=AppStatus.CANCELLED)
Gtk.Button btn_hide
Gtk.Button btn_cancel
Gtk.Box bbox_action
signal void request_close()
Gtk.Button btn_close
void action_buttons_set_initial_visibility(bool visible)
Gtk.Button btn_next
Gtk.Button btn_prev
Gee.ArrayList< Snapshot > delete_list
Definition Main.vala:133
DeleteFileTask delete_file_task
Definition Main.vala:161

References _, action_buttons_set_initial_visibility(), App, bbox_action, btn_cancel, btn_close, btn_hide, btn_next, btn_prev, Main.delete_file_task, Main.delete_list, embedded_mode, go_next(), go_prev(), request_close(), AsyncTask.stop(), and vbox_main.

Referenced by DeleteWindow().

◆ detach_root_widget()

Gtk.Widget DeleteWindow.detach_root_widget ( )
inline

Definition at line 404 of file DeleteWindow.vala.

404 {
405 set_child(null);
406 return vbox_main;
407 }

References vbox_main.

◆ go_first()

void DeleteWindow.go_first ( )
inlineprivate

Definition at line 257 of file DeleteWindow.vala.

257 {
258
259 // set initial tab
260
261 if ((App.delete_list.size == 0) && !App.thread_delete_running){
262 set_page(Tabs.SNAPSHOT_LIST);
263 }
264 else {
265 set_page(Tabs.DELETE);
266 }
267
269 }
void set_page(int page)
void initialize_tab()
bool thread_delete_running
Definition Main.vala:108

References App, Main.delete_list, initialize_tab(), set_page(), and Main.thread_delete_running.

Referenced by init_delayed().

◆ go_next()

void DeleteWindow.go_next ( )
inlineprivate

Definition at line 283 of file DeleteWindow.vala.

283 {
284 if (!validate_current_tab()){
285 return;
286 }
287
288 switch(current_page){
289 case Tabs.SNAPSHOT_LIST:
290 App.delete_list = snapshot_list_box.selected_snapshots();
291 set_page(Tabs.DELETE);
292 break;
293
294 case Tabs.DELETE:
295 set_page(Tabs.DELETE_FINISH);
296 break;
297
298 case Tabs.DELETE_FINISH:
299 if (embedded_mode)
301 else
302 destroy();
303 break;
304 }
305
307 }
bool validate_current_tab()
Gee.ArrayList< Snapshot > selected_snapshots()

References current_page, embedded_mode, initialize_tab(), request_close(), SnapshotListBox.selected_snapshots(), set_page(), snapshot_list_box, and validate_current_tab().

Referenced by create_actions(), and initialize_tab().

◆ go_prev()

void DeleteWindow.go_prev ( )
inlineprivate

Definition at line 271 of file DeleteWindow.vala.

271 {
272 switch(current_page){
273 case Tabs.SNAPSHOT_LIST:
274 case Tabs.DELETE:
275 break;
276 case Tabs.DELETE_FINISH:
277 break;
278 }
279
281 }

References current_page, and initialize_tab().

Referenced by create_actions().

◆ init_delayed()

bool DeleteWindow.init_delayed ( )
inlineprivate

Definition at line 141 of file DeleteWindow.vala.

141 {
142
143 if (tmr_init > 0){
144 Source.remove(tmr_init);
145 tmr_init = 0;
146 }
147
148 go_first();
149
150 return false;
151 }

References go_first(), and tmr_init.

Referenced by DeleteWindow().

◆ initialize_tab()

void DeleteWindow.initialize_tab ( )
inlineprivate

Definition at line 309 of file DeleteWindow.vala.

309 {
310
311 if (current_page < 0){
312 return;
313 }
314
315 log_msg("");
316 log_debug("page: %d".printf(current_page));
317
319
320 switch(current_page){
321 case Tabs.DELETE:
322 btn_prev.hide();
323 btn_next.hide();
324 btn_close.hide();
325 btn_hide.show();
326 btn_cancel.show();
327 break;
328
329 case Tabs.SNAPSHOT_LIST:
330 btn_prev.show();
331 btn_next.show();
332 btn_close.show();
333 btn_hide.hide();
334 btn_cancel.hide();
335 btn_prev.sensitive = false;
336 btn_next.sensitive = true;
337 btn_close.sensitive = true;
338 break;
339
340 case Tabs.DELETE_FINISH:
341 btn_prev.hide();
342 btn_next.hide();
343 btn_close.show();
344 btn_hide.hide();
345 btn_cancel.hide();
346 break;
347 }
348
349 switch(current_page){
350 case Tabs.SNAPSHOT_LIST:
352 break;
353 case Tabs.DELETE:
355 go_next();
356 break;
357 case Tabs.DELETE_FINISH:
359 wait_and_close_window(1000, this);
360 break;
361 }
362 }
bool delete_snapshots()
void update_message(bool success)
void wait_and_close_window(int milliseconds, Gtk.Window window)
void log_msg(string message, bool highlight=false)

References action_buttons_set_initial_visibility(), btn_cancel, btn_close, btn_hide, btn_next, btn_prev, current_page, delete_box, delete_finish_box, DeleteBox.delete_snapshots(), go_next(), TeeJee.Logging.log_debug(), TeeJee.Logging.log_msg(), SnapshotListBox.refresh(), snapshot_list_box, success, DeleteFinishBox.update_message(), and TeeJee.GtkHelper.wait_and_close_window().

Referenced by go_first(), go_next(), and go_prev().

◆ on_close_request()

bool DeleteWindow.on_close_request ( )
inlineprivate

Definition at line 153 of file DeleteWindow.vala.

153 {
154
155 return false; // close window
156 }

Referenced by DeleteWindow().

◆ reload_themed_icons()

void DeleteWindow.reload_themed_icons ( )
inline

Definition at line 422 of file DeleteWindow.vala.

422 {
423 for (int i = 0; i < themed_img_list.size; i++) {
424 var img = themed_img_list[i];
425 var name = themed_img_name[i];
426 var sz = themed_img_size[i];
427 var pix = IconManager.lookup(name, sz);
428 if (pix != null) {
429 img.set_from_pixbuf(pix);
430 } else {
431 img.set_from_icon_name(name);
432 }
433 }
434 }
Gee.ArrayList< int > themed_img_size
Gee.ArrayList< string > themed_img_name
Gee.ArrayList< Gtk.Image > themed_img_list

References IconManager.lookup(), themed_img_list, themed_img_name, and themed_img_size.

◆ request_close()

signal void DeleteWindow.request_close ( )

Referenced by create_actions(), and go_next().

◆ set_page()

void DeleteWindow.set_page ( int page)
inlineprivate

Definition at line 383 of file DeleteWindow.vala.

383 {
384 current_page = page;
385 switch (page) {
386 case Tabs.SNAPSHOT_LIST:
387 page_stack.set_visible_child_name("select");
388 break;
389 case Tabs.DELETE:
390 page_stack.set_visible_child_name("delete");
391 break;
392 case Tabs.DELETE_FINISH:
393 page_stack.set_visible_child_name("finish");
394 break;
395 }
396 }

References current_page, and page_stack.

Referenced by go_first(), and go_next().

◆ themed_icon()

Gtk.Image DeleteWindow.themed_icon ( string icon_name,
int size )
inlineprivate

Definition at line 414 of file DeleteWindow.vala.

414 {
415 var img = IconManager.lookup_image(icon_name, size);
416 themed_img_list.add(img);
417 themed_img_name.add(icon_name);
418 themed_img_size.add(size);
419 return img;
420 }

References IconManager.lookup_image(), themed_img_list, themed_img_name, and themed_img_size.

◆ validate_current_tab()

bool DeleteWindow.validate_current_tab ( )
inlineprivate

Definition at line 364 of file DeleteWindow.vala.

364 {
365 switch(current_page){
366 case Tabs.SNAPSHOT_LIST:
367 if (snapshot_list_box.selected_snapshots().size == 0){
368 gtk_messagebox(
369 _("No Snapshots Selected"),
370 _("Select snapshots to delete"),
371 this, false);
372 return false;
373 }
374 else{
375 return true;
376 }
377
378 default:
379 return true;
380 }
381 }

References _, current_page, SnapshotListBox.selected_snapshots(), and snapshot_list_box.

Referenced by go_next().

Member Data Documentation

◆ bbox_action

Gtk.Box DeleteWindow.bbox_action
private

Definition at line 42 of file DeleteWindow.vala.

Referenced by create_actions().

◆ btn_cancel

Gtk.Button DeleteWindow.btn_cancel
private

Definition at line 53 of file DeleteWindow.vala.

Referenced by create_actions(), and initialize_tab().

◆ btn_close

Gtk.Button DeleteWindow.btn_close
private

Definition at line 54 of file DeleteWindow.vala.

Referenced by create_actions(), and initialize_tab().

◆ btn_hide

Gtk.Button DeleteWindow.btn_hide
private

Definition at line 52 of file DeleteWindow.vala.

Referenced by create_actions(), and initialize_tab().

◆ btn_next

Gtk.Button DeleteWindow.btn_next
private

Definition at line 51 of file DeleteWindow.vala.

Referenced by create_actions(), and initialize_tab().

◆ btn_prev

Gtk.Button DeleteWindow.btn_prev
private

Definition at line 50 of file DeleteWindow.vala.

Referenced by create_actions(), and initialize_tab().

◆ current_page

int DeleteWindow.current_page = -1
private

Definition at line 41 of file DeleteWindow.vala.

Referenced by go_next(), go_prev(), initialize_tab(), set_page(), and validate_current_tab().

◆ def_height

int DeleteWindow.def_height = 500
private

Definition at line 58 of file DeleteWindow.vala.

Referenced by DeleteWindow().

◆ def_width

int DeleteWindow.def_width = 500
private

Definition at line 57 of file DeleteWindow.vala.

Referenced by DeleteWindow().

◆ delete_box

DeleteBox DeleteWindow.delete_box
private

Definition at line 46 of file DeleteWindow.vala.

Referenced by DeleteWindow(), and initialize_tab().

◆ delete_finish_box

DeleteFinishBox DeleteWindow.delete_finish_box
private

Definition at line 47 of file DeleteWindow.vala.

Referenced by DeleteWindow(), and initialize_tab().

◆ embedded_mode

bool DeleteWindow.embedded_mode = false
private

Definition at line 60 of file DeleteWindow.vala.

Referenced by create_actions(), DeleteWindow(), and go_next().

◆ page_stack

Gtk.Stack DeleteWindow.page_stack
private

Definition at line 40 of file DeleteWindow.vala.

Referenced by DeleteWindow(), and set_page().

◆ snapshot_list_box

SnapshotListBox DeleteWindow.snapshot_list_box
private

Definition at line 45 of file DeleteWindow.vala.

Referenced by DeleteWindow(), go_next(), initialize_tab(), and validate_current_tab().

◆ success

bool DeleteWindow.success = false
private

Definition at line 59 of file DeleteWindow.vala.

Referenced by initialize_tab().

◆ themed_img_list

Gee.ArrayList<Gtk.Image> DeleteWindow.themed_img_list = new Gee.ArrayList<Gtk.Image>()
private

Definition at line 410 of file DeleteWindow.vala.

Referenced by reload_themed_icons(), and themed_icon().

◆ themed_img_name

Gee.ArrayList<string> DeleteWindow.themed_img_name = new Gee.ArrayList<string>()
private

Definition at line 411 of file DeleteWindow.vala.

Referenced by reload_themed_icons(), and themed_icon().

◆ themed_img_size

Gee.ArrayList<int> DeleteWindow.themed_img_size = new Gee.ArrayList<int>()
private

Definition at line 412 of file DeleteWindow.vala.

Referenced by reload_themed_icons(), and themed_icon().

◆ tmr_init

uint DeleteWindow.tmr_init
private

Definition at line 56 of file DeleteWindow.vala.

Referenced by DeleteWindow(), and init_delayed().

◆ vbox_main

Gtk.Box DeleteWindow.vbox_main
private

Definition at line 39 of file DeleteWindow.vala.

Referenced by create_actions(), DeleteWindow(), and detach_root_widget().


The documentation for this class was generated from the following file: