From 940a8c7ecc267a0ed16558ef229be0ce8e16a6da Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Fri, 25 Mar 2022 15:00:41 +0800 Subject: [PATCH] fix: auto show protocol add dailog error --- DSView/pv/dock/protocoldock.cpp | 13 ++++++++++--- DSView/pv/dock/protocoldock.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/DSView/pv/dock/protocoldock.cpp b/DSView/pv/dock/protocoldock.cpp index 2abe7a2e..4c0abdc3 100755 --- a/DSView/pv/dock/protocoldock.cpp +++ b/DSView/pv/dock/protocoldock.cpp @@ -98,6 +98,7 @@ ProtocolDock::ProtocolDock(QWidget *parent, view::View &view, SigSession *sessio _search_edited = false; _searching = false; _add_silent = false; + _bSettingList = false; _up_widget = new QWidget(this); @@ -148,14 +149,17 @@ ProtocolDock::ProtocolDock(QWidget *parent, view::View &view, SigSession *sessio //sort protocol list sort(_decoderInfoList.begin(), _decoderInfoList.end(), ProtocolDock::protocol_sort_callback); + _bSettingList = true; int protocol_index = 0; for (auto info : _decoderInfoList){ info->Index = protocol_index; protocol_index++; _protocol_combobox->addItem(QString::fromUtf8(info->Name), QVariant::fromValue(info->Index)); } + _protocol_combobox->setCurrentIndex(-1); _protocol_combobox->lineEdit()->setText(PROTOCOL_FIND_TITLE); + _bSettingList = false; if (repeatNammes != ""){ QString err = "Any protocol have repeated id or name: "; @@ -889,6 +893,8 @@ void ProtocolDock::OnProtocolFormatChanged(QString format, void *handle){ void ProtocolDock::on_decoder_name_edited(const QString &value) { + _bSettingList = true; + while (_protocol_combobox->count()) { _protocol_combobox->removeItem(0); @@ -902,10 +908,11 @@ void ProtocolDock::on_decoder_name_edited(const QString &value) || id.indexOf(value, 0, Qt::CaseInsensitive) != -1 ){ _protocol_combobox->addItem(QString::fromUtf8(info->Name), QVariant::fromValue(info->Index)); } - } - + } + _protocol_combobox->setCurrentIndex(-1); _protocol_combobox->lineEdit()->setText(value); + _bSettingList = false; if (_key_find_timer.IsActived() == false){ //check input keep time @@ -970,7 +977,7 @@ bool ProtocolDock::eventFilter(QObject *object, QEvent *event) void ProtocolDock::on_new_decoder_selected(int index) { - if (index >= 0){ + if (index >= 0 && _bSettingList == false){ on_add_protocol(); } } diff --git a/DSView/pv/dock/protocoldock.h b/DSView/pv/dock/protocoldock.h index 8a1d31d2..ff3efa15 100755 --- a/DSView/pv/dock/protocoldock.h +++ b/DSView/pv/dock/protocoldock.h @@ -182,6 +182,7 @@ private: bool _add_silent; DsTimer _key_find_timer; + bool _bSettingList; }; } // namespace dock