2
0
forked from Ivasoft/DSView

The search pannel auto select all text when got focus

This commit is contained in:
dreamsourcelabTAI
2024-04-01 14:12:34 +08:00
parent 9e67189742
commit 5f38c7b462
2 changed files with 25 additions and 3 deletions

View File

@@ -21,16 +21,29 @@
#include "search.h"
#include "../view/logicsignal.h"
#include <assert.h>
#include <QRegularExpressionValidator>
#include <QTimer>
#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<uint16_t, QString> pattern) :
DSDialog(parent),
_session(session)
@@ -55,7 +68,7 @@ Search::Search(QWidget *parent, SigSession *session, std::map<uint16_t, QString>
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

View File

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