#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include "apiclient.h" #include "models/types.h" // IWYU pragma: keep #include "models/filterparams.h" #include "utils/buttonhoverwatcher.h" // IWYU pragma: keep namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); void setClient(ApiClient *newClient); void setMapLocations(const QMap &newMapLocations); void setMapDepartments(const QMap &newMapDepartments); void setMapManufacturers(const QMap &newMapManufacturers); void setMapDeviceTypes(const QMap &newMapDeviceTypes); QMap getMapDeviceModels() const; void setMapDeviceModels(const QMap &newMapDeviceModels); void setMapDevices(const QMap &newMapDevices); private: template void fillTable(const QMap &map); void updateListWidgetDevices(int entityId); QWidget* createMessageEmptyCard(); QWidget* createDeviceCard(const Device &device); void addDeviceToList(const Device &device); void returnToDeviceList(); void showTableWithStructureElements(const QList& elements); void showTableWithDeviceModelCharacteristics(const DeviceModel& model); void clearFilters(); void clearDevicesOutputSettings(); int getSelectedIndex(); private slots: void updateTableWidget(int index); void updateListWidget(); void showItemInfo(QListWidgetItem*); void changeSortOrder(); void pushButtonBackClicked(); void pushButtonClearClicked(); void pushButtonSearchClicked(); void pushButtonApplyFiltersClicked(); void pushButtonCancelFiltersClicked(); void pushButtonStructureClicked(); void pushButtonCharacteristicsClicked(); void pushButtonDefaultClicked(); private: Ui::MainWindow *ui; ApiClient *client; QString searchInfo = ""; FilterParams filterParams; int idCard = 0; QMap deviceTypeImages; QMap mapLocations; QMap mapDepartments; QMap mapManufacturers; QMap mapDeviceTypes; QMap mapDeviceModels; QMap mapDevices; }; #endif // MAINWINDOW_H