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
hide_menu_bar() click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 72
def hide_menu_bar
    menubar.hide
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
show_menu_bar() click to toggle source
# File lib/vizkit/widgets/task_inspector/task_inspector.rb, line 68
def show_menu_bar
    menubar.show
end