QmlMaterial 0.1.0
Loading...
Searching...
No Matches
search_bar.hpp
1#pragma once
2
3#include "qml_material/control/button.hpp"
4#include <QPointer>
5
6Q_MOC_INCLUDE("qml_material/input/search_state.hpp")
7Q_MOC_INCLUDE("qml_material/control/search_view.hpp")
8
9namespace qml_material
10{
11class SearchState;
12class SearchView;
13
14class QML_MATERIAL_API SearchBar : public Button {
15 Q_OBJECT
16 QML_NAMED_ELEMENT(SearchBarBase)
17 Q_PROPERTY(SearchState* searchState READ searchState WRITE setSearchState RESET resetSearchState
18 NOTIFY searchStateChanged FINAL)
19 Q_PROPERTY(
20 QString searchText READ searchText WRITE setSearchText NOTIFY searchTextChanged FINAL)
21 Q_PROPERTY(SearchView* searchView READ searchView NOTIFY searchViewChanged FINAL)
22public:
23 explicit SearchBar(QQuickItem* parent = nullptr);
24 SearchState* searchState() const;
25 void setSearchState(SearchState*);
26 void resetSearchState();
27 QString searchText() const;
28 void setSearchText(const QString&);
29 SearchView* searchView() const;
30 Q_SIGNAL void searchViewChanged();
31 Q_SIGNAL void searchStateChanged();
32 Q_SIGNAL void searchTextChanged();
33 Q_SIGNAL void accepted();
34
35private:
36 friend class SearchView;
37 void setSearchView(SearchView*);
38 QPointer<SearchView> m_searchView;
39 SearchState* m_defaultState;
40 QPointer<SearchState> m_state;
41 QMetaObject::Connection m_queryConnection, m_destroyConnection;
42};
43} // namespace qml_material