]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/connect.cpp
Fix #1146 by replacing the check box by a combo box
[pulseview.git] / pv / dialogs / connect.cpp
index 7a680cf73fb48efaf817738c18c54ab399f12f03..81f1aee411061ed48f6bea86bd3ec68c05615115 100644 (file)
@@ -21,8 +21,8 @@
 
 #include <libsigrokcxx/libsigrokcxx.hpp>
 
-#include <QLabel>
 #include <QGroupBox>
+#include <QLabel>
 #include <QRadioButton>
 
 #include "connect.hpp"
@@ -95,13 +95,19 @@ Connect::Connect(QWidget *parent, pv::DeviceManager &device_manager) :
        tcp_port_->setRange(1, 65535);
        tcp_port_->setValue(5555);
        tcp_config_layout->addWidget(tcp_port_);
-       tcp_use_vxi_ = new QCheckBox();
-       tcp_use_vxi_->setText(tr("Use VXI"));
+
        tcp_config_layout->addSpacing(30);
-       tcp_config_layout->addWidget(tcp_use_vxi_);
+       tcp_config_layout->addWidget(new QLabel(tr("Protocol:")));
+       tcp_protocol_ = new QComboBox();
+       tcp_protocol_->addItem("Raw TCP", QVariant("tcp-raw/%1/%2"));
+       tcp_protocol_->addItem("VXI", QVariant("vxi/%1/%2"));
+       tcp_config_layout->addWidget(tcp_protocol_);
        tcp_config_layout->setContentsMargins(0, 0, 0, 0);
        tcp_config_->setEnabled(false);
 
+       // Let the device list occupy only the minimum space needed
+       device_list_.setMaximumHeight(device_list_.minimumSizeHint().height());
+
        QVBoxLayout *vbox_if = new QVBoxLayout;
        vbox_if->addWidget(radiobtn_usb);
        vbox_if->addWidget(radiobtn_serial);
@@ -226,11 +232,10 @@ void Connect::scan_pressed()
                QString host = tcp_host_->text();
                QString port = tcp_port_->text();
                if (!host.isEmpty()) {
-                       QString conn;
-                       if (tcp_use_vxi_->isChecked())
-                               conn = QString("vxi/%1/%2").arg(host, port);
-                       else
-                               conn = QString("tcp-raw/%1/%2").arg(host, port);
+                       QString conn =
+                               tcp_protocol_->itemData(tcp_protocol_->currentIndex()).toString();
+
+                       conn = conn.arg(host, port);
 
                        drvopts[ConfigKey::CONN] = Variant<ustring>::create(
                                conn.toUtf8().constData());
@@ -243,13 +248,10 @@ void Connect::scan_pressed()
        for (shared_ptr<HardwareDevice> device : devices) {
                assert(device);
 
-               QString text = QString::fromStdString(
-                       device->display_name(device_manager_));
-               text += QString(" with %1 channels").arg(
-                       device->device()->channels().size());
+               QString text = QString::fromStdString(device->display_name(device_manager_));
+               text += QString(" with %1 channels").arg(device->device()->channels().size());
 
-               QListWidgetItem *const item = new QListWidgetItem(text,
-                       &device_list_);
+               QListWidgetItem *const item = new QListWidgetItem(text, &device_list_);
                item->setData(Qt::UserRole, qVariantFromValue(device));
                device_list_.addItem(item);
        }