#ifndef ADAPTIXCLIENT_BROWSERPROCESSWIDGET_H #define ADAPTIXCLIENT_BROWSERPROCESSWIDGET_H #include #include class Agent; class AdaptixWidget; typedef struct BrowserProcessData { int pid; int ppid; int sessId; QString arch; QString context; QString process; } BrowserProcessDataWin; typedef struct BrowserProcessDataUnix { int pid; int ppid; QString tty; QString context; QString process; } BrowserProcessDataUnix; class BrowserProcessWidget : public DockTab { QGridLayout* mainGridLayout = nullptr; QGridLayout* listGridLayout = nullptr; QTreeWidget* treeBrowserWidget = nullptr; QWidget* listBrowserWidget = nullptr; QTableView* tableView = nullptr; QStandardItemModel* tableModel = nullptr; QLabel* statusLabel = nullptr; QSplitter* splitter = nullptr; QLineEdit* inputFilter = nullptr; QPushButton* buttonReload = nullptr; QFrame* line_1 = nullptr; Agent* agent = nullptr; void createUI(); void setTableProcessDataWin(const QMap& processMap) const; void setTableProcessDataUnix(const QMap& processMap) const; void setTreeProcessDataWin(QMap processMap) const; static void addProcessToTreeWin(QTreeWidgetItem* parent, int parentPID, QMap processMap, QMap *nodeMap); void setTreeProcessDataUnix(QMap processMap) const; static void addProcessToTreeUnix(QTreeWidgetItem* parent, int parentPID, QMap processMap, QMap *nodeMap); void filterTreeWidget(const QString &filterText) const; void filterTableWidget(const QString &filterText) const; public: BrowserProcessWidget(const AdaptixWidget* w, Agent* a); ~BrowserProcessWidget() override; void SetProcess(int msgType, const QString &data) const; void SetStatus(qint64 time, int msgType, const QString &message) const; public Q_SLOTS: void onReload() const; void onFilter(const QString &text) const; void actionCopyPid() const; void handleTableMenu(const QPoint &pos); void onTableSelect() const; void onTreeSelect() const; }; #endif