From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- ui/qt/scsi_service_response_time_dialog.cpp | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 ui/qt/scsi_service_response_time_dialog.cpp (limited to 'ui/qt/scsi_service_response_time_dialog.cpp') diff --git a/ui/qt/scsi_service_response_time_dialog.cpp b/ui/qt/scsi_service_response_time_dialog.cpp new file mode 100644 index 0000000..807235e --- /dev/null +++ b/ui/qt/scsi_service_response_time_dialog.cpp @@ -0,0 +1,86 @@ +/* scsi_service_response_time_dialog.cpp + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "scsi_service_response_time_dialog.h" + +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include + +ScsiServiceResponseTimeDialog::ScsiServiceResponseTimeDialog(QWidget &parent, CaptureFile &cf, struct register_srt *srt, const QString filter) : + ServiceResponseTimeDialog(parent, cf, srt, filter) +{ + setRetapOnShow(false); + setHint(tr("Select a command and enter a filter if desired, then press Apply.")); + + QHBoxLayout *filter_layout = filterLayout(); + command_combo_ = new QComboBox(this); + + filter_layout->insertStretch(0, 1); + filter_layout->insertWidget(0, command_combo_); + filter_layout->insertWidget(0, new QLabel(tr("Command:"))); + + setWindowSubtitle(tr("SCSI Service Response Times")); + + QStringList commands; + commands << "SBC (disk)" << "SSC (tape)" << "MMC (cd/dvd)" << "SMC (tape robot)" << "OSD (object based)"; + command_combo_->addItems(commands); +} + +TapParameterDialog *ScsiServiceResponseTimeDialog::createScsiSrtDialog(QWidget &parent, const QString, const QString opt_arg, CaptureFile &cf) +{ + QString filter; + bool have_args = false; + QString command; + + // rpc,srt,scsi,command[, + QStringList args_l = QString(opt_arg).split(','); + if (args_l.length() > 0) { + command = args_l[0]; + if (args_l.length() > 1) { + filter = QStringList(args_l.mid(1)).join(","); + } + have_args = true; + } + + ScsiServiceResponseTimeDialog *scsi_dlg = new ScsiServiceResponseTimeDialog(parent, cf, get_srt_table_by_name("scsi"), filter); + + if (have_args) { + if (!command.isEmpty()) { + scsi_dlg->setScsiCommand(command.toInt()); + } + } + + return scsi_dlg; +} + +void ScsiServiceResponseTimeDialog::setScsiCommand(int command) +{ + command_combo_->setCurrentIndex(command); + fillTree(); +} + +void ScsiServiceResponseTimeDialog::provideParameterData() +{ + char* err; + QString command; + + command = QString(",%1").arg(command_combo_->currentIndex()); + + scsistat_param(srt_, command.toStdString().c_str(), &err); +} -- cgit v1.2.3