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
# File lib/qt_connect/qt_jbindings.rb, line 125 def initialize(sender=nil) @actions=[] @args=nil @sender=sender end
Public Instance Methods
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() 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
(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
# File lib/qt_connect/qt_jbindings.rb, line 146 def setargs(*args) @args=args end