class Syskit::GUI::LoggingGroupsItem

A QStandardItem to display a hash of Sysit::ShellInterface::LoggingGroup in a tree view

Attributes

items_name[R]
items_value[R]

Public Class Methods

new(logging_groups, label = '') click to toggle source
# File lib/syskit/gui/logging_groups_item.rb, line 11
def initialize(logging_groups, label = '')
    super(logging_groups)

    @items_name = Hash.new
    @items_value = Hash.new

    setText label
    update_groups(logging_groups)
end

Public Instance Methods

update_groups(groups) click to toggle source

Updates the model according to a new hash

# File lib/syskit/gui/logging_groups_item.rb, line 22
def update_groups(groups)
    @current_model.keys.each do |key|
        if !groups.key? key
            group_row = @items_name[key].index.row
            @items_name[key].clear
            @items_value[key].clear
            @items_name.delete key
            @items_value.delete key
            removeRow(group_row)
        end
    end

    @current_model = deep_copy(groups)
    @editing_model = deep_copy(groups)

    @current_model.keys.each do |key|
        if !@items_name.key? key
            @items_name[key], @items_value[key] = add_conf_item(key)
            @items_value[key].getter do
                @editing_model[key].enabled
            end
            @items_value[key].setter do |value|
                @editing_model[key].enabled = value
            end
        end
    end
end