class QSignal

Public Class Methods

new(signalName, signalIndex, object, isPropertyNotifySignal) click to toggle source
# File lib/QWebChannel/QSignal.rb, line 2
def initialize(signalName, signalIndex, object, isPropertyNotifySignal)
    @signalName=signalName
    @signalIndex=signalIndex
    @object=object
    @webChannel=@object.webChannel
    @isPropertyNotifySignal=isPropertyNotifySignal
end

Public Instance Methods

connect(callback) click to toggle source
# File lib/QWebChannel/QSignal.rb, line 10
def connect(callback)
    @object.__objectSignals__[@signalIndex]=@object.__objectSignals__[@signalIndex] || []
    @object.__objectSignals__[@signalIndex] << callback
    
    if (!@isPropertyNotifySignal && @signalName!= "destroyed")
        @webChannel.exec( { "type" => QWebChannelMessageTypes::CONNECTTOSIGNAL, "object" => @object.__id__, "signal" => @signalIndex  } )
    end
end
disconnect(callback) click to toggle source
# File lib/QWebChannel/QSignal.rb, line 19
def disconnect(callback)
    @object.__objectSignals__[signalIndex]=@object.__objectSignals__[signalIndex] || []
    idx=@object.__objectSignals__[signalIndex].indexOf(callback)


    @object.__objectSignals__[signalIndex].delete_at(idx) 
    
    if (!isPropertyNotifySignal && @object.__objectSignals__[signalIndex].length == 0)
        @webChannel.exec( { "type" => QWebChannelMessageTypes::DISCONNECTFROMSIGNAL, "object" => @object.__id__, "signal" => signalIndex } )
    end #if (!isPropertyNotifySignal && @object.__objectSignals__[signalIndex].length == 0)
end