21#ifndef SEARCHABLEVIEW_H
22#define SEARCHABLEVIEW_H
24#include "Gui/Utils/Widgets/WidgetTemplate.h"
25#include "Gui/Utils/SearchableWidget/SelectionView.h"
26#include "Gui/Utils/SearchableWidget/SearchableModel.h"
27#include "Utils/Pimpl.h"
32class QAbstractItemView;
33class QItemSelectionModel;
48 [[nodiscard]]
bool isActive()
const;
50 bool handleKeyPress(QKeyEvent* e);
53 void lineEditChanged(
const QString& str);
55 void selectPrevious();
64 enum class SearchDirection :
76 [[nodiscard]] QAbstractItemView* view()
const;
77 [[nodiscard]]
virtual int viewportHeight()
const;
78 [[nodiscard]]
virtual int viewportWidth()
const;
80 int setSearchstring(
const QString& str);
81 void selectNextMatch(
const QString& str);
82 void selectPreviousMatch(
const QString& str);
84 virtual void searchDone();
88 [[nodiscard]]
virtual QModelIndex matchIndex(
const QString& str, SearchDirection direction)
const;
89 virtual void selectMatch(
const QString& str, SearchDirection direction);
90 bool handleKeyPress(QKeyEvent* e)
override;
93template<
typename View,
typename Model>
100 using SearchableViewInterface::setSearchModel;
109 virtual void setSearchableModel(Model* model)
111 View::setModel(model);
112 SearchableViewInterface::setSearchModel(model);
115 [[nodiscard]]
int rowCount()
const
117 return (View::model() ==
nullptr)
119 : View::model()->rowCount();
123 void keyPressEvent(QKeyEvent* e)
override
125 const auto processed = handleKeyPress(e);
128 View::keyPressEvent(e);
Definition: SearchableView.h:39
Definition: org_mpris_media_player2_adaptor.h:21
Definition: SearchableModel.h:32
Definition: SearchableView.h:60
Definition: SearchableView.h:97
Definition: SelectionView.h:35