lib/alexandria/ui/preferences_dialog.rb in alexandria-book-collection-manager-0.7.5 vs lib/alexandria/ui/preferences_dialog.rb in alexandria-book-collection-manager-0.7.6
- old
+ new
@@ -11,11 +11,11 @@
require "alexandria/ui/new_provider_dialog"
module Alexandria
module UI
class PreferencesDialog < BuilderBase
- include Alexandria::Logging
+ include Logging
include GetText
GetText.bindtextdomain(Alexandria::TEXTDOMAIN, charset: "UTF-8")
def initialize(parent, &changed_block)
super("preferences_dialog__builder.glade", widget_names)
@@ -35,11 +35,11 @@
@checkbutton_col_tags => "col_tags_visible",
@checkbutton_col_loaned_to => "col_loaned_to_visible"
}
@cols.each_pair do |checkbutton, pref_name|
if checkbutton
- checkbutton.active = Preferences.instance.send(pref_name)
+ checkbutton.active = Preferences.instance.get_variable(pref_name)
else
log.warn do
"no CheckButton for property #{pref_name} " \
"(probably conflicting versions of GUI and lib code)"
end
@@ -74,41 +74,40 @@
@treeview_providers.append_column(column)
renderer = Gtk::CellRendererText.new
column = Gtk::TreeViewColumn.new("Providers",
renderer)
- # :text => 0)
column.set_cell_data_func(renderer) do |_col, rndr, _mod, iter|
rndr.markup = iter[0]
- # enabled = iter[2]
- # unless enabled
- # rndr.foreground = "gray"
- # end
- # rndr.active = value
end
@treeview_providers.append_column(column)
- @treeview_providers.selection.signal_connect("changed") \
- { sensitize_providers }
+ @treeview_providers.selection
+ .signal_connect("changed") { sensitize_providers }
@button_prov_setup.sensitive = false
- @button_prov_up.sensitive = @button_prov_down.sensitive = BookProviders.length > 1
+ @button_prov_up.sensitive =
+ @button_prov_down.sensitive = BookProviders.list.length > 1
+
@buttonbox_prov.set_child_secondary(@button_prov_add, true)
@buttonbox_prov.set_child_secondary(@button_prov_remove, true)
if BookProviders.abstract_classes.empty?
@checkbutton_prov_advanced.sensitive = false
else
view_advanced = Preferences.instance.view_advanced_settings
@checkbutton_prov_advanced.active = true if view_advanced
end
- setup_enable_disable_popup
sensitize_providers
setup_barcode_scanner_tab
end
+ def show
+ @preferences_dialog.show
+ end
+
def widget_names
[:button_prov_add, :button_prov_down, :button_prov_remove,
:button_prov_setup, :button_prov_up, :buttonbox_prov,
:checkbutton_col_authors, :checkbutton_col_edition,
:checkbutton_col_isbn, :checkbutton_col_loaned_to,
@@ -139,67 +138,10 @@
@use_scanning_sound.active = Preferences.instance.play_scanning_sound
@use_scan_sound.active = Preferences.instance.play_scan_sound
end
- def setup_enable_disable_popup
- # New Enable/Disable pop-up menu...
- @enable_disable_providers_menu = Gtk::Menu.new
- @enable_item = Gtk::MenuItem.new(label: _("Disable Provider"))
- @enable_item.signal_connect("activate") do
- prov = selected_provider
- prov.toggle_enabled
- adjust_selected_provider(prov)
- end
- @enable_disable_providers_menu.append(@enable_item)
- @enable_disable_providers_menu.show_all
-
- @treeview_providers.signal_connect("button_press_event") do |widget, event|
- if event_is_right_click(event)
- if (path = widget.get_path_at_pos(event.x, event.y))
- widget.grab_focus
- obj = widget.selection
- path = path.first
- unless obj.path_is_selected?(path)
- widget.unselect_all
- obj.select_path(path)
- end
- sel = widget.selection.selected
- if sel
- already_enabled = sel[2]
- message = already_enabled ? _("Disable Provider") : _("Enable Provider")
- @enable_item.label = message
- GLib::Idle.add do
- @enable_disable_providers_menu.popup(nil, nil, event.button, event.time)
- false
- end
- end
- else
- puts "not on a path"
- end
- end
- end
-
- # Popup the menu on Shift-F10
- @treeview_providers.signal_connect("popup_menu") do
- selected_prov = @treeview_providers.selection.selected
- puts selected_prov.inspect
- if selected_prov
- GLib::Idle.add do
- already_enabled = selected_prov[2]
- message = already_enabled ? _("Disable Provider") : _("Enable Provider")
- @enable_item.label = message
-
- @enable_disable_providers_menu.popup(nil, nil, 0, :current_time)
- false
- end
- else
- puts "no action"
- end
- end
- end
-
def event_is_right_click(event)
(event.event_type == :button_press) && (event.button == 3)
end
def prefs_empty(prefs)
@@ -237,15 +179,15 @@
Preferences.instance.view_advanced_settings = on
@button_prov_add.visible = @button_prov_remove.visible = on
end
def on_provider_add
- dialog = NewProviderDialog.new(@preferences_dialog).acquire
- if dialog.instance
- BookProviders.update_priority
- reload_providers
- end
+ provider = NewProviderDialog.new(@preferences_dialog).acquire
+ return unless provider
+
+ BookProviders.instance.update_priority
+ reload_providers
end
def on_scanner_device_type(_combo)
iter = @scanner_device_type.active_iter
Preferences.instance.barcode_scanner = iter[1] if iter && iter[1]
@@ -275,21 +217,20 @@
"permanently deleted."))
dialog.default_response = Gtk::ResponseType::CANCEL
dialog.show_all
if dialog.run == Gtk::ResponseType::OK
provider.remove
- BookProviders.update_priority
+ BookProviders.instance.update_priority
reload_providers
end
dialog.destroy
end
def on_column_toggled(checkbutton)
raise if @cols[checkbutton].nil?
- Preferences.instance.send("#{@cols[checkbutton]}=",
- checkbutton.active?)
+ Preferences.instance.set_variable(@cols[checkbutton], checkbutton.active?)
@changed_block.call
end
def on_providers_button_press_event(_widget, event)
@@ -310,11 +251,11 @@
private
def reload_providers
model = @treeview_providers.model
model.clear
- BookProviders.each_with_index do |x, index|
+ BookProviders.list.each_with_index do |x, index|
iter = model.append
iter[0] = if x.enabled
x.fullname
else
"<i>#{x.fullname}</i>"
@@ -325,11 +266,11 @@
end
end
def selected_provider
iter = @treeview_providers.selection.selected
- BookProviders.find { |x| x.name == iter[1] } unless iter.nil?
+ BookProviders.list.find { |x| x.name == iter[1] } unless iter.nil?
end
def adjust_selected_provider(prov)
iter = @treeview_providers.selection.selected
iter[0] = if prov.enabled
@@ -348,14 +289,14 @@
@button_prov_up.sensitive = false
@button_prov_down.sensitive = false
@button_prov_setup.sensitive = false
@button_prov_remove.sensitive = false
else
- last_iter = model.get_iter((BookProviders.length - 1).to_s)
+ last_iter = model.get_iter((BookProviders.list.length - 1).to_s)
@button_prov_up.sensitive = sel_iter != model.iter_first
@button_prov_down.sensitive = sel_iter != last_iter
- provider = BookProviders.find { |x| x.name == sel_iter[1] }
+ provider = BookProviders.list.find { |x| x.name == sel_iter[1] }
@button_prov_setup.sensitive = !prefs_empty(provider.prefs)
@button_prov_remove.sensitive = provider.abstract?
end
end
@@ -363,10 +304,10 @@
priority = []
@treeview_providers.model.each do |_model, _path, iter|
priority << iter[1]
end
Preferences.instance.providers_priority = priority
- BookProviders.update_priority
+ BookProviders.instance.update_priority
end
end
end
end