From c9240d9e68367adc3790f98d1641dc7269889ed4 Mon Sep 17 00:00:00 2001 From: Akash Mozumdar Date: Sat, 29 Jan 2022 12:49:48 -0700 Subject: [PATCH] improve process selection --- GUI/attachprocessdialog.cpp | 23 +++++++---------------- GUI/attachprocessdialog.h | 2 +- GUI/attachprocessdialog.ui | 6 +----- text.cpp | 2 +- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/GUI/attachprocessdialog.cpp b/GUI/attachprocessdialog.cpp index 830d9ed..08bb0ba 100644 --- a/GUI/attachprocessdialog.cpp +++ b/GUI/attachprocessdialog.cpp @@ -4,14 +4,13 @@ extern const char* SELECT_PROCESS; extern const char* ATTACH_INFO; -AttachProcessDialog::AttachProcessDialog(QWidget *parent, std::vector> processIcons) : +AttachProcessDialog::AttachProcessDialog(QWidget* parent, std::vector> processIcons) : QDialog(parent, Qt::WindowCloseButtonHint), model(this) { ui.setupUi(this); setWindowTitle(SELECT_PROCESS); ui.label->setText(ATTACH_INFO); - ui.processIdEdit->setValidator(new QIntValidator(0, INT_MAX, this)); ui.processList->setModel(&model); QPixmap transparent(100, 100); @@ -25,24 +24,16 @@ AttachProcessDialog::AttachProcessDialog(QWidget *parent, std::vectorsetText(model.item(index.row())->text()); }); + connect(ui.processList, &QListView::doubleClicked, this, &QDialog::accept); + connect(ui.processEdit, &QLineEdit::textEdited, [this](QString process) { - selectedProcess = model.item(index.row())->text(); + for (int i = 0; i < model.rowCount(); ++i) ui.processList->setRowHidden(i, !model.item(i)->text().contains(process, Qt::CaseInsensitive)); }); - connect(ui.processList, &QListView::doubleClicked, [this](QModelIndex index) - { - selectedProcess = model.item(index.row())->text(); - accept(); - }); - connect(ui.processIdEdit, &QLineEdit::returnPressed, [this] - { - selectedProcess = ui.processIdEdit->text(); - accept(); - }); - + connect(ui.processEdit, &QLineEdit::returnPressed, this, &QDialog::accept); } QString AttachProcessDialog::SelectedProcess() { - return selectedProcess.isEmpty() ? ui.processIdEdit->text() : selectedProcess; + return ui.processEdit->text(); } diff --git a/GUI/attachprocessdialog.h b/GUI/attachprocessdialog.h index 9d17eb6..308e7fa 100644 --- a/GUI/attachprocessdialog.h +++ b/GUI/attachprocessdialog.h @@ -7,7 +7,7 @@ class AttachProcessDialog : public QDialog { public: - explicit AttachProcessDialog(QWidget *parent, std::vector> processIcons); + explicit AttachProcessDialog(QWidget* parent, std::vector> processIcons); QString SelectedProcess(); private: diff --git a/GUI/attachprocessdialog.ui b/GUI/attachprocessdialog.ui index ece348a..4b07ace 100644 --- a/GUI/attachprocessdialog.ui +++ b/GUI/attachprocessdialog.ui @@ -18,11 +18,7 @@ - - - Process id - - + diff --git a/text.cpp b/text.cpp index 32fb605..5f0ea4c 100644 --- a/text.cpp +++ b/text.cpp @@ -34,7 +34,7 @@ const char* EXTENSIONS = u8"Extensions"; const char* SELECT_PROCESS = u8"Select process"; const char* ATTACH_INFO = u8R"(If you don't see the process you want to attach, try running with admin rights You can also type in the process ID)"; -const char* SELECT_PROCESS_INFO = u8"If you manually type in the process file name, please use the absolute path"; +const char* SELECT_PROCESS_INFO = u8"If you manually type in the process file name, use the absolute path"; const char* FROM_COMPUTER = u8"Select from computer"; const char* PROCESSES = u8"Processes (*.exe)"; const char* CODE_INFODUMP = u8R"(Enter read code