#include <QAbstractItemModel>
#include <QLabel>
+#include <QSortFilterProxyModel>
#include <QSplitter>
#include <QTreeView>
};
+class QCustomSortFilterProxyModel : public QSortFilterProxyModel
+{
+protected:
+ bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
+};
+
+class QCustomTreeView : public QTreeView
+{
+ Q_OBJECT
+
+public:
+ void currentChanged(const QModelIndex& current, const QModelIndex& previous);
+
+Q_SIGNALS:
+ void currentChanged(const QModelIndex& current);
+};
+
class SubWindow : public SubWindowBase
{
Q_OBJECT
void new_decoders_selected(vector<const srd_decoder*> decoders);
public Q_SLOTS:
- void on_item_clicked(const QModelIndex& index);
- void on_item_double_clicked(const QModelIndex& index);
+ void on_item_changed(const QModelIndex& index);
+ void on_item_activated(const QModelIndex& index);
+
+ void on_filter_changed(const QString& text);
private:
QSplitter* splitter_;
- QTreeView* tree_view_;
+ QCustomTreeView* tree_view_;
QWidget* info_box_;
QLabel* info_label_header_;
QLabel* info_label_body_;
QLabel* info_label_footer_;
DecoderCollectionModel* model_;
+ QCustomSortFilterProxyModel* sort_filter_model_;
};
} // decoder_selector