From cff9b43e68936439373cbd403e410d1497939922 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Wed, 22 Feb 2023 19:13:47 +0800 Subject: [PATCH] fix: Disabled the empty channel name --- DSView/pv/mainwindow.cpp | 14 ++++++++++++-- DSView/pv/view/header.cpp | 32 +++++++++++++++++++++----------- DSView/pv/view/view.cpp | 6 ++++-- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/DSView/pv/mainwindow.cpp b/DSView/pv/mainwindow.cpp index b00fa88f..53455852 100644 --- a/DSView/pv/mainwindow.cpp +++ b/DSView/pv/mainwindow.cpp @@ -876,8 +876,13 @@ namespace pv (probe->type == obj["type"].toDouble())) { isEnabled = true; + QString chan_name = obj["name"].toString().trimmed(); + if (chan_name == ""){ + chan_name = QString::number(probe->index); + } + probe->enabled = obj["enabled"].toBool(); - probe->name = g_strdup(obj["name"].toString().toStdString().c_str()); + probe->name = g_strdup(chan_name.toStdString().c_str()); probe->vdiv = obj["vdiv"].toDouble(); probe->coupling = obj["coupling"].toDouble(); probe->vfactor = obj["vfactor"].toDouble(); @@ -932,8 +937,13 @@ namespace pv if ((s->get_index() == obj["index"].toDouble()) && (s->get_type() == obj["type"].toDouble())) { + QString chan_name = obj["name"].toString().trimmed(); + if (chan_name == ""){ + chan_name = QString::number(s->get_index()); + } + s->set_colour(QColor(obj["colour"].toString())); - s->set_name(g_strdup(obj["name"].toString().toUtf8().data())); + s->set_name(g_strdup(chan_name.toUtf8().data())); view::LogicSignal *logicSig = NULL; if ((logicSig = dynamic_cast(s))) diff --git a/DSView/pv/view/header.cpp b/DSView/pv/view/header.cpp index 363f1bc2..2c0fe181 100644 --- a/DSView/pv/view/header.cpp +++ b/DSView/pv/view/header.cpp @@ -84,7 +84,7 @@ void Header::retranslateUi() int Header::get_nameEditWidth() -{ +{ if (nameEdit->hasFocus()) return nameEdit->width(); else @@ -185,13 +185,16 @@ void Header::mousePressEvent(QMouseEvent *event) const auto mTrace = get_mTrace(action, event->pos()); if (action == Trace::COLOR && mTrace) { _colorFlag = true; - } else if (action == Trace::NAME && mTrace) { + } + else if (action == Trace::NAME && mTrace) { _nameFlag = true; - } else if (action == Trace::LABEL && mTrace) { + } + else if (action == Trace::LABEL && mTrace) { mTrace->select(true); - if (~QApplication::keyboardModifiers() & - Qt::ControlModifier) + + if (~QApplication::keyboardModifiers() & Qt::ControlModifier) _drag_traces.clear(); + _drag_traces.push_back(make_pair(mTrace, mTrace->get_zero_vpos())); mTrace->set_old_v_offset(mTrace->get_v_offset()); } @@ -220,12 +223,14 @@ void Header::mouseReleaseEvent(QMouseEvent *event) // judge for color / name / trigger / move int action; const auto mTrace = get_mTrace(action, event->pos()); + if (mTrace){ if (action == Trace::COLOR && _colorFlag) { _context_trace = mTrace; changeColor(event); _view.set_all_update(true); - } else if (action == Trace::NAME && _nameFlag) { + } + else if (action == Trace::NAME && _nameFlag) { _context_trace = mTrace; changeName(event); } @@ -330,8 +335,10 @@ void Header::wheelEvent(QWheelEvent *event) void Header::changeName(QMouseEvent *event) { - if ((event->button() == Qt::LeftButton) && - (_context_trace->get_type() != SR_CHANNEL_DSO)) { + if (_context_trace != NULL + && _context_trace->get_type() != SR_CHANNEL_DSO + && event->button() == Qt::LeftButton) + { header_resize(); nameEdit->setText(_context_trace->get_name()); nameEdit->selectAll(); @@ -427,11 +434,15 @@ void Header::on_action_set_name_triggered() return; if (nameEdit->isModified()) { - context_Trace->set_name(nameEdit->text()); + QString v = nameEdit->text().trimmed(); + if (v == ""){ + v = QString::number(context_Trace->get_index()); + } + context_Trace->set_name(v); if (context_Trace->get_type() == SR_CHANNEL_LOGIC || context_Trace->get_type() == SR_CHANNEL_ANALOG) { - _view.session().get_device()->set_channel_name(context_Trace->get_index(), nameEdit->text().toUtf8()); + _view.session().get_device()->set_channel_name(context_Trace->get_index(), v.toUtf8()); } } @@ -441,7 +452,6 @@ void Header::on_action_set_name_triggered() void Header::header_resize() { - //if (nameEdit->isVisible()) { if (_context_trace) { const int y = _context_trace->get_y(); nameEdit->move(QPoint(_context_trace->get_leftWidth(), y - nameEdit->height() / 2)); diff --git a/DSView/pv/view/view.cpp b/DSView/pv/view/view.cpp index 0ceabff9..37f7eef1 100644 --- a/DSView/pv/view/view.cpp +++ b/DSView/pv/view/view.cpp @@ -756,9 +756,11 @@ int View::headerWidth() std::vector traces; get_traces(ALL_VIEW, traces); - if (!traces.empty()) { + if (!traces.empty()) + { for(auto t : traces){ - headerWidth = max(t->get_name_width() + t->get_leftWidth() + t->get_rightWidth(), headerWidth); + int w = t->get_name_width() + t->get_leftWidth() + t->get_rightWidth(); + headerWidth = max(w, headerWidth); } }