select_topic_dialog.h
Go to the documentation of this file.
1 // *****************************************************************************
2 //
3 // Copyright (c) 2014, Southwest Research Institute® (SwRI®)
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of Southwest Research Institute® (SwRI®) nor the
14 // names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 // ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //
28 // *****************************************************************************
29 #ifndef MAPVIZ_SELECT_TOPIC_DIALOG_H_
30 #define MAPVIZ_SELECT_TOPIC_DIALOG_H_
31 
32 #include <set>
33 #include <string>
34 #include <vector>
35 
36 #include <QDialog>
37 
38 #include <ros/master.h>
39 
40 QT_BEGIN_NAMESPACE
41 class QLineEdit;
42 class QListWidget;
43 class QPushButton;
44 QT_END_NAMESPACE
45 
46 namespace mapviz
47 {
53 class SelectTopicDialog : public QDialog
54 {
55  Q_OBJECT;
56 
57  public:
68  const std::string &datatype,
69  QWidget *parent=0);
70 
80  const std::string &datatype1,
81  const std::string &datatype2,
82  QWidget *parent=0);
83 
92  const std::vector<std::string> &datatypes,
93  QWidget *parent=0);
94 
103  static std::vector<ros::master::TopicInfo> selectTopics(
104  const std::string &datatype,
105  QWidget *parent=0);
106 
115  static std::vector<ros::master::TopicInfo> selectTopics(
116  const std::string &datatype1,
117  const std::string &datatype2,
118  QWidget *parent=0);
119 
126  static std::vector<ros::master::TopicInfo> selectTopics(
127  const std::vector<std::string> &datatypes,
128  QWidget *parent=0);
129 
133  SelectTopicDialog(QWidget *parent=0);
134 
139  void allowMultipleTopics(bool allow);
140 
146  void setDatatypeFilter(const std::vector<std::string> &datatypes);
147 
159  std::vector<ros::master::TopicInfo> selectedTopics() const;
160 
161  private:
162  void timerEvent(QTimerEvent *);
163  void closeEvent(QCloseEvent *);
164 
165  std::vector<ros::master::TopicInfo> filterTopics(
166  const std::vector<ros::master::TopicInfo> &) const;
167 
168  private Q_SLOTS:
169  void fetchTopics();
170  void updateDisplayedTopics();
171 
172  private:
173  std::set<std::string> allowed_datatypes_;
174  std::vector<ros::master::TopicInfo> known_topics_;
175  std::vector<ros::master::TopicInfo> displayed_topics_;
177 
178  QPushButton *ok_button_;
179  QPushButton *cancel_button_;
180  QListWidget *list_widget_;
181  QLineEdit *name_filter_;
182 }; // class SelectTopicDialog
183 } // namespace mapviz
184 #endif // MAPVIZ_SELECT_TOPIC_DIALOG_H_
std::set< std::string > allowed_datatypes_
static ros::master::TopicInfo selectTopic(const std::string &datatype, QWidget *parent=0)
void setDatatypeFilter(const std::vector< std::string > &datatypes)
ros::master::TopicInfo selectedTopic() const
std::vector< ros::master::TopicInfo > filterTopics(const std::vector< ros::master::TopicInfo > &) const
std::vector< ros::master::TopicInfo > known_topics_
std::vector< ros::master::TopicInfo > displayed_topics_
SelectTopicDialog(QWidget *parent=0)
std::vector< ros::master::TopicInfo > selectedTopics() const
static std::vector< ros::master::TopicInfo > selectTopics(const std::string &datatype, QWidget *parent=0)


mapviz
Author(s): Marc Alban
autogenerated on Fri Mar 19 2021 02:44:25