2
0
forked from Ivasoft/DSView

fix: Disabled the empty channel name

This commit is contained in:
dreamsourcelabTAI
2023-02-22 19:13:47 +08:00
parent be21b41ed3
commit cff9b43e68
3 changed files with 37 additions and 15 deletions

View File

@@ -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<view::LogicSignal *>(s)))

View File

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

View File

@@ -756,9 +756,11 @@ int View::headerWidth()
std::vector<Trace*> 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);
}
}