class Ui::RelationsConfig

Constants

DELAYED_UPDATE_TIMEOUT

The amount of time we wait before triggering an update on the display. This is meant to avoid unnecessary updates (for instance for configuration parameters in textboxes)

Attributes

current_color[R]
delegate[R]
display[R]
model[R]
relation_color[R]
relation_item[R]

Public Class Methods

new(widget, display) click to toggle source
Calls superclass method
# File lib/roby/gui/relations_view/relations_config.rb, line 200
def initialize(widget, display)
    super()
    if !system("dot", "-V")
        raise "the 'dot' tool is unavailable"
    end

    setupUi(widget, display)
end

Public Instance Methods

delayed_update() click to toggle source
# File lib/roby/gui/relations_view/relations_config.rb, line 278
def delayed_update
    @delayed_update_timer.start(DELAYED_UPDATE_TIMEOUT)
end
setupUi(widget, display) click to toggle source
Calls superclass method
# File lib/roby/gui/relations_view/relations_config.rb, line 209
def setupUi(widget, display)
    super(widget)

    @display = display
    @model    = RelationConfigModel.new(display)
    @delegate = RelationDelegate.new
    relations.set_item_delegate @delegate
    relations.header.resize_mode = Qt::HeaderView::Stretch
    relations.model = @model
    relations.set_expanded model.task_root_index, true
    relations.set_expanded model.event_root_index, true

    @layout_model = LayoutMethodModel.new(display, layoutMethod)
    Qt::Object.connect(layoutMethod, SIGNAL("currentIndexChanged(int)"), @layout_model, SLOT("selected()"))
    layoutMethod.model = @layout_model

    showOwnership.checked = display.show_ownership
    showOwnership.connect(SIGNAL('clicked(bool)')) do |state|
        display.show_ownership = state
        display.update
    end
    showFinalized.checked = !display.hide_finalized
    showFinalized.connect(SIGNAL('clicked(bool)')) do |state|
        display.hide_finalized = !state
        display.update
    end
    removedPrefixes.setText(display.removed_prefixes.to_a.join(","))
    removedPrefixes.connect(SIGNAL('textChanged(QString)')) do |removed_prefixes|
        display.removed_prefixes = removed_prefixes.split(',')
        delayed_update
    end
    hiddenLabels.setText(display.hidden_labels.to_a.join(","))
    hiddenLabels.connect(SIGNAL('textChanged(QString)')) do |hidden_labels|
        display.hidden_labels = hidden_labels.split(',')
        delayed_update
    end
    if display.display_policy == :explicit
        displayExplicit.checked = true
    elsif display.display_policy == :emitters
        displayEmitters.checked = true
    elsif display.display_policy == :emitters_and_parents
        displayEmittersAndParents.checked = true
    end

    displayExplicit.connect(SIGNAL('clicked()')) do
        display.display_policy = :explicit
        delayed_update
    end
    displayEmitters.connect(SIGNAL('clicked()')) do
        display.display_policy = :emitters
        delayed_update
    end
    displayEmittersAndParents.connect(SIGNAL('clicked()')) do
        display.display_policy = :emitters_and_parents
        delayed_update
    end

    @delayed_update_timer = Qt::Timer.new(display)
    @delayed_update_timer.setSingleShot(true)
    @delayed_update_timer.connect(SIGNAL('timeout()')) do
        display.update
    end
end