button, w8 = wait_message($main_window, utf8(_("Please wait while scanning source directory...")))
backend = Thread.new {
cmd = "booh --source #{srcdir} --destination #{destdir} --config-skel #{configskel} --for-gui --verbose-level #{$verbose_level}"
+ if $config['mproc']
+ cmd += " --mproc #{$config['mproc'].to_i}"
+ end
msg 2, cmd
system(cmd)
w8.destroy
fc.destroy
end
+def preferences
+ w = Gtk::Window.new
+ w.set_transient_for($main_window)
+ w.add(vb = Gtk::VBox.new)
+
+ vb.add(tbl = Gtk::Table.new(0, 0, false))
+ tbl.attach(smp_check = Gtk::CheckButton.new(utf8(_("Use symmetric multi-processing"))),
+ 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 2, 2)
+ tbl.attach(smp_hbox = Gtk::HBox.new.add(smp_spin = Gtk::SpinButton.new(2, 16, 1)).add(Gtk::Label.new(utf8(_("processors")))).set_sensitive(false),
+ 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 2, 2)
+ smp_check.signal_connect('toggled') {
+ if smp_check.active?
+ smp_hbox.sensitive = true
+ else
+ smp_hbox.sensitive = false
+ end
+ }
+ if $config['mproc']
+ smp_check.active = true
+ smp_spin.value = $config['mproc'].to_i
+ end
+
+ vb.add(Gtk::HSeparator.new)
+ vb.add(bottom = Gtk::HButtonBox.new)
+
+ bottom.add(cancel = Gtk::Button.new(Gtk::Stock::CANCEL))
+ bottom.add(ok = Gtk::Button.new(Gtk::Stock::OK))
+
+ ok.signal_connect('clicked') {
+ if smp_check.active?
+ $config['mproc'] = smp_spin.value.to_i
+ else
+ $config.delete('mproc')
+ end
+ w.destroy
+ }
+ cancel.signal_connect_after('clicked') { w.destroy }
+ w.signal_connect('delete-event') { w.destroy }
+ w.show_all
+end
+
def create_menu_and_toolbar
#- menu
editmenu.set_submenu(editsubmenu)
mb.append(editmenu)
+ prefs.signal_connect('activate') { preferences }
+
helpmenu = Gtk::MenuItem.new(utf8(_("_Help")))
helpsubmenu = Gtk::Menu.new
helpsubmenu.append(about = Gtk::ImageMenuItem.new(Gtk::Stock::ABOUT))