ConnectDialog.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Rainer Kartmann ( rainer dot kartmann at kit dot edu )
17 * @date 2021
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <QDialog>
25#include <QDialogButtonBox>
26#include <QVBoxLayout>
27#include <qboxlayout.h>
28#include <qdialog.h>
29#include <qdialogbuttonbox.h>
30#include <qobject.h>
31#include <qwidget.h>
32
34
36
38{
39 template <class ProxyT>
40 class ConnectDialog : public QDialog
41 {
42 public:
43 ConnectDialog(QString searchMask, ManagedIceObject& component, QWidget* parent = nullptr) :
44 QDialog(parent), component(component)
45 {
47 finder->setIceManager(component.getIceManager());
48 finder->setSearchMask(searchMask);
49
50 QDialogButtonBox* buttonBox =
51 new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
52
53 setLayout(new QVBoxLayout);
54 layout()->addWidget(finder);
55 layout()->addWidget(buttonBox);
56
57 connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
58 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
59 }
60
61 virtual ~ConnectDialog() override
62 {
63 }
64
65 ProxyT
67 {
68 QString name = finder->getSelectedProxyName();
69 if (name.size() > 0)
70 {
71 return component.getProxy<ProxyT>(name.toStdString());
72 }
73 else
74 {
75 return nullptr;
76 }
77 }
78
79
80 public:
83 };
84
85
86} // namespace armarx::navigation::qt_plugins::location_graph_editor
Widget to conveniently retrieve a proxy instance name of a specific interface type (the template para...
The ManagedIceObject is the base class for all ArmarX objects.
ConnectDialog(QString searchMask, ManagedIceObject &component, QWidget *parent=nullptr)