34 ARMARX_INFO <<
"RobotTrajectoryDesigner: TransitionController on init";
37 initInterpolationComboBox();
40 this->guiTransitionTab->getTransitionTab()->transitionList->setSelectionMode(
41 QAbstractItemView::SingleSelection);
42 this->guiTransitionTab->getTransitionTab()->transitionList->clear();
45 QDoubleValidator* validator =
46 new QDoubleValidator(-1000.000, 1000.000, 3, guiTransitionTab.get());
47 validator->setNotation(QDoubleValidator::StandardNotation);
48 this->guiTransitionTab->getTransitionTab()->durationLineEdit->setValidator(validator);
54 ARMARX_INFO <<
"RobotTrajectoryDesigner: TransitionController on connect";
57 QObject::connect(guiTransitionTab->getTransitionTab()->transitionList,
58 SIGNAL(itemClicked(QListWidgetItem*)),
63 QObject::connect(guiTransitionTab->getTransitionTab()->durationLineEdit,
64 SIGNAL(editingFinished()),
66 SLOT(setDurationValue()));
69 QObject::connect(guiTransitionTab->getTransitionTab()->interpolationComboBox,
70 SIGNAL(activated(
int)),
72 SLOT(setInterpolation(
int)));
78 ARMARX_INFO <<
"RobotTrajectoryDesigner: TransitionController on disconnect";
84 ARMARX_INFO <<
"RobotTrajectoryDesigner: TransitionController on exit";
88 guiTransitionTab(guiTransitionTab)
97 return this->guiTransitionTab;
103 if (guiTransitionTab != NULL)
105 this->guiTransitionTab = guiTransitionTab;
115 transition.
start = start;
116 transition.
it = interpolation;
122 data.setValue(transition);
125 QListWidgetItem* item =
126 new QListWidgetItem(QString((
"Transition: " + std::to_string(
index)).c_str()));
127 item->setData(Qt::UserRole,
data);
128 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
130 transitions->insertItem(
index, item);
133 changeTextListWidgetItems();
139 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
142 if (transitions->count() >
index)
144 delete transitions->takeItem(
index);
146 changeTextListWidgetItems();
155 guiTransitionTab->getTransitionTab()->durationLineEdit->setText(
156 QString::number(transition.
duration));
158 guiTransitionTab->getTransitionTab()->startValueLabel->setText(
159 QString::number(transition.
start));
161 guiTransitionTab->getTransitionTab()->EndValueLabel->setText(
164 guiTransitionTab->getTransitionTab()->interpolationComboBox->setCurrentIndex(transition.
it);
167 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
174 GuiTransition transition = guiTransitionTab->getTransitionTab()
175 ->transitionList->item(
index)
180 guiTransitionTab->getTransitionTab()->durationLineEdit->setText(
181 QString::number(transition.
duration));
183 guiTransitionTab->getTransitionTab()->startValueLabel->setText(
184 QString::number(transition.
start));
186 guiTransitionTab->getTransitionTab()->EndValueLabel->setText(
189 guiTransitionTab->getTransitionTab()->interpolationComboBox->setCurrentIndex(transition.
it);
193 TransitionController::setDurationValue()
195 if (this->guiTransitionTab->getTransitionTab()->durationLineEdit->hasAcceptableInput())
197 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
198 QListWidgetItem* item = transitions->currentItem();
205 this->guiTransitionTab->getTransitionTab()->durationLineEdit->text().toDouble();
208 if ((dur >= 0) && (dur != transition.
duration))
217 TransitionController::setInterpolation(
int index)
219 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
220 QListWidgetItem* item = transitions->currentItem();
235 TransitionController::enableAll(
bool enable)
237 this->guiTransitionTab->getTransitionTab()->durationLineEdit->setEnabled(enable);
238 this->guiTransitionTab->getTransitionTab()->interpolationComboBox->setEnabled(enable);
239 this->guiTransitionTab->getTransitionTab()->transitionList->setEnabled(enable);
248 transition.
start = start;
255 data.setValue(transition);
257 QListWidget* transitions = guiTransitionTab->getTransitionTab()->transitionList;
258 QListWidgetItem* item = transitions->item(
index);
261 item->setData(Qt::UserRole,
data);
263 if (transitions->currentRow() ==
index)
273 throw(
"not yet implemented");
280 this->guiTransitionTab->getTransitionTab()->transitionList->clear();
282 this->guiTransitionTab->getTransitionTab()->durationLineEdit->clear();
284 this->guiTransitionTab->getTransitionTab()->startValueLabel->clear();
285 this->guiTransitionTab->getTransitionTab()->EndValueLabel->clear();
287 this->guiTransitionTab->getTransitionTab()->interpolationComboBox->setCurrentIndex(0);
291 TransitionController::contains(QListWidget* list,
GuiTransition transition)
293 for (
int i = 0; i < list->count(); i++)
295 if (list->item(i)->data(Qt::UserRole).value<
GuiTransition>() == transition)
304 TransitionController::initInterpolationComboBox()
306 QComboBox* interpolation = guiTransitionTab->getTransitionTab()->interpolationComboBox;
309 interpolation->setFocusPolicy(Qt::StrongFocus);
310 interpolation->installEventFilter(
new WheelEventFilter(
this));
313 interpolation->clear();
314 interpolation->addItem(QString::fromStdString(
"Linear Interpolation"));
315 interpolation->addItem(QString::fromStdString(
"Spline interpolation"));
316 interpolation->setEnabled(
true);
317 interpolation->setCurrentIndex(0);
321 TransitionController::changeTextListWidgetItems()
323 QListWidget* transitions = this->guiTransitionTab->getTransitionTab()->transitionList;
324 for (
int i = 0; i < transitions->count(); i++)
326 transitions->item(i)->setText(
327 QString::fromStdString((
"Transition: " + std::to_string(i))));
std::shared_ptr< TransitionTab > TransitionTabPtr
void onInitComponent() override
void retranslateGui()
Retranslates the guiTransitionTab.
void changedInterpolation(int index, int it)
Notifies other controllers about changes of the interpolation type of the given transition.
void onDisconnectComponent() override
void selectedTransitionChanged(int index)
void updateSelectedTransition(int index)
Updates the currently selected transition.
void changedDuration(int transition, double duration)
Notifies other controllers about changes of the duration of the given transition.
void removeTransition(int index)
Removes the transition at a given index from the list widget.
void addTransition(int index, double duration, double start, int interpolation)
Adds a new transition to the list widget.
void onConnectComponent() override
TransitionTabPtr getGuiTransitionTab()
Getter for the TransitionTab pointer to guiTransitionTab.
void onExitComponent() override
TransitionController(TransitionTabPtr guiTransitionTab)
Creates a new TransitionController and assigns a TransitionTab to handle.
void setGuiTransitionTab(TransitionTabPtr guiTransitionTab)
Setter for the TransitionTab pointer to guiTransitionTab.
void clearTransitionList()
Removes all items of the transition list.
void setTransitionData(int index, double duration, double start, int it)
Connected with signals from other controllers, sets all values of the transition at a given index.
#define ARMARX_INFO
The normal logging level.
This file offers overloads of toIce() and fromIce() functions for STL container types.
struct armarx::GuiTransition GuiTransition
Struct defining a transition which can be stored as QVariant in a QListWidgetItem.
Struct defining a transition which can be stored as QVariant in a QListWidgetItem.
bool isValid()
Checks whether all values of a transition are greater than or equal to zero.