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
This commit is contained in:
Srivats P 2017-09-16 12:30:00 +05:30
parent db77563466
commit 509e9d5398
4 changed files with 25 additions and 13 deletions

View File

@ -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; }

View File

@ -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<Stream*> 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();

View File

@ -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<Stream*> &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");

View File

@ -43,7 +43,8 @@ class StreamConfigDialog : public QDialog, public Ui::StreamConfigDialog
{
Q_OBJECT
public:
StreamConfigDialog(Port &port, uint streamIndex, QWidget *parent = 0);
StreamConfigDialog(QList<Stream*> &streamList, const Port &port,
QWidget *parent = 0);
~StreamConfigDialog();
private:
@ -72,7 +73,8 @@ private:
QStringListModel *mpAvailableProtocolsModel;
QStringListModel *mpSelectedProtocolsModel;
Port& mPort;
QList<Stream*> streamList_;
const Port& mPort;
uint mCurrentStreamIndex;
Stream *mpStream;