module Alexandria::EntryOverrides

Public Instance Methods

complete_authors() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 13
def complete_authors
  complete(Alexandria::UI::CompletionModels::AUTHOR)
end
complete_borrowers() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 25
def complete_borrowers
  complete(Alexandria::UI::CompletionModels::BORROWER)
end
complete_editions() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 21
def complete_editions
  complete(Alexandria::UI::CompletionModels::EDITION)
end
complete_publishers() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 17
def complete_publishers
  complete(Alexandria::UI::CompletionModels::PUBLISHER)
end
complete_tags() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 29
def complete_tags
  complete(Alexandria::UI::CompletionModels::TAG)
  # min = self.completion.minimum_key_length
  min = 2
  completion.signal_connect("match-selected") do |c, model, iter|
    cur_text = c.entry.text
    # TODO: Replace with iter[0] if possible
    new_tag = model.get_value(iter, 0)
    cur_text_split = cur_text.split(",")
    cur_text_split.delete_at(-1)
    cur_text_split << new_tag
    c.entry.text = cur_text_split.join(",")
    true
  end
  completion.set_match_func do |_comp, key, iter|
    cur_tag = key.split(",").last.strip
    if cur_tag.size >= min
      begin
        /^#{cur_tag}/.match?(iter[0])
      rescue StandardError
        false
      end
    else
      false
    end
  end
end
complete_titles() click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 9
def complete_titles
  complete(Alexandria::UI::CompletionModels::TITLE)
end

Private Instance Methods

complete(model_id) click to toggle source
# File lib/alexandria/ui/completion_models.rb, line 59
def complete(model_id)
  completion = Gtk::EntryCompletion.new
  model = Alexandria::UI::CompletionModels.instance.models[model_id]
  completion.model = model
  completion.text_column = 0
  self.completion = completion
end