class Etti::LabelSelectionPage
Attributes
labelList[R]
pageData[R]
pageDatas[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/etti/ui/label-selection-page.rb, line 12 def initialize super(:orientation => :horizontal) @pageDatas = Etti::PageDatas.new @previewArea = Etti::PageLayout.new @pageDatas create_label_list @pageDatas.signal_connect(:new_page) {|ettipd, ary| label_list_add ary[0], ary[1]} scroll = Gtk::ScrolledWindow.new scroll.set_policy :automatic, :automatic scroll.add @labelList pack1 scroll pack2 @previewArea self.position = 300 end
Public Instance Methods
create_label_list()
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 84 def create_label_list @labelListStore = Gtk::ListStore.new String @labelList = Gtk::TreeView.new @labelListStore @labelList.signal_connect(:cursor_changed) {on_label_list_cursor_changed} renderer = Gtk::CellRendererText.new @labelList.insert_column -1, _('Label'), renderer, :text => 0 names = @pageDatas.get_page_names names.each_with_index do |name, i| iter = @labelListStore.append iter.set_value 0, name if i == 0 @pageData = @pageDatas.get_page_data name @previewArea.update_page_data @pageData end end @labelList.selection.select_path Gtk::TreePath.new('0') @pageData = @pageDatas.get_page_data names[0] end
get_user_settings()
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 33 def get_user_settings @pageDatas.save_page_data(@pageData, false){} end
label_list_add(name, data)
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 128 def label_list_add name, data idx = 0 pt = nil @labelListStore.each do |model, path, iter| pt = path break if iter[0] > name idx += 1 end iter = @labelListStore.insert idx iter[0] = name @labelList.selection.select_path pt.next! end
on_label_list_cursor_changed()
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 105 def on_label_list_cursor_changed name = @labelListStore.get_value @labelList.selection.selected, 0 if @previewArea.entryChanged and @pageData[:name] != name message = _("The page was changed. Should it be saved?") dialog = Etti::MessageDialog.new self.toplevel, :buttons => [:yes, :no, :cancel], :type => :info, :message => message, :title => _('Page was changed') ret = dialog.run case ret when 'cancel' idx = @pageDatas.get_page_names.index @pageData[:name] @labelList.selection.select_path Gtk::TreePath.new(idx.to_s) return when 'yes' @previewArea.save end end @pageData = @pageDatas.get_page_data name signal_emit :page_changed, @pageData @previewArea.update_page_data @pageData end
set_user_settings(settings)
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 68 def set_user_settings settings name = settings['name'] @pageDatas.set_page_data name, settings pt = nil @labelListStore.each do |model, path, iter| if iter[0] == name @labelList.selection.select_path path # We have to call the update manualy, because sometimes the :cursor_changed signal # not emited. on_label_list_cursor_changed return end end end
signal_do_page_changed(foo;)
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 7 def signal_do_page_changed foo; end
validate_user_settings(settings)
click to toggle source
# File lib/etti/ui/label-selection-page.rb, line 38 def validate_user_settings settings settings.keys.each do |key| unless Etti::PageDatas::FIELDS.include? key.to_sym next if key == 'source' or key == 'name' return _("PageData has invalid property key %s") % key.to_s end end [:manufacture, :orderNr, :description, :name].each do |label| val = settings[label.to_s] next if val.nil? return _("PageData %s is invalid") % label unless val.is_a? String return _('PageData name is invalid') if label == :name and val.length() < 1 end [:cols, :rows].each do |label| val = settings[label.to_s] next if val.nil? return _("PageData %s is invalid") % label unless val.is_a? Numeric and val > 0.0 end [:size, :borders, :padding].each do |label| val = settings[label.to_s] next if val.nil? return _("PageData %s is invalid") % label unless val.is_a? Array and val.length() == 2 return _("PageData %s is invalid") % label unless val[0].is_a? Numeric and val[1].is_a? Numeric and val[0] >= 0 and val[1] >= 0 end return _('PageData pageSize is invalid') unless @pageDatas.pageDimensions.include? settings['pageSize'] nil end