#ifndef APPSWIDGET_H #define APPSWIDGET_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class AppsWidget : public QWidget { Q_OBJECT public: explicit AppsWidget(QWidget *parent = nullptr); private slots: void onLoginClicked(); void onAppCardClicked(const QString &appName, const QString &description); void onDownloadIpaClicked(const QString &name, const QString &bundleId); void onSearchTextChanged(); void performSearch(); void onSearchFinished(); private: void setupUI(); void createAppCard(const QString &name, const QString &bundleId, const QString &description, const QString &iconPath, QGridLayout *gridLayout, int row, int col); void populateDefaultApps(); void clearAppGrid(); void showStatusMessage(const QString &message); QScrollArea *m_scrollArea; QWidget *m_contentWidget; QPushButton *m_loginButton; QLabel *m_statusLabel; bool m_isLoggedIn; // Search QLineEdit *m_searchEdit; QTimer *m_debounceTimer; QFutureWatcher *m_searchWatcher; }; #endif // APPSWIDGET_H