diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp index 01596e7e599a2fe8cf22a57e095e5fae4ed1336a..f70637e0f1b7fba0562011159b5bfd6e0fd45eb2 100644 --- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp +++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.cpp @@ -49,10 +49,11 @@ KinematicUnitConfigDialog::KinematicUnitConfigDialog(QWidget* parent) : connect(this->ui->buttonBox, SIGNAL(accepted()), this, SLOT(verifyConfig())); ui->buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); proxyFinder = new IceProxyFinder<KinematicUnitInterfacePrx>(this); - proxyFinder->setSearchMask("*"); + proxyFinder->setSearchMask("*Unit"); ui->gridLayout->addWidget(proxyFinder, 0, 1, 1, 2); connect(proxyFinder->getUi()->cbProxyName, SIGNAL(currentIndexChanged(int)), this, SLOT(selectionChanged(int))); + connect(proxyFinder->getUi()->cbProxyName, SIGNAL(editTextChanged(QString)), this, SLOT(proxyNameChanged(QString))); } KinematicUnitConfigDialog::~KinematicUnitConfigDialog() @@ -88,20 +89,13 @@ void KinematicUnitConfigDialog::verifyConfig() } } -void KinematicUnitConfigDialog::selectionChanged(int nr) +void KinematicUnitConfigDialog::updateSubconfig(std::string kinematicUnitName) { - ARMARX_LOG << "Selected entry:" << nr; - ui->labelTopic->setText(""); - ui->labelRobotModel->setText(""); - ui->labelRNS->setText(""); - if (nr < 0) - { - return; - } - std::string kinematicUnitName = proxyFinder->getUi()->cbProxyName->currentText().toStdString(); + try { ARMARX_INFO << "Connecting to KinematicUnitProxy " << kinematicUnitName; + KinematicUnitInterfacePrx kinematicUnitInterfacePrx = getProxy<KinematicUnitInterfacePrx>(kinematicUnitName); std::string topicName = kinematicUnitInterfacePrx->getReportTopicName(); std::string robotNodeSetName = kinematicUnitInterfacePrx->getRobotNodeSetName(); @@ -114,7 +108,30 @@ void KinematicUnitConfigDialog::selectionChanged(int nr) { ARMARX_INFO << "Could not connect to KinematicUnitProxy " << kinematicUnitName; } +} + +void KinematicUnitConfigDialog::selectionChanged(int nr) +{ + ARMARX_LOG << "Selected entry:" << nr; + ui->labelTopic->setText(""); + ui->labelRobotModel->setText(""); + ui->labelRNS->setText(""); + if (nr < 0) + { + return; + } + std::string kinematicUnitName = proxyFinder->getUi()->cbProxyName->currentText().toStdString(); + + updateSubconfig(kinematicUnitName); + +} +void KinematicUnitConfigDialog::proxyNameChanged(QString kinematicUnitName) +{ + ui->labelTopic->setText(""); + ui->labelRobotModel->setText(""); + ui->labelRNS->setText(""); + updateSubconfig(kinematicUnitName.toStdString()); } diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h index 9e0ab1ea9821fe878dd71014dbc54abef8a6d026..21e73d58f30a570633355075a159d19852203ca7 100644 --- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h +++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitConfigDialog.h @@ -65,6 +65,10 @@ namespace armarx void verifyConfig(); void selectionChanged(int nr); + void proxyNameChanged(QString); + protected slots: + void updateSubconfig(std::string kinematicUnitName); + private: IceProxyFinderBase* proxyFinder;