class Qt::Base

Public Class Methods

create_signal_map(obj) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 324
def self.create_signal_map(obj)
  obj.meta_object.create_signal_map
end
signal_map(obj) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 320
def self.signal_map(obj)
  @signal_map ||= self.create_signal_map(obj)
end

Public Instance Methods

gui=(g) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 328
def gui=(g)
  setGUI(g)
end
in(interval, &blk) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 308
def in(interval, &blk)
  Qt::Timer.in(interval, self, &blk)
end
on(sig, types = nil, &blk) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 269
def on(sig, types = nil, &blk)
  sig = Signal.create(sig, types)
  candidates = if is_a? Qt::Object
    signal_map[sig.symbol]
  end
  if candidates
    if types
      # find candidate with the correct argument types
      candidates = candidates.find_all{|s| s[1] == types }
    end
    if candidates.size > 1
      # find candidate with the correct arity
      arity = blk.arity
      if blk.arity == -1
        # take first
        candidates = [candidates.first]
      else
        candidates = candidates.find_all{|s| s[1].size == arity }
      end
    end
    if candidates.size > 1
      raise "Ambiguous overload for #{sig} with arity #{arity}"
    elsif candidates.empty?
      msg = if types
        "with types #{types.join(' ')}"
      else
        "with arity #{blk.arity}"
      end
      raise "No overload for #{sig} #{msg}"
    end
    sign = SIGNAL(candidates.first[0])
    connect(sign, &blk)
    SignalDisconnecter.new(self, sign)
  else
    observer = observe(sig.symbol, &blk)
    ObserverDisconnecter.new(self, observer)
  end
end
run_later(&blk) click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 312
def run_later(&blk)
  self.in(0, &blk)
end
signal_map() click to toggle source
# File lib/rui/toolkits/qtbase/qt.rb, line 316
def signal_map
  self.class.signal_map(self)
end