From 6eb11b7569e02cb6e1127e7b1cd5411c4d9caec2 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 4 Dec 2014 14:57:06 -0800 Subject: [PATCH] QGCComboBox with new simulateUserSetCurrentIndex This allows unit tests to simulate user selections in a combo box --- src/QGCComboBox.cc | 48 ++++++++++++++++++++++++++++++++++++++++++++++ src/QGCComboBox.h | 46 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 src/QGCComboBox.cc create mode 100644 src/QGCComboBox.h diff --git a/src/QGCComboBox.cc b/src/QGCComboBox.cc new file mode 100644 index 000000000..545b67f59 --- /dev/null +++ b/src/QGCComboBox.cc @@ -0,0 +1,48 @@ +/*===================================================================== + + QGroundControl Open Source Ground Control Station + + (c) 2009 - 2014 QGROUNDCONTROL PROJECT + + This file is part of the QGROUNDCONTROL project + + QGROUNDCONTROL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QGROUNDCONTROL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QGROUNDCONTROL. If not, see . + + ======================================================================*/ + +/// @file +/// @brief Subclass of QComboBox. Mainly used for unit test so you can simulate a user selection +/// with correct signalling. +/// +/// @author Don Gagne + +#include "QGCComboBox.h" + +QGCComboBox::QGCComboBox(QWidget* parent) : + QComboBox(parent) +{ + +} + +void QGCComboBox::simulateUserSetCurrentIndex(int index) +{ + Q_ASSERT(index >=0 && index < count()); + + // This will signal currentIndexChanged + setCurrentIndex(index); + + // We have to manually signal activated + emit activated(index); + emit activated(itemText(index)); +} diff --git a/src/QGCComboBox.h b/src/QGCComboBox.h new file mode 100644 index 000000000..95a65f190 --- /dev/null +++ b/src/QGCComboBox.h @@ -0,0 +1,46 @@ +/*===================================================================== + + QGroundControl Open Source Ground Control Station + + (c) 2009 - 2014 QGROUNDCONTROL PROJECT + + This file is part of the QGROUNDCONTROL project + + QGROUNDCONTROL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QGROUNDCONTROL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QGROUNDCONTROL. If not, see . + + ======================================================================*/ + +#ifndef QGCComboBox_H +#define QGCComboBox_H + +#include + +/// @file +/// @brief Subclass of QComboBox. Mainly used for unit test so you can simulate a user selection +/// with correct signalling. +/// +/// @author Don Gagne + +class QGCComboBox : public QComboBox { + Q_OBJECT + +public: + QGCComboBox(QWidget* parent = NULL); + + /// @brief Sets the current index on the combo. Signals activated, as well as currentIndexChanged. + void simulateUserSetCurrentIndex(int index); +}; + + +#endif -- 2.22.0