From 3d7afa533a8489fe96953820d9c06b2d4dcc4ca7 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 30 Jun 2023 14:38:48 +0200 Subject: [PATCH] alternating row colors as skin hint --- skins/squiek/QskSquiekSkin.cpp | 2 ++ src/controls/QskListView.cpp | 26 +++++++++++++++++--------- src/controls/QskListView.h | 8 ++++++-- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/skins/squiek/QskSquiekSkin.cpp b/skins/squiek/QskSquiekSkin.cpp index dc006a89..1f99d354 100644 --- a/skins/squiek/QskSquiekSkin.cpp +++ b/skins/squiek/QskSquiekSkin.cpp @@ -1056,6 +1056,8 @@ void Editor::setupListView() setColor( Q::Cell | Q::Selected, m_pal.highlighted ); setColor( Q::Text | Q::Selected, m_pal.highlightedText ); + + setFlag( Q::Cell | QskAspect::Style, true ); // alternating colors } void Editor::setupSubWindow() diff --git a/src/controls/QskListView.cpp b/src/controls/QskListView.cpp index 0d6a0723..478b3716 100644 --- a/src/controls/QskListView.cpp +++ b/src/controls/QskListView.cpp @@ -23,14 +23,12 @@ class QskListView::PrivateData public: PrivateData() : preferredWidthFromColumns( false ) - , alternatingRowColors( false ) , selectionMode( QskListView::SingleSelection ) , selectedRow( -1 ) { } bool preferredWidthFromColumns : 1; - bool alternatingRowColors : 1; SelectionMode selectionMode : 4; int selectedRow; @@ -64,18 +62,19 @@ bool QskListView::preferredWidthFromColumns() const void QskListView::setAlternatingRowColors( bool on ) { - if ( on != m_data->alternatingRowColors ) - { - m_data->alternatingRowColors = on; - update(); - + if ( setFlagHint( Cell | QskAspect::Style, on ) ) Q_EMIT alternatingRowColorsChanged(); - } } bool QskListView::alternatingRowColors() const { - return m_data->alternatingRowColors; + return flagHint< bool >( Cell | QskAspect::Style, false ); +} + +void QskListView::resetAlternatingRowColors() +{ + if ( resetSkinHint( Cell | QskAspect::Style ) ) + Q_EMIT alternatingRowColorsChanged(); } void QskListView::setTextOptions( const QskTextOptions& textOptions ) @@ -92,6 +91,15 @@ QskTextOptions QskListView::textOptions() const return textOptionsHint( Text ); } +void QskListView::resetTextOptions() +{ + if ( resetTextOptionsHint( Text ) ) + { + updateScrollableSize(); + Q_EMIT textOptionsChanged(); + } +} + void QskListView::setSelectedRow( int row ) { if ( row < 0 ) diff --git a/src/controls/QskListView.h b/src/controls/QskListView.h index 6f9f01b7..169d31cc 100644 --- a/src/controls/QskListView.h +++ b/src/controls/QskListView.h @@ -14,7 +14,8 @@ class QSK_EXPORT QskListView : public QskScrollView Q_OBJECT Q_PROPERTY( bool alternatingRowColors READ alternatingRowColors - WRITE setAlternatingRowColors NOTIFY alternatingRowColorsChanged FINAL ) + WRITE setAlternatingRowColors RESET resetAlternatingRowColors + NOTIFY alternatingRowColorsChanged FINAL ) Q_PROPERTY( SelectionMode selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged FINAL ) @@ -23,7 +24,8 @@ class QSK_EXPORT QskListView : public QskScrollView WRITE setSelectedRow NOTIFY selectedRowChanged FINAL ) Q_PROPERTY( QskTextOptions textOptions READ textOptions - WRITE setTextOptions NOTIFY textOptionsChanged FINAL ) + WRITE setTextOptions RESET resetTextOptions + NOTIFY textOptionsChanged FINAL ) Q_PROPERTY( bool preferredWidthFromColumns READ preferredWidthFromColumns WRITE setPreferredWidthFromColumns NOTIFY preferredWidthFromColumnsChanged() ) @@ -49,12 +51,14 @@ class QSK_EXPORT QskListView : public QskScrollView bool preferredWidthFromColumns() const; void setAlternatingRowColors( bool ); + void resetAlternatingRowColors(); bool alternatingRowColors() const; void setSelectionMode( SelectionMode ); SelectionMode selectionMode() const; void setTextOptions( const QskTextOptions& textOptions ); + void resetTextOptions(); QskTextOptions textOptions() const; Q_INVOKABLE int selectedRow() const;