diff --git a/DSView/pv/dialogs/search.cpp b/DSView/pv/dialogs/search.cpp index 8392b021..c846cb32 100644 --- a/DSView/pv/dialogs/search.cpp +++ b/DSView/pv/dialogs/search.cpp @@ -21,16 +21,29 @@ #include "search.h" #include "../view/logicsignal.h" - #include #include - +#include #include "../ui/langresource.h" namespace pv { namespace dialogs { +SearchEdgeFlagEdit::SearchEdgeFlagEdit(QWidget *parent) + :QLineEdit(parent) +{ +} + +void SearchEdgeFlagEdit::focusInEvent(QFocusEvent *e) +{ + QLineEdit::focusInEvent(e); + + QTimer::singleShot(50, this, [this](){ + selectAll(); + }); +} + Search::Search(QWidget *parent, SigSession *session, std::map pattern) : DSDialog(parent), _session(session) @@ -55,7 +68,7 @@ Search::Search(QWidget *parent, SigSession *session, std::map for(auto s : _session->get_signals()) { if (s->signal_type() == SR_CHANNEL_LOGIC) { view::LogicSignal *logicSig = (view::LogicSignal*)s; - QLineEdit *search_lineEdit = new QLineEdit(this); + QLineEdit *search_lineEdit = new SearchEdgeFlagEdit(this); if (pattern.find(logicSig->get_index()) != pattern.end()) search_lineEdit->setText(pattern[logicSig->get_index()]); else diff --git a/DSView/pv/dialogs/search.h b/DSView/pv/dialogs/search.h index ff79bfba..81964b82 100644 --- a/DSView/pv/dialogs/search.h +++ b/DSView/pv/dialogs/search.h @@ -36,6 +36,15 @@ namespace pv { namespace dialogs { +class SearchEdgeFlagEdit: public QLineEdit +{ +public: + SearchEdgeFlagEdit(QWidget *parent); + +protected: + void focusInEvent(QFocusEvent *e) override; +}; + class Search : public DSDialog { Q_OBJECT