#pragma once #include "core/library/ResourceLibraryProvider.h" #include class QListWidget; namespace gui { class ResourceLibraryDock final : public QDockWidget { Q_OBJECT public: explicit ResourceLibraryDock(QWidget* parent = nullptr); ~ResourceLibraryDock() override = default; void setProviders(core::library::ResourceLibraryProvider* localProvider, core::library::ResourceLibraryProvider* onlineProvider); private: void rebuildCombinedList(); void ensureOnlineLoaded(); void fetchOnlineNextPage(); private: core::library::ResourceLibraryProvider* m_localProvider = nullptr; core::library::ResourceLibraryProvider* m_onlineProvider = nullptr; QVector m_localResources; QVector m_onlineResources; QListWidget* m_list = nullptr; bool m_onlineBound = false; bool m_onlineLoading = false; bool m_onlineExhausted = false; }; } // namespace gui