From 509e9d5398de1f230c5ec6b6611cd86dc7e2fadc Mon Sep 17 00:00:00 2001 From: Srivats P Date: Sat, 16 Sep 2017 12:30:00 +0530 Subject: [PATCH] Change Stream Config Dialog inputs This is the first of many commits that lays the foundation for - * Editing multiple streams without exiting the dialog * Triggering the dialog when a new stream is added instead of add+edit --- client/port.h | 10 +++++----- client/portswindow.cpp | 5 ++++- client/streamconfigdialog.cpp | 17 ++++++++++++----- client/streamconfigdialog.h | 6 ++++-- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/client/port.h b/client/port.h index c98b7ec..04c0feb 100644 --- a/client/port.h +++ b/client/port.h @@ -94,15 +94,15 @@ public: { return QString().fromStdString(d.notes()); } const QString userName() const { return QString().fromStdString(d.user_name()); } - AdminStatus adminStatus() + AdminStatus adminStatus() const { return (d.is_enabled()?AdminEnable:AdminDisable); } - bool hasExclusiveControl() + bool hasExclusiveControl() const { return d.is_exclusive_control(); } - OstProto::TransmitMode transmitMode() + OstProto::TransmitMode transmitMode() const { return d.transmit_mode(); } - double averagePacketRate() + double averagePacketRate() const { return avgPacketsPerSec_; } - double averageBitRate() + double averageBitRate() const { return avgBitsPerSec_; } //void setAdminEnable(AdminStatus status) { mAdminStatus = status; } diff --git a/client/portswindow.cpp b/client/portswindow.cpp index 430352f..3a1c911 100644 --- a/client/portswindow.cpp +++ b/client/portswindow.cpp @@ -314,7 +314,10 @@ void PortsWindow::on_tvStreamList_activated(const QModelIndex & index) qDebug("%s: invalid index", __FUNCTION__); return; } - scd = new StreamConfigDialog(plm->port(currentPort), index.row(), this); + + QList streams; + streams.append(plm->port(currentPort).mutableStreamByIndex(index.row())); + scd = new StreamConfigDialog(streams, plm->port(currentPort), this); qDebug("stream list activated\n"); ret = scd->exec(); diff --git a/client/streamconfigdialog.cpp b/client/streamconfigdialog.cpp index 0ef56de..8daa491 100644 --- a/client/streamconfigdialog.cpp +++ b/client/streamconfigdialog.cpp @@ -39,13 +39,20 @@ int StreamConfigDialog::lastProtocolDataIndex = 0; static const uint kEthFrameOverHead = 20; -StreamConfigDialog::StreamConfigDialog(Port &port, uint streamIndex, - QWidget *parent) : QDialog (parent), mPort(port) +StreamConfigDialog::StreamConfigDialog( + QList &streamList, + const Port &port, + QWidget *parent) + : QDialog (parent), streamList_(streamList), mPort(port) { OstProto::Stream s; - mCurrentStreamIndex = streamIndex; + mCurrentStreamIndex = 0; + + // FIXME: temporary till we support a list + Q_ASSERT(streamList_.size() == 1); + mpStream = new Stream; - mPort.streamByIndex(mCurrentStreamIndex)->protoDataCopyInto(s); + streamList_.at(mCurrentStreamIndex)->protoDataCopyInto(s); mpStream->protoDataCopyFrom(s); _iter = mpStream->createProtocolListIterator(); isUpdateInProgress = false; @@ -1222,7 +1229,7 @@ void StreamConfigDialog::on_pbOk_clicked() // Copy the data from the "local working copy of stream" to "actual stream" mpStream->protoDataCopyInto(s); - mPort.mutableStreamByIndex(mCurrentStreamIndex)->protoDataCopyFrom(s); + streamList_[mCurrentStreamIndex]->protoDataCopyFrom(s); qDebug("stream stored"); diff --git a/client/streamconfigdialog.h b/client/streamconfigdialog.h index 5330414..11f0b29 100644 --- a/client/streamconfigdialog.h +++ b/client/streamconfigdialog.h @@ -43,7 +43,8 @@ class StreamConfigDialog : public QDialog, public Ui::StreamConfigDialog { Q_OBJECT public: - StreamConfigDialog(Port &port, uint streamIndex, QWidget *parent = 0); + StreamConfigDialog(QList &streamList, const Port &port, + QWidget *parent = 0); ~StreamConfigDialog(); private: @@ -72,7 +73,8 @@ private: QStringListModel *mpAvailableProtocolsModel; QStringListModel *mpSelectedProtocolsModel; - Port& mPort; + QList streamList_; + const Port& mPort; uint mCurrentStreamIndex; Stream *mpStream;