2#include "qml_material/style/button_interaction_state.hpp"
3Q_MOC_INCLUDE(
"qml_material/control/item_delegate.hpp")
7class QML_MATERIAL_API TableViewDelegateState :
public ButtonInteractionState {
9 QML_NAMED_ELEMENT(StateTableViewDelegate)
10 Q_PROPERTY(qml_material::ItemDelegate* item READ item WRITE setItem NOTIFY itemChanged FINAL)
11 Q_PROPERTY(
bool itemSelected READ itemSelected WRITE setItemSelected NOTIFY itemSelectedChanged
12 BINDABLE bindableItemSelected FINAL)
13 Q_PROPERTY(
bool rowHovered READ rowHovered WRITE setRowHovered NOTIFY rowHoveredChanged BINDABLE
14 bindableRowHovered FINAL)
15 Q_PROPERTY(
bool selected READ selected NOTIFY selectedChanged BINDABLE bindableSelected FINAL)
17 explicit TableViewDelegateState(QObject* parent =
nullptr);
18 ~TableViewDelegateState()
override;
19 ItemDelegate* item()
const;
20 void setItem(ItemDelegate*);
21 bool itemSelected()
const;
22 void setItemSelected(
bool);
23 QBindable<bool> bindableItemSelected();
24 bool rowHovered()
const;
25 void setRowHovered(
bool);
26 QBindable<bool> bindableRowHovered();
27 bool selected()
const;
28 QBindable<bool> bindableSelected()
const;
29 Q_SIGNAL
void itemSelectedChanged();
30 Q_SIGNAL
void rowHoveredChanged();
31 Q_SIGNAL
void selectedChanged();
34 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(TableViewDelegateState,
bool, m_itemSelected,
false,
35 &TableViewDelegateState::itemSelectedChanged)
36 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(TableViewDelegateState,
bool, m_rowHovered,
false,
37 &TableViewDelegateState::rowHoveredChanged)
38 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(TableViewDelegateState,
bool, m_selected,
false,
39 &TableViewDelegateState::selectedChanged)
40 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };