class Rock::Browse::ModelListWidget
Constants
- ROLE_AVAILABLE_PACKAGE
- ROLE_INSTALLED_PACKAGE
- ROLE_NAMES
- ROLE_OROGEN_TASK
- ROLE_OROGEN_TYPE
- ROLE_OSDEPS
- ROLE_PACKAGE_SET
Attributes
loader[R]
manifest[R]
osdeps[R]
roots[R]
Public Class Methods
default_loader()
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 29 def self.default_loader OroGen::Loaders::RTT.new(OroGen.orocos_target) end
new(parent = nil, loader = self.class.default_loader, manifest = Autoproj.manifest, osdeps = Autoproj.osdeps)
click to toggle source
Calls superclass method
# File lib/rock/browse/model_list_widget.rb, line 33 def initialize(parent = nil, loader = self.class.default_loader, manifest = Autoproj.manifest, osdeps = Autoproj.osdeps) super(parent) @loader = loader @manifest = manifest @osdeps = osdeps @roots = Array.new ROLE_NAMES.each_with_index do |name, i| roots[i] = Qt::TreeWidgetItem.new(self) roots[i].set_text(0, name) end set_header_label("") end
Public Instance Methods
clear()
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 51 def clear roots.each(&:take_children) end
populate()
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 60 def populate if current = current_item current_type = current.data(0, Qt::UserRole) if current_type.null? current_name = nil else current_type = current_type.to_int current_name = current.text(0) end end clear loader.each_available_type_name do |name, _| item = Qt::TreeWidgetItem.new(roots[ROLE_OROGEN_TYPE]) item.set_text(0, name) item.set_data(0, Qt::UserRole, Qt::Variant.new(ROLE_OROGEN_TYPE)) end loader.each_available_task_model_name do |name| item = Qt::TreeWidgetItem.new(roots[ROLE_OROGEN_TASK]) item.set_text(0, name) item.set_data(0, Qt::UserRole, Qt::Variant.new(ROLE_OROGEN_TASK)) end manifest.packages.values.sort_by(&:name).each do |pkg| role = if File.directory?(pkg.autobuild.srcdir) ROLE_INSTALLED_PACKAGE else ROLE_AVAILABLE_PACKAGE end item = Qt::TreeWidgetItem.new(roots[role]) item.set_text(0, pkg.name) item.set_data(0, Qt::UserRole, Qt::Variant.new(role)) end manifest.each_package_set.sort_by(&:name).each do |pkg_set| item = Qt::TreeWidgetItem.new(roots[ROLE_PACKAGE_SET]) item.set_text(0, pkg_set.name) item.set_data(0, Qt::UserRole, Qt::Variant.new(ROLE_PACKAGE_SET)) end osdeps.all_definitions.keys.sort.each do |osdep_name| item = Qt::TreeWidgetItem.new(roots[ROLE_OSDEPS]) item.set_text(0, osdep_name) item.set_data(0, Qt::UserRole, Qt::Variant.new(ROLE_OSDEPS)) end if current_type && current_name select(current_type, current_name) end end
reload()
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 55 def reload loader.clear populate end
role_from_item(item)
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 113 def role_from_item(item) role = item.data(0, Qt::UserRole) if !role.null? role.to_int end end
select(name, role = nil)
click to toggle source
# File lib/rock/browse/model_list_widget.rb, line 120 def select(name, role = nil) matches = findItems(name, Qt::MatchExactly | Qt::MatchRecursive, 0) if role single_match = matches.find do |item| role == role_from_item(item) end else single_match = matches.first end if single_match self.current_item = single_match end end