Class: QProc::Connect

Inherits:
Object
  • Object
show all
Defined in:
lib/QParser.rb

Instance Method Summary collapse

Constructor Details

#initialize(widget, signal, value) ⇒ Connect

Returns a new instance of Connect.



124
125
126
127
128
129
130
# File 'lib/QParser.rb', line 124

def initialize(widget,signal,value)
  @wid = widget
  @sig = signal
  @value = value

  self.class.module_eval{ include ::QProc::Messages }
end

Instance Method Details

#connect(widget) ⇒ Object



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/QParser.rb', line 133

def connect(widget)
  if @value[0] == "{"[0] then
    unless @value[-1] == "}"[0] then
      error "syntax ereror: ignore connect #{k}=\"#{@value}\"","connect"
      return
    end

    pr = SlotProc.new( lambda{ widget.instance_eval( @value[1..-2] )  }  )
    target = pr
    slot = :call
  else
    if @value.index '.'
      t,s = @value.split('.')
      target = widget.instance_variable_get(t.to_sym) 

      debug "target name = #{t} target = #{target}","connect" if debug_level >= QDMLDebug::Minimal
      slot = s.to_sym
    else
      target = widget
      slot = @value.to_sym
    end
  end

  debug "target is #{target} , widget is #{widget}","connect" if debug_level >= QDMLDebug::Minimal
  widget.connect(@wid,SIGNAL(@sig),target,SLOT(slot))
end

#debug_levelObject



131
# File 'lib/QParser.rb', line 131

def debug_level; QProc.debug_level; end

#to_sObject



159
160
161
# File 'lib/QParser.rb', line 159

def to_s
  "connect #{@wid} #{@sig} #{@value}"
end