#ifndef PROCESSPICKER_H #define PROCESSPICKER_H #include #include #include namespace Ui { class ProcessPicker; } struct ProcessInfo { uint32_t pid; QString name; QString path; QIcon icon; bool is32Bit = false; }; class ProcessPicker : public QDialog { Q_OBJECT public: explicit ProcessPicker(QWidget *parent = nullptr); explicit ProcessPicker(const QList& customProcesses, QWidget *parent = nullptr); ~ProcessPicker(); uint32_t selectedProcessId() const; QString selectedProcessName() const; private slots: void refreshProcessList(); void onProcessSelected(); void filterProcesses(const QString& text); private: void initUi(); void enumerateProcesses(); void populateTable(const QList& processes); void applyFilter(); void selectPreferredProcess(); Ui::ProcessPicker *ui; uint32_t m_selectedPid = 0; QString m_selectedName; QList m_allProcesses; bool m_useCustomList = false; }; #endif // PROCESSPICKER_H