Class: Qt::Signal
- Defined in:
- lib/qt_connect/qt_sugar.rb,
lib/qt_connect/qt_jbindings.rb
Overview
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
Instance Method Summary collapse
-
#connect(a1 = nil, a2 = nil, &block) ⇒ Object
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.
-
#disconnect(a1 = nil, a2 = nil, &block) ⇒ Object
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.
-
#emit(*args) ⇒ Object
(Qt::Signal signal).emit(*args).
-
#initialize(sender = nil) ⇒ Signal
constructor
A new instance of Signal.
- #setargs(*args) ⇒ Object
Constructor Details
#initialize(sender = nil) ⇒ Signal
Returns a new instance of Signal.
52 53 54 55 56 |
# File 'lib/qt_connect/qt_sugar.rb', line 52 def initialize(signalemitter=nil,signature=nil) @signature=signature @signalemitter=signalemitter @actions=[] end |
Instance Method Details
#connect(a1 = nil, a2 = nil, &block) ⇒ Object
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
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/qt_connect/qt_sugar.rb', line 61 def connect(receiver=nil,method=nil,&block) if @signalemitter if receiver && (receiver.kind_of?(Qt::Signal)) @signalemitter.connect(SIGNAL(@signature)){|*args| receiver.emit(*args)} return end @signalemitter.connect(SIGNAL(@signature),receiver,method) if receiver && method @signalemitter.connect(SIGNAL(@signature),&block) if block_given? else @actions << [receiver,method,block] end end |
#disconnect(a1 = nil, a2 = nil, &block) ⇒ Object
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
88 89 90 91 |
# File 'lib/qt_connect/qt_sugar.rb', line 88 def disconnect @signalemitter.disconnect(SIGNAL(@signature)) if @signalemitter @actions=[] end |
#emit(*args) ⇒ Object
(Qt::Signal signal).emit(*args)
151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/qt_connect/qt_jbindings.rb', line 151 def emit(*args) if @signalemitter sig=@signature.gsub(/[(].*[)]/,"").to_sym #n.b. arguments passed in a block are passed to the superclass version(e.g. original) of the signal method @signalemitter.send(sig){args} else @actions.each{ |action| receiver,method,block=action block.call(*args) if block receiver.send(method,*args) if receiver && method } end end |
#setargs(*args) ⇒ Object
146 147 148 |
# File 'lib/qt_connect/qt_jbindings.rb', line 146 def setargs(*args) @args=args end |