Class: Class

Inherits:
Object show all
Defined in:
lib/qt_connect/qt_compat.rb

Constant Summary collapse

RX0 =

name(.….

/([^(]+)\([.]*/
RX1 =

1+ alpha => alt_m==m

/\A[A-Z]+\z/
RX2 =
/([A-Z]+)([A-Z][a-z])/
RX3 =
/([a-z\d])([A-Z])/

Instance Method Summary collapse

Instance Method Details

#signals(*signallist) ⇒ Object



665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
# File 'lib/qt_connect/qt_compat.rb', line 665

def signals(*signallist)
    signallist.each{ |signature|
      if signature.kind_of? String
        if md=signature.match(RX0)
          m=md[1].strip
        else
          m=signature.strip
        end
      else
        m=signature.to_s
      end
      alt_m =(m=~RX1) ? m.downcase : m.gsub(RX2, '\1_\2').gsub(RX3, '\1_\2').tr("-","_").downcase
      self.class_eval(%Q[
        def #{m}(*args)
          if @_#{m}
            @_#{m}.setargs(*args)
            return @_#{m}
          else
            return @_#{m}=Qt::Signal.new(self)
          end
        end
        #{(alt_m==m) ? '' : "alias :#{alt_m} :#{m}"}
      ])
    }

end