class Qt::Variant

Public Class Methods

from_ruby(obj, lifetime_object = nil) click to toggle source
# File lib/utilrb/qt/variant/from_ruby.rb, line 8
def self.from_ruby(obj, lifetime_object = nil)
    variant = Qt::Variant.new("__##{obj.object_id}#__")
    lifetime_object ||= variant
    ObjectSpace.define_finalizer lifetime_object, from_ruby_finalizer
    @@saved_values[lifetime_object.object_id] ||= Set.new
    @@saved_values[lifetime_object.object_id] << obj
    variant
end
from_ruby_finalizer() click to toggle source
# File lib/utilrb/qt/variant/from_ruby.rb, line 17
def self.from_ruby_finalizer
    lambda { |variant_id| @@saved_values.delete(variant_id) }
end

Public Instance Methods

to_ruby() click to toggle source
# File lib/utilrb/qt/variant/from_ruby.rb, line 21
def to_ruby
    raise "QVariant is not storing an Object ID"if (value =~ /__#(\d*)#__/) != 0
    ObjectSpace._id2ref(Integer($1))
end
to_ruby?() click to toggle source
# File lib/utilrb/qt/variant/from_ruby.rb, line 26
def to_ruby?
    (value =~ /__#(\d*)#__/) == 0
end