Build a default widget for a given action using its Qt properties. More...
#include <ActionWidget.h>
Public Slots | |
| void | showInfo () |
| show help dialog | |
Public Member Functions | |
| ActionWidget (Action *) | |
| create a default action widget for the given action | |
| void | setApplyButtonText (QString) |
| modify the "Apply" button text | |
| void | setAutoUpdateProperty (bool autoUpdate) |
| automatically update the action properties whenever there is a change in the GUI | |
| void | setButtonVisibility (bool) |
| if false then the apply/revert buttons are shown | |
| void | update () |
| update display (target and property controller) | |
| ~ActionWidget () override | |
Protected Member Functions | |
| QString | getTargetLabel () |
| return a text with the target component names followed by their class names | |
Build a default widget for a given action using its Qt properties.
It should be good enough in most of the case.
The default widget contains:
The information button shows a dialog with the action classification, a description, the list of parameters and their properties, and the current target component names (inputs),
The button frame contains an "Apply" and a "Revert" button. The Apply button updates the action properties using the value entered by the user in the GUI. I.e., its clicked() signal is connected the the action apply() slot. The revert button resets the values in GUI to the initial values (all modification in the GUI are cancelled). You can easily show or hide the button frame using setButtonVisibility(). You can also customize the "Apply" button text using setApplyButtonText().
update() updates the widget using the actual/current properties and target of the action. This method should be called by an action in the overriden getWidget method. A typical getWidget() method of an action should use the lazy instantiation pattern to instantiate ActionWidget the first time it is called, and call the ActionWidget instance update() method for any subsequent calls.
If you do not want to wait for the user to click on the apply button (or if this button is hidden) and you want the value of the action's property/parameter to be updated everytime there is a change in the GUI, call setAutoUpdateProperty(true) (default is false);
| camitk::ActionWidget::ActionWidget | ( | Action * | action | ) |
create a default action widget for the given action
References camitk::ObjectController::BUTTON, and showInfo().
|
override |
|
protected |
return a text with the target component names followed by their class names
| void camitk::ActionWidget::setApplyButtonText | ( | QString | text | ) |
modify the "Apply" button text
| void camitk::ActionWidget::setAutoUpdateProperty | ( | bool | autoUpdate | ) |
automatically update the action properties whenever there is a change in the GUI
References camitk::Application::isAlive().
| void camitk::ActionWidget::setButtonVisibility | ( | bool | visible | ) |
if false then the apply/revert buttons are shown
Referenced by ActionState::onEntry().
|
slot |
show help dialog
Referenced by ActionWidget().
| void camitk::ActionWidget::update | ( | ) |
update display (target and property controller)
Referenced by ConnectedComponents::apply(), OtsuFilter::apply(), and camitk::CppHotPlugAction::getWidget().