Class: BackupParadise::Gtk::Backup

Inherits:
Gtk::Frame
  • Object
show all
Defined in:
lib/backup_paradise/gui/gtk2/OLD_backup.rb

Instance Method Summary collapse

Instance Method Details

#create_fdisk_scrolled_windowObject

#

create_fdisk_scrolled_window

Will create the scrolled window which holds our fdisk information.

#


25
26
27
28
29
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 25

def create_fdisk_scrolled_window
  @fdisk_result = update_fdisk
  create_text_view
  @scrolled_window = create_scrolled_window(@text_view) { :always_never }
end

#create_gtk_buttonsObject

#

create_gtk_buttons

#


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 44

def create_gtk_buttons
  # ======================================================================= #
  # === The backup-button
  # ======================================================================= #
  @button_backup = create_button('_Backup')

  @button_backup.on_clicked {
    @object_rbackup.set_dir_name() # first must set proper dir name.
    # First one backup to hdd.
    if @combo_box.active_text == ENV['FESTPLATTE1']
      eimp ' => Doing Backup to '+ENV['FESTPLATTE1']
      @object_rbackup.target_device = ENV['FESTPLATTE1']
      @object_rbackup.backup_system(:tohdd)
    else
      @object_rbackup.information_startup_tasks
      @object_rbackup.get_raw_info
      @object_rbackup.scan_for_usb_entries
      @object_rbackup.backup_system()
    end
    synchronize_data
  }
end

#create_text_viewObject

#

create_text_view

#


34
35
36
37
38
39
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 34

def create_text_view
  @text_buffer = create_text_buffer
  @text_buffer.insert_at_cursor(@fdisk_result)    
  @text_view = text_view(@text_buffer)
  @text_view.set_editable(true)
end

#init_hdd_imageObject

#

init_hdd_image

Init our hdd image. Copied from hdd_info.rb

#


72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 72

def init_hdd_image
  if @object_hdd_info.respond_to? :percentage_used
    tmp = @object_hdd_info.percentage_used.to_i
  else
    tmp = 0
  end
  _tmp_path = ''
  case tmp
  when 0..1    then _tmp_path = 'HDD_EMPTY.png'
  when 2..25   then _tmp_path = 'HDD_ONEFOURTH.png'
  when 26..50  then _tmp_path = 'HDD_HALF.png'
  when 51..75  then _tmp_path = 'HDD_THREEFOURTH.png'
  when 76..89  then _tmp_path = 'HDD_THREEEIGHT.png'
  else # else 90 oder mehr full
    _tmp_path = 'HDD_FULL.png'
  end
  @hdd_image = create_image(ENV['IMG_STD']+'/'+_tmp_path)
  @hdd_image.set_padding(3, 3)
  @event_box = create_event_box(@hdd_image)
  @event_box.signal_connect(:button_press_event) {
    e 'Starting firefox in /'
    open_in_browser('/')
  }
  return @event_box
end

#runObject



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 108

def run
  create_fdisk_scrolled_window
  # ======================================================================= #
  # Here are the different entries.
  # ======================================================================= #
  @combo_box = create_combo_box_entry
  ARRAY_PREDEFINED_DEVICES.each { |val| @combo_box.append_text(val) }

  scan_for_new_events(5)
  @main_table.attach_defaults(@button_backup,   0, 1, 0, 1)
  @main_table.attach_defaults(@combo_box,       1, 2, 0, 1)
  @main_table.attach_defaults(@button_debug,    2, 3, 0, 1)

  @main_table.attach_defaults(@button_quit,     0, 1, 1, 2)
  @main_table.attach_defaults(init_hdd_image,   1, 2, 1, 2)
  @main_table.attach_defaults(@scrolled_window, 2, 3, 1, 2)

  @main_vbox = gtk_vbox
  @main_vbox.maximal(@main_table, 0)
  mini_hbox = gtk_hbox
  @button_run_the_mount_command = gtk_button('Run → ')
  @button_run_the_mount_command.lightgreen
  @button_run_the_mount_command.fancy_tooltips = 'Clicking this '\
    'button will run <b>the command on the right hand side</b>.'
  mini_hbox.minimal(@button_run_the_mount_command, 2)
  mini_hbox.minimal(gtk_label('mount '), 2)
  @dropdown_box_holding_all_dev_entries = gtk_dropdown(
    %w(
      /dev/sda1
      /dev/sda2
      /dev/sda3
      /dev/sdb1
      /dev/sdb2
      /dev/sdb3
      /dev/sdc1
      /dev/sdc2
      /dev/sdc3
    )
  )
  @dropdown_box_holding_all_dev_entries.active = 2
  mini_hbox.minimal(@dropdown_box_holding_all_dev_entries, 0)
  mini_hbox.minimal(gtk_label(' onto '), 2)
  dropdown_box_holding_the_mount_targets = gtk_dropdown(ARRAY_PREDEFINED_DEVICES)
  dropdown_box_holding_the_mount_targets.active = 0
  mini_hbox.minimal(dropdown_box_holding_the_mount_targets, 2)
  @button_run_the_mount_command.on_clicked {
    cmd = 'mount '+
          @dropdown_box_holding_all_dev_entries.active_text.to_s+
          ' '+
          dropdown_box_holding_the_mount_targets.active_text.to_s
    e
    esystem cmd
    e
  }
  @main_vbox.minimal(mini_hbox, 0)
end

#scan_for_new_events(n_seconds = 5) ⇒ Object

#

scan_for_new_events

#


10
11
12
13
14
15
16
17
18
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 10

def scan_for_new_events(
    n_seconds = 5
  )
  Thread.new {
    e 'Scanning for new events ...'
    synchronize_data
    sleep n_seconds
  }
end

#synchronize_dataObject

#

synchronize_data

Every button must invoke this method after doing its default task. Currently only updates the variable @fdisk_result

#


104
105
106
# File 'lib/backup_paradise/gui/gtk2/OLD_backup.rb', line 104

def synchronize_data
  @fdisk_result = update_fdisk
end