#pragma once #include "lts_frameless_dialog.h" #include "lts_widgets_export.h" namespace Ui { class LtsSelectionPopup; } class QAbstractItemModel; class QSortFilterProxyModel; namespace LtsWidgets { class LTSWIDGETS_EXPORT LtsSelectionPopup : public LtsFramelessDialog { Q_OBJECT public: LtsSelectionPopup(QAbstractItemModel *model, int currentIndex, QWidget *parent = nullptr); ~LtsSelectionPopup(); protected: void showEvent(QShowEvent *event) override; private: Ui::LtsSelectionPopup *m_ui; int m_currentIndex; int m_firstIndex; QSortFilterProxyModel *m_filter; bool m_valid; void refresh(); void selectItem(int row, bool bCurrentIndexChanged, bool bActivated); signals: void activated(int index); void currentIndexChanged(int index); public slots: void accept() override; void slotFilterChanged(); }; }