class Qt::Signal

signal=Qt::Signal.new(pushbutton,‘clicked()’) signalemitter can perform (internal) emit; this constructor

normally used internally

signal=Qt::Signal.new only emit through signal.emit

Public Class Methods

new(sender=nil) click to toggle source
# File lib/qt_connect/qt_jbindings.rb, line 125
def initialize(sender=nil)
  @actions=[]
  @args=nil
  @sender=sender
end

Public Instance Methods

connect(a1=nil,a2=nil,&block) click to toggle source

E: Qt::Signal#connect{ |*args| .….…. } connect this signal emitter to a Ruby Block F: Qt::Signal#connect(self,:my_method) connect this signal emitter to a receiver/method G: Qt::Signal#connect(Qt::Signal signal2) connect this signal to another Qt::Signal instance H: Qt::Signal#connect(QtJambi::AbstractSignal signal2) connect this signal to a QtJambi::AbstractSignal instance

# File lib/qt_connect/qt_jbindings.rb, line 136
def connect(a1=nil,a2=nil,&block)
  if (a1 && (a1.kind_of?(Qt::Signal))) ||
        (a1.respond_to?(:java_class) &&
        (a1.java_class.superclass==QtJambi::ABSTRACTSIGNAL))
    @actions << Qt::RubySignalAction.new{ |*args| a1.emit(*args)}   #connecting [G,H]
    return
  end
  @actions << Qt::RubySignalAction.new(a1,a2,&block)                 #connecting [E,F]
end
disconnect(a1=nil,a2=nil,&block) click to toggle source

disconnect() disconnects all connections originating in this signal emitter disconnect(object) disconnects all connections made from this signal emitter to a specific receiver disconnect(object,method) disconnects all connections made from this signal emitter to a specific receiver method

# File lib/qt_connect/qt_jbindings.rb, line 160
def disconnect(a1=nil,a2=nil,&block)
  @actions.map{ |action|
    next action if a1 && (action.receiver != a1) 
    next action if a2 && (action.method != a2) 
    next action if block_given? && (action.block != block) 
    action.receiver=nil
    action.method=nil
    action.block=nil
    nil
  }
  @actions.compact!
end
emit(*args) click to toggle source

(Qt::Signal signal).emit(*args)

# File lib/qt_connect/qt_jbindings.rb, line 151
def emit(*args)
  @args=args if args.size>0 || @args.nil?
  @actions.each{ |action| action.emit(@args) }
  @args=nil
end
setargs(*args) click to toggle source
# File lib/qt_connect/qt_jbindings.rb, line 146
def setargs(*args)
  @args=args
end