class Vizkit::VizkitAccessorItem
Item which can be bind to a member variable of an object which have simple types as possible values
Public Class Methods
new(obj,variable_name)
click to toggle source
Calls superclass method
Vizkit::VizkitItem.new
# File lib/vizkit/vizkit_items.rb, line 157 def initialize(obj,variable_name) super() variable_name = variable_name.to_sym @obj = obj @getter = if @obj.respond_to?(variable_name) @obj.method(variable_name) else raise ArgumentError,"no getter for #{variable_name} on obj #{obj}" end name = "#{variable_name}=".to_sym @setter = if @obj.respond_to?(name) setEditable true @obj.method(name) end end
Public Instance Methods
data(role = Qt::UserRole+1)
click to toggle source
Calls superclass method
# File lib/vizkit/vizkit_items.rb, line 173 def data(role = Qt::UserRole+1) # workaround memeroy leak qt-ruby # the returned Qt::Variant is never be deleted @last_data.dispose if @last_data @last_data = if role == Qt::DisplayRole || role == Qt::EditRole Qt::Variant.new @getter.call else super end end
setData(data,role = Qt::UserRole+1)
click to toggle source
Calls superclass method
# File lib/vizkit/vizkit_items.rb, line 184 def setData(data,role = Qt::UserRole+1) if role == Qt::EditRole && !data.isNull && @setter @setter.call(from_variant(data,@getter.call.class)) else super end end