module TaskInspector::Functions
Attributes
filterTimer[R]
model[R]
proxyModel[R]
treeView[R]
Public Instance Methods
add_name_service(service,options=Hash.new)
click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 105 def add_name_service(service,options=Hash.new) if service.respond_to?(:on_name_service_added) # This is a "global" name service service.on_name_service_added do |new_ns| add_name_service(new_ns) end service.on_name_service_removed do |removed_ns| to_remove = [] @model.rowCount.times do |i| item = @model.item(i, 0) if item.respond_to?(:name_service) && item.name_service == removed_ns to_remove << i end end to_remove.reverse.each do |idx| @model.takeRow(idx) end end else item1 = Vizkit::NameServiceItem.new service item2 = Vizkit::NameServiceItem.new service,:item_type => :value @model.appendRow([item1,item2]) service.once_on_task_added do |name| treeView.expand(proxyModel.mapFromSource(item1.index)) end end end
add_task(task,options=Hash.new)
click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 76 def add_task(task,options=Hash.new) obj = if task.is_a? String Orocos::Async.proxy task elsif task.is_a? Orocos::Async::TaskContextProxy task else Orocos::Async.proxy task.name end item1 = Vizkit::TaskContextItem.new obj item2 = Vizkit::TaskContextItem.new obj,:item_type => :value treeView.disconnected_items.clear @model.appendRow([item1,item2]) end
init()
click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 35 def init Vizkit.setup_tree_view treeView @model = Vizkit::VizkitItemModel.new treeView.setModel @model @filter = ::Vizkit::PluginConnections::ShowHideEventFilter.new installEventFilter(@filter) @filter.on_show do treeView.reconnect end @filter.on_hide do treeView.disconnect end lineEdit.connect(SIGNAL('textChanged(const QString &)')) do filterTimer.start end @proxyModel = Vizkit::TaskSortFilterProxyModel.new(self) @proxyModel.setSourceModel(@model) @proxyModel.setDynamicSortFilter(true) @proxyModel.setFilterKeyColumn(0) treeView.sortByColumn(0, Qt::AscendingOrder) treeView.setModel(@proxyModel) @filterTimer = Qt::Timer.new filterTimer.setInterval 500 filterTimer.setSingleShot true filterTimer.connect SIGNAL('timeout()') do proxyModel.setFilterFixedString(lineEdit.text) end end
remove_task(task)
click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 90 def remove_task(task) name = if task.respond_to?(:name) then task.name else task.to_str end idx = (0...@model.rowCount).find do |i| item = @model.item(i, 0) item.respond_to?(:task) && item.task.name == name end if idx treeView.disconnected_items.clear @model.takeRow(idx) end end