#ifndef LISTPREVIEWWIDGET_H #define LISTPREVIEWWIDGET_H #include #include #include #include #include #include #include #include "settings.h" class ListPreviewWidget : public QWidget { Q_OBJECT public: explicit ListPreviewWidget(QWidget *parent = nullptr); ~ListPreviewWidget() = default; // Set list data from QVariantList (each item is a QVariantMap with fields) void setListData(const QVariantList &items, const QString &listName = QString()); // Set metadata for the sidebar void setMetadata(const QVariantMap &metadata); // Clear the widget void clear(); private slots: void applyTheme(const Theme &theme); void onItemSelectionChanged(); private: void setupUi(); void populateTable(const QVariantList &items); void updateMetadataTree(const QVariantMap &item); QLabel *mInfoLabel; QTableWidget *mTableWidget; QTreeWidget *mMetadataTree; QSplitter *mSplitter; QVariantList mItems; QString mListName; }; #endif // LISTPREVIEWWIDGET_H