From 583e27dac6426fcf689cb328bbdf1f06a9478ed5 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 28 Nov 2023 15:39:20 +0100 Subject: [PATCH 01/72] disabling the overlay to work around the clipping problem, when fading in/out --- src/controls/QskMenu.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/controls/QskMenu.cpp b/src/controls/QskMenu.cpp index e3af5707..3d22ce17 100644 --- a/src/controls/QskMenu.cpp +++ b/src/controls/QskMenu.cpp @@ -60,6 +60,13 @@ QskMenu::QskMenu( QQuickItem* parent ) : Inherited( parent ) , m_data( new PrivateData ) { +#if 1 + /* + The overlay is clipped from the drop down fading effect. + Until it is fixed we simply disable it. TODO ... + */ + setOverlay( false ); +#endif setModal( true ); setPopupFlag( QskPopup::CloseOnPressOutside, true ); From e67ee712248701c6acfc49987e67b23f94bbc668 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 28 Nov 2023 15:47:33 +0100 Subject: [PATCH 02/72] qml support for QskGraduationMetrics added --- qmlexport/QskQml.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qmlexport/QskQml.cpp b/qmlexport/QskQml.cpp index b8abaf2a..ea903451 100644 --- a/qmlexport/QskQml.cpp +++ b/qmlexport/QskQml.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -252,6 +253,7 @@ void QskQml::registerTypes() registerGadget< QskBoxBorderMetrics >(); registerGadget< QskBoxShapeMetrics >(); + registerGadget< QskGraduationMetrics >(); registerGadget< QskShadowMetrics >(); registerGadget< QskIntervalF >(); registerGadget< QskLayoutMetrics >(); From c3c9405b659c15a4921725c105af1950efa380b2 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 30 Nov 2023 08:42:51 +0100 Subject: [PATCH 03/72] FocusIndicator, that becomes temporarily visible when using the keyboard. Will become part of QskFocusIndicator later --- examples/gallery/CMakeLists.txt | 1 + examples/gallery/FocusIndicator.cpp | 182 ++++++++++++++++++++++++++++ examples/gallery/FocusIndicator.h | 41 +++++++ examples/gallery/main.cpp | 5 +- 4 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 examples/gallery/FocusIndicator.cpp create mode 100644 examples/gallery/FocusIndicator.h diff --git a/examples/gallery/CMakeLists.txt b/examples/gallery/CMakeLists.txt index e229a560..3de7a2ba 100644 --- a/examples/gallery/CMakeLists.txt +++ b/examples/gallery/CMakeLists.txt @@ -12,6 +12,7 @@ set(SOURCES dialog/DialogPage.h dialog/DialogPage.cpp listbox/ListBoxPage.h listbox/ListBoxPage.cpp Page.h Page.cpp + FocusIndicator.h FocusIndicator.cpp main.cpp ) qt_add_resources(SOURCES icons.qrc) diff --git a/examples/gallery/FocusIndicator.cpp b/examples/gallery/FocusIndicator.cpp new file mode 100644 index 00000000..4b4bed94 --- /dev/null +++ b/examples/gallery/FocusIndicator.cpp @@ -0,0 +1,182 @@ +#include "FocusIndicator.h" + +#include +#include +#include +#include +#include +#include + +#include + +QSK_STATE( FocusIndicator, Concealed, QskAspect::FirstUserState ) + +class FocusIndicator::PrivateData +{ + public: + void restartTimer( FocusIndicator* indicator, int ms ) + { + if( timerId > 0 ) + { + indicator->killTimer( timerId ); + timerId = 0; + } + + if ( ms > 0 ) + timerId = indicator->startTimer( ms ); + } + + const int timeout = 4500; + int timerId = 0; + + bool blockAutoRepeatKeyEvents = false; +}; + +FocusIndicator::FocusIndicator( QQuickItem* parent ) + : Inherited( parent ) + , m_data( new PrivateData() ) +{ + if( window() ) + window()->installEventFilter( this ); +#if 1 + auto colors = boxBorderColorsHint( Panel ); + + setBoxBorderColorsHint( Panel | Concealed, QskRgb::Transparent ); + + setAnimationHint( Panel | QskAspect::Color, 200 ); + setAnimationHint( Panel | QskAspect::Color | Concealed, 500 ); +#endif + + m_data->restartTimer( this, m_data->timeout ); +} + +FocusIndicator::~FocusIndicator() +{ +} + +void FocusIndicator::setConcealed( bool on ) +{ + if ( on == isConcealed() ) + return; + + setSkinStateFlag( Concealed, on ); + + int timeout = 0; + if ( !on ) + timeout = m_data->timeout + animationHint( Panel | QskAspect::Color ).duration; + + m_data->restartTimer( this, timeout ); + + Q_EMIT concealedChanged( on ); +} + +bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) +{ + if( object != window() ) + return Inherited::eventFilter( object, event ); + + switch( static_cast< int >( event->type() ) ) + { + case QEvent::KeyPress: + { + const auto keyEvent = static_cast< QKeyEvent* >( event ); + + if( keyEvent->isAutoRepeat() && m_data->blockAutoRepeatKeyEvents ) + return true; + + if ( qskIsButtonPressKey( keyEvent ) ) + { + if ( isConcealed() ) + { + setConcealed( false ); + return true; + } + + return false; + } + + if( qskFocusChainIncrement( keyEvent ) != 0 ) + { + if ( isConcealed() ) + { + setConcealed( false ); + m_data->blockAutoRepeatKeyEvents = true; + return true; + } + else + { + // extending the timer + m_data->restartTimer( this, m_data->timeout ); + return false; + } + } + + m_data->blockAutoRepeatKeyEvents = false; + + break; + } + + case QEvent::KeyRelease: + { + if( m_data->blockAutoRepeatKeyEvents ) + { + if( !static_cast< QKeyEvent* >( event )->isAutoRepeat() ) + m_data->blockAutoRepeatKeyEvents = false; + + return true; + } + + break; + } + + case QEvent::FocusOut: + { + setConcealed( true ); + break; + } + + case QEvent::FocusIn: + { + setConcealed( false ); + break; + } + } + + return Inherited::eventFilter( object, event ); +} + +void FocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) +{ + Inherited::windowChangeEvent( event ); + + if( event->oldWindow() ) + event->oldWindow()->removeEventFilter( this ); + + if( event->window() ) + event->window()->installEventFilter( this ); +} + +void FocusIndicator::timerEvent( QTimerEvent* event ) +{ + if( event->timerId() == m_data->timerId ) + { + m_data->restartTimer( this, 0 ); + + if ( !isConcealed() ) + { + setSkinStateFlag( Concealed, true ); + Q_EMIT concealedChanged( true ); + } + + return; + } + + Inherited::timerEvent( event ); +} + +bool FocusIndicator::isConcealed() const +{ + return hasSkinState( Concealed ); +} + +#include "moc_FocusIndicator.cpp" diff --git a/examples/gallery/FocusIndicator.h b/examples/gallery/FocusIndicator.h new file mode 100644 index 00000000..40095809 --- /dev/null +++ b/examples/gallery/FocusIndicator.h @@ -0,0 +1,41 @@ +#pragma once + +#include + +/* + A focus indicator, that becomes temporarily visible when using the keyboard + It is intended to move the code to QskFocusIndicator later. + */ +class FocusIndicator : public QskFocusIndicator +{ + Q_OBJECT + + Q_PROPERTY( bool concealed READ isConcealed + WRITE setConcealed NOTIFY concealedChanged ) + + using Inherited = QskFocusIndicator; + + public: + QSK_STATES( Concealed ) + + FocusIndicator( QQuickItem* parent = nullptr ); + ~FocusIndicator() override; + + bool isConcealed() const; + + bool eventFilter( QObject*, QEvent* ) override; + + public Q_SLOTS: + void setConcealed( bool ); + + Q_SIGNALS: + void concealedChanged( bool ); + + protected: + void windowChangeEvent( QskWindowChangeEvent* ) override; + void timerEvent( QTimerEvent* ) override; + + private: + class PrivateData; + std::unique_ptr< PrivateData > m_data; +}; diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index cf2e19c5..18cba4f0 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -3,7 +3,7 @@ * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ -#include "QskLinearBox.h" +#include "FocusIndicator.h" #include "label/LabelPage.h" #include "progressbar/ProgressBarPage.h" #include "inputs/InputPage.h" @@ -16,6 +16,7 @@ #include #include +#include "QskLinearBox.h" #include #include #include @@ -296,7 +297,7 @@ int main( int argc, char* argv[] ) QskWindow window; window.addItem( mainView ); - window.addItem( new QskFocusIndicator() ); + window.addItem( new FocusIndicator() ); window.resize( 800, 600 ); window.show(); From 1dee82c29e8a6d2e77f5d133d2afad2abe568893 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 1 Dec 2023 18:43:31 +0100 Subject: [PATCH 04/72] FocusIndicator improved --- examples/gallery/FocusIndicator.cpp | 199 ++++++++++++++++++---------- examples/gallery/FocusIndicator.h | 27 +++- 2 files changed, 151 insertions(+), 75 deletions(-) diff --git a/examples/gallery/FocusIndicator.cpp b/examples/gallery/FocusIndicator.cpp index 4b4bed94..1f24b798 100644 --- a/examples/gallery/FocusIndicator.cpp +++ b/examples/gallery/FocusIndicator.cpp @@ -7,27 +7,46 @@ #include #include -#include +#include +#include + QSK_STATE( FocusIndicator, Concealed, QskAspect::FirstUserState ) +static inline bool qskIsExposingKeyPress( const QKeyEvent* event ) +{ + // what keys do we want have here ??? + return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event ); +} + +static void qskMaybeExpose( FocusIndicator* indicator, bool on ) +{ + Q_UNUSED( indicator ); + Q_UNUSED( on ); + +#if 0 + if ( on ) + { + if ( auto w = indicator->window() ) + { + if ( w->isExposed() && w->isActive() ) + indicator->setExposed( true ); + } + } + else + { + indicator->setExposed( false ); + } +#endif +} + class FocusIndicator::PrivateData { public: - void restartTimer( FocusIndicator* indicator, int ms ) - { - if( timerId > 0 ) - { - indicator->killTimer( timerId ); - timerId = 0; - } + inline bool isAutoConcealing() const { return timeout > 0; } - if ( ms > 0 ) - timerId = indicator->startTimer( ms ); - } - - const int timeout = 4500; - int timerId = 0; + int timeout = 0; + QBasicTimer concealTimer; bool blockAutoRepeatKeyEvents = false; }; @@ -36,8 +55,6 @@ FocusIndicator::FocusIndicator( QQuickItem* parent ) : Inherited( parent ) , m_data( new PrivateData() ) { - if( window() ) - window()->installEventFilter( this ); #if 1 auto colors = boxBorderColorsHint( Panel ); @@ -47,34 +64,91 @@ FocusIndicator::FocusIndicator( QQuickItem* parent ) setAnimationHint( Panel | QskAspect::Color | Concealed, 500 ); #endif - m_data->restartTimer( this, m_data->timeout ); + setExposedTimeout( 4500 ); } FocusIndicator::~FocusIndicator() { } -void FocusIndicator::setConcealed( bool on ) +void FocusIndicator::setExposedTimeout( int ms ) { - if ( on == isConcealed() ) + ms = std::max( ms, 0 ); + if ( ms == m_data->timeout ) return; - setSkinStateFlag( Concealed, on ); + m_data->timeout = ms; - int timeout = 0; - if ( !on ) - timeout = m_data->timeout + animationHint( Panel | QskAspect::Color ).duration; + if ( m_data->isAutoConcealing() ) + { + if ( auto w = window() ) + w->installEventFilter( this ); - m_data->restartTimer( this, timeout ); + if ( isExposed() ) + { + if ( isInitiallyPainted() ) + m_data->concealTimer.start( m_data->timeout, this ); + else + setExposed( false ); + } + } + else + { + if ( auto w = window() ) + w->removeEventFilter( this ); - Q_EMIT concealedChanged( on ); + setExposed( true ); + } + + Q_EMIT exposedTimeoutChanged( ms ); +} + +int FocusIndicator::exposedTimeout() const +{ + return m_data->timeout; +} + +void FocusIndicator::setExposed( bool on ) +{ + if ( on == isExposed() ) + return; + + setSkinStateFlag( Concealed, !on ); + + if ( m_data->isAutoConcealing() ) + { + if ( on ) + { + const auto hint = animationHint( Panel | QskAspect::Color ); + m_data->concealTimer.start( m_data->timeout + hint.duration, this ); + } + else + { + m_data->concealTimer.stop(); + } + } + + Q_EMIT exposedChanged( on ); } bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) { - if( object != window() ) + if( ( object != window() ) || !m_data->isAutoConcealing() ) return Inherited::eventFilter( object, event ); + switch( static_cast< int >( event->type() ) ) + { + case QEvent::KeyPress: + case QEvent::KeyRelease: + case QEvent::ShortcutOverride: + if ( m_data->concealTimer.isActive() ) + { + // renew the exposed period + m_data->concealTimer.start( m_data->timeout, this ); + } + break; + } + switch( static_cast< int >( event->type() ) ) { case QEvent::KeyPress: @@ -82,37 +156,22 @@ bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) const auto keyEvent = static_cast< QKeyEvent* >( event ); if( keyEvent->isAutoRepeat() && m_data->blockAutoRepeatKeyEvents ) - return true; - - if ( qskIsButtonPressKey( keyEvent ) ) { - if ( isConcealed() ) - { - setConcealed( false ); - return true; - } - - return false; + /* + We swallow all auto repeated events to avoid running along + the tab chain by accident. + */ + return true; } - if( qskFocusChainIncrement( keyEvent ) != 0 ) + if ( !isExposed() && qskIsExposingKeyPress( keyEvent ) ) { - if ( isConcealed() ) - { - setConcealed( false ); - m_data->blockAutoRepeatKeyEvents = true; - return true; - } - else - { - // extending the timer - m_data->restartTimer( this, m_data->timeout ); - return false; - } + setExposed( true ); + m_data->blockAutoRepeatKeyEvents = true; + return true; } m_data->blockAutoRepeatKeyEvents = false; - break; } @@ -129,15 +188,11 @@ bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) break; } + case QEvent::Expose: + case QEvent::FocusIn: case QEvent::FocusOut: { - setConcealed( true ); - break; - } - - case QEvent::FocusIn: - { - setConcealed( false ); + qskMaybeExpose( this, event->type() != QEvent::FocusOut ); break; } } @@ -149,34 +204,36 @@ void FocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) { Inherited::windowChangeEvent( event ); - if( event->oldWindow() ) - event->oldWindow()->removeEventFilter( this ); + if ( m_data->isAutoConcealing() ) + { + if ( auto w = event->oldWindow() ) + w->removeEventFilter( this ); - if( event->window() ) - event->window()->installEventFilter( this ); + if( auto w = event->window() ) + { + w->installEventFilter( this ); + qskMaybeExpose( this, true ); + } + } } void FocusIndicator::timerEvent( QTimerEvent* event ) { - if( event->timerId() == m_data->timerId ) + if ( m_data->isAutoConcealing() ) { - m_data->restartTimer( this, 0 ); - - if ( !isConcealed() ) + if( event->timerId() == m_data->concealTimer.timerId() ) { - setSkinStateFlag( Concealed, true ); - Q_EMIT concealedChanged( true ); + setExposed( false ); + return; } - - return; } Inherited::timerEvent( event ); } -bool FocusIndicator::isConcealed() const +bool FocusIndicator::isExposed() const { - return hasSkinState( Concealed ); + return !hasSkinState( Concealed ); } #include "moc_FocusIndicator.cpp" diff --git a/examples/gallery/FocusIndicator.h b/examples/gallery/FocusIndicator.h index 40095809..718845bb 100644 --- a/examples/gallery/FocusIndicator.h +++ b/examples/gallery/FocusIndicator.h @@ -10,8 +10,11 @@ class FocusIndicator : public QskFocusIndicator { Q_OBJECT - Q_PROPERTY( bool concealed READ isConcealed - WRITE setConcealed NOTIFY concealedChanged ) + Q_PROPERTY( bool exposed READ isExposed + WRITE setExposed NOTIFY exposedChanged ) + + Q_PROPERTY( int exposedTimeout READ exposedTimeout + WRITE setExposedTimeout NOTIFY exposedTimeoutChanged ) using Inherited = QskFocusIndicator; @@ -21,15 +24,21 @@ class FocusIndicator : public QskFocusIndicator FocusIndicator( QQuickItem* parent = nullptr ); ~FocusIndicator() override; + bool isExposed() const; bool isConcealed() const; bool eventFilter( QObject*, QEvent* ) override; + void setExposedTimeout( int ms ); + int exposedTimeout() const; + public Q_SLOTS: - void setConcealed( bool ); + void setExposed( bool = true ); + void setConcealed( bool = true ); Q_SIGNALS: - void concealedChanged( bool ); + void exposedChanged( bool ); + void exposedTimeoutChanged( int ); protected: void windowChangeEvent( QskWindowChangeEvent* ) override; @@ -39,3 +48,13 @@ class FocusIndicator : public QskFocusIndicator class PrivateData; std::unique_ptr< PrivateData > m_data; }; + +inline void FocusIndicator::setConcealed( bool on ) +{ + setExposed( !on ); +} + +inline bool FocusIndicator::isConcealed() const +{ + return !isExposed(); +} From 6fa8cd9dc314533f02ffb8a893abf59e8cca8589 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 2 Dec 2023 12:05:44 +0100 Subject: [PATCH 05/72] QskFocusIndicator using enabled/disabled isntead of Exposed/Concealed --- examples/gallery/FocusIndicator.cpp | 137 ++++++++++++---------------- examples/gallery/FocusIndicator.h | 40 ++------ skins/fluent2/QskFluent2Skin.cpp | 11 ++- skins/squiek/QskSquiekSkin.cpp | 7 ++ 4 files changed, 83 insertions(+), 112 deletions(-) diff --git a/examples/gallery/FocusIndicator.cpp b/examples/gallery/FocusIndicator.cpp index 1f24b798..16c6565c 100644 --- a/examples/gallery/FocusIndicator.cpp +++ b/examples/gallery/FocusIndicator.cpp @@ -2,51 +2,24 @@ #include #include -#include -#include -#include -#include #include #include - -QSK_STATE( FocusIndicator, Concealed, QskAspect::FirstUserState ) - -static inline bool qskIsExposingKeyPress( const QKeyEvent* event ) +static inline bool qskIsEnablingKey( const QKeyEvent* event ) { // what keys do we want have here ??? return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event ); } -static void qskMaybeExpose( FocusIndicator* indicator, bool on ) -{ - Q_UNUSED( indicator ); - Q_UNUSED( on ); - -#if 0 - if ( on ) - { - if ( auto w = indicator->window() ) - { - if ( w->isExposed() && w->isActive() ) - indicator->setExposed( true ); - } - } - else - { - indicator->setExposed( false ); - } -#endif -} - class FocusIndicator::PrivateData { public: - inline bool isAutoConcealing() const { return timeout > 0; } + inline bool isAutoDisabling() const { return duration > 0; } + inline bool isAutoEnabling() const { return false; } - int timeout = 0; - QBasicTimer concealTimer; + int duration = 0; + QBasicTimer timer; bool blockAutoRepeatKeyEvents = false; }; @@ -55,85 +28,94 @@ FocusIndicator::FocusIndicator( QQuickItem* parent ) : Inherited( parent ) , m_data( new PrivateData() ) { -#if 1 - auto colors = boxBorderColorsHint( Panel ); - - setBoxBorderColorsHint( Panel | Concealed, QskRgb::Transparent ); - - setAnimationHint( Panel | QskAspect::Color, 200 ); - setAnimationHint( Panel | QskAspect::Color | Concealed, 500 ); -#endif - - setExposedTimeout( 4500 ); + setDuration( 4500 ); } FocusIndicator::~FocusIndicator() { } -void FocusIndicator::setExposedTimeout( int ms ) +void FocusIndicator::setDuration( int ms ) { ms = std::max( ms, 0 ); - if ( ms == m_data->timeout ) + if ( ms == m_data->duration ) return; - m_data->timeout = ms; + m_data->duration = ms; - if ( m_data->isAutoConcealing() ) + if ( m_data->isAutoDisabling() ) { if ( auto w = window() ) w->installEventFilter( this ); - if ( isExposed() ) + if ( isEnabled() ) { if ( isInitiallyPainted() ) - m_data->concealTimer.start( m_data->timeout, this ); + m_data->timer.start( m_data->duration, this ); else - setExposed( false ); + setEnabled( false ); } + + connect( this, &QQuickItem::enabledChanged, + this, &FocusIndicator::resetTimer ); } else { if ( auto w = window() ) w->removeEventFilter( this ); - setExposed( true ); + setEnabled( true ); + + disconnect( this, &QQuickItem::enabledChanged, + this, &FocusIndicator::resetTimer ); } - Q_EMIT exposedTimeoutChanged( ms ); + Q_EMIT durationChanged( ms ); } -int FocusIndicator::exposedTimeout() const +int FocusIndicator::duration() const { - return m_data->timeout; + return m_data->duration; } -void FocusIndicator::setExposed( bool on ) +void FocusIndicator::maybeEnable( bool on ) { - if ( on == isExposed() ) + if ( !m_data->isAutoEnabling() ) return; - setSkinStateFlag( Concealed, !on ); - - if ( m_data->isAutoConcealing() ) + if ( on ) { - if ( on ) + if ( auto w = window() ) + { + if ( w->isExposed() && w->isActive() ) + setEnabled( true ); + } + } + else + { + setEnabled( false ); + } +} + +void FocusIndicator::resetTimer() +{ + if ( m_data->isAutoDisabling() ) + { + if ( isEnabled() ) { const auto hint = animationHint( Panel | QskAspect::Color ); - m_data->concealTimer.start( m_data->timeout + hint.duration, this ); + m_data->timer.start( m_data->duration + hint.duration, this ); } else { - m_data->concealTimer.stop(); + m_data->timer.stop(); } } - - Q_EMIT exposedChanged( on ); } bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) { - if( ( object != window() ) || !m_data->isAutoConcealing() ) + if( ( object != window() ) || !m_data->isAutoDisabling() ) return Inherited::eventFilter( object, event ); switch( static_cast< int >( event->type() ) ) @@ -141,12 +123,14 @@ bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::ShortcutOverride: - if ( m_data->concealTimer.isActive() ) + { + if ( m_data->timer.isActive() ) { // renew the exposed period - m_data->concealTimer.start( m_data->timeout, this ); + m_data->timer.start( m_data->duration, this ); } break; + } } switch( static_cast< int >( event->type() ) ) @@ -164,9 +148,9 @@ bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) return true; } - if ( !isExposed() && qskIsExposingKeyPress( keyEvent ) ) + if ( !isEnabled() && qskIsEnablingKey( keyEvent ) ) { - setExposed( true ); + setEnabled( true ); m_data->blockAutoRepeatKeyEvents = true; return true; } @@ -192,7 +176,7 @@ bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) case QEvent::FocusIn: case QEvent::FocusOut: { - qskMaybeExpose( this, event->type() != QEvent::FocusOut ); + maybeEnable( event->type() != QEvent::FocusOut ); break; } } @@ -204,7 +188,7 @@ void FocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) { Inherited::windowChangeEvent( event ); - if ( m_data->isAutoConcealing() ) + if ( m_data->isAutoDisabling() ) { if ( auto w = event->oldWindow() ) w->removeEventFilter( this ); @@ -212,18 +196,18 @@ void FocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) if( auto w = event->window() ) { w->installEventFilter( this ); - qskMaybeExpose( this, true ); + maybeEnable( true ); } } } void FocusIndicator::timerEvent( QTimerEvent* event ) { - if ( m_data->isAutoConcealing() ) + if ( m_data->isAutoDisabling() ) { - if( event->timerId() == m_data->concealTimer.timerId() ) + if( event->timerId() == m_data->timer.timerId() ) { - setExposed( false ); + setEnabled( false ); return; } } @@ -231,9 +215,4 @@ void FocusIndicator::timerEvent( QTimerEvent* event ) Inherited::timerEvent( event ); } -bool FocusIndicator::isExposed() const -{ - return !hasSkinState( Concealed ); -} - #include "moc_FocusIndicator.cpp" diff --git a/examples/gallery/FocusIndicator.h b/examples/gallery/FocusIndicator.h index 718845bb..6a0238f8 100644 --- a/examples/gallery/FocusIndicator.h +++ b/examples/gallery/FocusIndicator.h @@ -2,59 +2,35 @@ #include -/* - A focus indicator, that becomes temporarily visible when using the keyboard - It is intended to move the code to QskFocusIndicator later. - */ class FocusIndicator : public QskFocusIndicator { Q_OBJECT - Q_PROPERTY( bool exposed READ isExposed - WRITE setExposed NOTIFY exposedChanged ) - - Q_PROPERTY( int exposedTimeout READ exposedTimeout - WRITE setExposedTimeout NOTIFY exposedTimeoutChanged ) + Q_PROPERTY( int duration READ duration + WRITE setDuration NOTIFY durationChanged ) using Inherited = QskFocusIndicator; public: - QSK_STATES( Concealed ) - FocusIndicator( QQuickItem* parent = nullptr ); ~FocusIndicator() override; - bool isExposed() const; - bool isConcealed() const; - bool eventFilter( QObject*, QEvent* ) override; - void setExposedTimeout( int ms ); - int exposedTimeout() const; - - public Q_SLOTS: - void setExposed( bool = true ); - void setConcealed( bool = true ); + void setDuration( int ms ); + int duration() const; Q_SIGNALS: - void exposedChanged( bool ); - void exposedTimeoutChanged( int ); + void durationChanged( int ); protected: void windowChangeEvent( QskWindowChangeEvent* ) override; void timerEvent( QTimerEvent* ) override; private: + void resetTimer(); + void maybeEnable( bool ); + class PrivateData; std::unique_ptr< PrivateData > m_data; }; - -inline void FocusIndicator::setConcealed( bool on ) -{ - setExposed( !on ); -} - -inline bool FocusIndicator::isConcealed() const -{ - return !isExposed(); -} diff --git a/skins/fluent2/QskFluent2Skin.cpp b/skins/fluent2/QskFluent2Skin.cpp index 4f5de05d..0e42ef5f 100644 --- a/skins/fluent2/QskFluent2Skin.cpp +++ b/skins/fluent2/QskFluent2Skin.cpp @@ -646,9 +646,18 @@ void Editor::setupFocusIndicatorColors( QskAspect::Section section, const QskFluent2Theme& theme ) { using Q = QskFocusIndicator; + using A = QskAspect; + const auto& pal = theme.palette; - setBoxBorderColors( Q::Panel | section, pal.strokeColor.focus.outer ); + const auto aspect = Q::Panel | section; + const auto color = pal.strokeColor.focus.outer; + + setBoxBorderColors( aspect, color ); + setBoxBorderColors( aspect | Q::Disabled, QskRgb::toTransparent( color, 0 ) ); + + setAnimation( Q::Panel | A::Color, 200 ); + setAnimation( Q::Panel | A::Color | Q::Disabled, 500 ); } void Editor::setupListViewMetrics() diff --git a/skins/squiek/QskSquiekSkin.cpp b/skins/squiek/QskSquiekSkin.cpp index 19530b32..abcdac21 100644 --- a/skins/squiek/QskSquiekSkin.cpp +++ b/skins/squiek/QskSquiekSkin.cpp @@ -555,12 +555,19 @@ void Editor::setupProgressRing() void Editor::setupFocusIndicator() { using Q = QskFocusIndicator; + using A = QskAspect; setPadding( Q::Panel, 5 ); setBoxBorderMetrics( Q::Panel, 2 ); setBoxShape( Q::Panel, 4 ); setGradient( Q::Panel, Qt::transparent ); + setBoxBorderColors( Q::Panel, m_pal.highlighted ); + setBoxBorderColors( Q::Panel | Q::Disabled, + QskRgb::toTransparent( m_pal.highlighted, 0 ) ); + + setAnimation( Q::Panel | A::Color, 200 ); + setAnimation( Q::Panel | A::Color | Q::Disabled, 500 ); } void Editor::setupSeparator() From 24191833977d69d40e140f9b3c042e718b2205ad Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 2 Dec 2023 12:48:20 +0100 Subject: [PATCH 06/72] QskFocusIndicator::duration introduced --- examples/gallery/CMakeLists.txt | 1 - examples/gallery/FocusIndicator.cpp | 218 ---------------------------- examples/gallery/FocusIndicator.h | 36 ----- examples/gallery/main.cpp | 3 +- src/controls/QskFocusIndicator.cpp | 193 ++++++++++++++++++++++++ src/controls/QskFocusIndicator.h | 20 +++ 6 files changed, 214 insertions(+), 257 deletions(-) delete mode 100644 examples/gallery/FocusIndicator.cpp delete mode 100644 examples/gallery/FocusIndicator.h diff --git a/examples/gallery/CMakeLists.txt b/examples/gallery/CMakeLists.txt index 3de7a2ba..e229a560 100644 --- a/examples/gallery/CMakeLists.txt +++ b/examples/gallery/CMakeLists.txt @@ -12,7 +12,6 @@ set(SOURCES dialog/DialogPage.h dialog/DialogPage.cpp listbox/ListBoxPage.h listbox/ListBoxPage.cpp Page.h Page.cpp - FocusIndicator.h FocusIndicator.cpp main.cpp ) qt_add_resources(SOURCES icons.qrc) diff --git a/examples/gallery/FocusIndicator.cpp b/examples/gallery/FocusIndicator.cpp deleted file mode 100644 index 16c6565c..00000000 --- a/examples/gallery/FocusIndicator.cpp +++ /dev/null @@ -1,218 +0,0 @@ -#include "FocusIndicator.h" - -#include -#include - -#include -#include - -static inline bool qskIsEnablingKey( const QKeyEvent* event ) -{ - // what keys do we want have here ??? - return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event ); -} - -class FocusIndicator::PrivateData -{ - public: - inline bool isAutoDisabling() const { return duration > 0; } - inline bool isAutoEnabling() const { return false; } - - int duration = 0; - QBasicTimer timer; - - bool blockAutoRepeatKeyEvents = false; -}; - -FocusIndicator::FocusIndicator( QQuickItem* parent ) - : Inherited( parent ) - , m_data( new PrivateData() ) -{ - setDuration( 4500 ); -} - -FocusIndicator::~FocusIndicator() -{ -} - -void FocusIndicator::setDuration( int ms ) -{ - ms = std::max( ms, 0 ); - if ( ms == m_data->duration ) - return; - - m_data->duration = ms; - - if ( m_data->isAutoDisabling() ) - { - if ( auto w = window() ) - w->installEventFilter( this ); - - if ( isEnabled() ) - { - if ( isInitiallyPainted() ) - m_data->timer.start( m_data->duration, this ); - else - setEnabled( false ); - } - - connect( this, &QQuickItem::enabledChanged, - this, &FocusIndicator::resetTimer ); - } - else - { - if ( auto w = window() ) - w->removeEventFilter( this ); - - setEnabled( true ); - - disconnect( this, &QQuickItem::enabledChanged, - this, &FocusIndicator::resetTimer ); - } - - Q_EMIT durationChanged( ms ); -} - -int FocusIndicator::duration() const -{ - return m_data->duration; -} - -void FocusIndicator::maybeEnable( bool on ) -{ - if ( !m_data->isAutoEnabling() ) - return; - - if ( on ) - { - if ( auto w = window() ) - { - if ( w->isExposed() && w->isActive() ) - setEnabled( true ); - } - } - else - { - setEnabled( false ); - } -} - -void FocusIndicator::resetTimer() -{ - if ( m_data->isAutoDisabling() ) - { - if ( isEnabled() ) - { - const auto hint = animationHint( Panel | QskAspect::Color ); - m_data->timer.start( m_data->duration + hint.duration, this ); - } - else - { - m_data->timer.stop(); - } - } -} - -bool FocusIndicator::eventFilter( QObject* object, QEvent* event ) -{ - if( ( object != window() ) || !m_data->isAutoDisabling() ) - return Inherited::eventFilter( object, event ); - - switch( static_cast< int >( event->type() ) ) - { - case QEvent::KeyPress: - case QEvent::KeyRelease: - case QEvent::ShortcutOverride: - { - if ( m_data->timer.isActive() ) - { - // renew the exposed period - m_data->timer.start( m_data->duration, this ); - } - break; - } - } - - switch( static_cast< int >( event->type() ) ) - { - case QEvent::KeyPress: - { - const auto keyEvent = static_cast< QKeyEvent* >( event ); - - if( keyEvent->isAutoRepeat() && m_data->blockAutoRepeatKeyEvents ) - { - /* - We swallow all auto repeated events to avoid running along - the tab chain by accident. - */ - return true; - } - - if ( !isEnabled() && qskIsEnablingKey( keyEvent ) ) - { - setEnabled( true ); - m_data->blockAutoRepeatKeyEvents = true; - return true; - } - - m_data->blockAutoRepeatKeyEvents = false; - break; - } - - case QEvent::KeyRelease: - { - if( m_data->blockAutoRepeatKeyEvents ) - { - if( !static_cast< QKeyEvent* >( event )->isAutoRepeat() ) - m_data->blockAutoRepeatKeyEvents = false; - - return true; - } - - break; - } - - case QEvent::Expose: - case QEvent::FocusIn: - case QEvent::FocusOut: - { - maybeEnable( event->type() != QEvent::FocusOut ); - break; - } - } - - return Inherited::eventFilter( object, event ); -} - -void FocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) -{ - Inherited::windowChangeEvent( event ); - - if ( m_data->isAutoDisabling() ) - { - if ( auto w = event->oldWindow() ) - w->removeEventFilter( this ); - - if( auto w = event->window() ) - { - w->installEventFilter( this ); - maybeEnable( true ); - } - } -} - -void FocusIndicator::timerEvent( QTimerEvent* event ) -{ - if ( m_data->isAutoDisabling() ) - { - if( event->timerId() == m_data->timer.timerId() ) - { - setEnabled( false ); - return; - } - } - - Inherited::timerEvent( event ); -} - -#include "moc_FocusIndicator.cpp" diff --git a/examples/gallery/FocusIndicator.h b/examples/gallery/FocusIndicator.h deleted file mode 100644 index 6a0238f8..00000000 --- a/examples/gallery/FocusIndicator.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include - -class FocusIndicator : public QskFocusIndicator -{ - Q_OBJECT - - Q_PROPERTY( int duration READ duration - WRITE setDuration NOTIFY durationChanged ) - - using Inherited = QskFocusIndicator; - - public: - FocusIndicator( QQuickItem* parent = nullptr ); - ~FocusIndicator() override; - - bool eventFilter( QObject*, QEvent* ) override; - - void setDuration( int ms ); - int duration() const; - - Q_SIGNALS: - void durationChanged( int ); - - protected: - void windowChangeEvent( QskWindowChangeEvent* ) override; - void timerEvent( QTimerEvent* ) override; - - private: - void resetTimer(); - void maybeEnable( bool ); - - class PrivateData; - std::unique_ptr< PrivateData > m_data; -}; diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index 18cba4f0..6861c778 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -3,7 +3,6 @@ * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ -#include "FocusIndicator.h" #include "label/LabelPage.h" #include "progressbar/ProgressBarPage.h" #include "inputs/InputPage.h" @@ -297,7 +296,7 @@ int main( int argc, char* argv[] ) QskWindow window; window.addItem( mainView ); - window.addItem( new FocusIndicator() ); + window.addItem( new QskFocusIndicator() ); window.resize( 800, 600 ); window.show(); diff --git a/src/controls/QskFocusIndicator.cpp b/src/controls/QskFocusIndicator.cpp index 34380e34..8051de8b 100644 --- a/src/controls/QskFocusIndicator.cpp +++ b/src/controls/QskFocusIndicator.cpp @@ -5,11 +5,13 @@ #include "QskFocusIndicator.h" #include "QskAspect.h" +#include "QskAnimationHint.h" #include "QskEvent.h" #include "QskQuick.h" #include #include +#include QSK_QT_PRIVATE_BEGIN #include @@ -52,6 +54,12 @@ static inline QskAspect::Section qskItemSection( const QQuickItem* item ) return QskAspect::Body; } +static inline bool qskIsEnablingKey( const QKeyEvent* event ) +{ + // what keys do we want have here ??? + return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event ); +} + class QskFocusIndicator::PrivateData { public: @@ -63,8 +71,16 @@ class QskFocusIndicator::PrivateData connections.clear(); } + inline bool isAutoDisabling() const { return duration > 0; } + inline bool isAutoEnabling() const { return false; } + QPointer< QQuickItem > clippingItem; QVector< QMetaObject::Connection > connections; + + int duration = 0; + QBasicTimer timer; + + bool blockAutoRepeatKeyEvents = false; }; QskFocusIndicator::QskFocusIndicator( QQuickItem* parent ) @@ -73,12 +89,177 @@ QskFocusIndicator::QskFocusIndicator( QQuickItem* parent ) { setPlacementPolicy( QskPlacementPolicy::Ignore ); connectWindow( window(), true ); + + setDuration( 4500 ); } QskFocusIndicator::~QskFocusIndicator() { } +void QskFocusIndicator::setDuration( int ms ) +{ + ms = std::max( ms, 0 ); + if ( ms == m_data->duration ) + return; + + m_data->duration = ms; + + if ( m_data->isAutoDisabling() ) + { + if ( auto w = window() ) + w->installEventFilter( this ); + + if ( isEnabled() ) + { + if ( isInitiallyPainted() ) + m_data->timer.start( m_data->duration, this ); + else + setEnabled( false ); + } + + connect( this, &QQuickItem::enabledChanged, + this, &QskFocusIndicator::resetTimer ); + } + else + { + if ( auto w = window() ) + w->removeEventFilter( this ); + + setEnabled( true ); + + disconnect( this, &QQuickItem::enabledChanged, + this, &QskFocusIndicator::resetTimer ); + } + + Q_EMIT durationChanged( ms ); +} + +int QskFocusIndicator::duration() const +{ + return m_data->duration; +} + +void QskFocusIndicator::maybeEnable( bool on ) +{ + if ( !m_data->isAutoEnabling() ) + return; + + if ( on ) + { + if ( auto w = window() ) + { + if ( w->isExposed() && w->isActive() ) + setEnabled( true ); + } + } + else + { + setEnabled( false ); + } +} + +void QskFocusIndicator::resetTimer() +{ + if ( m_data->isAutoDisabling() ) + { + if ( isEnabled() ) + { + const auto hint = animationHint( Panel | QskAspect::Color ); + m_data->timer.start( m_data->duration + hint.duration, this ); + } + else + { + m_data->timer.stop(); + } + } +} + +bool QskFocusIndicator::eventFilter( QObject* object, QEvent* event ) +{ + if( ( object != window() ) || !m_data->isAutoDisabling() ) + return Inherited::eventFilter( object, event ); + + switch( static_cast< int >( event->type() ) ) + { + case QEvent::KeyPress: + case QEvent::KeyRelease: + case QEvent::ShortcutOverride: + { + if ( m_data->timer.isActive() ) + { + // renew the exposed period + m_data->timer.start( m_data->duration, this ); + } + break; + } + } + + switch( static_cast< int >( event->type() ) ) + { + case QEvent::KeyPress: + { + const auto keyEvent = static_cast< QKeyEvent* >( event ); + + if( keyEvent->isAutoRepeat() && m_data->blockAutoRepeatKeyEvents ) + { + /* + We swallow all auto repeated events to avoid running along + the tab chain by accident. + */ + return true; + } + + if ( !isEnabled() && qskIsEnablingKey( keyEvent ) ) + { + setEnabled( true ); + m_data->blockAutoRepeatKeyEvents = true; + return true; + } + + m_data->blockAutoRepeatKeyEvents = false; + break; + } + + case QEvent::KeyRelease: + { + if( m_data->blockAutoRepeatKeyEvents ) + { + if( !static_cast< QKeyEvent* >( event )->isAutoRepeat() ) + m_data->blockAutoRepeatKeyEvents = false; + + return true; + } + + break; + } + + case QEvent::Expose: + case QEvent::FocusIn: + case QEvent::FocusOut: + { + maybeEnable( event->type() != QEvent::FocusOut ); + break; + } + } + + return Inherited::eventFilter( object, event ); +} + +void QskFocusIndicator::timerEvent( QTimerEvent* event ) +{ + if ( m_data->isAutoDisabling() ) + { + if( event->timerId() == m_data->timer.timerId() ) + { + setEnabled( false ); + return; + } + } + + Inherited::timerEvent( event ); +} + bool QskFocusIndicator::contains( const QPointF& ) const { // so that tools like Squish do not see it @@ -213,6 +394,18 @@ void QskFocusIndicator::windowChangeEvent( QskWindowChangeEvent* event ) connectWindow( event->window(), true ); onFocusItemChanged(); + + if ( m_data->isAutoDisabling() ) + { + if ( auto w = event->oldWindow() ) + w->removeEventFilter( this ); + + if( auto w = event->window() ) + { + w->installEventFilter( this ); + maybeEnable( true ); + } + } } void QskFocusIndicator::connectWindow( const QQuickWindow* window, bool on ) diff --git a/src/controls/QskFocusIndicator.h b/src/controls/QskFocusIndicator.h index 7c783d9e..63241aab 100644 --- a/src/controls/QskFocusIndicator.h +++ b/src/controls/QskFocusIndicator.h @@ -14,17 +14,34 @@ class QSK_EXPORT QskFocusIndicator : public QskControl using Inherited = QskControl; + Q_PROPERTY( int duration READ duration + WRITE setDuration NOTIFY durationChanged ) + public: QSK_SUBCONTROLS( Panel ) QskFocusIndicator( QQuickItem* parent = nullptr ); ~QskFocusIndicator() override; + /* + duration until the indicator goes into disabled state after being enabled. + A duration of 0 disables automatic state changes. + */ + void setDuration( int ms ); + int duration() const; + bool contains( const QPointF& ) const override; QRectF clipRect() const override; + bool eventFilter( QObject*, QEvent* ) override; + + Q_SIGNALS: + void durationChanged( int ); + protected: void windowChangeEvent( QskWindowChangeEvent* ) override; + void timerEvent( QTimerEvent* ) override; + virtual QRectF focusRect() const; void updateFocusFrame(); @@ -35,6 +52,9 @@ class QSK_EXPORT QskFocusIndicator : public QskControl void onFocusItemChanged(); void onFocusItemDestroyed(); + void resetTimer(); + void maybeEnable( bool ); + void connectWindow( const QQuickWindow*, bool on ); QVector< QMetaObject::Connection > connectItem( const QQuickItem* ); From c58a86130a1d2793b258c55ec0ea530debe79a1d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 5 Dec 2023 16:54:08 +0100 Subject: [PATCH 07/72] wring pen check fixed --- src/nodes/QskStrokeNode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nodes/QskStrokeNode.cpp b/src/nodes/QskStrokeNode.cpp index 29907b8e..baaa811a 100644 --- a/src/nodes/QskStrokeNode.cpp +++ b/src/nodes/QskStrokeNode.cpp @@ -24,7 +24,7 @@ static inline bool qskIsPenVisible( const QPen& pen ) } else { - if ( pen.color().isValid() || ( pen.color().alpha() == 0 ) ) + if ( !pen.color().isValid() || ( pen.color().alpha() == 0 ) ) return false; } From 5e5dd7a61c3f6777ad7f38b8a2d5cb848a47f0d1 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 13 Dec 2023 18:14:47 +0100 Subject: [PATCH 08/72] doing a fuzzy compare to avoid line duplication --- src/nodes/QskBoxGradientStroker.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/nodes/QskBoxGradientStroker.cpp b/src/nodes/QskBoxGradientStroker.cpp index 2c90859c..3be3c983 100644 --- a/src/nodes/QskBoxGradientStroker.cpp +++ b/src/nodes/QskBoxGradientStroker.cpp @@ -106,7 +106,8 @@ namespace { while ( !m_gradientIterator.isDone() ) { - if ( m_t0 + m_gradientIterator.position() * m_dt > pos ) + const auto pos2 = m_t0 + m_gradientIterator.position() * m_dt; + if ( pos2 > pos && !qFuzzyIsNull( pos2 - pos ) ) return; m_gradientIterator.advance(); From 1e3e1f83de11b487f3740cf95f0e714b6319ece7 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 17 Dec 2023 17:18:35 +0100 Subject: [PATCH 09/72] QskBox namespace renamed to QskBoxRenderer to avoid name clashes with QskBox from QskBox.h --- playground/gradients/GradientView.cpp | 2 +- src/nodes/QskBoxBasicStroker.cpp | 9 +++++---- src/nodes/QskBoxBasicStroker.h | 4 ++-- src/nodes/QskBoxClipNode.cpp | 2 +- src/nodes/QskBoxColorMap.h | 2 +- src/nodes/QskBoxFillNode.cpp | 3 ++- src/nodes/QskBoxGradientStroker.cpp | 6 +++--- src/nodes/QskBoxNode.cpp | 2 +- src/nodes/QskBoxRectangleNode.cpp | 6 +++--- src/nodes/QskBoxRenderer.cpp | 16 ++++++++-------- src/nodes/QskBoxRenderer.h | 2 +- src/nodes/QskRectangleNode.cpp | 6 +++--- 12 files changed, 31 insertions(+), 29 deletions(-) diff --git a/playground/gradients/GradientView.cpp b/playground/gradients/GradientView.cpp index b16a0b41..3d969069 100644 --- a/playground/gradients/GradientView.cpp +++ b/playground/gradients/GradientView.cpp @@ -170,7 +170,7 @@ QSGNode* GradientView::updatePaintNode( QskBoxShapeMetrics shape; shape.setRadius( 80 ); - if ( !QskBox::isGradientSupported( shape, m_gradient ) ) + if ( !QskBoxRenderer::isGradientSupported( shape, m_gradient ) ) { delete oldNode; return nullptr; diff --git a/src/nodes/QskBoxBasicStroker.cpp b/src/nodes/QskBoxBasicStroker.cpp index 6a034f3c..b6442179 100644 --- a/src/nodes/QskBoxBasicStroker.cpp +++ b/src/nodes/QskBoxBasicStroker.cpp @@ -143,7 +143,8 @@ namespace class FillMap { public: - inline FillMap( const QskBoxMetrics& metrics, const QskBox::ColorMap& colorMap ) + inline FillMap( const QskBoxMetrics& metrics, + const QskBoxRenderer::ColorMap& colorMap ) : m_colorMap( colorMap ) , m_corners( metrics.corners ) { @@ -183,7 +184,7 @@ namespace m_colorMap.setLine( x1, y1, x2, y2, line ); } - const QskBox::ColorMap& m_colorMap; + const QskBoxRenderer::ColorMap& m_colorMap; const QskBoxMetrics::Corner* m_corners; }; } @@ -378,12 +379,12 @@ QskBoxBasicStroker::QskBoxBasicStroker( const QskBoxMetrics& metrics ) QskBoxBasicStroker::QskBoxBasicStroker( const QskBoxMetrics& metrics, const QskBoxBorderColors& borderColors ) - : QskBoxBasicStroker( metrics, borderColors, QskBox::ColorMap() ) + : QskBoxBasicStroker( metrics, borderColors, QskBoxRenderer::ColorMap() ) { } QskBoxBasicStroker::QskBoxBasicStroker( const QskBoxMetrics& metrics, - const QskBoxBorderColors& borderColors, const QskBox::ColorMap& colorMap ) + const QskBoxBorderColors& borderColors, const QskBoxRenderer::ColorMap& colorMap ) : m_metrics( metrics ) , m_borderColors( borderColors ) , m_colorMap( colorMap ) diff --git a/src/nodes/QskBoxBasicStroker.h b/src/nodes/QskBoxBasicStroker.h index aa6c5005..79ee62cd 100644 --- a/src/nodes/QskBoxBasicStroker.h +++ b/src/nodes/QskBoxBasicStroker.h @@ -25,7 +25,7 @@ class QskBoxBasicStroker QskBoxBasicStroker( const QskBoxMetrics& ); QskBoxBasicStroker( const QskBoxMetrics&, const QskBoxBorderColors& ); QskBoxBasicStroker( const QskBoxMetrics&, - const QskBoxBorderColors&, const QskBox::ColorMap& ); + const QskBoxBorderColors&, const QskBoxRenderer::ColorMap& ); int fillCount() const; int borderCount() const; @@ -78,7 +78,7 @@ class QskBoxBasicStroker const QskBoxMetrics& m_metrics; const QskBoxBorderColors m_borderColors; - const QskBox::ColorMap m_colorMap; + const QskBoxRenderer::ColorMap m_colorMap; const GeometryLayout m_geometryLayout; const bool m_isColored; diff --git a/src/nodes/QskBoxClipNode.cpp b/src/nodes/QskBoxClipNode.cpp index 7edf1496..1ac27826 100644 --- a/src/nodes/QskBoxClipNode.cpp +++ b/src/nodes/QskBoxClipNode.cpp @@ -67,7 +67,7 @@ void QskBoxClipNode::setBox( const QRectF& rect, else { setIsRectangular( false ); - QskBox::renderFillGeometry( rect, shape, border, m_geometry ); + QskBoxRenderer::renderFillGeometry( rect, shape, border, m_geometry ); } /* diff --git a/src/nodes/QskBoxColorMap.h b/src/nodes/QskBoxColorMap.h index 0aaf066b..dc6f216a 100644 --- a/src/nodes/QskBoxColorMap.h +++ b/src/nodes/QskBoxColorMap.h @@ -10,7 +10,7 @@ #include #include -namespace QskBox +namespace QskBoxRenderer { class ColorMap { diff --git a/src/nodes/QskBoxFillNode.cpp b/src/nodes/QskBoxFillNode.cpp index 078e4afe..971a422c 100644 --- a/src/nodes/QskBoxFillNode.cpp +++ b/src/nodes/QskBoxFillNode.cpp @@ -73,7 +73,8 @@ void QskBoxFillNode::updateNode( if ( dirtyMetrics ) { - QskBox::renderFillGeometry( rect, shapeMetrics, borderMetrics, *geometry() ); + QskBoxRenderer::renderFillGeometry( + rect, shapeMetrics, borderMetrics, *geometry() ); markDirty( QSGNode::DirtyGeometry ); geometry()->markVertexDataDirty(); diff --git a/src/nodes/QskBoxGradientStroker.cpp b/src/nodes/QskBoxGradientStroker.cpp index 3be3c983..6cf8c2d8 100644 --- a/src/nodes/QskBoxGradientStroker.cpp +++ b/src/nodes/QskBoxGradientStroker.cpp @@ -172,7 +172,7 @@ namespace qreal m_t0, m_dt; const QskBoxMetrics::Corner* m_c1, * m_c2, * m_c3; - QskBox::GradientIterator m_gradientIterator; + QskBoxRenderer::GradientIterator m_gradientIterator; }; } @@ -528,7 +528,7 @@ namespace int setLines( const QskGradient& gradient, ColoredLine* lines ) { ContourIterator it( m_metrics, gradient.linearDirection() ); - QskBox::GradientIterator gradientIt( gradient.stops() ); + QskBoxRenderer::GradientIterator gradientIt( gradient.stops() ); ColoredLine* l = lines; @@ -584,7 +584,7 @@ namespace const qreal y1 = m_metrics.innerRect.top(); const qreal y2 = m_metrics.innerRect.bottom(); - QskBox::GradientIterator it( gradient.stops() ); + QskBoxRenderer::GradientIterator it( gradient.stops() ); ColoredLine* l = lines; const auto dir = gradient.linearDirection(); diff --git a/src/nodes/QskBoxNode.cpp b/src/nodes/QskBoxNode.cpp index e49de2e0..58329d1b 100644 --- a/src/nodes/QskBoxNode.cpp +++ b/src/nodes/QskBoxNode.cpp @@ -85,7 +85,7 @@ void QskBoxNode::updateNode( const QRectF& rect, However the border is always done with a QskBoxRectangleNode */ - if ( QskBox::isGradientSupported( shape, gradient ) ) + if ( QskBoxRenderer::isGradientSupported( shape, gradient ) ) { rectNode = qskNode< QskBoxRectangleNode >( this, BoxRole ); rectNode->updateNode( rect, shape, borderMetrics, borderColors, gradient ); diff --git a/src/nodes/QskBoxRectangleNode.cpp b/src/nodes/QskBoxRectangleNode.cpp index 9177a503..ae3ce80c 100644 --- a/src/nodes/QskBoxRectangleNode.cpp +++ b/src/nodes/QskBoxRectangleNode.cpp @@ -171,7 +171,7 @@ void QskBoxRectangleNode::updateNode( const QRectF& rect, { setColoring( coloring ); - QskBox::renderBox( d->rect, shape, borderMetrics, + QskBoxRenderer::renderBox( d->rect, shape, borderMetrics, borderColors, fillGradient, geometry ); } else @@ -179,13 +179,13 @@ void QskBoxRectangleNode::updateNode( const QRectF& rect, if ( hasFill ) { setColoring( fillGradient.rgbStart() ); - QskBox::renderFillGeometry( + QskBoxRenderer::renderFillGeometry( d->rect, shape, QskBoxBorderMetrics(), geometry ); } else { setColoring( borderColors.left().rgbStart() ); - QskBox::renderBorderGeometry( + QskBoxRenderer::renderBorderGeometry( d->rect, shape, borderMetrics, geometry ); } } diff --git a/src/nodes/QskBoxRenderer.cpp b/src/nodes/QskBoxRenderer.cpp index d02280c1..ea85dfcf 100644 --- a/src/nodes/QskBoxRenderer.cpp +++ b/src/nodes/QskBoxRenderer.cpp @@ -67,7 +67,7 @@ static inline bool qskMaybeSpreading( const QskGradient& gradient ) return true; } -bool QskBox::isGradientSupported( +bool QskBoxRenderer::isGradientSupported( const QskBoxShapeMetrics&, const QskGradient& gradient ) { if ( !gradient.isVisible() || gradient.isMonochrome() ) @@ -107,7 +107,7 @@ bool QskBox::isGradientSupported( return false; } -void QskBox::renderBorderGeometry( +void QskBoxRenderer::renderBorderGeometry( const QRectF& rect, const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border, QSGGeometry& geometry ) { @@ -121,13 +121,13 @@ void QskBox::renderBorderGeometry( stroker.setBorderLines( lines ); } -void QskBox::renderFillGeometry( +void QskBoxRenderer::renderFillGeometry( const QRectF& rect, const QskBoxShapeMetrics& shape, QSGGeometry& geometry ) { renderFillGeometry( rect, shape, QskBoxBorderMetrics(), geometry ); } -void QskBox::renderFillGeometry( +void QskBoxRenderer::renderFillGeometry( const QRectF& rect, const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border, QSGGeometry& geometry ) { @@ -140,7 +140,7 @@ void QskBox::renderFillGeometry( stroker.setFillLines( lines ); } -void QskBox::renderBox( const QRectF& rect, +void QskBoxRenderer::renderBox( const QRectF& rect, const QskBoxShapeMetrics& shape, const QskGradient& gradient, QSGGeometry& geometry ) { @@ -148,7 +148,7 @@ void QskBox::renderBox( const QRectF& rect, QskBoxBorderColors(), gradient, geometry ); } -void QskBox::renderBox( const QRectF& rect, +void QskBoxRenderer::renderBox( const QRectF& rect, const QskBoxShapeMetrics& shape, const QskBoxBorderMetrics& border, const QskBoxBorderColors& borderColors, const QskGradient& gradient, QSGGeometry& geometry ) @@ -159,10 +159,10 @@ void QskBox::renderBox( const QRectF& rect, const auto effectiveGradient = qskEffectiveGradient( metrics.innerRect, gradient ); if ( metrics.innerRect.isEmpty() || - QskBox::ColorMap::isGradientSupported( effectiveGradient, metrics.innerRect ) ) + QskBoxRenderer::ColorMap::isGradientSupported( effectiveGradient, metrics.innerRect ) ) { /* - The gradient can be translated to a QskBox::ColorMap and we can do all + The gradient can be translated to a QskBoxRenderer::ColorMap and we can do all coloring by adding a color info to points of the contour lines. The orientation of contour lines does not depend on the direction of the gradient vector. diff --git a/src/nodes/QskBoxRenderer.h b/src/nodes/QskBoxRenderer.h index 7745b076..78786643 100644 --- a/src/nodes/QskBoxRenderer.h +++ b/src/nodes/QskBoxRenderer.h @@ -16,7 +16,7 @@ class QskGradient; class QSGGeometry; class QRectF; -namespace QskBox +namespace QskBoxRenderer { /* Filling the geometry without any color information: diff --git a/src/nodes/QskRectangleNode.cpp b/src/nodes/QskRectangleNode.cpp index 6e51ff29..6690912b 100644 --- a/src/nodes/QskRectangleNode.cpp +++ b/src/nodes/QskRectangleNode.cpp @@ -72,7 +72,7 @@ void QskRectangleNode::updateNode( d->rect = rect; d->shape = effectiveShape; - if ( QskBox::isGradientSupported( effectiveShape, effectiveGradient ) ) + if ( QskBoxRenderer::isGradientSupported( effectiveShape, effectiveGradient ) ) { setColoring( Polychrome ); @@ -82,7 +82,7 @@ void QskRectangleNode::updateNode( */ if ( dirtyMetrics || dirtyColors ) { - QskBox::renderBox( rect, + QskBoxRenderer::renderBox( rect, effectiveShape, effectiveGradient, *geometry() ); geometry()->markVertexDataDirty(); @@ -96,7 +96,7 @@ void QskRectangleNode::updateNode( if ( dirtyMetrics ) { - QskBox::renderFillGeometry( rect, effectiveShape, *geometry() ); + QskBoxRenderer::renderFillGeometry( rect, effectiveShape, *geometry() ); geometry()->markVertexDataDirty(); markDirty( QSGNode::DirtyGeometry ); From bdf4bb045cbd38df338338eebbfa6595c75dab12 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 17 Dec 2023 17:28:00 +0100 Subject: [PATCH 10/72] QskTreeNode introduced --- src/CMakeLists.txt | 2 + src/controls/QskControl.cpp | 3 +- src/controls/QskQuickItemPrivate.cpp | 9 +- src/controls/QskQuickItemPrivate.h | 2 +- src/nodes/QskTreeNode.cpp | 165 +++++++++++++++++++++++++++ src/nodes/QskTreeNode.h | 63 ++++++++++ 6 files changed, 239 insertions(+), 5 deletions(-) create mode 100644 src/nodes/QskTreeNode.cpp create mode 100644 src/nodes/QskTreeNode.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 59ba35fa..1211c078 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -115,6 +115,7 @@ list(APPEND HEADERS nodes/QskGraduationNode.h nodes/QskGraduationRenderer.h nodes/QskGraphicNode.h + nodes/QskTreeNode.h nodes/QskLinesNode.h nodes/QskPaintedNode.h nodes/QskPlainTextRenderer.h @@ -160,6 +161,7 @@ list(APPEND SOURCES nodes/QskStrokeNode.cpp nodes/QskStippledLineRenderer.cpp nodes/QskShapeNode.cpp + nodes/QskTreeNode.cpp nodes/QskGradientMaterial.cpp nodes/QskTextNode.cpp nodes/QskTextRenderer.cpp diff --git a/src/controls/QskControl.cpp b/src/controls/QskControl.cpp index 9b3d5113..6867d6e7 100644 --- a/src/controls/QskControl.cpp +++ b/src/controls/QskControl.cpp @@ -15,6 +15,7 @@ #include "QskSkinlet.h" #include "QskSkinHintTable.h" #include "QskMargins.h" +#include "QskTreeNode.h" #include #include @@ -977,7 +978,7 @@ void QskControl::updateItemPolish() QSGNode* QskControl::updateItemPaintNode( QSGNode* node ) { if ( node == nullptr ) - node = new QSGNode; + node = new QskTreeNode(); updateNode( node ); return node; diff --git a/src/controls/QskQuickItemPrivate.cpp b/src/controls/QskQuickItemPrivate.cpp index 6f9fc3a2..52e86b6f 100644 --- a/src/controls/QskQuickItemPrivate.cpp +++ b/src/controls/QskQuickItemPrivate.cpp @@ -4,6 +4,7 @@ *****************************************************************************/ #include "QskQuickItemPrivate.h" +#include "QskTreeNode.h" #include "QskSetup.h" static inline void qskSendEventTo( QObject* object, QEvent::Type type ) @@ -240,11 +241,13 @@ void QskQuickItemPrivate::cleanupNodes() } } +QSGTransformNode* QskQuickItemPrivate::createTransformNode() +{ + return new QskItemNode(); +} + /* Can we do something useful with overloading: - - QQuickItemPrivate::createTransformNode - QQuickItemPrivate::transformChanged - - TODO ... */ diff --git a/src/controls/QskQuickItemPrivate.h b/src/controls/QskQuickItemPrivate.h index 0d7f41e6..150f4b93 100644 --- a/src/controls/QskQuickItemPrivate.h +++ b/src/controls/QskQuickItemPrivate.h @@ -23,13 +23,13 @@ class QskQuickItemPrivate : public QQuickItemPrivate public: void applyUpdateFlags( QskQuickItem::UpdateFlags ); + QSGTransformNode* createTransformNode() override; protected: virtual void layoutConstraintChanged(); virtual void implicitSizeChanged(); private: - void cleanupNodes(); void mirrorChange() override; diff --git a/src/nodes/QskTreeNode.cpp b/src/nodes/QskTreeNode.cpp new file mode 100644 index 00000000..f8d4c408 --- /dev/null +++ b/src/nodes/QskTreeNode.cpp @@ -0,0 +1,165 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "QskTreeNode.h" + +static constexpr auto extraFlag = + static_cast< QSGNode::Flag >( QSGNode::IsVisitableNode << 1 ); + +static inline QSGNode* qskCheckedNode( const QSGNode* node, QSGNode::NodeType type ) +{ + return node && ( node->type() == type ) && ( node->flags() & extraFlag ) + ? const_cast< QSGNode* >( node ) : nullptr; +} + +QskTreeNode::QskTreeNode() +{ + setFlag( extraFlag, true ); +} + +QskTreeNode::QskTreeNode( QSGNodePrivate& d ) + : QSGNode( d, QSGNode::BasicNodeType ) +{ + setFlag( extraFlag, true ); +} + +QskTreeNode::~QskTreeNode() +{ +} + +void QskTreeNode::setSubtreeBlocked( bool on, bool notify ) +{ + if ( on == m_isBlocked ) + return; + + m_isBlocked = on; + + if ( notify ) + markDirty( DirtySubtreeBlocked ); +} + +bool QskTreeNode::isSubtreeBlocked() const +{ + return m_isBlocked; +} + +QskTreeNode* qskTreeNodeCast( QSGNode* node ) +{ + return static_cast< QskTreeNode* >( + qskCheckedNode( node, QSGNode::BasicNodeType ) ); +} + +const QskTreeNode* qskTreeNodeCast( const QSGNode* node ) +{ + return static_cast< QskTreeNode* >( + qskCheckedNode( node, QSGNode::BasicNodeType ) ); +} + + +// == QskItemNode + +QskItemNode::QskItemNode() +{ + setFlag( extraFlag, true ); +} + +QskItemNode::~QskItemNode() +{ +} + +void QskItemNode::setSubtreeBlocked( bool on, bool notify ) +{ + if ( on == m_isBlocked ) + return; + + m_isBlocked = on; + + if ( notify ) + markDirty( DirtySubtreeBlocked ); +} + +bool QskItemNode::isSubtreeBlocked() const +{ + return m_isBlocked; +} + +QskItemNode* qskItemNodeCast( QSGNode* node ) +{ + return static_cast< QskItemNode* >( + qskCheckedNode( node, QSGNode::TransformNodeType ) ); +} + +const QskItemNode* qskItemNodeCast( const QSGNode* node ) +{ + return static_cast< QskItemNode* >( + qskCheckedNode( node, QSGNode::TransformNodeType ) ); +} + +bool qskIsBlockableNode( const QSGNode* node ) +{ + switch( node->type() ) + { + case QSGNode::BasicNodeType: + case QSGNode::TransformNodeType: + return node->flags() & extraFlag; + + default: + return false; + } +} + +bool qskTryBlockNode( QSGNode* node, bool on, bool notify ) +{ + if ( node && ( node->flags() & extraFlag ) ) + { + if ( node->type() == QSGNode::BasicNodeType ) + { + static_cast< QskTreeNode* >( node )->setSubtreeBlocked( on, notify ); + return true; + } + + if ( node->type() == QSGNode::TransformNodeType ) + { + static_cast< QskItemNode* >( node )->setSubtreeBlocked( on, notify ); + return true; + } + } + + return false; +} + +void qskTryBlockTree( QSGNode* node, bool on, bool notify ) +{ + if ( qskTryBlockNode( node, on, notify ) ) + return; + + for ( auto child = node->firstChild(); + child != nullptr; child = child->nextSibling() ) + { + qskTryBlockTree( child, on, notify ); + } +} + +void qskTryBlockTrailingNodes( + QSGNode* node, const QSGNode* ancestorNode, bool on, bool notify ) +{ + qskTryBlockTree( node, on, notify ); + + for ( auto sibling = node->nextSibling(); + sibling != nullptr; sibling = sibling->nextSibling() ) + { + qskTryBlockTree( sibling, on, notify ); + } + + if ( node != ancestorNode ) + { + if ( auto upperNode = node->parent() ) + { + upperNode = upperNode->nextSibling(); + if ( upperNode ) + qskTryBlockTrailingNodes( upperNode, ancestorNode, on, notify ); + } + } +} diff --git a/src/nodes/QskTreeNode.h b/src/nodes/QskTreeNode.h new file mode 100644 index 00000000..5adc141d --- /dev/null +++ b/src/nodes/QskTreeNode.h @@ -0,0 +1,63 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#ifndef QSK_TREE_NODE_H +#define QSK_TREE_NODE_H + +#include "QskGlobal.h" +#include + +/* + Used as paintNode in all QskControls ( see QskControl::updateItemPaintNode ) + */ +class QSK_EXPORT QskTreeNode final : public QSGNode +{ + public: + QskTreeNode(); + virtual ~QskTreeNode(); + + void setSubtreeBlocked( bool on, bool notify = true ); + bool isSubtreeBlocked() const override; + + protected: + QskTreeNode( QSGNodePrivate& ); + + private: + bool m_isBlocked = false;; +}; + +QSK_EXPORT QskTreeNode* qskTreeNodeCast( QSGNode* ); +QSK_EXPORT const QskTreeNode* qskTreeNodeCast( const QSGNode* ); + +/* + Used by all QskQuickItem as root node ( = itemNode ) of its subtree + ( see qskItemNode in QskQuick.h ) + */ +class QSK_EXPORT QskItemNode final : public QSGTransformNode +{ + public: + QskItemNode(); + virtual ~QskItemNode(); + + void setSubtreeBlocked( bool on, bool notify = true ); + bool isSubtreeBlocked() const override; + + private: + bool m_isBlocked = false;; +}; + +QSK_EXPORT QskItemNode* qskItemNodeCast( QSGNode* ); +QSK_EXPORT const QskItemNode* qskItemNodeCast( const QSGNode* ); + +QSK_EXPORT bool qskIsBlockableNode( const QSGNode* ); +QSK_EXPORT bool qskTryBlockNode( QSGNode*, bool on, bool notify = true ); + +QSK_EXPORT void qskTryBlockTree( QSGNode*, bool on, bool notify = true ); + +// un/block a node and all its successors in the rendering pipeline +QSK_EXPORT void qskTryBlockTrailingNodes( + QSGNode*, const QSGNode* ancestorNode, bool on, bool notify = true ); + +#endif From fb3d09430f9fbe15ecd8c56f5b2e7d81995d4092 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 17 Dec 2023 17:32:07 +0100 Subject: [PATCH 11/72] QskSceneTexture added --- src/CMakeLists.txt | 2 + src/controls/QskQuick.cpp | 44 ++++++ src/controls/QskQuick.h | 7 +- src/nodes/QskSceneTexture.cpp | 268 ++++++++++++++++++++++++++++++++++ src/nodes/QskSceneTexture.h | 49 +++++++ 5 files changed, 369 insertions(+), 1 deletion(-) create mode 100644 src/nodes/QskSceneTexture.cpp create mode 100644 src/nodes/QskSceneTexture.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1211c078..313e1b93 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -120,6 +120,7 @@ list(APPEND HEADERS nodes/QskPaintedNode.h nodes/QskPlainTextRenderer.h nodes/QskRichTextRenderer.h + nodes/QskSceneTexture.h nodes/QskSGNode.h nodes/QskStrokeNode.h nodes/QskStippledLineRenderer.h @@ -157,6 +158,7 @@ list(APPEND SOURCES nodes/QskPlainTextRenderer.cpp nodes/QskRectangleNode.cpp nodes/QskRichTextRenderer.cpp + nodes/QskSceneTexture.cpp nodes/QskSGNode.cpp nodes/QskStrokeNode.cpp nodes/QskStippledLineRenderer.cpp diff --git a/src/controls/QskQuick.cpp b/src/controls/QskQuick.cpp index 6a8f045f..c2888db9 100644 --- a/src/controls/QskQuick.cpp +++ b/src/controls/QskQuick.cpp @@ -12,6 +12,8 @@ QSK_QT_PRIVATE_BEGIN #include +#include +#include QSK_QT_PRIVATE_END #include @@ -387,6 +389,48 @@ const QSGNode* qskPaintNode( const QQuickItem* item ) return QQuickItemPrivate::get( item )->paintNode; } +const QSGRootNode* qskScenegraphAnchorNode( const QQuickItem* item ) +{ + if ( item == nullptr ) + return nullptr; + + return QQuickItemPrivate::get( item )->rootNode(); +} + +const QSGRootNode* qskScenegraphAnchorNode( const QQuickWindow* window ) +{ + if ( window ) + { + if ( auto renderer = QQuickWindowPrivate::get( window )->renderer ) + return renderer->rootNode(); + } + + return nullptr; +} + +void qskSetScenegraphAnchor( QQuickItem* item, bool on ) +{ + /* + For setting up a subtree renderer ( f.e in QskSceneTexture ) we need + to insert a QSGRootNode above the paintNode. + + ( In Qt this feature is exlusively used in the Qt/Quick Effects module + what lead to the not very intuitive name "refFromEffectItem" ) + + refFromEffectItem also allows to insert a opacity node of 0 to + hide the subtree from the main renderer by setting its parameter to + true. We have QskItemNode to achieve the same. + */ + if ( item ) + { + auto d = QQuickItemPrivate::get( item ); + if ( on ) + d->refFromEffectItem( false ); + else + d->derefFromEffectItem( false ); + } +} + QSizeF qskEffectiveSizeHint( const QQuickItem* item, Qt::SizeHint whichHint, const QSizeF& constraint ) { diff --git a/src/controls/QskQuick.h b/src/controls/QskQuick.h index 6b2ae2df..622b108d 100644 --- a/src/controls/QskQuick.h +++ b/src/controls/QskQuick.h @@ -14,10 +14,11 @@ class QskSizePolicy; -class QQuickItem; class QSGNode; class QSGTransformNode; +class QSGRootNode; class QRectF; + template< typename T > class QList; /* @@ -71,6 +72,10 @@ QSK_EXPORT void qskInputMethodSetVisible( const QQuickItem*, bool ); QSK_EXPORT const QSGTransformNode* qskItemNode( const QQuickItem* ); QSK_EXPORT const QSGNode* qskPaintNode( const QQuickItem* ); +QSK_EXPORT const QSGRootNode* qskScenegraphAnchorNode( const QQuickItem* ); +QSK_EXPORT const QSGRootNode* qskScenegraphAnchorNode( const QQuickWindow* ); +QSK_EXPORT void qskSetScenegraphAnchor( QQuickItem*, bool on, bool hide = false ); + QSK_EXPORT void qskItemUpdateRecursive( QQuickItem* ); QSK_EXPORT bool qskGrabMouse( QQuickItem* ); diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp new file mode 100644 index 00000000..582488b6 --- /dev/null +++ b/src/nodes/QskSceneTexture.cpp @@ -0,0 +1,268 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "QskSceneTexture.h" +#include "QskTreeNode.h" + +QSK_QT_PRIVATE_BEGIN +#include +#include +QSK_QT_PRIVATE_END + +namespace +{ + inline QSGRendererInterface::RenderMode contextRenderMode( + QSGDefaultRenderContext* context ) + { + return context->useDepthBufferFor2D() + ? QSGRendererInterface::RenderMode2D + : QSGRendererInterface::RenderMode2DNoDepthBuffer; + } + + class Renderer final : public QSGBatchRenderer::Renderer + { + using Inherited = QSGBatchRenderer::Renderer; + + public: + Renderer( QskSceneTexture*, QSGDefaultRenderContext* ); + ~Renderer() override; + + void setFinalNode( QSGTransformNode* ); + QRhiTexture* texture() const { return m_rhiTexture; } + + void setProjection( const QRectF& ); + void setTextureSize( const QSize& ); + + protected: + void nodeChanged( QSGNode*, QSGNode::DirtyState ) override; + void render() override; + + private: + void createTarget( const QSize& ); + void clearTarget(); + + private: + QRhiTexture* m_rhiTexture = nullptr; + QSGTransformNode* m_finalNode = nullptr; + + QskSceneTexture* m_texture = nullptr; + }; + + Renderer::Renderer( QskSceneTexture* texture, QSGDefaultRenderContext* context ) + : Inherited( context, contextRenderMode( context ) ) + , m_texture( texture ) + { + setClearColor( Qt::transparent ); + } + + Renderer::~Renderer() + { + clearTarget(); + } + + void Renderer::setFinalNode( QSGTransformNode* node ) + { + if ( node != m_finalNode ) + { + m_finalNode = node; + } + } + + void Renderer::setProjection( const QRectF& rect ) + { + const auto rhi = context()->rhi(); + + auto r = rect; + + if ( rhi->isYUpInFramebuffer() ) + { + r.moveTop( r.bottom() ); + r.setHeight( -r.height() ); + } + + MatrixTransformFlags matrixFlags; + + if ( !rhi->isYUpInNDC() ) + matrixFlags |= QSGAbstractRenderer::MatrixTransformFlipY; + + setProjectionMatrixToRect( r, matrixFlags ); + } + + void Renderer::setTextureSize( const QSize& size ) + { + if ( m_rt.rt && m_rt.rt->pixelSize() != size ) + clearTarget(); + + if ( m_rt.rt == nullptr ) + createTarget( size ); + + const QRect r( 0, 0, size.width(), size.height() ); + + setDeviceRect( r ); + setViewportRect( r ); + } + + void Renderer::render() + { + qskTryBlockTrailingNodes( m_finalNode, rootNode(), true, false ); +#if 0 + QSGNodeDumper::dump( rootNode() ); +#endif + Inherited::render(); + qskTryBlockTrailingNodes( m_finalNode, rootNode(), false, false ); + } + + void Renderer::nodeChanged( QSGNode* node, QSGNode::DirtyState state ) + { + // do not forward nodes that are blocked while rendering + + const bool isTrailingNode = false; // TODO ... + + if ( !isTrailingNode ) + { + Inherited::nodeChanged( node, state ); + Q_EMIT m_texture->updateRequested(); + } + } + + void Renderer::createTarget( const QSize& size ) + { + const auto rhi = context()->rhi(); + + auto flags = QRhiTexture::RenderTarget | QRhiTexture::UsedAsTransferSource; + + m_rhiTexture = rhi->newTexture( QRhiTexture::RGBA8, size, 1, flags ); + m_rhiTexture->create(); + + QRhiColorAttachment color0( m_rhiTexture ); + auto target = rhi->newTextureRenderTarget( { color0 } ); + + target->setRenderPassDescriptor( + target->newCompatibleRenderPassDescriptor() ); + + target->create(); + + m_rt.rt = target; + m_rt.rpDesc = target->renderPassDescriptor(); + + auto defaultContext = qobject_cast< QSGDefaultRenderContext* >( context() ); + m_rt.cb = defaultContext->currentFrameCommandBuffer(); + } + + void Renderer::clearTarget() + { + delete m_rt.rt; + m_rt.rt = nullptr; + + delete m_rt.rpDesc; + m_rt.rpDesc = nullptr; + + delete m_rhiTexture; + m_rhiTexture = nullptr; + } +} + +class QskSceneTexturePrivate final : public QSGTexturePrivate +{ + public: + QskSceneTexturePrivate( const QQuickWindow* window, QskSceneTexture* texture ) + : QSGTexturePrivate( texture ) + , devicePixelRatio( window->effectiveDevicePixelRatio() ) + { + context = dynamic_cast< QSGDefaultRenderContext* >( + QQuickWindowPrivate::get( window )->context ); + } + + QRectF rect; + const qreal devicePixelRatio; + + Renderer* renderer = nullptr; + QSGDefaultRenderContext* context = nullptr; +}; + +QskSceneTexture::QskSceneTexture( const QQuickWindow* window ) + : Inherited(*( new QskSceneTexturePrivate( window, this ) ) ) +{ + Q_ASSERT( d_func()->context ); +} + +QskSceneTexture::~QskSceneTexture() +{ + delete d_func()->renderer; +} + +QSize QskSceneTexture::textureSize() const +{ + Q_D( const QskSceneTexture ); + + QSize size( qCeil( d->rect.width() ), qCeil( d->rect.height() ) ); + size *= d->devicePixelRatio; + + const QSize minSize = d->context->sceneGraphContext()->minimumFBOSize(); + + while ( size.width() < minSize.width() ) + size.rwidth() *= 2; + + while ( size.height() < minSize.height() ) + size.rheight() *= 2; + + return size; +} + +qint64 QskSceneTexture::comparisonKey() const +{ + return qint64( rhiTexture() ); +} + +QRhiTexture* QskSceneTexture::rhiTexture() const +{ + Q_D( const QskSceneTexture ); + return d->renderer ? d->renderer->texture() : nullptr; +} + +void QskSceneTexture::render( const QSGRootNode* rootNode, + const QSGTransformNode* finalNode, const QRectF& rect ) +{ + Q_D( QskSceneTexture ); + + d->rect = rect; + + const auto pixelSize = textureSize(); + + if ( d->renderer == nullptr ) + { + d->renderer = new Renderer( this, d->context ); + d->renderer->setDevicePixelRatio( d->devicePixelRatio ); + } + + d->renderer->setRootNode( const_cast< QSGRootNode* >( rootNode ) ); + d->renderer->setFinalNode( const_cast< QSGTransformNode* >( finalNode ) ); + + d->renderer->setProjection( d->rect ); + d->renderer->setTextureSize( pixelSize ); + d->renderer->renderScene(); +} + +QRectF QskSceneTexture::normalizedTextureSubRect() const +{ + return QRectF( 0, 1, 1, -1 ); +} + +bool QskSceneTexture::hasAlphaChannel() const +{ + return false; +} + +bool QskSceneTexture::hasMipmaps() const +{ + return false; +} + +void QskSceneTexture::commitTextureOperations( QRhi*, QRhiResourceUpdateBatch* ) +{ + // what to do here ? +} + +#include "moc_QskSceneTexture.cpp" diff --git a/src/nodes/QskSceneTexture.h b/src/nodes/QskSceneTexture.h new file mode 100644 index 00000000..1a66f931 --- /dev/null +++ b/src/nodes/QskSceneTexture.h @@ -0,0 +1,49 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#ifndef QSK_SCENE_TEXTURE_H +#define QSK_SCENE_TEXTURE_H + +#include "QskGlobal.h" +#include + +class QskSceneTexturePrivate; + +class QSGRootNode; +class QSGTransformNode; +class QQuickWindow; + +class QSK_EXPORT QskSceneTexture : public QSGTexture +{ + Q_OBJECT + + using Inherited = QSGTexture; + + public: + QskSceneTexture( const QQuickWindow* ); + ~QskSceneTexture(); + + void render( const QSGRootNode*, const QSGTransformNode*, const QRectF& ); + + QSize textureSize() const override; + + qint64 comparisonKey() const override; + QRhiTexture* rhiTexture() const override; + + QRectF normalizedTextureSubRect() const override; + + // satisfy the QSGTexture API + bool hasAlphaChannel() const override; + bool hasMipmaps() const override; + void commitTextureOperations( QRhi*, QRhiResourceUpdateBatch* ) override; + + Q_SIGNALS: + void updateRequested(); + + private: + Q_DECLARE_PRIVATE( QskSceneTexture ) +}; + +#endif From cbd4fa9bdc326c8692f8f51d1663b19cadacf843 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 17 Dec 2023 18:12:57 +0100 Subject: [PATCH 12/72] QskSceneTexture disabled for Qt5 ( not done yet ) --- src/CMakeLists.txt | 7 +++++-- src/controls/QskQuick.cpp | 4 ++-- src/nodes/QskSceneTexture.cpp | 2 ++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 313e1b93..e017237a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -120,7 +120,6 @@ list(APPEND HEADERS nodes/QskPaintedNode.h nodes/QskPlainTextRenderer.h nodes/QskRichTextRenderer.h - nodes/QskSceneTexture.h nodes/QskSGNode.h nodes/QskStrokeNode.h nodes/QskStippledLineRenderer.h @@ -158,7 +157,6 @@ list(APPEND SOURCES nodes/QskPlainTextRenderer.cpp nodes/QskRectangleNode.cpp nodes/QskRichTextRenderer.cpp - nodes/QskSceneTexture.cpp nodes/QskSGNode.cpp nodes/QskStrokeNode.cpp nodes/QskStippledLineRenderer.cpp @@ -171,6 +169,11 @@ list(APPEND SOURCES nodes/QskVertex.cpp ) +if (QT_VERSION_MAJOR VERSION_GREATER 5) + list(APPEND HEADERS nodes/QskSceneTexture.h) + list(APPEND SOURCES nodes/QskSceneTexture.cpp) +endif() + qt_add_resources(SOURCES nodes/shaders.qrc) list(APPEND HEADERS diff --git a/src/controls/QskQuick.cpp b/src/controls/QskQuick.cpp index c2888db9..7760e916 100644 --- a/src/controls/QskQuick.cpp +++ b/src/controls/QskQuick.cpp @@ -399,9 +399,9 @@ const QSGRootNode* qskScenegraphAnchorNode( const QQuickItem* item ) const QSGRootNode* qskScenegraphAnchorNode( const QQuickWindow* window ) { - if ( window ) + if ( auto w = const_cast< QQuickWindow* >( window ) ) { - if ( auto renderer = QQuickWindowPrivate::get( window )->renderer ) + if ( auto renderer = QQuickWindowPrivate::get( w )->renderer ) return renderer->rootNode(); } diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 582488b6..8660fdcb 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -6,6 +6,8 @@ #include "QskSceneTexture.h" #include "QskTreeNode.h" +#include + QSK_QT_PRIVATE_BEGIN #include #include From b850c185576b9ec835532215f1ce7ac31536263d Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Mon, 4 Dec 2023 18:52:41 +0100 Subject: [PATCH 13/72] don't use QSK_SOURCE_DIR --- CMakeLists.txt | 2 ++ inputcontext/CMakeLists.txt | 8 ++++---- src/CMakeLists.txt | 2 +- support/CMakeLists.txt | 2 +- tools/svg2qvg/CMakeLists.txt | 4 ++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e45367a..5517241d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,6 +75,8 @@ project(QSkinny HOMEPAGE_URL "https://github.com/uwerat/qskinny" VERSION 0.8.0) +set(QSK_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) + qsk_setup_options() include(GNUInstallDirs) diff --git a/inputcontext/CMakeLists.txt b/inputcontext/CMakeLists.txt index 0201a65e..43a9db6d 100644 --- a/inputcontext/CMakeLists.txt +++ b/inputcontext/CMakeLists.txt @@ -19,8 +19,8 @@ if(ENABLE_PINYIN) qsk_setup_Pinyin() list(APPEND SOURCES - ${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h - ${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp + ${QSK_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h + ${QSK_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp ) endif() @@ -28,8 +28,8 @@ if(ENABLE_HUNSPELL) qsk_setup_Hunspell() list(APPEND SOURCES - ${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h - ${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp + ${QSK_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h + ${QSK_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp ) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e017237a..d4f0b076 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -499,7 +499,7 @@ if(ENABLE_PINYIN) target_link_libraries(${target} PRIVATE pinyin Fcitx5::Utils) target_include_directories(${target} - PUBLIC $) + PUBLIC $) endif() set_target_properties(${target} PROPERTIES FOLDER libs) diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index 4d15724f..5dc77dd5 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -31,7 +31,7 @@ target_compile_definitions(${target} target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_LIST_DIR}) if(ENABLE_ENSURE_SKINS) - target_include_directories(${target} PRIVATE ${CMAKE_SOURCE_DIR}/skins) + target_include_directories(${target} PRIVATE ${QSK_SOURCE_DIR}/skins) target_compile_definitions(${target} PRIVATE ENSURE_SKINS) target_link_libraries(${target} PRIVATE squiekskin material3skin fluent2skin) endif() diff --git a/tools/svg2qvg/CMakeLists.txt b/tools/svg2qvg/CMakeLists.txt index c206f820..b468fd44 100644 --- a/tools/svg2qvg/CMakeLists.txt +++ b/tools/svg2qvg/CMakeLists.txt @@ -28,8 +28,8 @@ if(BUILD_SVG2QVG_STANDALONE) target_include_directories(${target} PRIVATE - ${CMAKE_SOURCE_DIR}/src/common - ${CMAKE_SOURCE_DIR}/src/graphic) + ${QSK_SOURCE_DIR}/src/common + ${QSK_SOURCE_DIR}/src/graphic) target_compile_definitions(${target} PRIVATE QSK_STANDALONE) target_link_libraries(${target} PRIVATE Qt::Gui Qt::GuiPrivate) From 32eed71c2131b0bca1c564b4fcdd6597a7ff11e1 Mon Sep 17 00:00:00 2001 From: "Vogel, Rick" Date: Thu, 21 Dec 2023 14:12:38 +0100 Subject: [PATCH 14/72] reintegrate find package --- .github/workflows/cmake.yml | 32 ++++++------- CMakeLists.txt | 45 +++++++++++++++++++ cmake/QSkinnyConfig.cmake | 2 + .../iotdashboard_smoketest/CMakeLists.txt | 24 ++++++++++ 4 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 cmake/QSkinnyConfig.cmake create mode 100644 examples/iotdashboard_smoketest/CMakeLists.txt diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 632d8313..61406637 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - #- name: Configure ( CMake Integration Test ) - # shell: bash - # run: | - # mkdir qskinny_build_test - # cmake \ - # -S qskinny_source/examples/iotdashboard_smoketest \ - # -B qskinny_build_test \ - # -G "${{ matrix.config.generators }}" \ - # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny -# - #- name: Build ( CMake Integration Test ) - # shell: bash - # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + - name: Configure ( CMake Integration Test ) + shell: bash + run: | + mkdir qskinny_build_test + cmake \ + -S qskinny_source/examples/iotdashboard_smoketest \ + -B qskinny_build_test \ + -G "${{ matrix.config.generators }}" \ + -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny + + - name: Build ( CMake Integration Test ) + shell: bash + run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash diff --git a/CMakeLists.txt b/CMakeLists.txt index 5517241d..a6fa1268 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,3 +118,48 @@ endif() if(BUILD_PLAYGROUND) add_subdirectory(playground) endif() + +# packaging +set(PACKAGE_NAME ${PROJECT_NAME}) +set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) +set(PACKAGE_NAMESPACE Qsk) +set(PACKAGE_LOCATION lib/cmake/${PROJECT_NAME}) + +install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets + LIBRARY DESTINATION ${QSK_INSTALL_LIBS} + ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} + RUNTIME DESTINATION ${QSK_INSTALL_LIBS} + INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} + PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion) + +export(EXPORT ${PACKAGE_NAME}Targets + FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake + NAMESPACE ${PACKAGE_NAMESPACE}::) + +configure_file(cmake/${PACKAGE_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake + COPYONLY) + +install(EXPORT ${PACKAGE_NAME}Targets + FILE + ${PACKAGE_NAME}Targets.cmake + NAMESPACE + ${PACKAGE_NAMESPACE}:: + DESTINATION + ${PACKAGE_LOCATION}) + +install( + FILES + cmake/${PACKAGE_NAME}Config.cmake + cmake/QskTools.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake + DESTINATION + ${PACKAGE_LOCATION} + COMPONENT + Devel) \ No newline at end of file diff --git a/cmake/QSkinnyConfig.cmake b/cmake/QSkinnyConfig.cmake new file mode 100644 index 00000000..e24cd20c --- /dev/null +++ b/cmake/QSkinnyConfig.cmake @@ -0,0 +1,2 @@ +include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake") \ No newline at end of file diff --git a/examples/iotdashboard_smoketest/CMakeLists.txt b/examples/iotdashboard_smoketest/CMakeLists.txt new file mode 100644 index 00000000..2ee64519 --- /dev/null +++ b/examples/iotdashboard_smoketest/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.18) + +project(iotdashboard_smoketest) + +find_package(QSkinny REQUIRED) + +find_package(Qt6 COMPONENTS Core QUIET) +if (NOT Qt6_FOUND) + find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets) + find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore) + message(WARNING "using QSkinny's 'qt_add_executable()'") + function(qt_add_executable) + add_executable(${ARGV}) + endfunction(qt_add_executable) + message(WARNING "using QSkinny's 'qt_add_library()'") + function(qt_add_library) + add_library(${ARGV}) + endfunction(qt_add_library) +else() + find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets) + find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick) +endif() + +add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard) \ No newline at end of file From e0bdf160f9438cc38d252c97cf1d7e01c4daad80 Mon Sep 17 00:00:00 2001 From: "Vogel, Rick" Date: Thu, 21 Dec 2023 15:07:18 +0100 Subject: [PATCH 15/72] add missing install variables --- CMakeLists.txt | 6 ++-- examples/iotdashboard_smoketest/.gitignore | 2 ++ .../iotdashboard_smoketest/CMakeLists.txt | 35 +++++++++++++++---- src/CMakeLists.txt | 4 +++ 4 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 examples/iotdashboard_smoketest/.gitignore diff --git a/CMakeLists.txt b/CMakeLists.txt index a6fa1268..21ee66fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,8 +62,8 @@ macro(qsk_setup_build) endmacro() macro(qsk_setup_install) - # we have to provide and install a QSkinnyConfig.cmake - # TODO ... + set(QSK_INSTALL_HEADERS include) + set(QSK_INSTALL_LIBS lib) endmacro() ############################################################################ @@ -123,7 +123,7 @@ endif() set(PACKAGE_NAME ${PROJECT_NAME}) set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) set(PACKAGE_NAMESPACE Qsk) -set(PACKAGE_LOCATION lib/cmake/${PROJECT_NAME}) +set(PACKAGE_LOCATION ${QSK_INSTALL_LIBS}/cmake/${PROJECT_NAME}) install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets LIBRARY DESTINATION ${QSK_INSTALL_LIBS} diff --git a/examples/iotdashboard_smoketest/.gitignore b/examples/iotdashboard_smoketest/.gitignore new file mode 100644 index 00000000..09a75fee --- /dev/null +++ b/examples/iotdashboard_smoketest/.gitignore @@ -0,0 +1,2 @@ +build +iotdashboard \ No newline at end of file diff --git a/examples/iotdashboard_smoketest/CMakeLists.txt b/examples/iotdashboard_smoketest/CMakeLists.txt index 2ee64519..ea34d940 100644 --- a/examples/iotdashboard_smoketest/CMakeLists.txt +++ b/examples/iotdashboard_smoketest/CMakeLists.txt @@ -2,23 +2,46 @@ cmake_minimum_required(VERSION 3.18) project(iotdashboard_smoketest) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC OFF) +set(CMAKE_GLOBAL_AUTOGEN_TARGET OFF) + find_package(QSkinny REQUIRED) +# TODO we don't delivery the qsk macros +function(qsk_add_executable target) + if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) + qt6_add_executable(${ARGV}) + else() + add_executable(${ARGV}) + endif() +endfunction() + +# TODO we don't delivery the qsk macros +function(qsk_add_example target) + cmake_parse_arguments(PARSE_ARGV 1 arg "MANUAL_FINALIZATION" "" "") + add_executable(${target} WIN32 MACOSX_BUNDLE ${arg_UNPARSED_ARGUMENTS} ) + target_link_libraries(${target} PRIVATE Qsk::qskinny ) + target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) +endfunction() + find_package(Qt6 COMPONENTS Core QUIET) if (NOT Qt6_FOUND) find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets) find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore) - message(WARNING "using QSkinny's 'qt_add_executable()'") + function(qt_add_executable) add_executable(${ARGV}) endfunction(qt_add_executable) - message(WARNING "using QSkinny's 'qt_add_library()'") - function(qt_add_library) - add_library(${ARGV}) - endfunction(qt_add_library) else() find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets) find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick) endif() -add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard) \ No newline at end of file +add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard) + +# TODO we don't delivery the support library +get_target_property(iotdashboard_COMPILE_DEFINITIONS iotdashboard COMPILE_DEFINITIONS) +list(FILTER iotdashboard_COMPILE_DEFINITIONS EXCLUDE REGEX [[^USE_SHORTCUTS=1$]]) +set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS}) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d4f0b076..43feec2c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -483,6 +483,10 @@ target_include_directories(${target} PUBLIC $ $) +target_include_directories(${target} + INTERFACE + $) + target_link_libraries(${target} PUBLIC Qt::Core Qt::CorePrivate Qt::Quick Qt::QuickPrivate) From cba94215973ba526a5de054f30f58a8d788754f9 Mon Sep 17 00:00:00 2001 From: Rick Vogel <111582062+rick-vogel@users.noreply.github.com> Date: Thu, 21 Dec 2023 16:07:22 +0100 Subject: [PATCH 16/72] add msvc parallel build flag --- cmake/QskConfigMacros.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/QskConfigMacros.cmake b/cmake/QskConfigMacros.cmake index 0d373c18..5f5a2f2e 100644 --- a/cmake/QskConfigMacros.cmake +++ b/cmake/QskConfigMacros.cmake @@ -118,6 +118,7 @@ macro(qsk_initialize_build_flags) add_compile_options( -Wall -Wextra ) else() # add_compile_options(/W4 /WX) + add_compile_options($<$:/MP>) endif() endmacro() From 426e20883f49b3e4f316f8fc130e0c100caf8c5f Mon Sep 17 00:00:00 2001 From: Rick Vogel <111582062+rick-vogel@users.noreply.github.com> Date: Thu, 21 Dec 2023 16:10:24 +0100 Subject: [PATCH 17/72] simplify statement --- cmake/QskConfigMacros.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/QskConfigMacros.cmake b/cmake/QskConfigMacros.cmake index 5f5a2f2e..8cc8992b 100644 --- a/cmake/QskConfigMacros.cmake +++ b/cmake/QskConfigMacros.cmake @@ -118,7 +118,7 @@ macro(qsk_initialize_build_flags) add_compile_options( -Wall -Wextra ) else() # add_compile_options(/W4 /WX) - add_compile_options($<$:/MP>) + add_compile_options(/MP) endif() endmacro() From 06a78455acf186bfa3bdede249f3136f10345619 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 21 Dec 2023 16:32:49 +0100 Subject: [PATCH 18/72] add ninja multi fix --- tools/svg2qvg/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/svg2qvg/CMakeLists.txt b/tools/svg2qvg/CMakeLists.txt index b468fd44..6c64b50c 100644 --- a/tools/svg2qvg/CMakeLists.txt +++ b/tools/svg2qvg/CMakeLists.txt @@ -22,6 +22,10 @@ if(BUILD_SVG2QVG_STANDALONE) # TODO fix multi configuration generators if(CMAKE_GENERATOR MATCHES "Visual Studio.*") add_definitions("/I${qskinny_AUTOGEN_DIR}/include_\$(Configuration)") + elseif(CMAKE_GENERATOR MATCHES "Ninja Multi.*") + target_include_directories(${target} + PRIVATE + ${qskinny_AUTOGEN_DIR}/include_$) else() target_include_directories(${target} PRIVATE ${qskinny_AUTOGEN_DIR}/include) endif() From 101492fff751159e5136d3a8fe6f3ce580450b68 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 21 Dec 2023 16:34:24 +0100 Subject: [PATCH 19/72] use Ninja Multi-Config --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 61406637..84656396 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -104,7 +104,7 @@ jobs: cc: "gcc", cxx: "g++", archiver: "7z a", - generators: "Ninja", + generators: "Ninja Multi-Config", env: { DISPLAY: ":1" }, cmake: { From 58c12b85ef5205e5d68cedfab191445512a4bfda Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 21 Dec 2023 23:22:06 -0500 Subject: [PATCH 20/72] search for Qt6 then Qt5 --- cmake/QskFindMacros.cmake | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/cmake/QskFindMacros.cmake b/cmake/QskFindMacros.cmake index 035e9514..40915c6f 100644 --- a/cmake/QskFindMacros.cmake +++ b/cmake/QskFindMacros.cmake @@ -5,12 +5,11 @@ macro(qsk_setup_Qt) - # Often users have several Qt installations on their system and - # need to be able to explicitly the one to be used. Let's see if - # standard cmake features are good enough or if we need to introduce - # something sort of additional option. TODO ... - - find_package(QT "5.15" NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick) + # Define a package QT, attempt Qt6, if not fallback to Qt5 + find_package(QT NAMES Qt6 REQUIRED COMPONENTS Quick) + if (NOT QT_FOUND) + find_package(QT "5.15" NAMES Qt5 REQUIRED COMPONENTS Quick) + endif() if ( QT_FOUND ) From 972f839cada24ac7d4870e3d04713e9089d8dc29 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 13:52:01 +0100 Subject: [PATCH 21/72] Qt5 implementation of QskSceneTexture --- src/CMakeLists.txt | 7 +- src/controls/QskQuick.cpp | 8 + src/controls/QskQuick.h | 6 +- src/nodes/QskBoxNode.cpp | 8 +- src/nodes/QskGradientMaterial.cpp | 2 +- src/nodes/QskSceneTexture.cpp | 256 +++++++++++++++++----- src/nodes/QskSceneTexture.h | 15 +- src/nodes/QskTextureRenderer.cpp | 4 +- src/nodes/shaders/boxshadow.frag.qsb | Bin 2639 -> 2656 bytes src/nodes/shaders/boxshadow.vert.qsb | Bin 1552 -> 1559 bytes src/nodes/shaders/crisplines.frag.qsb | Bin 871 -> 872 bytes src/nodes/shaders/crisplines.vert.qsb | Bin 1865 -> 1871 bytes src/nodes/shaders/gradientconic.frag.qsb | Bin 1830 -> 1826 bytes src/nodes/shaders/gradientconic.vert.qsb | Bin 1617 -> 1624 bytes src/nodes/shaders/gradientlinear.frag.qsb | Bin 1424 -> 1444 bytes src/nodes/shaders/gradientlinear.vert.qsb | Bin 1592 -> 1582 bytes src/nodes/shaders/gradientradial.frag.qsb | Bin 1526 -> 1550 bytes src/nodes/shaders/gradientradial.vert.qsb | Bin 1472 -> 1479 bytes src/nodes/shaders/vulkan2qsb.sh | 1 + 19 files changed, 238 insertions(+), 69 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 43feec2c..3906ad94 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -120,6 +120,7 @@ list(APPEND HEADERS nodes/QskPaintedNode.h nodes/QskPlainTextRenderer.h nodes/QskRichTextRenderer.h + nodes/QskSceneTexture.h nodes/QskSGNode.h nodes/QskStrokeNode.h nodes/QskStippledLineRenderer.h @@ -157,6 +158,7 @@ list(APPEND SOURCES nodes/QskPlainTextRenderer.cpp nodes/QskRectangleNode.cpp nodes/QskRichTextRenderer.cpp + nodes/QskSceneTexture.cpp nodes/QskSGNode.cpp nodes/QskStrokeNode.cpp nodes/QskStippledLineRenderer.cpp @@ -169,11 +171,6 @@ list(APPEND SOURCES nodes/QskVertex.cpp ) -if (QT_VERSION_MAJOR VERSION_GREATER 5) - list(APPEND HEADERS nodes/QskSceneTexture.h) - list(APPEND SOURCES nodes/QskSceneTexture.cpp) -endif() - qt_add_resources(SOURCES nodes/shaders.qrc) list(APPEND HEADERS diff --git a/src/controls/QskQuick.cpp b/src/controls/QskQuick.cpp index 7760e916..9d223a36 100644 --- a/src/controls/QskQuick.cpp +++ b/src/controls/QskQuick.cpp @@ -19,6 +19,14 @@ QSK_QT_PRIVATE_END #include #include +QRhi* qskRenderingHardwareInterface( const QQuickWindow* window ) +{ + if ( auto w = const_cast< QQuickWindow* >( window ) ) + return QQuickWindowPrivate::get( w )->rhi; + + return nullptr; +} + QRectF qskItemRect( const QQuickItem* item ) { auto d = QQuickItemPrivate::get( item ); diff --git a/src/controls/QskQuick.h b/src/controls/QskQuick.h index 622b108d..c8afaafd 100644 --- a/src/controls/QskQuick.h +++ b/src/controls/QskQuick.h @@ -18,14 +18,16 @@ class QSGNode; class QSGTransformNode; class QSGRootNode; class QRectF; +class QRhi; template< typename T > class QList; /* - Exporting methods from QQuickItemPrivate, that should be part - of QQuickItem. + Exporting useful methods from QQuickItemPrivate/QQuickWindowPrivate */ +QSK_EXPORT QRhi* qskRenderingHardwareInterface( const QQuickWindow* ); + QSK_EXPORT bool qskIsItemInDestructor( const QQuickItem* ); QSK_EXPORT bool qskIsItemComplete( const QQuickItem* ); QSK_EXPORT bool qskIsAncestorOf( const QQuickItem* item, const QQuickItem* child ); diff --git a/src/nodes/QskBoxNode.cpp b/src/nodes/QskBoxNode.cpp index 58329d1b..4de2242c 100644 --- a/src/nodes/QskBoxNode.cpp +++ b/src/nodes/QskBoxNode.cpp @@ -78,11 +78,9 @@ void QskBoxNode::updateNode( const QRectF& rect, } /* - QskBoxRectangleNode supports vertical/horizontal and many tilted - linear gradients. If our gradient doesn't fall into this category - we use a QskBoxFillNode. - - However the border is always done with a QskBoxRectangleNode + QskBoxRectangleNode is more efficient and creates batchable geometries. + So we prefer using it where possible. + Note, that the border is always done with a QskBoxRectangleNode */ if ( QskBoxRenderer::isGradientSupported( shape, gradient ) ) diff --git a/src/nodes/QskGradientMaterial.cpp b/src/nodes/QskGradientMaterial.cpp index 7be7d994..29771012 100644 --- a/src/nodes/QskGradientMaterial.cpp +++ b/src/nodes/QskGradientMaterial.cpp @@ -22,7 +22,7 @@ #endif #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) - #include + #include using RhiShader = QSGMaterialRhiShader; #else using RhiShader = QSGMaterialShader; diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 8660fdcb..9fa8af44 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -10,11 +10,28 @@ QSK_QT_PRIVATE_BEGIN #include +#include + +#define QT_BUILD_QUICK_LIB // suppress Qt5 warnings #include +#undef QT_BUILD_QUICK_LIB + QSK_QT_PRIVATE_END +/* + With Qt 5.15 Rhi can optionally be enbled by setting "export QSG_RHI=1". + So we need to have a native QOpenGL implementation and one using + the Rhi abstraction layer. For Qt6 we can rely on Rhi. + Once Qt5 support has been dropped we can eliminate this #ifdef jungle + */ + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) +#include +#endif + namespace { +#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) inline QSGRendererInterface::RenderMode contextRenderMode( QSGDefaultRenderContext* context ) { @@ -22,6 +39,7 @@ namespace ? QSGRendererInterface::RenderMode2D : QSGRendererInterface::RenderMode2DNoDepthBuffer; } +#endif class Renderer final : public QSGBatchRenderer::Renderer { @@ -31,8 +49,16 @@ namespace Renderer( QskSceneTexture*, QSGDefaultRenderContext* ); ~Renderer() override; +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + inline int textureId() const { return m_fbo ? m_fbo->texture() : 0; } + inline void renderScene() { Inherited::renderScene( textureId() ); } +#endif + + inline QRhiTexture* rhiTexture() const { return m_rhiTexture; } + + inline bool isDirty() const { return m_dirty; } + void setFinalNode( QSGTransformNode* ); - QRhiTexture* texture() const { return m_rhiTexture; } void setProjection( const QRectF& ); void setTextureSize( const QSize& ); @@ -45,15 +71,30 @@ namespace void createTarget( const QSize& ); void clearTarget(); - private: - QRhiTexture* m_rhiTexture = nullptr; QSGTransformNode* m_finalNode = nullptr; - QskSceneTexture* m_texture = nullptr; + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QOpenGLFramebufferObject* m_fbo; + + struct RenderTarget + { + QRhiRenderTarget* rt = nullptr; + QRhiRenderPassDescriptor* rpDesc = nullptr; + QRhiCommandBuffer* cb = nullptr; + } m_rt; +#endif + QRhiTexture* m_rhiTexture = nullptr; + + bool m_dirty = true; }; Renderer::Renderer( QskSceneTexture* texture, QSGDefaultRenderContext* context ) +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + : Inherited( context ) +#else : Inherited( context, contextRenderMode( context ) ) +#endif , m_texture( texture ) { setClearColor( Qt::transparent ); @@ -74,11 +115,18 @@ namespace void Renderer::setProjection( const QRectF& rect ) { - const auto rhi = context()->rhi(); + bool flipFramebuffer = true; + bool flipMatrix = false; + + if ( const auto rhi = context()->rhi() ) + { + flipFramebuffer = rhi->isYUpInFramebuffer(); + flipMatrix = !rhi->isYUpInNDC(); + } auto r = rect; - if ( rhi->isYUpInFramebuffer() ) + if ( flipFramebuffer ) { r.moveTop( r.bottom() ); r.setHeight( -r.height() ); @@ -86,7 +134,7 @@ namespace MatrixTransformFlags matrixFlags; - if ( !rhi->isYUpInNDC() ) + if ( flipMatrix ) matrixFlags |= QSGAbstractRenderer::MatrixTransformFlipY; setProjectionMatrixToRect( r, matrixFlags ); @@ -94,11 +142,24 @@ namespace void Renderer::setTextureSize( const QSize& size ) { - if ( m_rt.rt && m_rt.rt->pixelSize() != size ) - clearTarget(); + if ( const auto rhi = context()->rhi() ) + { + if ( m_rt.rt && m_rt.rt->pixelSize() != size ) + clearTarget(); - if ( m_rt.rt == nullptr ) - createTarget( size ); + if ( m_rt.rt == nullptr ) + createTarget( size ); + } + else + { +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + if ( m_fbo && m_fbo->size() != size ) + clearTarget(); + + if ( m_fbo == nullptr ) + createTarget( size ); +#endif + } const QRect r( 0, 0, size.width(), size.height() ); @@ -108,8 +169,13 @@ namespace void Renderer::render() { + m_dirty = false; + qskTryBlockTrailingNodes( m_finalNode, rootNode(), true, false ); + #if 0 + static int counter = 0; + qDebug() << ++counter; QSGNodeDumper::dump( rootNode() ); #endif Inherited::render(); @@ -118,51 +184,92 @@ namespace void Renderer::nodeChanged( QSGNode* node, QSGNode::DirtyState state ) { - // do not forward nodes that are blocked while rendering + Inherited::nodeChanged( node, state ); - const bool isTrailingNode = false; // TODO ... + /* + We want to limit updates to nodes, that are actually rendered. TODO ... - if ( !isTrailingNode ) + In any case we need to block update requests, when the textureNode reports + that it has been updated by us to the renderer of the window. + */ + if ( ( state != QSGNode::DirtyMaterial ) + || ( node != m_texture->textureNode() ) ) { - Inherited::nodeChanged( node, state ); + m_dirty = true; Q_EMIT m_texture->updateRequested(); } } void Renderer::createTarget( const QSize& size ) { - const auto rhi = context()->rhi(); + if ( const auto rhi = context()->rhi() ) + { + auto flags = QRhiTexture::RenderTarget | QRhiTexture::UsedAsTransferSource; - auto flags = QRhiTexture::RenderTarget | QRhiTexture::UsedAsTransferSource; + m_rhiTexture = rhi->newTexture( QRhiTexture::RGBA8, size, 1, flags ); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + m_rhiTexture->build(); +#else + m_rhiTexture->create(); +#endif - m_rhiTexture = rhi->newTexture( QRhiTexture::RGBA8, size, 1, flags ); - m_rhiTexture->create(); + QRhiColorAttachment color0( m_rhiTexture ); + auto target = rhi->newTextureRenderTarget( { color0 } ); - QRhiColorAttachment color0( m_rhiTexture ); - auto target = rhi->newTextureRenderTarget( { color0 } ); + target->setRenderPassDescriptor( + target->newCompatibleRenderPassDescriptor() ); - target->setRenderPassDescriptor( - target->newCompatibleRenderPassDescriptor() ); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + target->build(); +#else + target->create(); +#endif - target->create(); + m_rt.rt = target; + m_rt.rpDesc = target->renderPassDescriptor(); - m_rt.rt = target; - m_rt.rpDesc = target->renderPassDescriptor(); + auto defaultContext = qobject_cast< QSGDefaultRenderContext* >( context() ); + m_rt.cb = defaultContext->currentFrameCommandBuffer(); - auto defaultContext = qobject_cast< QSGDefaultRenderContext* >( context() ); - m_rt.cb = defaultContext->currentFrameCommandBuffer(); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + setRenderTarget( m_rt.rt ); + setCommandBuffer( m_rt.cb ); + setRenderPassDescriptor( m_rt.rpDesc ); +#endif + } + else + { +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QOpenGLFramebufferObjectFormat format; + format.setInternalTextureFormat( GL_RGBA8 ); + format.setSamples( 0 ); + format.setAttachment( QOpenGLFramebufferObject::CombinedDepthStencil ); + + m_fbo = new QOpenGLFramebufferObject( size, format ); +#endif + } } void Renderer::clearTarget() { - delete m_rt.rt; - m_rt.rt = nullptr; + if ( const auto rhi = context()->rhi() ) + { + delete m_rt.rt; + m_rt.rt = nullptr; - delete m_rt.rpDesc; - m_rt.rpDesc = nullptr; + delete m_rt.rpDesc; + m_rt.rpDesc = nullptr; - delete m_rhiTexture; - m_rhiTexture = nullptr; + delete m_rhiTexture; + m_rhiTexture = nullptr; + } + else + { +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + delete m_fbo; + m_fbo = nullptr; +#endif + } } } @@ -170,22 +277,39 @@ class QskSceneTexturePrivate final : public QSGTexturePrivate { public: QskSceneTexturePrivate( const QQuickWindow* window, QskSceneTexture* texture ) +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + : QSGTexturePrivate() +#else : QSGTexturePrivate( texture ) +#endif , devicePixelRatio( window->effectiveDevicePixelRatio() ) { - context = dynamic_cast< QSGDefaultRenderContext* >( - QQuickWindowPrivate::get( window )->context ); + Q_UNUSED( texture ); + + // Qt5 needs the extra const_cast + auto dw = QQuickWindowPrivate::get( const_cast< QQuickWindow* >( window ) ); + context = dynamic_cast< QSGDefaultRenderContext* >( dw->context ); } +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + int comparisonKey() const override + { return int( qintptr( rhiTexture() ) ); } + + QRhiTexture *rhiTexture() const override + { return renderer ? renderer->rhiTexture() : nullptr; } +#endif + QRectF rect; const qreal devicePixelRatio; Renderer* renderer = nullptr; QSGDefaultRenderContext* context = nullptr; + + const QSGGeometryNode* textureNode = nullptr; }; QskSceneTexture::QskSceneTexture( const QQuickWindow* window ) - : Inherited(*( new QskSceneTexturePrivate( window, this ) ) ) + : Inherited( *new QskSceneTexturePrivate( window, this ) ) { Q_ASSERT( d_func()->context ); } @@ -195,6 +319,16 @@ QskSceneTexture::~QskSceneTexture() delete d_func()->renderer; } +void QskSceneTexture::setTextureNode( const QSGGeometryNode* node ) +{ + d_func()->textureNode = node; +} + +const QSGGeometryNode* QskSceneTexture::textureNode() const +{ + return d_func()->textureNode; +} + QSize QskSceneTexture::textureSize() const { Q_D( const QskSceneTexture ); @@ -213,17 +347,6 @@ QSize QskSceneTexture::textureSize() const return size; } -qint64 QskSceneTexture::comparisonKey() const -{ - return qint64( rhiTexture() ); -} - -QRhiTexture* QskSceneTexture::rhiTexture() const -{ - Q_D( const QskSceneTexture ); - return d->renderer ? d->renderer->texture() : nullptr; -} - void QskSceneTexture::render( const QSGRootNode* rootNode, const QSGTransformNode* finalNode, const QRectF& rect ) { @@ -231,8 +354,6 @@ void QskSceneTexture::render( const QSGRootNode* rootNode, d->rect = rect; - const auto pixelSize = textureSize(); - if ( d->renderer == nullptr ) { d->renderer = new Renderer( this, d->context ); @@ -243,7 +364,7 @@ void QskSceneTexture::render( const QSGRootNode* rootNode, d->renderer->setFinalNode( const_cast< QSGTransformNode* >( finalNode ) ); d->renderer->setProjection( d->rect ); - d->renderer->setTextureSize( pixelSize ); + d->renderer->setTextureSize( textureSize() ); d->renderer->renderScene(); } @@ -262,9 +383,38 @@ bool QskSceneTexture::hasMipmaps() const return false; } -void QskSceneTexture::commitTextureOperations( QRhi*, QRhiResourceUpdateBatch* ) +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + +void QskSceneTexture::bind() { - // what to do here ? + if ( d_func()->rhiTexture() == nullptr ) + { + auto funcs = QOpenGLContext::currentContext()->functions(); + funcs->glBindTexture( GL_TEXTURE_2D, textureId() ); + + updateBindOptions(); + } } +int QskSceneTexture::textureId() const +{ + Q_D( const QskSceneTexture ); + return d->renderer ? d->renderer->textureId() : 0; +} + +#else + +qint64 QskSceneTexture::comparisonKey() const +{ + return qint64( rhiTexture() ); +} + +QRhiTexture* QskSceneTexture::rhiTexture() const +{ + Q_D( const QskSceneTexture ); + return d->renderer ? d->renderer->rhiTexture() : nullptr; +} + +#endif + #include "moc_QskSceneTexture.cpp" diff --git a/src/nodes/QskSceneTexture.h b/src/nodes/QskSceneTexture.h index 1a66f931..56acdb3e 100644 --- a/src/nodes/QskSceneTexture.h +++ b/src/nodes/QskSceneTexture.h @@ -13,6 +13,7 @@ class QskSceneTexturePrivate; class QSGRootNode; class QSGTransformNode; +class QSGGeometryNode; class QQuickWindow; class QSK_EXPORT QskSceneTexture : public QSGTexture @@ -25,19 +26,31 @@ class QSK_EXPORT QskSceneTexture : public QSGTexture QskSceneTexture( const QQuickWindow* ); ~QskSceneTexture(); +#if 1 + // to avoid recursive update - need to find a better solution TODO + void setTextureNode( const QSGGeometryNode* ); + const QSGGeometryNode* textureNode() const; +#endif + void render( const QSGRootNode*, const QSGTransformNode*, const QRectF& ); QSize textureSize() const override; +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + void bind() override; + int textureId() const override; +#else qint64 comparisonKey() const override; QRhiTexture* rhiTexture() const override; +#endif QRectF normalizedTextureSubRect() const override; // satisfy the QSGTexture API bool hasAlphaChannel() const override; bool hasMipmaps() const override; - void commitTextureOperations( QRhi*, QRhiResourceUpdateBatch* ) override; + + bool isDirty() const; Q_SIGNALS: void updateRequested(); diff --git a/src/nodes/QskTextureRenderer.cpp b/src/nodes/QskTextureRenderer.cpp index d7279b90..4d545736 100644 --- a/src/nodes/QskTextureRenderer.cpp +++ b/src/nodes/QskTextureRenderer.cpp @@ -4,6 +4,7 @@ *****************************************************************************/ #include "QskTextureRenderer.h" +#include "QskQuick.h" #include #include @@ -17,7 +18,6 @@ QSK_QT_PRIVATE_BEGIN #include #include -#include QSK_QT_PRIVATE_END #if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) @@ -89,7 +89,7 @@ void QskTextureRenderer::setTextureId( QQuickWindow* window, if ( plainTexture == nullptr ) return; - auto rhi = QQuickWindowPrivate::get( window )->rhi; + auto rhi = qskRenderingHardwareInterface( window ); #if QT_VERSION >= QT_VERSION_CHECK( 6, 4, 0 ) diff --git a/src/nodes/shaders/boxshadow.frag.qsb b/src/nodes/shaders/boxshadow.frag.qsb index 9a7990780c64b70fef57497c0cc5678079420cf5..8ecfc828aa472382eb72816fe916e075d05238ff 100644 GIT binary patch literal 2656 zcmV-m3ZL}=04+Lrob6hTb{o|ZzBsX+2)855zs3E$=7q~?4#pp*xg^-S@iqoW1mwL+9 zW?Ca+S+qz~h+XulpPL41gzhoXAj>gX^hBHJhao#<;P&VT<+ka-DN}4-W76X?S#603 z;DwFB4uP7&CHpY~azi>k;MzxXsgu=EoF$KAQu3t|&$*`KlDxi6J~wHU5;+u$HNfi| z!8f}`;9$PX8l5REw<;AkwCKY+X@zdpi()rSFXu9;TPcgKFjy@%oVSC}s?-A~F0>0) zi@?N-L$6IbO{eruP^m<2oG#@uvrDX2Gh2PW3cT zcb4H{i@dzDaN+W`;^{DmqT&U=*@_WX(+rJy_3ZW2mo8mClT(8YP`=cP6WYdjWZ}xS z;#DWCx-m?sskyYcrPy0>FU#nrp~$iJvf7DaGw}RaFSu8+(u!lZt$8bF=PDT~P~vXb zipO%Z9hRZB)}z&{$rtHabIJv~-LbXPZ`=! zuH%KN+|-HO)Xelu{@989iOD=o;i%Pc+UYR+WkADtXdRie(iDZmRwX%R-YV0eX@Vp} zlc8{169_X3(_t$;sTP7H&T^DioBXhxZzj_>Azrx#Eh)QPw%b{&Y_DaqYN=?%y6act znv!Pq68Bq)YEC&=B~x`8HB3rZNDwuGAg)n)Z>A^QeAePyX&J^;BGuinneJBaY&WyA z){6Yh=rloYnY*o9mU!{&vz)&DrOc9f+*cnhDydbs=<%~oauvWiQ)C-iW$X&Y7%-Sp z4J4sJCdW2iHmbO>8+#3`r?><2nCQr5e9|@i=J<*mMqc1slet`~8M-A;QZ=tyYpMmA z?PGhq&vfCZz+&nR-fybcDtA`glHBgvJxQB;kQjMOrJ~v7lG|BvJFCYnqvd;*AZ*C* z0=%}wT5-ZP&#x+@2>AxBrQ--S776d`Dm_hQi#?^M9RFW-l&#I+{`8ZcR-!YDjPYZd z-R*58c26VOypNzh*n`@L9La1VcCv}61lm#yxfdN|s}1DK`-hxJS%oy;=^#c_GP-@( z-S#1|)I&1;4dg5JkN)-{E$0TB`9>Q^!)vQap?`D|3Xdxp-9YRC4WwExo}(gs#)+N9 z+>+5n5=HlJ_kS|O$Gb&$D)-wRB>GJ^m(Dbtg&GUQOpzj*=V`ODW;&(`2`1uKX;x}^^-A@vp=QaYr zEc&|(^BskJx9GmfV|fa)-O}!`d=JWU)??Y@gxLf8d>sM37c|>=6gEa6ACY?M+D9Wj zVdy=Dcx(D7e9`nV#5qeA+2%>uGVlF_oyC|tWqfwY7;B!M&j@bzaSr1soTBH!<2gQ$ zIcndYM?MTg{{>*pIliQ(_`JqnfInLPs*<15@=HeC7ckat_`~#T;IaG)u%m{(MY{j? z*Nb!7o`+a5{%zoQ8~BDC{&vT|PYwHjfbJ;9XZkL9(=_WL(S1eCynhmB7+B7Y8AF%X z|9pae#h@8~*`PVEt|jnqCFJFVd?i7@pP)YiJx|`wAa7nEk9pl*#9H%u&LK9Z!T$?k zI6u#T$NBXSvT+V`|2N@Tc9!mQh{IXK_77qEf?@k*@INFB(-)B|FT=m{;IR!}=c}-B z2{w2huXp%6Wb9stjMw)KvgCM zScfY3+GY)URp{}ac?Wu)5#Kuan)VUz&q#;q0K8XayhbFiiFoaVd;!>>2(=ISz5`we zeiJcaUW9Q&LpO%cHAA-reuTJ`!Q=VxK3ElM@9Z_=&<0;))_{4+z}y61um3G${o9ah z*-s%m2;AdFtkz*$&*5jHTen%CdG8vw*MS*B{@#Y{Md0+>y@zpcW8N#^Y5(sCRU# zNTtR-zf^CPUF*4q8$0!46qoDX^1Q*1yhiyb|FLWHR3_PkZ_) z$v5@nAtTSPd%kNGi%v|_U2es0v6xOf^;KsrDk@efo?9GWeq;q*2zNkl-9XL$wIlL&r2*VW!3UJzT7{DWMv?LI{YV7G}HM)q%HD2 zXWd#)?khebA&Gm~!3G>O>g!>B2aP=6z7LJ8;zaSuliyG~Gmaan$E~(BppB-cqp@jU zgY(qgy3^RO#~BcPcJO}mIwScy#OD1jNSyGI?atU-fjZK|?QdA-zfkXD6Q^bM0UvdG OxxYvD%Krzc77pV!&2d2h literal 2639 zcmV-V3b6G604;oYob6hTb{o|ZzW6s0ZXpmLr7bLRlOrXzA}g{J$JhzvkCZ@65<A;b{f57C_wWf9W9NK}X#pj&)_OQbG_KPEhaI-)90l2T17Dr0w5 z8xbp_Nvgbdv;EvKP$P7Yi8`51$fPe?L_ZAK2?O`2eo&5^9-J`6<~1f=u8`HHhyh;Q z9PALNAzZSbASKs?N?Omgn_{Vv)kvHsj}uY~q!P!xsuPpGzDYheXq7TKl!$e}Yn#FU zn`;E0l@4p{kAnl_qr7H@V)_HPyC_cf;$c$Z&$H(*ozKTfC108@D4z!E{fZ<9o)S?-=ysWMx3&2c<9k{3Jbb@-4cbBK#;e zV@UFbWHpWAX8BIY2O!Ttwo}?2mPdi*tjDq^2=gfH^K}sPF3@b_G1wS^d_?N0Yd5X* zq@njT@~!DZ@I}*yk>?4r$Tp9`mU-_X>>Sn{lKI&obF6tfo)O&a<2=?;I7Kgj$1xs9 zjM}&3sE1+bzW}Tm<4Y>U;~IYs{%HBDN`6AiFBo}W#9BMy57V!K$MQ?SjvDrs=>E%} z&(CXnK61tQw}Ibj;OlbvTW$Y7HSGTmx}#X1={w-fP}BpW(z0< zgX4I;%^#GxdmS>~-#1VzEV}}FmR91mt_tp|Qe=1bXz6<(e@U;9B(OuI&6RHP|QFmkd=kR+9x}N~UYkdT{KJULk z&3!65=lwJAwf$cT)zcO+2Y&^gdGp#V`!&|i!_G0__1XB1=gU>b1Hhv2`pNmcp zW!^ui-|4=0#_;#|Ld^ii-U0nD^5Q7nGsrpjA-?!K#Sy~okUpzt?(yG%-A6>HkMnmO zv#(Ep*0uXM^vwF+4ZiN>Pl2a<`M2N)_i~o)5vulh?LCI=Z^O2EF1`c4w*6i3v~A0< z&9Y~O`tHZJpEYbhhuBTO_kzzkdU+eEn>01VNKXUtT;_rt% zYuL~AiTwchI`)I$>Dco|>@1t4y9nEphV24;KV;aR0-t@K0L{MVp_CxI^x)8Am^I+0`*GQ5Z*7CsNj>X;Wx+E+$i?Lz?v!)GL6VB`;uDqtE&ym ztA$Q7*TeP$VrJqbYL*jgrRimEW-PkuPEz7Ok>8q=j5W7hvdUpCj0`$*Dt?iAUnGIUJ8Teip)p>QRNq>m7=0xj$P*q0DVHj12 zsZ?Fhqb2+`_o7@p+jhjCQ1C`bG35}4?^#*N$hWKotB^0`BwGnP{@8~Lb8S{fXWi84 z*5iw`ta-I|zSYs+Xg|5N*xiEedOzLBO`1{A@k~kD7JDKnmA*;@rBd6A8(%g8L-+dK zBG8^~WHxALL%(8i0cZ6V>B=Hw{Fr5T=h~ac1(8R&+-(QlBIy_M)7Al5L-};wwO495 zky9tEM41H)L{TB^DZ-%gx>t%wP|O!-p>!!q#R;vSODlTP!@_hyT}MjOh3TV(>Digt z;^Cvkqf^Cc>ky@;m5nCufip};*1>rzOVJ;&yj&`fib`oQOQ3XCa@Hi0tIjOxXC-!u zGE6dOCCpAIpj+U#rK{Z)bLUl0Z#`c2zuF z+{G*Q$ta9t`&`gyCP=GkhSt1%`s&FG7cQPEsKxpyUuY&NZDT#MaOsMD*@>!d0u%iw z4HPkJ;Dp^XZtSjk<85)^*j@eF`@bAHTaDqt3?1HZyKC}bLsjcwkMk|Mx@V8wHG4MM zO+9=(G#9(y^ucQ8{IS#X2Sv5D3FO_65#()k26^`$LWqXPP9|zESt%*bl0cjVMgQWWC|Wdo!7FKPcCl71w&c?j}ynj+08w zUs*8tv0two;y?M-1$ql%6IS5V-I%t)wWLdATR2Q@!%E!%by3U{TMxVD|m zI<@Q0dTc9UF1N{uOjaY;sn8-poWRxndSLd-iu<=;*1py+Yg}b@{tno#LiLo@wME53 zwWM3i^74e*UMG;}XTR)n1W@0TWr^n6zc*-$e9v1qH`3>dyNM+3;~Qb0ncVYE*fW#; zApZbf3_T}Kjvf0Sy&f8qSv_v`6%lCTB~fSNuJ4I(o~BGEj7{Ge4T%1l{UF{QjpAz) xcYl8jQ^QcsZ{u)VI$Uosm6q%}e9t^&hP;4)^IHW$pj~ diff --git a/src/nodes/shaders/boxshadow.vert.qsb b/src/nodes/shaders/boxshadow.vert.qsb index 4d37149243a5e43d074dc658723291e6f1a8ba4b..d9831605a22608de23815ce59e348623f0add7e8 100644 GIT binary patch literal 1559 zcmV+y2I%RM|3>IH3$Szi-bf(DpV;- zjpOqLw?6yuBMG2LRi%D_{?o71kI=8vf2ww7clJEC??6GN3N#z}ygT#Td9HmkNrVvN zLXAKt5at zhU`F|QL<>5d_+%(b&-k=%nrg`&wC6t0oSzX3L7kmzz4K?igNILBVg!^4 zDBzj{a4Inc;B^jMP(YQi0`LY0DqNPvBDVgjjHdLKpj$PSaX4>w;yK!67X4O^)z5vN znB^`nhh>U0OzTBr0o;Y7t55pM^1~-jt@}|J$JWE3mnM{b<8kQgWPqE>`vE3APLqNSkMbht*7N3P$tt1raX?sRW*){)hkB3o zgQf@r98lXsxlkZZspsRFJKZI$c8~cJxk(xY1tmND%_Ha=QoniHqm{V>I5pr~{R%OT z!V3yt`%_Sg;Qi}IE05}N(ylkJH`KTGs1_g&3q#KF`&#Rm6slmsqT)1M=TQbAkbahQ z;ChPIDCZj}^$rnls*f3!w2I`9L5ZQpIN|krj_#axfb?tH2;uHBT7_uKj5bQNXN)#R zwC9XAPBfqF)bh};lW@Pl{5(l9(CgEMIGm?7+I$S8R3v^>+Jf_wFvFtIgzFUG5jR0R z6V?aGZlt$pJxMg=8|1&{8x-Rak~c&0#-tr8<}eIOSChYq{usHGRg>5EU^NNv&|D?y1;r9l zQU1f)af}WPjfyqr1&*J#UGuB1o7lbuFKXXgzhh+d*z2~x#E<&(JK$!F^>JW#-59)g zO}VQzAol%AlgFQm2$lh&@ElMb@=jSGGtk=xeuoVzZB|#)7|LTmbb>~0ZEa|Iv%1=& zDS}GUyY~0~z{D@)!U> zH3U+5t^X`&iFhrVuXmJLAu9&Fpitt3rK+NM&WhCz6%nDT9q{OlOU)wRU&A%>^Z%m1 z&N$_!;9q{!cV8rn!JT>`J0EeU{-I=t_xxBJ{ITEj@0p(eJ@@t>dh5QIdhrjf$;L}<^&?EQxN{Wa8kz2SXJ1BykG_YpRrK-$~25bt3j36Yu#;un6$^G1GY J|3AYhu2G@K4xRu2 literal 1552 zcmV+r2JiU*03numob6icZq!x~K6^<*9Kt1B(iRGaP}l{u-9*bpY=c06S|lVQQlUyw zY8Kf1nPj_kibi$!6tzEPzVb`QMtVk*}>%2NyxoN5MaImC}UN>SUtIPnGiA1VS{(ODFDe$Q6~Q;4tv_*H4z8G{UIUXx(V4 zxGSmQqheC-G2))-c(|Vw>d3IHXHXxc$U8^&k)9$NZG0ofz@}PLDW)QMWht*hfz=u# zd_vFBZ_b+_-wCfoxOT)F)Q;?vCI%2 zWB8Q#i&V$6Oh z?e_Zt+Q7IkQqK2*!h9|>{3V9FLb6}LF48s9y~1>_GTl1)yGqz0_a7uWB7I*d-JaX9 zgV6CkeZJY$v@i-{E7I5EuJ%^bVfDl)s~D6+iK~S@A?6w1GD4AVaiz0&9HA< zkz#aR-vpCx96Z{JY%j<4`=;eYuiM&oThn6C>H0wrz3VZ20BgexUOV2pGHUsL&}nOC z1ktR;k*&CnXABdxPyo3__7>XlosNzrsMRSksiQA4b>yzQ#*!a85f)@o2GLN->sPtG zZA}|dQ@Bb$|1WBqNt9dTRb+sQ9sK*{E9alGP@D9(S}-|tv|JNvMLz}nqyjBj!aSsPb= zx4=yo^f2=~dSI_RVPprjwPq4);BOi|^9MgrnYFfBGBkriyQ4!LfAqWE(2i@5y9ZC7K6}{ARVnes0P`w| zAs(K_QNaaeFv5H;b-*k?XNA~K+8rY_cHHy5*sZ1MUFUsPmyJ9ax0Zz>ea;D>&I6HR|}U zBHtg3`mPyuF33GAKJG0bt3&p{$N;zY{yk#n&&FMIOUc5_!&rChl{-&WWPdZk8<8>R zc$OP?Z2haA9ht5XMjh8#yQ^jV(CKx)#E-_yyYM;|;x`M=?AakqsI5z__Kd4_(S?SXjK?BwuZ`9Tpzzi=ATQjT-zy)cFUUvHPO^&na{Uc(Y_52H CiwlAP diff --git a/src/nodes/shaders/crisplines.frag.qsb b/src/nodes/shaders/crisplines.frag.qsb index fb01e7de9c15f8fe71bad655c574129a2385816f..274f8d5544268d1261e03ef12bbadf8984a5f083 100644 GIT binary patch literal 872 zcmV-u1DE^&00~8SoXu9-Zqq;z-P{`Lrgv^n$Pfu7LJB5I5u&6jD&itlqM}eCRh8v9 zw!0A9(b_JNs{BSjfe+!C58?&E?Cdz%CiH;^Bvx8`XLjc7oU`kd8Dka3SedC-fWEc$cVT}SZSitwI{looM zlJ;AjElbX?AYY};D#VnDLg;W=AX`K#CG=HgK8&RA4&lEByGG**+Lei2pTtakRgxz6 z6)0|3^A*W=fa{eeKDqV^yzdcKZr>$)6QYV}mynel--MAA%Y=Rl;;STH8GU6`zC?9x zlf6j3+h7|sSEl?W$}ge@s@^2-#9l+XrYsKj(tDz(uQj_ z6%Q4v0S?fDR*;VAL#BWe!0qr2XEdT*?S^R68mkI4zrX9 z%%;E!he!5%M+9DKDRh)n2H2N$ou+g(Dk$mvYUW%jfhnecNB~NKXUAx$Al=i_SJ(LB zo_J{{q8Wg(zRzX)*z$e;Q0I|5$oii7Ec8-mV8ews;JqDV>Q8vse<&ZV(;YZ?36BCZ zazZbG{qRi8`qP=7oC^J1ljhpVrk&Q$HbKdXEy?1l{W?BIoQBmrIZ>H%F7zTTSB)BO z9Dyhi)^{KG46@Y;$MojpL(KDJ@0#ahRb@P*yZ#|*!pBN)DR>2;=)M?D6=xUId!udr ymv@1z_(H4r>$Kvne^#;78}sx}c%H^pn=pTy&D>~{dz;bk&dir^dHy#x?c~a-3$$qf literal 871 zcmV-t1DN~(011kCoXu9-Zqq;z-6m;Eo%GJ_2^k`xL`cCzDMEx+MMYesN>mgoq^h!9 z$8i^8J6hW%QkCE6C-5OW^Fh2InAsi2D<|{`Bvx8`XZFn5nKSFOjIkxgScR!E2Xlk< znP3j{*&d770H(+gzi6--149?sDN7-ov1{yO+C4jdH2Jh$Lk_4*6+-a+YX5M* z6(_w`XUoF<6{&~PZWS=k(5Bd*N8OZFz9O42UNs&IW1Rw$MU^A_M2NxX{mRb*$% zlvkJRCGy<{+n~J)#aAi5BsEa^W|%5*F4KOEIG3f)%69|oRmulze?ayc*%-f0Smb;R zXOvj}d0<{Yz=K*phbLk;h#xt&sm4w6??A*7*+1cgC-M|lq5h)Lqc@Ik^>a_eJPOT6 zmSqfu=W=PCasO;+_6L!Zbf?@r1g8-vB6SnJ~h6y8Zk`6uuA9bbU+;cmo8x0~c zvD;=OxX;6`F$Rh>!8E^fwjH5JBaec^gPsPqCW3qc?1$bH8c>#0ZU4ZsIArE|N z3eV?p;)%womGO$`iyb(hfLGqH&Zr~lZB-V;3?27#)bGb$(r~S&s!Kr?Q07s;LW=udrw4hY`;yDVVY#Z6hh#H!z25>BYZEh6uVRt z0rr)W+PS3Dr%iW*$W)~>0-z+{vmu;Gu)fS>Ldxj*JX?;$=~XFG5aV;=fu=mcI2{qRf~HS2d|ax3(EPMT{s zojR@Gb)v$IEv({C{W?CDJPoUPa-t$}FYrPwR;?Ot6oM$B%OCy xxouvIRhCgfcl|@sgpZWoDEPdjqA#oPbxnS^8U0UG=*rZ7<}2dl_zl9ku{*Pqy}clW z=n(3P!F^CH3tM=?ho38ALb&kH6M5jYBjj(oMDW@xGU6e~WC)EKgxCgmR}%?A{7$hT zs-gg`?eNs?yA0I^caJEEEa>-y16~QyO}uf2+pQah$blP0>56iDoU{4WBSDT>gu6^L zFfD!A;MGII!*x=7dv2jxDA=9}5A&Sq*^5rax4rm6GGRP6Ot?JvQKppr!u8BT(ariJ zD&@mw;Il0piqfH}7a!a>{!#|p6=~IRqR9;9ANs zjEbN2ot##@Sj8mrhGZUU$sbsE}m#RJu zu2BZ;-@1HvVrpvUQc{_YP%%~Y8+0(2K*#KD<{)ZWcAdPm0~6UH{Cv?_7&Gehic`uD;t%WdF~g``RLPZUb(+*Q;+-}h zucaF61BzQzcaMXu#uU=)%?g%>XQ>W)wOJb}4(rqgD^wezN`nBgkx{8*r`%eoZOAVAm5*zbma8}b_bs^Z!F>fddhK?|en+j}M^8=zXXK7U z)3yA7g#=?Fh3wL+$PwrcKhczI%j6zxDw&CiS(+ z8Bp84Hkc(LOt@bMJmNZOK1}$zon-Mo1bu_r?S$_pd`#L=aXGU!uOgp!tnk>s$Ht7d z=9v6v)b3>b2QOX#LEucoV-8#QT{~`jCYiH-;w=OB#ZPXL_1CNerEGb$fq-e z`vc;ml#u<3!hUdy!~74?bw( z*97r&9$X^%31;&$vx#$XxrS5x4>^I!4*lSUyjpe&u2+(02)LI5Qf>3Bq=PTz@?ALa8Z1Fko7@+? z!-eg(>(ylB<~t61$HZpe?$-TYUEl8w?R}$Pi9_j?r)Ma=lCAV=rPqIuUO!Xmf_BWV zr`PCnOD}khZ_Fzo%8{FyhkgbqwzsKs?NxnQZ}Otf$ktcDs09(+b2b^vlwYQGiH@-|?)X99^iy)A#53O-C9pFQ`YWtyefUghm zqe>7*oo*fTztTI0ryTQ#Sh6&M7G9mgkVhN(Kmb?QFZ=_6{_BE`eIV$P?Whj~TlwQa z>tn#y{20(Wyl)-ew+`=Hhxc3c@P3`cbUcpw{$(Gg*Lhp%aH@3>`n->=__2H_QD4rn zd@E5~iP|ht^#MOzvEG+!U-$D6zFLI-rd@xDRR0k`G@Rf!@I!y|`c!^{ J{6F~|#be=Rv#|gG literal 1865 zcmV-P2e$YC05J)8ob6kCZxcrl-#8D0lk$er2XG{9Y7=mrG~p5BBs9=g2f!F@=q3Pae!f#;f-5*GZiMG-h12>F*T5pwMlx_AJBI*FhfA===MKS@jws7ow~ zx+uZh4)|2>cNnT2?jBJQc`#xN6Z{jRn|PB9w@1AsL;-v$yZ*=kCOMm5Jub);%Wzj| zE@oX{p5xUTCXavEyd!)R@Un`E>Y(Qvk=!4E~723xz} zvzK(K@o_drzm77ybM)TrVcK09>e~;`m@D7zMk}+m9cDxb4emEVANt!xv1{<$K{4Qc z7{&>D?;w0P;bX2JG9HELCLM1OA9-0C?;_ek81E+gI5z_{Rw;(^dkLGM@d3idN#6ll zA1;5G>3@s#3*zJWZKnSn!gdkAi_Pf);2a}dAKB!%ei!xagc=V@u?c189Qk#W)*(*1 z=7p@rIf?JLABEd&e~#JD5>Ms9d7`O27-xBK-jx$B4fW@kKNI8+*F8yeHMbXt z#`EB#7Jf|;PvyZylAmHWFEN`q2bVmYD|y z39)yL=qlb%Tf}>vcq$KONcK9*gIS{UJh&0?=?39257au13%`GSMtGFResx>O9=3<% zZxiMpn31z`>+Vqdsqpt~VC*RKJ$s25Pq$~wb4J*neOGMneH-z236Fk7`}p?U$8mf| zsI$7nyG4dyV7Pn4 zQ|qOZ>^&x%XR`OnUY@Wa=MWqeh4;HcY^rb7uxqAO)rK;eM55-{^@5`<)k}#-2@S4F z-WkD%ZLVcq!m3di(F#`Cvc2)JX4&SlSy?RW!Xhwu3BbML+_F)vgv|WteTc{6{Mwk?L?y>BF&PPbRp7#^qMxVWzw0H%aqFS z0$sq$X-WAqpbY^A^ficPo8YA~Sn_0Gly{Pu^k^ytBlv6J6kdD}hn0_5~J!0?tAeC51{VTrmXyo>k2;iwNr+4vm#ph~YmAAC9K74^Z_ zHuIjj4?bpnu-8x2(f=(`&Fc1QfVNey7NyLqo_W5j>o2IyJ!Wmrcxl-K#O>7BqKtYz z?F)Ym9QNB+M@Io1D1jX2%a~>x%Vy0n?Br5LWq@rx)GPU~EL-Nw$l8eOv`(2Yrmf@) zUt6V8&2W;1OiKDEp%Un3YXCRGal;ZPXCVL_P06%|(#ShzK`CZ2W&^Co9!V87KYL~F zmOf=$wVHmVx>9#2xMmr!fAi9vshOF%iy3J;M8!)+m6f(qW+j!p`qR`|X_G?J1BF%!t2Di_(n8%0mRgg$TdK9v zCdH-)imkMH|88D+*&~~hN`p*XHgpr;{RZl%R*nPGO&yeFha`j;mI^F)AVHjxZVaHI zO59pDoVr~NDA{P$A7F#(`1SSf51iGo6Fy_#@Gz`1`+zf1V~H9|fV_om{6+O4--|{d ztB+TuUEyDB_V~w{_H>_FEtKm;LpxtFoP1fYImNQMG@kJ3HM3G2#7FweaX2p5%<8gM z%~y;Xv=u{hrLrL>aj&`Y(>N6wJC9St;wN%ag&t=xiq_S=u&_d}i;E$$X0>(qSy=FX zut;W7N?am*)AB8;)M+N#R7SFSrpodf4po#T3kfT!(_P9yDZ$R){&Q4Hs+2q+YmFRrCMvk7;KB)mB}!@t!l^xqmwz!x)=j zjHTfogFC}q7Q(-X)j&$Y&HkW^^E=zXPc$;QB$pV-OaBE+in>KEbyRg6m67!A-i4HMGDH zV-|IP>~-dJ9iq>gp;{bI%}%0u28y^(+7r-Eba)s{@bmto%|~`DYIboxuc{bN(mKv2 zW$t*l93MNtF2Y@6IJj}CpF|(C@CrGDQrn8zbC` zp-YkOfuS2G-6KPnCf&NBn;_km%ym5Rhj~vA)G{s_FJBz|1xg3o8* z35UbwotCvt(!f3jd5WIX(k{(DV2bI8ISbNJS|22Vmd}CzWAJ&D{2wPh>dGYRm+UIY zhh(1W!uY4iKj!)g$e&XDw5)4N_6BttXWkg^GqOEL@lc*7-D!}|Q|)6EALY-p}T4t)sog^cK}y&kfX%ME~XZ&nr5g0#n>U`5qVf@~lzQ4B29x zS?bMY!}bd4za{x9>9oxp+2jlxoAgH@GnB7Uyt8DF>py@!u3e|~yivmqs-a-`ERy~^ zvYRJc)PGO91*#3#mZ5uRNvD0>q8zk*n`GUWGUYi%YdY2<*_MqQmqzq?ne^J<9rBl^ zHC^)x`Mg7Uu9EH+tYhpinfh{DHR7#NyowR;F6nOJ39cF|y@`(zpMhG0@9NgM*spS*vdHU^)2N^)36DCi;G63YH=a~0Q5eV7he5j| zXl$k%h_!Y1S>^HLjkUZgWQ6hKju@~u;(>?FC)F({YIuTN5JVQXDlFB-uG8#z33EJX zR?usaty*FYHzP;sTGBqp^LD7+VeQJA1vYCN(kJ^`h7h1Ae`bPbdf-p>kSC zC$+1n5M9p&0{3h%DBKDBdKk6j-iM9DyIwxZ}S=my?0oN$DDLzkly6{o9J%$)BT;;uE}oy1+v=)*&EI3J)p%JB(R;| zIf(JL$@l?+{A3X1XpbQC|5AeZK_55Zz2K4_=EnVQeEAQt<&9h8>xfcg$?v4p%^p$m z`Aj?VTwhAh{l@dQ%B(!3_5)G=r;|!$`v2bZ{`a1={Hf482Vay-KGOguK7+Q z2xB~YLCs<0)%eWZ)0Q8{FoL;u6pB#nx4n2KlbQ7cx7n$Ae6i&TrwQkWTGQWMHuSOI zs$IiB_VZ1@Cr*SFHlUnlGIFxT+Sj*}-$CcpiC9 z4a6W8D%2%Tq^2cJ{+c?p8)xi3%LdhRu~0aAa1DCp?wFrr$Juxzp`>KyT2;xAv7 z-*PX2W49mJ$$pSL{~cRGIB;a`+Yxf++y_QHv{@Jf57ogIH;)O~7Wx%E@Jm|CL;t%= Q|LZ%j+Z>Gj6C?0OCtn__e*gdg literal 1830 zcmV+>2if=l02nxUob6caPa8)NU%))-kfccy+B7A-LX(^m;~2+)!z)memxKfYlte=4 zbezxTTKmqrTN7v$^+Q#upZc-?Q~!qkBmL6H%+X9>&0Nm-zs9L7?5V0l*IUu?v?0Fz6 z{d}r|NnU9X;s6feQ$p8If{qCNHn=8%np#h2* zGb#Ojr-{GqHALSPjkP$?KRJy0(-7qo;$DJ;qs4O|g5OWpx7TwKujGm|c^T$F?Ds`B zEP}(kVSAV&b`$Or!<`)v{9)7qPq@<)WJA%PF||)AcAeG+1w9zklk~0ghMBA!#p@&7 zipJ|F-cyY?K)iL0mm=P##v3Hwj_`FL)`xzNC*l~VI24WX-_YoiMt=ZW`UQSK_=3-4 z@PwOVh&v@>8>S8W5a(o-jAaQ#k!bd!LZ(b+U)_IPtCmeS>1}Bl}2yO8QaW zAgt2&IbpAmKBR9F5B1$5eJUQLZ__%;n@r8H_IfrEKNkAW7k^q&{uG$39h9G==Ml1x zbcuKhUuLp~X5q7+wFdxVegV!P$;v&Hd#UJEqE`WBFj-sUl#?a$Z-V%vKp{P;#WX>( z7-xoZb6baL>AdhR)w4T>uxKA+@G@V7_ ze@k*RB#Zp-h&M~I;o34}?;7!xjtAs}qUVWLd08MoM`%siS|r&8&Bvu4d0r;I()W<` zrD#pXyh1u3lAo)@djRWb`wJ%Deyf_jHL_RM>^&m>4CBY zaW>2W4(lgPwKhunvEMH-+3U*QWx{QO9_**9#KZo7LAu9C4%dDIeMpz&bVw zk<&jndFY0b7x>0>KA&!euHy;nz^ffJjcPrx`9c@l^MRR;c-V5dvEQnuU#AVY8a6ND zN9Y|b2*#o76b#4pxf_;)AgoBPP-@sw({=ck&AmWpN8Ap12cv2GIvq4^$K%Hf={Mj) z%lE25*gzkQ7JO(d>1kv)nsqlUtQk&F55g@V0dr`F$DUs!|D8cRmx)qE3O&S8KV zawc7+?jVd6+>}_I{+fPDr#WIZx z|6seM3i*F}nfzZM@1{V0)C%N$yFh0Cr3K>o9kmg(xFO1;3Rx;6?#%V_AF7r(31=;o zemZy1mD+FsTy;aSFY}PFnioM0nEUxShruhWVSfpxgrCKuqA*~|>H!%r^i@!;MlLs< zydF|P0=242po<*|5MZs=lHlCe-Efh{F5s&kK*(JJH`9%xq$Pp5Zt5>W@qhFPj7EN+j?%5!yt;RXMVHA z^};1JU~A{m%ksv?)>>W$(nENo#S_w+JD zr04f)_TAl91Vg1BIKD0?=7{IlJs-xAWpfC4zr|h4f_ACDvX3K6E@m>x*5(JHYgd5u zBQ8zdGN@72Nvt9VqBak+>b2fxZ37*iI2_qn%3^W%oNe$Sdb`s^2sZs;6LMl{m z?CoV`0Jbj*;Fjn`0La&$$na_508*VIB(!&QXi+W*SSCJhDIf7(GG4z~c#G48{GZUB zpQmx=`MG$a#n12Jv=JmmLC0Ln>U*Bp>#oCyw)24;7&tKoMSkdXk~pErU+wYg@%wLL U#GHy{to>`nXoAoF0C7n|7(Wh=0RR91 diff --git a/src/nodes/shaders/gradientconic.vert.qsb b/src/nodes/shaders/gradientconic.vert.qsb index e1b0505ce22435643e08ffde070d5f92dd807372..f807bce7b1287f7efd47d412f9699dabc4694044 100644 GIT binary patch literal 1624 zcmV-e2B-M|03<4Sob6g)PuxZjU+#{7hJ=I!+O$dIgcR<8m1_kiY0+$!n0A>;=e}ghmaFb->+yf&|WK z%vSVgPSKC(F1E`WtOBDRc*^mXg6e|1pVgQJmITZN`x)z_xyK6biX04s0S@!Hvq8ey z42krxHrFt$5VAT5*&w>k*KA!F()v9fW(V z@G`_(R(M(Btth-4@zxYxC-FA9t=XnNw0jVqcNIU7zN6T9kH&pXOqTPce3AS{AFcs6 z!{xKwHgP<&e4FcVe*}2MbE8{Zq#>`Y`H@EkRBx75YX4icGN#X^mU?9eu%K$%KQz*zfWk~Mfz@$K1TRk z6hEo&Hu>Jg`6AXD&3#UD_sCYHM~Nrb9wXg|&(qoiMBgW@)HlUsp%VI#E-JpFZPSW= zq-ROzEbNU8i%%_L{s0c{wMEL?CCbezLtvyD1G3MjMm+_dOc>Dx1NKX=Gg7jd149e*ktz!^Q+WLTU^aLoh>k9=xt>8*D zCw-bB*^(kVr^wFIdUJ&R6SDJ=XNcvf4kGb$oVt!*M)sW`bbU{MFjLgDFbW!Wr0+H= z+AB?mt7b(d{0ZE{1}lP0yvPZbd_O1)Zl&s5k#2=`$Bx#m$n{lr7+FD-VAL&7 zrTw~PyV22tcD$fz4bQFkK@Dxt8}I`xzY)>8Vnx?OvIIXt_~sEr zHFUi_-Lq;A1mAXaF164m;XH<=!(`Gq^S@0y8G`;6O-Q(E4kcdS-fo0Wkgxi-S1j!8 zD7s3CJZx{*X^5bdcGpYzs-_7N@^pzK@05uOLNs5JB5rna1=I+8358G2<ZU~m-cZ<^Sz&|i+*0+8TA9Y;Kq}Aqih~0O7r4l+(-Yymr1%Lw;-&)Wm6)nJu zpRHiyWg5;in*tuR0Yb)Ga5HHX?SodJaa0gn1GXnvX1A#!3yG=bCQ0HGc~Pel?;tt? z8*9(jpPNg8ABN^Lub!-M$s#nbZ+^YCw7R*ep|$VxkPt_4Z}7z4~Mc zo!2*>E5SIHX8_GK-~1q$uR93lYYsxKQOzrwC)K@L_$M#bbcn>cPNhee^&H01S2anC zDj;1lV=IzCWoJl@6i>luW1kTBIUztQr=^%D_HYU-lVzuBdvcLuwZ>p+KUBUMe~nB0 z^tmbV@!a|SiexNqv>^LOwb3#~+_!7Ah*s4}jh2fhi;%x)s=Pl{)a9gLRG+w;@G z_z*sC)m{j`xPQCoh5S#wkbm3r_>fx~@32SlzBM0MvcG(Onh$5G1gAd>TmJD$w)(~Y Wn@N8UnGI3up;#U literal 1617 zcmV-X2Cn%403?Zcob6g$Z`4*0KH1&e93b41mKKU36n43oCEXB28U#wK1}RdafDlp? zS&rA6y4|&deVhv@PgURg(idL(8~OwKWBNb(QnfSZjO}B4H-uJAA;ieLo;lxK&&>F& z2xDxB$*TnSINM|n3mAvbZ8pbz_!qDytW*&47hNoOon|I`0YWChQ3Ydta1Ztp!9|VP ziiOf%77#wb)>y<^3|)?r=jRG)0PbU~!z}P6U@nBf*a)pXRB$KbhjH-0VV;OL$i!PB zks;RQ8V3s@+W;XOM3;p<7eu9>^KrWJmj*%{z?feNUFZcJ68bH0O#+vC0Z)Kg1lr&L zXFCLc+6(?quRi)dM&HeJsq#~~G%<(}4cxv>+*6Q26dHj|!S8Pto-7z4ZyJrMy7ar8 zC?2IOqsJY~#hBSJ8M}(Iu!8hwq#NmD3Ox^Wyrunu?oa561e5Z>S@9h6`Uv+>;gyIt zukgymTTplv;w>q>e&Rh9zLpbx==W*(zO2N7^d-f|EA%{)V9J7r@@L?)B=BY7i|p94 zD0?05k3b*BHb84S&_m=m@@I%1CLZE7!dD1C!s6bP_z~I%jmB)0+V$T>$^y? z4+y@@tww8~)7lmC73r(Qi)~*c-H5M}?NOp{5f=5`g}p4XvD&aM+b&c_YP$Il>x^i9It zAU&90gZAVa*)a(BCuHlM98;BehOl%_!9xF%I;ZZ@!rRTMVe#B+PNBfjtV-qU6gS3j zG`rrP*@g6N79YB#KBVhPtmxaMq95tIr1NO@9qjCjeZ50_^av>Q>k9=xso)y47RNM2 zvJFLcT9Lg=_NEEjW!56mWXUmP) zo)L^q$DY(}$Ky^g=lelZa$9ZR;<^=XI5uClxa+IzkXr%IFg7etrTq=dcKObXwmYL~ zk>|Gjpo2c>5qtn^(+YN6Z=GyQs}={J)*|j8w*emkcecqRZPRy~I!0WrQ5-@_pH*?j z_Kto_m@o?Q2)MDMU!RqLLS*Z0bIA`~j+rBj%#waR>&vdD^+-S5eZL;Y^rvf5zxjfj zu;2vm*3RU>#!G-Ft^!zH+v>KF+bp@%KAJo<8~HBnR`2xZ`snba|3m4c*GeBfPd9Sv zo!v-3;+ai!z4xwpUMtP>%c03RFb{95l<0IwSNS&^47ETGvvgk%oOL$@$E$1gIL^S| zGCS6Heju~b*lq~tOmgnN4mtncZ?!^)SM7RD*^WsGR8o;cH&nC)D{0Atjh98ZsE7h^ zs|ye+C5M|TqNslIKx3ySOA5*wJhLeiYNls0OG$xc@!8g<7J0Jtc=?$*7x-alKK3>u zPI)iNfLl+$em=LjxcpUJ`qM?lV#ISg$eFCPVnHpu`}&h-N=&$HdQ~8^3 zDF05>t}2>uswGzwHC>EZwr3%oI5pNC)5Yi5c{QoCD!?doni9EWbTKRy_=1oim1AT> z%M?uk8>iJyJqR2g1zyg`Zm*_>SzMVvYU=-~snw;-`{Q3Wdm2(Y=~KY;hdmA6{)Ko@ z!z1+~3sfrOeVH*8mi~Vrj-1^I*R$JE)6u`|INWMO*EZYk+5;`+hi<2N8$XP1AHZ=e z#Gfsm)p4M0ZATYUGhI%K$wX35i*fD#hv!9d1mmq^4!U*C%1RW%AZ`1$SFf$E_UxRM zl?{4CP(i!v_3rzXmEsb?DkqxQPW5D+w3YM-cf*4UsHL=*1jq~_k%9^+YLs4Sd%*&7S?lfeb4o7@{DZc P^~6_RUR-|zA(JGiM*lJj diff --git a/src/nodes/shaders/gradientlinear.frag.qsb b/src/nodes/shaders/gradientlinear.frag.qsb index 0d0426783b8b383520696f0bee424b35d38816a5..be5fa92c530aaab819c11b1cd8d79624d60c7e02 100644 GIT binary patch literal 1444 zcmV;V1zY+601;7moaI+pZyPrdrX^q9I7ySbX>)I^CS9eDsv1t3R;DBzC`8YC2A)(mYV^e%^6jJ1&fft7ZI2W7$d42w~hDek@kTqh2V|rFAz*!X(`S5~PPb zJ(h8ou(V_&Zi^!np+C)eqC6u%awDzLgY&7e2 z2oDew*@h*_*efs$Y>%fra#sf2qqH0P-=@5~&K2Kn?iC6UjW(#ecl8<@{R}t`?k9Sn zg#T(Ke6OGI`~O|SlUy0#4y8Qc#CYX2^A zFR+T%w_!Y9h%uH9GC3~c=5D(>7S#dTPInvjN_c72e*-q*` zGWjfc(}b}={%#S*0_7Wd9|HXe*-TK(NZ+<%yhC%udjLKvtbZb4oWBESim)+{*D0SX zwEi0u^D1axC;BU}z!+~bbAloN3GmR@rxf393&SJ+FJxCITaR$B5bqCI#Y1==kX~^* z;y!-~dKi~OG0zb`?%f62x5D2=(%S@_d7UT2!@Yb#*q6u-Wq$%5(htp>Qq(!7YKfJj z$^&Q$9g*s0_%-yWuFRB3z5Qm{vXWPR#D9X8qFc}M(XwtNzUjJP0}bV6(&=PEc|o&o zbzM?4-FQfG*;X`q)R~49@7GP!-YJf(M+SSf-=Xce6-Kaay7;!@O1OTh=TmpL^)u9m zbA>Az6j57U-WCjYdOC`>H#fGP`)g^EW&TFo%hf=e?puJ*oo{|zd-iN=y=fLS2H;t) zh7hb^0Ac&Nzr)k6Py|6L?>=wJ6f{g~ywRjA8i)27)UgjCjKe?8lgPJEqR}jvQ*R`_ zF6>BG_!8$uAXb)FY!yHm6}P%X&|&Tn_@gu@717QFB)Dy{z>B zBI0fka=6d6CGW;bhA*6iNh;dz!o3%f%rdy`-Rq@^O4M;rWDAZ{lW`E{ZQ(wOgyNwO zhj1wOS1o=fqxR?c(>Pd#`wc?4F^@zBSr@LhYK^&2l{Ic(s^~p?$F+*EaIH;T|4Hxh z?ylY!uUX&Q8)GTslS*iJH_xDC!z74pTV0_t4rL6*?sElk@8?SRzUT4q6+g~=Bdphl z3q~EJg13Q;GiBV}aq0CZQE^djo33Luol?bE7peQ+yhy}W za?Q*uQU>dX^c3&@-rk}Ki^qCz@92U91=H(w<`>_xHqb0?s77`C>d>PRXtjEICof{e zXT^Q}rZuKt$athYlcD+=Xd8=m>W8vCa<{c|o|r1cGMv(p(Y>P0$~)A=&;75AX4C1V yB9NLoklllxiMutzma!UFK&SmhVx0Z&J_IYHcNI;Ke7VyX{ZMN?S@&;Z&k$F4LC^C5 literal 1424 zcmV;B1#kKQ01<$AoaI;DPa8)NUoc;FNYbPIX50I)?)C^M%5&fP*uScOP+$5nvpaXU9EP-N)IM~jvv+1^elz=(iF}4ahSzAJy_` zAvX$}Qa8>_jdI-(**&&&!=&5L@oI$*V>c?fHYisd?|{{?mTQ^`oL_?(671+_M8_W| z(%%Dlg61RIZ-l+YOsk;Hb&xL7dbQHId=v05!S_YNzf5}6Es>m`$&W!E(|MYK@uvuX znEbCZ(+m^jkMa%D;rdOMx0G2&d75Z;|{tcwmknFw^*`e*!v; z^%3QF$HH(){}cH&$=4;^8>IUUcJUCN2V|FDDp=>wzz*}OQ_howkF~o(b<5*jCA$s4 znbJHN9oBM(u&hPPlU(S zUf_L|@ZK6%e7C)q8$dSNq3PVyJ8hLb)a#WJ9kF5zeOs1jzWp!I{=X#rXN&N?lJLd< zj_^2B2Dl45Tg8Q?x{Urg|8JiCBEi2)Jl@;$CGj=xgK<|Rnxrov@19JRNZkE)v6c9R z7xM2Rlul{kXh8??Of|p<0{swoyQxsF-)>sfAVX87is6E7XzVECis53@6mvU2%8v~8 zN?AEOZ-p6bnd)vSu7u+ib{&Kp-C0={2=QH=TRsW4?Ors5Xk)%OP|WH^9g>m4p!jaLkK70p-6#s;b^Zx zKPZYGw=Y{dXRo<#2@Chy#{Hjlj(2x;UEFqaZ*PF7jLvGI-Q6sOmJMP*vVC=j$|#T# zG`q(Yv&f;7Z{j(U9)`NcEB=! zOBvI_yTgcPL7O#;_i~;iKFiL_S4#u#1{s}d#kkT-C$5M&o9znAr`~TC=dtNHY`IaL e8NKi-FFh^mG2kzKrAN=TWh7U9^!O7u83^EqYs;Jf diff --git a/src/nodes/shaders/gradientlinear.vert.qsb b/src/nodes/shaders/gradientlinear.vert.qsb index 55c4d629e7c1a141bd3ae663a8de54dbcd0aa6ab..4a4a0b36b8119e3e992b7dadc3315511c0600028 100644 GIT binary patch literal 1582 zcmV+}2GRKd03$1Sob6g|Zxcrl-o$nSCcHzTl#+uKutP8=BtT<=K%r_QAteHYDxv7) z*yr?G`!3v_i37@~s#3pJs@ndA{-XYseyQ4--DiD!X9ox^Rnq#R^X<$$Gdnvow`&gw zA#y@p!*qWjUI<47BBIZZSP(w_1)@%pEJOapC6d=MVTJ*^@T6V`vh8MK*@##bZPB37K6>i$69bi@drY)Mm3#_>E3F=Y?4E%;q6cGg*)@Xu z()BEWM?|0N5P{aoc8x4YViR61>lp3i8pE?5FE7{33{Q;mFi-2d1HnEbV!s@-H?6Ac>50baF4BF2^-0RSbFlvf(R#5tN$0xsL>CkD zMiCs%8v^d0!5ao|S2wmCQZksD2) z0X>gg9Yj8sh|By#;2nfb_Uk@bJSl5I#r=e#e+qo9e;T|~hW@vt&$16;pD}mI+x_5a z`ychOe-?ag|6}mZA_f`QIs@4}YShBoHGLjy|B>e6*k1tVyn&ejM$@09bS?tJ{O`fL z1X~y3$2fSrCa#4ktZ5QY4t^jVrmq20f*r1*>q6DtB<8se9NS<&W>81> ziQ;;`W#DfbxZ99@2me2X?rlT2V(89cz6!8^P)2X7lO~HjGArW!n6t7m;d-@ZyY5(b zT254L+O*v^-PODKm>;^W`ZfM2eRVgVZ-=h8W_i_?6RuZljwQ7!`Ft1!?OJ55wj23Z zd5f+_)2~J|of)fDjRLn*F__j1rxy8v!LocZ=0=;9{8ns>T`t>xJ2EX=HNWWxi(cL7 zSkIodLnkOS{hC)UuB;@cSZmtLe&|N7?-6btLk9KC;Ccy{$-5wOIt#uZ)Je4(k^8Id z$SJ5fSY07v2i2&c%~>wb8AjDLhp3g6DRSB)(v$JIWVPv&0QA`)_t|U_9>f;;p0{3Y z8H<{>Xc@$Gy^`T#sk3Qal_pCnti(ttQJy@~G7&E~6oMux8S$LA>V8z9Nv5Py(YhuX zJO(FLGvf>6D$&+t%0ZDSL#9RK*uW`Jm-)FqLZ&IJIzo-VAys`9#KGsq)`*~!OiWBVltfauDmjv&w zj=-jDBb`J(Pp9J~X2)u3JCOmOqt|WC4I|oJR?9jxfxlt5s$cs-yfw3PHk_NYD1G1f zjYjB1g<83o*i9u+g(d}@F@Xw)I!FO$i>ffFzN(R1>$6W+Qldn#Oi`jf5(2Y0P{)s# z7au*f7Xm*F?L}`rd730Q`#I~$XJ0NXEj@ZrHWwA=BnI3{oFnEOOYLZV`y;FW6v^Xi z&U*aR2+Ec&bavHFRD0rB=v(jh8_xv$pRV{;yIC-NnKG-aSK%$HzBjt+o$tx4rH@=1 z#~VVN-+2?zdql-vB!NazX^TjMV)XG(sr!;pAd{0iJQJ@#4>pkxv+#{mH96f@db6+N z$qzf;?901vv)|)8dUA^vBJO!G`xmq4q4(~c^*r_|OQL_zbEAP?&3*U(E0)3n%i~s-t literal 1592 zcmV-82FLjT03(Wcob6g|Z_`#3zHL%o+(OISV2n{i2PCD0P*PwGMWAllDj~H3geFy$ zl_pN-EwPJV+7#4J)1-Z!G_n1K{i6MqeVMj%t{>aiPErAbsf@U?>vPU?&OP_MjZbC z^LYR#M33tzfi}r@ohb7Qa>jn5SDt5 zq9lY)_i3`n{vLo#C;AZfa1e40@;v0D*c0=spvS;FL-aUgdFf}k--verHjZJv3D{uz zIC!UsJ^}yO=2g%qL9_lTU^UPjj~wh*K~I8r9`T5<1@Nx`TR`4(%39NiCF8GRt#Qz0 zVAFdChV25*l19dWub#4In7e)9^II{B5JQ2yvBEd*YomqDwc)gi*Sibk0SvST1Yi=?A zCh+XnV2-`pImYy?h|UUIgqjeM?!7>3OU%n2UqC$TrxI3hL+qQC!cr z75ps)cL%Z`;s58*y`$(>72SEPR|U4m9A=^+;`8K?F|}p7p5@s3jdEGjJl_rKzP=tb zwHKOBSG(p{_~BZes$^`L^$I_H#|;_HmQ(X}XR}tf{GF<{Th+9{wwjLHW;1#~4`S7P zGO-@`W@Nzi&Ca6ZxQ(i|RdaVNdjpp0PRntZ?1o7TYFm!g(Ao7u5e||1tiI`Z`hset z)Y;Lm$+b$MZ^Wo3cyF_2lY%OLz8%VwIHAf$%UE$d%jc-U zXc!@VI=!)7P3seSx`%$>*P&0eLYeW*H%P^F-}|g&z@_H|k9S94RkqzLi5(GNYX8jc zza+lrnd%?2 zJ}J*8Et1=<(?U(sz|YuFYawMpSw+qLy#Dy9vbWu+UfB~P zRkTuh&$2Z#WeW|ZaE-TJxb2`-P<)wDi=`;5u{&I0FLq@@r{ryzhQ;qmqbB)SPywZ` z9#H}oGI}f=8gL{Lf>cf^y|q-$bzxJHQ!7n2k?9AnompROkb0RO2zti#9*q*ZNdMjv{`rWqa*II_> zH(J*EJuTsTR=aVXAEj^a(Rs?_?-X{eZBoYTrY^OrJx*)!R8dcCahL6RW`iwuxy;+> z*FCGNfk!i~<<#wRac!+{2d%Dd;*~*ND_C~_8L+wSZ`4K*-{kV3CP1M;%cHO)E%m{1xTipAk3`U%KX7q>q9WUoU~L_haa#i#xa{S*78kD1-Ey?40-p-QMyw=(CM{mpy5GYw;GnlUy7 z&jdUc^H~D_r7Qqy5+3$9EjG9ieTH=a>9HQ z9P5E*2^vFo0Q7O%dtl(+FJ8`r+k(Xa7a*`Q6v6{#YQ&mT-UnbIXBmOl#(__Q&OX3> zfJ=5r!K@bnk6SuVewm*QP|*WLjMJ^#m~)5(OieW%`5LJHc_Kwre5 zaV1I8UV56@GWU}xNjJP+ z-;7hD$D6>6M7k+GDY#qW+)VRLe1>={17zq^LUznUao;=xDb#x#jgrDScNZN1$G;BU~x4g6~B&i^X3hbe@ zbq@EvC>Lds1tcr3QqPZL{V@h08#eN{^Lro!=NJys~*TEnFEtl4}m7=?XW*_rf#n#FDwyq?#3; zP$-%)!k89K6rn*Tr)dUb91|nug9=_+com>c`lf#~E`gsH_C=b7Nz6aL zu*mwe)F$?Y567zd{0y#6x%o|1S%njm$6+T)d+JueoEt1U2d&lWw7@O|fQkn`hA<`% z=rd6JZ$5-lf4O$4zM<3@2hKciZ+Fz1Z+Fz1=20^$gDa>iGqqKlT$sgzS#a$;#61m{ zEtc>&T)g=E-Q&&2%}fT(#XFAf1-0^WKgDKM2f(MWaS@)&3>#EU@n=y7ykWzdCmRKQ zjr1Uma#xJ~%Lcs$^i_JFR`hg9FO-;yH_LQ`EO--ydtmS;iMM9(YQ$StKGaGa`g3i_ z|7+wwt`7h;spy*0f$!(x4OE{24gK+h;Y^+Nk+S=Cxm{sP5+jO3BNNIcxXM7Gb;KGK(o_Yu%n zNOnrqZARtp3gHV|sE3oytE7ih9+7tr=y}T71o=HrH7Wf3gx=2@`!@|g8?=x1?m}HB zSv92~<`3XZlWoj(opQcJIr*64dI%`A^(pzcU|_Bj{};d@{Taz2e-138ZJT2Fn)a8$ zdY$-Rf*j`R2Ghe`o$R6Sx5(a2vWL2w#Q&A#Zj)@2^j;+1pJ4GGJa-9K432oVz5pD? zX;BX5NI#yJ({xq}duIr@PVt>19-g0Pr29O{;oe`M59xdQbQbrGo@L8bd$rJqtE=a6 zKl0)(4??dSCmBv2A-tp_;Pbbh^};L*R_C+>tSqow8M|mLl{hp9s zUd}XykN7O{7cbl6JAD{8$2a?AXdD}8_zklbLuo%U3m8R6^w5T%__T7B?y7*5{bl0! zYHV{HtDg!#RMcMB-RtW>+DF)7EJuB1?`Fi)E{q=Z_Pz8FuY`Xw*|k>R!ED!!+;5@U ztDf|>ot?KG@UV6V)rC8;U)8YnUmLyu9~GHA+6MKXmT-;uBgoJnI>uxF0b*xQr^ZJO A)c^nh literal 1526 zcmVSZxuxppZ4~FOA*0>@(_kraThL^Yf}&{ZNOHAgoLJTz@%w5 z)7`zdtNXawoh_}1pZ#R~+W<7uk)@REg6e&Ti>`1W*w#^C;igTFj7*lDn70X6-ig>-9|I2Kv?vEtq#yg` z6!l7J?=<07DZVqr!~S_ny3djv?)?t>kiMh4bByi+Bz#u2?8q;(yFr$RX~IA1cCA4c zc%hj(~I$%df+>hKZGSOcVQfzj&K%#U{X>j;8EmNn& zvKlqqW7Qbht!p^f{nzU9f3L{TMn%4_D{||qgse5KuqaW_;wYK|u zt?inveK0NhTph?Yhtl)|H^g=6nRa5)-0FDsbz_908AFU|(Nqx{WO6!YFh-jgDSuhP z3-he%KOyV0`rYgRRK$XNk$@+}4@EyobL_Ve7Fpo)nHx{zFwfzExiQF6nace^kk44w zY?yda;RpO~97qwl@V8PFZZ8@9JdFLD_|e%}f*TW6@I=Hx4!I7vk{b3aPIV=imv`CE z&Fh=^ueiX;2IioPc{!}jH#b#x*j;C9Ylvi+3_D$$n?(+%I7+?5lv9T`OrkJ>^Y01? zv1}JIa9!IL(KE51yL!`cnrBJwWP$L3OmeABUFCE#%IDhGH;{1wwacfdW~~FA9eNry z+7;P z7P5}>nOvRXejg=i9rpLr^0U2#4(3nSEyV+1Z)n1{h<5 zOk5fGTxEOAWG?gJyThu?fghJOU?zuOCP{LKl zAZU31;mPI`&GQ@D@=8f?%5ogeO%QEl)7C8;$D_2^4BEmB%Ab>Ol*c7`4dgJOgIpf$ z%K0uP(g9gM4s`>Bdm!mDq+648S<-EA4%sda`Aot6mc$R`FQm1v(Ri$j$#NaqUxx1t z$7lH(q6o4OImT4@d;OKW|g648O zu0wop6XZW!8~t1&4wK{uxdXAH1`?tzec`Mo*`Z6 z>pH~`@i)lV1j)Aui~hcbm}gj&;i&%`G?*V1iq8d#!8))(J{L)MfozcTL$H|U=OOla zh3toUoQ3`uzzp*^3LmIng%w9hhdypFk*`y?DslQ9Y!oJP=qBmW5AHEf zak){mbnp!E(xGv+TgM3IBp|>UhaW* z^@bIANuc&hh62>!3B=GOpnUhOcgJJbwDTUUePMt3S4P1D`^d_6200egC4mzW(%4N#0P` zsRXz$Hqv8_^}tUoLc8eWKDK?pY(AHQfotqJR)f>5W11AgqZd9a@&>fdfx4JFSFx77 zNJVW2t%78@AZJZ6WuUzRlPC&vvAKO2B2_z<{-05`4{YXv zwTH`nxl-z;7Mu%3sg1cJjwsxu0jZTdXs#87Dkm`&q)4g2wwjLH=Fb&8c~AjGawuF` zHj0T_17*6-cz(WpYHCNMCdbh8Yfeoi!12;j3U`i0FGTpP{VH$SMk{ET>UV9^*IRXX z-)ULft4gHztajrberZ3hLeM>_$z&8tG4gP@Qh=`mR z6+(Bag=>bzy0x_cd~FbI9ABs&mQps7i_Lgbpq>4J8 zYH?4oDt1KiVmb|SQdGVjseH|-e3wqXeD`$s0Mk=0;qF=WsN`tw)D|=zK!fghn~4sf z^x+@C2}U^{HpZfc5JH#p<%aMcO&qTw9OdJF4dE<1`%NL@XK6pk?Yv2R_e~B0}6U zf1J07@1RAD_(rexGV1=v&`2h1c&7t6x!FlV_K($qvUmq{3R=+jR_1c!nCRS3LF0G^ hI`>@qwJ+@A#eZ~J>VF}r`NW^|-Z-DK{|~_h0=*k1+@$~j literal 1472 zcmV;x1wZ-#03RcGob6fvPuo@yeWK?;nG(b^*kHyPes2L>jydA@EU-wc_IupY-a zfDC|Hz`-N%T0ih*@VN`{I>3E)K*?+n-4i8?3o9spO1@DZm*h2&!=evzc`%am z5hm6FS$-et1_<{^(q%}uCh4-I+u$6s5f1rG!OuGqKa@X{V&9ZtS*RRiDx4pIKjb__YbwYi#0T{il1E90c!lse!jG|VDg=Iv>WjLML7t$s9IxvT z&uxPIhq2Mm72+^Seo&qw-89Hoi8K10Bl#N1Xg^KZVID`+K%uoyi2n`pjq(iXLSHwj zeu%$Cz9vY%Ls<0p71TV#;weD=U!cMMs8W3{Q4Q9C4f456x=Un(oF9Y5G=Cl<&ue5q z%K*HQRD{R%`JB^~;>#YDeOQ4UqA`EAmNoK)iUJJ={p^w4e6qaVyMPj$IT zaq@)w8yJ5rMl~1C5sPOP7IMBks}E@5-DY)^-}jrUPjnUMngbZNo3) z#kD#WuGll{i)!7pebZfa9Je89U87+Io=`Mfj^V4$u2HxAgNkxkQIx>8nvUB>=V|~K zQ0*D+fo1QIQ{m3=A=q}{o2V_r#r4e&g;Mq$tD#~lg(4B;R%%toX`KUgfrrq#i0-uX z4ac*5%(yBrB0KedGSs1>^eG#h1Lm13Tf8Rx>o0vB7EJe4E1CjpuK*q~0kFKb-|GQ% zSaisJyZHV;fd92`!?LCN_6(Hmob>G*sc$Fa2e5Sd55NihMDZ>AeQVY?QnPNp|Fr_; znQcwneJ#eVnO&_zpeER15tdcg+_601RoE_tX}He5-Zp-6T#8RvmMQ2`Q9NAe9K*NjL|QINC9xDe>Lfln z9MpxI8&96S&{ti@^Ykb7Zs1dix@~~e^Y4CGU0;9pZAtLy;bJ}TQ$C1H(prij_sFuk z`9jL+Fzi8Op&!2y^&=Xw9kdFP;k^9ti@dwKQxbE~RV@`tykqJX-iO@enpI_h*46V; zVnWd)uyEjTL4ah9mP{?t6J6M_YW0|bYx;p}r-B^z8!vd9W&gYwucOCHUP`=E|Kr%j z3B|9+81V31&*i&+Bu;CLV-`uE^x)6RwC7m-fAcu}U*;{l-U=F~`c2#Pjh62Djh3~& zqQrX7YBwI>Mf-6Db|4<^jBTTBdN5?B%B?Crc0JL%LEiadP=mFBf1IO zX^@jj^%HzOGJjn3(+Tubug`#tdiWu9UCM@k4*(~B64H?UWA$t57mDa_mW=-7o7xd| at*73hZ(Z+Y&nQOPPk5y5`SC9%Dgxx{-1Yka diff --git a/src/nodes/shaders/vulkan2qsb.sh b/src/nodes/shaders/vulkan2qsb.sh index 22e28e10..765f5127 100755 --- a/src/nodes/shaders/vulkan2qsb.sh +++ b/src/nodes/shaders/vulkan2qsb.sh @@ -3,6 +3,7 @@ function qsbcompile { qsbfile=`echo $1 | sed 's/-vulkan//'` qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -o ${qsbfile}.qsb $1 + # qsb --qt6 -b -o ${qsbfile}.qsb $1 } qsbcompile boxshadow-vulkan.vert From aaf029bd00decd33a58f55fe3800d4159e369515 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 14:15:21 +0100 Subject: [PATCH 22/72] incompatibility with Qt [6.0->6.3] fixed --- src/nodes/QskSceneTexture.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 9fa8af44..e4d78d78 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -76,7 +76,9 @@ namespace #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) QOpenGLFramebufferObject* m_fbo; +#endif +#if QT_VERSION < QT_VERSION_CHECK( 6, 4, 0 ) struct RenderTarget { QRhiRenderTarget* rt = nullptr; @@ -368,6 +370,12 @@ void QskSceneTexture::render( const QSGRootNode* rootNode, d->renderer->renderScene(); } +bool QskSceneTexture::isDirty() const +{ + Q_D( const QskSceneTexture ); + return d->renderer ? d->renderer->isDirty() : true; +} + QRectF QskSceneTexture::normalizedTextureSubRect() const { return QRectF( 0, 1, 1, -1 ); From 68a3ad3cd8e29fbf05d9fb8fcac473d551ae0bab Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:14:03 +0100 Subject: [PATCH 23/72] disable integration test ( fails with Qt5 Ubuntu ) --- .github/workflows/cmake.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 84656396..5662b48d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - - name: Configure ( CMake Integration Test ) - shell: bash - run: | - mkdir qskinny_build_test - cmake \ - -S qskinny_source/examples/iotdashboard_smoketest \ - -B qskinny_build_test \ - -G "${{ matrix.config.generators }}" \ - -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny - - - name: Build ( CMake Integration Test ) - shell: bash - run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + #- name: Configure ( CMake Integration Test ) + # shell: bash + # run: | + # mkdir qskinny_build_test + # cmake \ + # -S qskinny_source/examples/iotdashboard_smoketest \ + # -B qskinny_build_test \ + # -G "${{ matrix.config.generators }}" \ + # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny +# + #- name: Build ( CMake Integration Test ) + # shell: bash + # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 3b60780cb67e25efa57771a33cc179a616b0c591 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:25:59 +0100 Subject: [PATCH 24/72] Revert "disable integration test ( fails with Qt5 Ubuntu )" This reverts commit 68a3ad3cd8e29fbf05d9fb8fcac473d551ae0bab. --- .github/workflows/cmake.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 5662b48d..84656396 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - #- name: Configure ( CMake Integration Test ) - # shell: bash - # run: | - # mkdir qskinny_build_test - # cmake \ - # -S qskinny_source/examples/iotdashboard_smoketest \ - # -B qskinny_build_test \ - # -G "${{ matrix.config.generators }}" \ - # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny -# - #- name: Build ( CMake Integration Test ) - # shell: bash - # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + - name: Configure ( CMake Integration Test ) + shell: bash + run: | + mkdir qskinny_build_test + cmake \ + -S qskinny_source/examples/iotdashboard_smoketest \ + -B qskinny_build_test \ + -G "${{ matrix.config.generators }}" \ + -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny + + - name: Build ( CMake Integration Test ) + shell: bash + run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 69090a6079f4d80ef9bd0ce8e07bbb0eeecbd36d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 22 Dec 2023 15:26:58 +0100 Subject: [PATCH 25/72] disable Ninja multi config --- .github/workflows/cmake.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 84656396..005be2b5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -104,7 +104,8 @@ jobs: cc: "gcc", cxx: "g++", archiver: "7z a", - generators: "Ninja Multi-Config", + # generators: "Ninja Multi-Config", + generators: "Ninja", env: { DISPLAY: ":1" }, cmake: { From 67f0df44afce35bbed688dd52320ee0ab17f98f6 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 27 Dec 2023 08:47:57 +0100 Subject: [PATCH 26/72] Qt 6.7 incompatibilities fixed --- src/common/QskMetaFunction.hpp | 19 ++++++++++--------- src/nodes/QskPlainTextRenderer.cpp | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/common/QskMetaFunction.hpp b/src/common/QskMetaFunction.hpp index e8905ab5..26af0860 100644 --- a/src/common/QskMetaFunction.hpp +++ b/src/common/QskMetaFunction.hpp @@ -47,11 +47,8 @@ class QskMetaFunction::FunctionCall : public QtPrivate::QSlotObjectBase namespace QskMetaFunctionCall { - using FunctionCall = QskMetaFunction::FunctionCall; - using namespace QtPrivate; - template< typename Function, typename Args, typename R > - class StaticFunctionCall : public FunctionCall + class StaticFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = StaticFunctionCall< Function, Args, R >; @@ -74,7 +71,7 @@ namespace QskMetaFunctionCall } case Call: { - typedef FunctionPointer< Function > FuncType; + using FuncType = QtPrivate::FunctionPointer< Function >; FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, object, args ); @@ -100,7 +97,7 @@ namespace QskMetaFunctionCall }; template< typename Function, typename Args, typename R > - class MemberFunctionCall : public FunctionCall + class MemberFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = MemberFunctionCall< Function, Args, R >; @@ -123,7 +120,7 @@ namespace QskMetaFunctionCall } case Call: { - typedef FunctionPointer< Function > FuncType; + using FuncType = QtPrivate::FunctionPointer< Function >; FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, @@ -144,7 +141,7 @@ namespace QskMetaFunctionCall }; template< typename Function, int N, typename Args, typename R > - class FunctorFunctionCall : public FunctionCall + class FunctorFunctionCall : public QskMetaFunction::FunctionCall { using MetaCall = FunctorFunctionCall< Function, N, Args, R >; @@ -167,7 +164,11 @@ namespace QskMetaFunctionCall } case Call: { - typedef Functor< Function, N > FuncType; +#if QT_VERSION < QT_VERSION_CHECK( 6, 7, 0 ) + using FuncType = QtPrivate::Functor< Function, N >; +#else + using FuncType = QtPrivate::Callable< Function, Args >; +#endif FuncType::template call< Args, R >( static_cast< MetaCall* >( functionCall )->m_function, object, args ); diff --git a/src/nodes/QskPlainTextRenderer.cpp b/src/nodes/QskPlainTextRenderer.cpp index 7b5d5a43..77d13684 100644 --- a/src/nodes/QskPlainTextRenderer.cpp +++ b/src/nodes/QskPlainTextRenderer.cpp @@ -127,16 +127,26 @@ static void qskRenderText( if ( glyphNode == nullptr ) { const bool preferNativeGlyphNode = false; // QskTextOptions? - -#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) constexpr int renderQuality = -1; // QQuickText::DefaultRenderTypeQuality + +#if QT_VERSION >= QT_VERSION_CHECK( 6, 7, 0 ) + const auto renderType = preferNativeGlyphNode + ? QSGTextNode::QtRendering : QSGTextNode::NativeRendering; + glyphNode = sgContext->createGlyphNode( + renderContext, renderType, renderQuality ); +#elif QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) glyphNode = sgContext->createGlyphNode( renderContext, preferNativeGlyphNode, renderQuality ); #else + Q_UNUSED( renderQuality ); glyphNode = sgContext->createGlyphNode( renderContext, preferNativeGlyphNode ); #endif + +#if QT_VERSION < QT_VERSION_CHECK( 6, 7, 0 ) glyphNode->setOwnerElement( item ); +#endif + glyphNode->setFlags( QSGNode::OwnedByParent | GlyphFlag ); } From ff10fc6fc13edcb6151a5ebc8b031bc75ebe7960 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 27 Dec 2023 08:51:12 +0100 Subject: [PATCH 27/72] missing initialization added --- src/nodes/QskSceneTexture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index e4d78d78..0b733b74 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -75,7 +75,7 @@ namespace QskSceneTexture* m_texture = nullptr; #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) - QOpenGLFramebufferObject* m_fbo; + QOpenGLFramebufferObject* m_fbo = nullptr; #endif #if QT_VERSION < QT_VERSION_CHECK( 6, 4, 0 ) From 1bc7cc3097f60d28bc29a76177699b82028b89e5 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 28 Dec 2023 17:02:30 +0100 Subject: [PATCH 28/72] finally working for RHI and the Qt5 OpenGL legacy backends --- src/nodes/QskSceneTexture.cpp | 126 ++++++++++++++++++++++++---------- src/nodes/QskSceneTexture.h | 7 -- 2 files changed, 91 insertions(+), 42 deletions(-) diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 0b733b74..4ec93575 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -29,6 +29,26 @@ QSK_QT_PRIVATE_END #include #endif +static int qskRenderOrderCompare( const QSGNode* rootNode, + const QSGNode* node1, const QSGNode* node2 ) +{ + if ( rootNode == node1 ) + return 1; + + if ( rootNode == node2 ) + return -1; + + for ( auto node = rootNode->firstChild(); + node != nullptr; node = node->nextSibling() ) + { + const auto ret = qskRenderOrderCompare( node, node1, node2 ); + if ( ret ) + return ret; + } + + return 0; +} + namespace { #if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) @@ -51,7 +71,20 @@ namespace #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) inline int textureId() const { return m_fbo ? m_fbo->texture() : 0; } - inline void renderScene() { Inherited::renderScene( textureId() ); } + + inline void renderScene() + { + class Bindable : public QSGBindable + { + public: + Bindable( QOpenGLFramebufferObject* fbo ) : m_fbo( fbo ) {} + void bind() const override { m_fbo->bind(); } + private: + QOpenGLFramebufferObject* m_fbo; + }; + + Inherited::renderScene( Bindable( m_fbo ) ); + } #endif inline QRhiTexture* rhiTexture() const { return m_rhiTexture; } @@ -62,6 +95,7 @@ namespace void setProjection( const QRectF& ); void setTextureSize( const QSize& ); + QSize textureSize() const; protected: void nodeChanged( QSGNode*, QSGNode::DirtyState ) override; @@ -70,6 +104,7 @@ namespace private: void createTarget( const QSize& ); void clearTarget(); + void markDirty(); QSGTransformNode* m_finalNode = nullptr; QskSceneTexture* m_texture = nullptr; @@ -100,6 +135,9 @@ namespace , m_texture( texture ) { setClearColor( Qt::transparent ); + + connect( this, &QSGRenderer::sceneGraphChanged, + this, &Renderer::markDirty ); } Renderer::~Renderer() @@ -112,6 +150,7 @@ namespace if ( node != m_finalNode ) { m_finalNode = node; + markDirty(); } } @@ -169,6 +208,11 @@ namespace setViewportRect( r ); } + QSize Renderer::textureSize() const + { + return m_fbo ? m_fbo->size() : QSize(); + } + void Renderer::render() { m_dirty = false; @@ -186,16 +230,25 @@ namespace void Renderer::nodeChanged( QSGNode* node, QSGNode::DirtyState state ) { - Inherited::nodeChanged( node, state ); - /* - We want to limit updates to nodes, that are actually rendered. TODO ... + No need to update the texture for changes of nodes behind + the final node. - In any case we need to block update requests, when the textureNode reports - that it has been updated by us to the renderer of the window. + Unfortunately QQuickWindow does not update the scene graph in + rendering order and we might be called for relevant nodes after + the texture has already been updated. In these situations we + update the texture twice. Not so good ... */ - if ( ( state != QSGNode::DirtyMaterial ) - || ( node != m_texture->textureNode() ) ) + if ( qskRenderOrderCompare( rootNode(), node, m_finalNode ) > 0 ) + { + // triggering QSGRenderer::sceneGraphChanged signals + Inherited::nodeChanged( node, state ); + } + } + + void Renderer::markDirty() + { + if ( !m_dirty ) { m_dirty = true; Q_EMIT m_texture->updateRequested(); @@ -295,19 +348,44 @@ class QskSceneTexturePrivate final : public QSGTexturePrivate #if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) int comparisonKey() const override - { return int( qintptr( rhiTexture() ) ); } + { + if ( renderer ) + { + if ( renderer->textureId() ) + return renderer->textureId(); + + if ( renderer->rhiTexture() ) + return int( qintptr( renderer->rhiTexture() ) ); + } + + return int( qintptr( this ) ); + } QRhiTexture *rhiTexture() const override { return renderer ? renderer->rhiTexture() : nullptr; } #endif + QSize pixelSize() const + { + QSize size( qCeil( rect.width() ), qCeil( rect.height() ) ); + size *= devicePixelRatio; + + const QSize minSize = context->sceneGraphContext()->minimumFBOSize(); + + while ( size.width() < minSize.width() ) + size.rwidth() *= 2; + + while ( size.height() < minSize.height() ) + size.rheight() *= 2; + + return size; + } + QRectF rect; const qreal devicePixelRatio; Renderer* renderer = nullptr; QSGDefaultRenderContext* context = nullptr; - - const QSGGeometryNode* textureNode = nullptr; }; QskSceneTexture::QskSceneTexture( const QQuickWindow* window ) @@ -321,32 +399,10 @@ QskSceneTexture::~QskSceneTexture() delete d_func()->renderer; } -void QskSceneTexture::setTextureNode( const QSGGeometryNode* node ) -{ - d_func()->textureNode = node; -} - -const QSGGeometryNode* QskSceneTexture::textureNode() const -{ - return d_func()->textureNode; -} - QSize QskSceneTexture::textureSize() const { Q_D( const QskSceneTexture ); - - QSize size( qCeil( d->rect.width() ), qCeil( d->rect.height() ) ); - size *= d->devicePixelRatio; - - const QSize minSize = d->context->sceneGraphContext()->minimumFBOSize(); - - while ( size.width() < minSize.width() ) - size.rwidth() *= 2; - - while ( size.height() < minSize.height() ) - size.rheight() *= 2; - - return size; + return d->renderer ? d->renderer->textureSize() : QSize(); } void QskSceneTexture::render( const QSGRootNode* rootNode, @@ -366,7 +422,7 @@ void QskSceneTexture::render( const QSGRootNode* rootNode, d->renderer->setFinalNode( const_cast< QSGTransformNode* >( finalNode ) ); d->renderer->setProjection( d->rect ); - d->renderer->setTextureSize( textureSize() ); + d->renderer->setTextureSize( d->pixelSize() ); d->renderer->renderScene(); } diff --git a/src/nodes/QskSceneTexture.h b/src/nodes/QskSceneTexture.h index 56acdb3e..eff6727f 100644 --- a/src/nodes/QskSceneTexture.h +++ b/src/nodes/QskSceneTexture.h @@ -13,7 +13,6 @@ class QskSceneTexturePrivate; class QSGRootNode; class QSGTransformNode; -class QSGGeometryNode; class QQuickWindow; class QSK_EXPORT QskSceneTexture : public QSGTexture @@ -26,12 +25,6 @@ class QSK_EXPORT QskSceneTexture : public QSGTexture QskSceneTexture( const QQuickWindow* ); ~QskSceneTexture(); -#if 1 - // to avoid recursive update - need to find a better solution TODO - void setTextureNode( const QSGGeometryNode* ); - const QSGGeometryNode* textureNode() const; -#endif - void render( const QSGRootNode*, const QSGTransformNode*, const QRectF& ); QSize textureSize() const override; From b3b4ca6aefa013c6d60ba6603964eb90d3401b18 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 28 Dec 2023 17:18:34 +0100 Subject: [PATCH 29/72] Qt6 incompatibility fixed --- src/nodes/QskSceneTexture.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 4ec93575..0274391a 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -210,7 +210,12 @@ namespace QSize Renderer::textureSize() const { - return m_fbo ? m_fbo->size() : QSize(); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + if ( m_fbo ) return m_fbo->size(); +#else + if( m_rt.rt ) return m_rt.rt->pixelSize(); +#endif + return QSize(); } void Renderer::render() From faf2ecd3c8fafea7ac627d88421d87a69666fd32 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 28 Dec 2023 17:26:24 +0100 Subject: [PATCH 30/72] docs updated --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fe3abc94..070079fe 100644 --- a/README.md +++ b/README.md @@ -32,12 +32,12 @@ But so far only Linux is actively tested. It might support all versions Qt >= 5.15, but you can rely on: - Qt 5.15 -- current long term supported ( LTS ) version of Qt +- current long term supported ( LTS ) version of Qt ( at the moment Qt 6.5.x ) - current version of Qt -On debian bullseye these packages need to be installed: `build-essential -qt-qmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev -qtdeclarative5-private-dev libqt5svg5-dev`. +On debian bullseye these packages need to be installed for Qt5: `build-essential +qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. +For Qt6 you need the corresponding ones. > Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev` From 49836345683bb4bf859ddd5214b2abea2521dcd1 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 21 Dec 2023 02:43:22 -0500 Subject: [PATCH 31/72] updated cmake install() destinations --- cmake/QskBuildFunctions.cmake | 2 +- qmlexport/CMakeLists.txt | 4 +++- src/CMakeLists.txt | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 38fee091..11de4bf2 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -65,7 +65,7 @@ function(qsk_add_plugin target TYPE CLASS_NAME) set_target_properties( ${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins/${TYPE}) - install(TARGETS ${target} DESTINATION "plugins/${TYPE}" ) + install(TARGETS ${target} DESTINATION "${CMAKE_INSTALL_LIBDIR}/qskinny/plugins/${TYPE}" ) set_target_properties(${target} PROPERTIES INSTALL_RPATH "\${ORIGIN}/../../lib" ) diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index ef245952..d59ad5b4 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -22,4 +22,6 @@ endif() set_target_properties(${target} PROPERTIES FOLDER libs) -install(TARGETS ${target} ) +install(TARGETS ${target} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target}" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3906ad94..f8e9ee0c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -514,4 +514,8 @@ set_target_properties(${target} PROPERTIES PUBLIC_HEADER "${HEADERS}") set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) -install(TARGETS ${target} ) +# Set the library destination to ensure an organized library + plugins dir +install(TARGETS ${target} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${target} +) From ffe2394d0bd930ed1bcc60d1c40e77e1a0d3f2c9 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 21 Dec 2023 02:58:01 -0500 Subject: [PATCH 32/72] updated README.md and chapter 3 docs to remove mention of qmake --- .gitignore | 1 + .../03-writing-your-first-application.asciidoc | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 32698b35..138bebe4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ Makefile .qmake.stash .uuid +build obj moc rcc diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index b912e892..1e7015c8 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -11,9 +11,8 @@ layout: docs === Building the QSkinny repository In this chapter we will write a simple QSkinny application on Linux from scratch. -As a prerequisite, a recent Qt version (>= 5.6) should be available and the directory of -its `qmake` binary in the current `$PATH`. On debian bullseye we need to install -these packages `build-essential qt-qmake qtbase5-dev qtbase5-private-dev +As a prerequisite, a recent Qt version (>= 5.6) should be available. On debian bullseye we need to install +these packages `build-essential qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. Then we can build and install QSkinny to `/opt/qskinny` with the following commands: @@ -23,8 +22,9 @@ Then we can build and install QSkinny to `/opt/qskinny` with the following comma cd /home/user/dev/ git clone https://github.com/uwerat/qskinny.git cd qskinny -PREFIX=/opt/qskinny qmake -r -make +mkdir build +cd build +cmake ../ && make sudo make install .... From fc72a95aafd8e3eba215a7e21b3381f1e55b8191 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 21 Dec 2023 18:26:14 -0500 Subject: [PATCH 33/72] updated project paths to namespace qskinny, project namespace should be project name, reused qsk_install_* variables --- CMakeLists.txt | 15 ++++++++------- cmake/QskBuildFunctions.cmake | 2 +- src/CMakeLists.txt | 6 ++---- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21ee66fd..1b058b56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,8 +62,9 @@ macro(qsk_setup_build) endmacro() macro(qsk_setup_install) - set(QSK_INSTALL_HEADERS include) - set(QSK_INSTALL_LIBS lib) + string(TOLOWER "${PROJECT_NAME}" PACKAGE_DIR) + set(QSK_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR}") + set(QSK_INSTALL_LIBS "${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR}") endmacro() ############################################################################ @@ -122,8 +123,8 @@ endif() # packaging set(PACKAGE_NAME ${PROJECT_NAME}) set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE Qsk) -set(PACKAGE_LOCATION ${QSK_INSTALL_LIBS}/cmake/${PROJECT_NAME}) +set(PACKAGE_NAMESPACE ${PROJECT_NAME}) +set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets LIBRARY DESTINATION ${QSK_INSTALL_LIBS} @@ -140,7 +141,7 @@ write_basic_package_version_file( export(EXPORT ${PACKAGE_NAME}Targets FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake - NAMESPACE ${PACKAGE_NAMESPACE}::) + NAMESPACE "${PACKAGE_NAMESPACE}::") configure_file(cmake/${PACKAGE_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake @@ -150,7 +151,7 @@ install(EXPORT ${PACKAGE_NAME}Targets FILE ${PACKAGE_NAME}Targets.cmake NAMESPACE - ${PACKAGE_NAMESPACE}:: + "${PACKAGE_NAMESPACE}::" DESTINATION ${PACKAGE_LOCATION}) @@ -162,4 +163,4 @@ install( DESTINATION ${PACKAGE_LOCATION} COMPONENT - Devel) \ No newline at end of file + Devel) diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 11de4bf2..748d849b 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -65,7 +65,7 @@ function(qsk_add_plugin target TYPE CLASS_NAME) set_target_properties( ${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins/${TYPE}) - install(TARGETS ${target} DESTINATION "${CMAKE_INSTALL_LIBDIR}/qskinny/plugins/${TYPE}" ) + install(TARGETS ${target} DESTINATION "${QSK_INSTALL_LIBS}/plugins/${TYPE}" ) set_target_properties(${target} PROPERTIES INSTALL_RPATH "\${ORIGIN}/../../lib" ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f8e9ee0c..80ed914a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -511,11 +511,9 @@ set_target_properties(${target} list(TRANSFORM HEADERS PREPEND "${CMAKE_CURRENT_LIST_DIR}/") set_target_properties(${target} PROPERTIES PUBLIC_HEADER "${HEADERS}") +set_target_properties(${target} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) # Set the library destination to ensure an organized library + plugins dir -install(TARGETS ${target} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${target} -) +install(TARGETS ${target}) From 7c4eac807bd2803c7b3113f52d60d9780a8bad76 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Fri, 22 Dec 2023 02:55:01 -0500 Subject: [PATCH 34/72] updated chapter 03 tutorial to use CmakeLists.txt and proper build commands --- ...03-writing-your-first-application.asciidoc | 59 +++++++++++-------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 1e7015c8..884998e9 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -17,15 +17,13 @@ qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. Then we can build and install QSkinny to `/opt/qskinny` with the following commands: -[source,xml] +[source,shell] .... -cd /home/user/dev/ -git clone https://github.com/uwerat/qskinny.git -cd qskinny -mkdir build -cd build -cmake ../ && make -sudo make install +$ git clone https://github.com/uwerat/qskinny.git +$ cd qskinny +$ mkdir build && cd build +$ cmake ../ && make +$ sudo make install .... === Compiling our first app @@ -52,40 +50,49 @@ int main( int argc, char* argv[] ) For now this will just create an empty window (the `QskWindow`) without any controls. Next, we need to create a `myapp.pro` file in our `myapp` directory. -.myapp.pro -[source,xml] +.CMakeLists.txt +[source,cmake] .... -TEMPLATE = app -TARGET = myapp +cmake_minimum_required(VERSION 3.27) -QT *= quick +project(myapp + VERSION 1.0.0 + LANGUAGES CXX) -QSK_ROOT=/opt/qskinny +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) -INCLUDEPATH += $${QSK_ROOT}/include -LIBS += -L$${QSK_ROOT}/lib -lqskinny +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) -QMAKE_RPATHDIR *= $${QSK_ROOT}/lib +find_package(Qt5 REQUIRED COMPONENTS Widgets Quick) +find_package(QSkinny REQUIRED) -SOURCES += \ - main.cpp +add_executable(myapp + src/main.cpp) + +target_link_libraries(kue PRIVATE + Qt5::Widgets + Qt5::Quick + QSkinny::QSkinny) .... Now we can compile our app: -[source,xml] +[source,shell] .... -cd myapp -qmake -make +$ cd myapp +$ mkdir build && cd build +$ cmake ../ && make .... When running myapp it needs to find the skin plugins. Setting QT_PLUGIN_PATH is one option ( see https://doc.qt.io/qt-5/deployment-plugins.html ): -[source,xml] +[source,shell] .... -QT_PLUGIN_PATH=/opt/qskinny/plugins ./myapp +$ QT_PLUGIN_PATH=/opt/qskinny/plugins ./myapp .... This should show just an empty window. @@ -95,7 +102,7 @@ This should show just an empty window. Now that we have our app running, we can add some UI controls to it by extending the `main.cpp` file we created earlier. We will add some additional include directives, and then create a horizontal layout containing two push buttons. The layout with the two buttons will be shown in the window. Below is the complete updated source file: .main.cpp -[source] +[source, cpp] .... #include #include From e1f2a54ae3b9a93828c37b2b0eebdb8fdd3cccb3 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Fri, 22 Dec 2023 03:07:46 -0500 Subject: [PATCH 35/72] removed unneccessary quotes --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b058b56..4be18444 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,7 +141,7 @@ write_basic_package_version_file( export(EXPORT ${PACKAGE_NAME}Targets FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake - NAMESPACE "${PACKAGE_NAMESPACE}::") + NAMESPACE ${PACKAGE_NAMESPACE}::) configure_file(cmake/${PACKAGE_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake @@ -151,7 +151,7 @@ install(EXPORT ${PACKAGE_NAME}Targets FILE ${PACKAGE_NAME}Targets.cmake NAMESPACE - "${PACKAGE_NAMESPACE}::" + ${PACKAGE_NAMESPACE}:: DESTINATION ${PACKAGE_LOCATION}) From f87458bcb7df0ffd27a86a45bae58aa365df0be6 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 14:15:07 -0500 Subject: [PATCH 36/72] add information about targeting other Qt versions --- .../03-writing-your-first-application.asciidoc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 884998e9..496195db 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -12,18 +12,25 @@ layout: docs In this chapter we will write a simple QSkinny application on Linux from scratch. As a prerequisite, a recent Qt version (>= 5.6) should be available. On debian bullseye we need to install -these packages `build-essential qtbase5-dev qtbase5-private-dev -qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. +these packages `build-essential qtbase6-dev qtbase6-private-dev +qtdeclarative6-dev qtdeclarative6-private-dev libqt5svg6-dev`. Then we can build and install QSkinny to `/opt/qskinny` with the following commands: [source,shell] .... -$ git clone https://github.com/uwerat/qskinny.git +$ git clone https://github.com/uwerat/qskinny.git # clone $ cd qskinny $ mkdir build && cd build -$ cmake ../ && make -$ sudo make install +$ cmake ../ && make # build +$ sudo make install # install +.... + +To target a specific Qt version simply pass the cmake build variable `QSK_QT_VERSION` during the build step: + +[source,shell] +.... +$ cmake -DQSK_QT_VERSION=Qt5 ../ && make .... === Compiling our first app From 3ec7d4fb137431f2312fad93be4c8b2b53f0c200 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 14:21:28 -0500 Subject: [PATCH 37/72] update README to include cmake dep --- README.md | 4 ++-- doc/tutorials/03-writing-your-first-application.asciidoc | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 070079fe..a90e2688 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,9 @@ It might support all versions Qt >= 5.15, but you can rely on: - current long term supported ( LTS ) version of Qt ( at the moment Qt 6.5.x ) - current version of Qt -On debian bullseye these packages need to be installed for Qt5: `build-essential +On debian bullseye these packages need to be installed for Qt5: `build-essential cmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. -For Qt6 you need the corresponding ones. +For Qt6 you need the corresponding packages. > Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev` diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 496195db..4a08b84d 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -11,9 +11,9 @@ layout: docs === Building the QSkinny repository In this chapter we will write a simple QSkinny application on Linux from scratch. -As a prerequisite, a recent Qt version (>= 5.6) should be available. On debian bullseye we need to install -these packages `build-essential qtbase6-dev qtbase6-private-dev -qtdeclarative6-dev qtdeclarative6-private-dev libqt5svg6-dev`. +As a prerequisite, a recent Qt version (>= 5.15) should be available. On debian bullseye we need to install +these packages `build-essential cmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. +For Qt6 you need the corresponding packages. Then we can build and install QSkinny to `/opt/qskinny` with the following commands: From 153f8a4228e3dfc9e3ae8c6f0e352bd66fde1453 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 15:03:13 -0500 Subject: [PATCH 38/72] move export(), install() to src/CMakelists.txt from ./CMakelists.txt --- CMakeLists.txt | 51 ++++++---------------------------------------- src/CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4be18444..1530e5ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,12 @@ project(QSkinny VERSION 0.8.0) set(QSK_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) +set(QSK_CMAKE_DIR ${QSK_SOURCE_DIR}/cmake) +# packaging +set(PACKAGE_NAME ${PROJECT_NAME}) +set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) +set(PACKAGE_NAMESPACE ${PROJECT_NAME}) +set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) qsk_setup_options() @@ -119,48 +125,3 @@ endif() if(BUILD_PLAYGROUND) add_subdirectory(playground) endif() - -# packaging -set(PACKAGE_NAME ${PROJECT_NAME}) -set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE ${PROJECT_NAME}) -set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) - -install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets - LIBRARY DESTINATION ${QSK_INSTALL_LIBS} - ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} - RUNTIME DESTINATION ${QSK_INSTALL_LIBS} - INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} - PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) - -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake - VERSION ${PACKAGE_VERSION} - COMPATIBILITY AnyNewerVersion) - -export(EXPORT ${PACKAGE_NAME}Targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake - NAMESPACE ${PACKAGE_NAMESPACE}::) - -configure_file(cmake/${PACKAGE_NAME}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake - COPYONLY) - -install(EXPORT ${PACKAGE_NAME}Targets - FILE - ${PACKAGE_NAME}Targets.cmake - NAMESPACE - ${PACKAGE_NAMESPACE}:: - DESTINATION - ${PACKAGE_LOCATION}) - -install( - FILES - cmake/${PACKAGE_NAME}Config.cmake - cmake/QskTools.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake - DESTINATION - ${PACKAGE_LOCATION} - COMPONENT - Devel) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 80ed914a..b528ce6a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -515,5 +515,41 @@ set_target_properties(${target} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) -# Set the library destination to ensure an organized library + plugins dir -install(TARGETS ${target}) +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion) + +install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets + LIBRARY DESTINATION ${QSK_INSTALL_LIBS} + ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} + RUNTIME DESTINATION ${QSK_INSTALL_LIBS} + INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} + PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) + +export(EXPORT ${PACKAGE_NAME}Targets + FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Targets.cmake + NAMESPACE ${PACKAGE_NAMESPACE}::) + +configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake + COPYONLY) + +install(EXPORT ${PACKAGE_NAME}Targets + FILE + ${PACKAGE_NAME}Targets.cmake + NAMESPACE + ${PACKAGE_NAMESPACE}:: + DESTINATION + ${PACKAGE_LOCATION}) + +install( + FILES + ${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake + ${QSK_CMAKE_DIR}/QskTools.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake + DESTINATION + ${PACKAGE_LOCATION} + COMPONENT + Devel) From 8149094c919847a638e857e93a9e9ad041789561 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 14:01:32 -0500 Subject: [PATCH 39/72] check for any qt package greater than 5.15 otherwise automatically fallback --- cmake/QskFindMacros.cmake | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cmake/QskFindMacros.cmake b/cmake/QskFindMacros.cmake index 40915c6f..2dbe7d00 100644 --- a/cmake/QskFindMacros.cmake +++ b/cmake/QskFindMacros.cmake @@ -5,11 +5,15 @@ macro(qsk_setup_Qt) - # Define a package QT, attempt Qt6, if not fallback to Qt5 - find_package(QT NAMES Qt6 REQUIRED COMPONENTS Quick) - if (NOT QT_FOUND) - find_package(QT "5.15" NAMES Qt5 REQUIRED COMPONENTS Quick) + # Use QSK_QT_VERSION specified with baseline 5.15 + # otherwise fallback to latest known supported Qt version gte 5.15 + # set vars for correct alpha descending sort order and direction (ex. Qt6, Qt5) + if ( NOT QSK_QT_VERSION ) # QSK_QT_VERSION=Qt5 + set(QSK_QT_VERSION Qt6 Qt5) + set(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) + set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) endif() + find_package(QT "5.15" NAMES ${QSK_QT_VERSION} REQUIRED COMPONENTS Quick) if ( QT_FOUND ) From dcc729b4d5d745c047922b1759ace1c0c4a1056d Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 17:04:55 -0500 Subject: [PATCH 40/72] move packaging vars for QSkinny core library to src/CMakeLists.txt --- CMakeLists.txt | 5 ----- src/CMakeLists.txt | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1530e5ee..cd6cd57b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,11 +78,6 @@ project(QSkinny set(QSK_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}) set(QSK_CMAKE_DIR ${QSK_SOURCE_DIR}/cmake) -# packaging -set(PACKAGE_NAME ${PROJECT_NAME}) -set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE ${PROJECT_NAME}) -set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) qsk_setup_options() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b528ce6a..79325eb1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -515,6 +515,12 @@ set_target_properties(${target} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) +# packaging +set(PACKAGE_NAME ${PROJECT_NAME}) +set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) +set(PACKAGE_NAMESPACE ${PROJECT_NAME}) +set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + include(CMakePackageConfigHelpers) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake From 48e3ecef04311b3b10d179f12910deaf97732464 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Thu, 28 Dec 2023 17:46:11 -0500 Subject: [PATCH 41/72] standardized namespace, remove extra FILE option from export --- src/CMakeLists.txt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 79325eb1..23c2d66d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -518,7 +518,7 @@ set_target_properties(${target} PROPERTIES # packaging set(PACKAGE_NAME ${PROJECT_NAME}) set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE ${PROJECT_NAME}) +set(PACKAGE_NAMESPACE ${PROJECT_NAME}::) set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) include(CMakePackageConfigHelpers) @@ -535,8 +535,7 @@ install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) export(EXPORT ${PACKAGE_NAME}Targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Targets.cmake - NAMESPACE ${PACKAGE_NAMESPACE}::) + NAMESPACE ${PACKAGE_NAMESPACE}) configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake @@ -546,15 +545,15 @@ install(EXPORT ${PACKAGE_NAME}Targets FILE ${PACKAGE_NAME}Targets.cmake NAMESPACE - ${PACKAGE_NAMESPACE}:: + ${PACKAGE_NAMESPACE} DESTINATION ${PACKAGE_LOCATION}) install( FILES - ${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake - ${QSK_CMAKE_DIR}/QskTools.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake + ${QSK_CMAKE_DIR}/QskTools.cmake DESTINATION ${PACKAGE_LOCATION} COMPONENT From 0670623fbd9b695c4c410515115d667b3a745740 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Fri, 29 Dec 2023 01:11:43 -0500 Subject: [PATCH 42/72] build functions and QskQmlExportTargets.cmake file --- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++-- cmake/QSkinnyConfig.cmake | 1 - cmake/QskBuildFunctions.cmake | 8 +++++++ qmlexport/CMakeLists.txt | 29 +++++++++++++++++++++----- src/CMakeLists.txt | 28 ++++--------------------- tools/CMakeLists.txt | 3 ++- 6 files changed, 75 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd6cd57b..b971c6aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,9 +62,18 @@ macro(qsk_setup_build) endmacro() macro(qsk_setup_install) + + # package vars + set(PACKAGE_NAME ${PROJECT_NAME}) + set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) + set(PACKAGE_NAMESPACE ${PROJECT_NAME}::) + set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + + # install paths for headers and libraries string(TOLOWER "${PROJECT_NAME}" PACKAGE_DIR) - set(QSK_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR}") - set(QSK_INSTALL_LIBS "${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR}") + set(QSK_INSTALL_HEADERS ${CMAKE_INSTALL_INCLUDEDIR}/${PACKAGE_DIR}) + set(QSK_INSTALL_LIBS ${CMAKE_INSTALL_LIBDIR}/${PACKAGE_DIR}) + endmacro() ############################################################################ @@ -97,6 +106,32 @@ qsk_setup_install() add_subdirectory(src) add_subdirectory(skins) +include(CMakePackageConfigHelpers) + +# write QSkinnyConfigVersion.cmake file for cmake import +write_basic_package_version_file( + ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion) + +# Copy QSkinnyConfig.cmake to build dir +configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake + ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake + COPYONLY) + +# install QSkinnyConfig.cmake and QSkinnyConfigVersion.cmake +# and QskTools.cmake file to lib/cmake/QSkinny directory +install( + FILES + ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake + ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake + ${QSK_CMAKE_DIR}/QskTools.cmake + DESTINATION + ${PACKAGE_LOCATION} + COMPONENT + Devel) + +# Build other libraries if(BUILD_QML_EXPORT) add_subdirectory(qmlexport) endif() diff --git a/cmake/QSkinnyConfig.cmake b/cmake/QSkinnyConfig.cmake index e24cd20c..fbffae9e 100644 --- a/cmake/QSkinnyConfig.cmake +++ b/cmake/QSkinnyConfig.cmake @@ -1,2 +1 @@ include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake") \ No newline at end of file diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 748d849b..a35151bc 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -99,3 +99,11 @@ function(qsk_add_example target) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) endfunction() + +function(qsk_update_package_config_file target) + + file(APPEND + ${CMAKE_BINARY_DIR}/_QSkinny/QSkinnyConfig.cmake + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${target}.cmake\")\n") + +endfunction() diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index d59ad5b4..7f008350 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -10,7 +10,8 @@ set(target qskqmlexport) qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS}) target_link_libraries(${target} PRIVATE qskinny) -target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_LIST_DIR}) +target_include_directories(${target} PUBLIC + $) set_target_properties(${target} PROPERTIES PUBLIC_HEADER QskQml.h) if(BUILD_QSKDLL) @@ -20,8 +21,26 @@ if(BUILD_QSKDLL) VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) endif() -set_target_properties(${target} PROPERTIES FOLDER libs) +# packaging +set(PACKAGE_NAME QskQmlExport) +set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") -install(TARGETS ${target} - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target}" -) +set_target_properties(${target} PROPERTIES FOLDER libs) +set_target_properties(${target} PROPERTIES EXPORT_NAME ${PACKAGE_NAME}) + +install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets + INCLUDES DESTINATION ${QSKQE_INSTALL_HEADERS} + PUBLIC_HEADER DESTINATION ${QSKQE_INSTALL_HEADERS}) + +export(EXPORT ${PACKAGE_NAME}Targets + NAMESPACE ${PACKAGE_NAMESPACE}) + +install(EXPORT ${PACKAGE_NAME}Targets + FILE + ${PACKAGE_NAME}Targets.cmake + NAMESPACE + ${PACKAGE_NAMESPACE} + DESTINATION + ${PACKAGE_LOCATION}) + +qsk_update_package_config_file(${PACKAGE_NAME}Targets) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 23c2d66d..b6fa1092 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -516,17 +516,9 @@ set_target_properties(${target} PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) # packaging -set(PACKAGE_NAME ${PROJECT_NAME}) -set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) -set(PACKAGE_NAMESPACE ${PROJECT_NAME}::) -set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) - -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake - VERSION ${PACKAGE_VERSION} - COMPATIBILITY AnyNewerVersion) +set(PACKAGE_NAME ${PROJECT_NAME}) +# setup destination file paths for qskinny target install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets LIBRARY DESTINATION ${QSK_INSTALL_LIBS} ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} @@ -534,13 +526,11 @@ install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) +# export QSkinnyTargets namespace export(EXPORT ${PACKAGE_NAME}Targets NAMESPACE ${PACKAGE_NAMESPACE}) -configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake - COPYONLY) - +# install QSkinnyTargets under QSkinny namespace install(EXPORT ${PACKAGE_NAME}Targets FILE ${PACKAGE_NAME}Targets.cmake @@ -548,13 +538,3 @@ install(EXPORT ${PACKAGE_NAME}Targets ${PACKAGE_NAMESPACE} DESTINATION ${PACKAGE_LOCATION}) - -install( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}Config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PACKAGE_NAME}ConfigVersion.cmake - ${QSK_CMAKE_DIR}/QskTools.cmake - DESTINATION - ${PACKAGE_LOCATION} - COMPONENT - Devel) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 74da26cc..74d10d19 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,3 +1,4 @@ if(TARGET Qt::Svg) add_subdirectory(svg2qvg) -endif() \ No newline at end of file + qsk_update_package_config_file(QskTools) +endif() From e922f53de4f3212b8a5303071d74eac8b7d36c66 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Fri, 29 Dec 2023 01:54:30 -0500 Subject: [PATCH 43/72] change name to QmlExport and update doc --- .../03-writing-your-first-application.asciidoc | 2 +- doc/tutorials/08-qskinny-and-qml.asciidoc | 11 ++++++++++- qmlexport/CMakeLists.txt | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 4a08b84d..b0d86d5d 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -79,7 +79,7 @@ find_package(QSkinny REQUIRED) add_executable(myapp src/main.cpp) -target_link_libraries(kue PRIVATE +target_link_libraries(myapp PRIVATE Qt5::Widgets Qt5::Quick QSkinny::QSkinny) diff --git a/doc/tutorials/08-qskinny-and-qml.asciidoc b/doc/tutorials/08-qskinny-and-qml.asciidoc index ef521bc4..f1570e23 100644 --- a/doc/tutorials/08-qskinny-and-qml.asciidoc +++ b/doc/tutorials/08-qskinny-and-qml.asciidoc @@ -18,7 +18,16 @@ When using a QSkinny control, all the methods exposed as either properties, slots or invokables can be used in QML. For example, the QSkinny control `QskLinearBox` defines the following properties: -[source] +.CMakeLists.txt +[source,cmake] +.... +target_link_libraries(myapp PRIVATE + ... + QSkinny::QmlExport) +... +.... + +[source,cpp] .... class QSK_EXPORT QskLinearBox : public QskIndexedLayoutBox { diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 7f008350..e3ca96c0 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -22,7 +22,7 @@ if(BUILD_QSKDLL) endif() # packaging -set(PACKAGE_NAME QskQmlExport) +set(PACKAGE_NAME QmlExport) set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") set_target_properties(${target} PROPERTIES FOLDER libs) From f4315ce4acb3da64e6786a39830b52566aa94201 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Fri, 29 Dec 2023 02:51:31 -0500 Subject: [PATCH 44/72] update iotdashboard_smoketest dep to correctly point --- examples/iotdashboard_smoketest/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/iotdashboard_smoketest/CMakeLists.txt b/examples/iotdashboard_smoketest/CMakeLists.txt index ea34d940..f9924b04 100644 --- a/examples/iotdashboard_smoketest/CMakeLists.txt +++ b/examples/iotdashboard_smoketest/CMakeLists.txt @@ -22,7 +22,7 @@ endfunction() function(qsk_add_example target) cmake_parse_arguments(PARSE_ARGV 1 arg "MANUAL_FINALIZATION" "" "") add_executable(${target} WIN32 MACOSX_BUNDLE ${arg_UNPARSED_ARGUMENTS} ) - target_link_libraries(${target} PRIVATE Qsk::qskinny ) + target_link_libraries(${target} PRIVATE QSkinny::QSkinny ) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) endfunction() @@ -44,4 +44,4 @@ add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard) # TODO we don't delivery the support library get_target_property(iotdashboard_COMPILE_DEFINITIONS iotdashboard COMPILE_DEFINITIONS) list(FILTER iotdashboard_COMPILE_DEFINITIONS EXCLUDE REGEX [[^USE_SHORTCUTS=1$]]) -set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS}) \ No newline at end of file +set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS}) From a420407a56fe509affd0740baeb8b2b7df43affe Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 6 Jan 2024 15:00:23 +0100 Subject: [PATCH 45/72] qskInterpolatedColor added --- src/common/QskGradientStop.cpp | 20 +++++++++++++++++++- src/common/QskGradientStop.h | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/common/QskGradientStop.cpp b/src/common/QskGradientStop.cpp index ab255c67..a2a73d95 100644 --- a/src/common/QskGradientStop.cpp +++ b/src/common/QskGradientStop.cpp @@ -273,6 +273,25 @@ QskGradientStops qskInterpolatedGradientStops( return qskInterpolatedStops( from, to, ratio ); } +QColor qskInterpolatedColorAt( const QskGradientStops& stops, qreal pos ) noexcept +{ + if ( stops.isEmpty() ) + return QColor(); + + pos = qBound( 0.0, pos, 1.0 ); + + if ( pos <= stops.first().position() ) + return stops.first().color(); + + for ( int i = 1; i < stops.count(); i++ ) + { + if ( pos <= stops[i].position() ) + return qskInterpolatedColor( stops, i - 1, i, pos ); + } + + return stops.last().color(); +} + QskGradientStops qskExtractedGradientStops( const QskGradientStops& stops, qreal from, qreal to ) { @@ -421,4 +440,3 @@ QGradientStops qskToQGradientStops( const QskGradientStops& stops ) return qStops; } - diff --git a/src/common/QskGradientStop.h b/src/common/QskGradientStop.h index 2b265d66..d115be62 100644 --- a/src/common/QskGradientStop.h +++ b/src/common/QskGradientStop.h @@ -120,6 +120,8 @@ QSK_EXPORT QDebug operator<<( QDebug, const QskGradientStop& ); typedef QVector< QskGradientStop > QskGradientStops; +QSK_EXPORT QColor qskInterpolatedColorAt( const QskGradientStops&, qreal pos ) noexcept; + QSK_EXPORT bool qskIsMonochrome( const QskGradientStops& ) noexcept; QSK_EXPORT bool qskIsVisible( const QskGradientStops& ) noexcept; From e63b064f5aa829161ffccd6df78fbe947614e083 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 6 Jan 2024 15:05:30 +0100 Subject: [PATCH 46/72] QskArcShadowNode introduced ( kudos to Rick ) --- playground/shadows/ArcPage.cpp | 109 +++++++ playground/shadows/ArcPage.h | 14 + playground/shadows/BoxPage.cpp | 73 +++++ playground/shadows/BoxPage.h | 19 ++ playground/shadows/CMakeLists.txt | 5 +- playground/shadows/ShadowedArc.cpp | 269 +++++++++++++++++ playground/shadows/ShadowedArc.h | 64 +++++ playground/shadows/ShadowedBox.cpp | 13 +- playground/shadows/Slider.cpp | 47 +++ playground/shadows/Slider.h | 37 +++ playground/shadows/main.cpp | 130 ++------- src/CMakeLists.txt | 2 + src/controls/QskSkinlet.cpp | 8 +- src/nodes/QskArcNode.cpp | 94 ++++-- src/nodes/QskArcNode.h | 6 + src/nodes/QskArcShadowNode.cpp | 368 ++++++++++++++++++++++++ src/nodes/QskArcShadowNode.h | 32 +++ src/nodes/QskBoxShadowNode.cpp | 24 +- src/nodes/shaders.qrc | 5 + src/nodes/shaders/arcshadow-vulkan.frag | 46 +++ src/nodes/shaders/arcshadow-vulkan.vert | 21 ++ src/nodes/shaders/arcshadow.frag | 37 +++ src/nodes/shaders/arcshadow.frag.qsb | Bin 0 -> 2282 bytes src/nodes/shaders/arcshadow.vert | 12 + src/nodes/shaders/arcshadow.vert.qsb | Bin 0 -> 1585 bytes src/nodes/shaders/arcshadow2qsb.sh | 10 + src/nodes/shaders/boxshadow-vulkan.frag | 26 +- src/nodes/shaders/boxshadow-vulkan.vert | 2 +- src/nodes/shaders/boxshadow.frag | 26 +- src/nodes/shaders/boxshadow.frag.qsb | Bin 2656 -> 2606 bytes src/nodes/shaders/boxshadow.vert.qsb | Bin 1559 -> 1576 bytes src/nodes/shaders/vulkan2qsb.sh | 3 + 32 files changed, 1309 insertions(+), 193 deletions(-) create mode 100644 playground/shadows/ArcPage.cpp create mode 100644 playground/shadows/ArcPage.h create mode 100644 playground/shadows/BoxPage.cpp create mode 100644 playground/shadows/BoxPage.h create mode 100644 playground/shadows/ShadowedArc.cpp create mode 100644 playground/shadows/ShadowedArc.h create mode 100644 playground/shadows/Slider.cpp create mode 100644 playground/shadows/Slider.h create mode 100644 src/nodes/QskArcShadowNode.cpp create mode 100644 src/nodes/QskArcShadowNode.h create mode 100644 src/nodes/shaders/arcshadow-vulkan.frag create mode 100644 src/nodes/shaders/arcshadow-vulkan.vert create mode 100644 src/nodes/shaders/arcshadow.frag create mode 100644 src/nodes/shaders/arcshadow.frag.qsb create mode 100644 src/nodes/shaders/arcshadow.vert create mode 100644 src/nodes/shaders/arcshadow.vert.qsb create mode 100755 src/nodes/shaders/arcshadow2qsb.sh diff --git a/playground/shadows/ArcPage.cpp b/playground/shadows/ArcPage.cpp new file mode 100644 index 00000000..7ee25532 --- /dev/null +++ b/playground/shadows/ArcPage.cpp @@ -0,0 +1,109 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "ArcPage.h" +#include "ShadowedArc.h" +#include "Slider.h" + +#include + +namespace +{ + class ControlPanel : public QskGridBox + { + Q_OBJECT + + public: + ControlPanel( ShadowedArc* arc, QQuickItem* parent = nullptr ) + : QskGridBox( parent ) + { + setMargins( 5 ); + setSpacing( 10 ); + + { + auto slider = new Slider( "Start", 0, 360, 10, arc->startAngle() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setStartAngle ); + + addItem( slider, 0, 0 ); + } + { + auto slider = new Slider( "Span", -360, 360, 10, arc->spanAngle() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setSpanAngle ); + + addItem( slider, 0, 1 ); + } + { + auto slider = new Slider( "Extent", 0, 100, 1, arc->thickness() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setThickness ); + + addItem( slider, 1, 0 ); + } + { + auto slider = new Slider( "Border", 0, 10, 1, arc->borderWidth() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setBorderWidth ); + + addItem( slider, 1, 1); + } + { + auto slider = new Slider( "Spread Radius", -10, 50, 1, arc->spreadRadius() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setSpreadRadius ); + + addItem( slider, 2, 0 ); + } + { + auto slider = new Slider( "Blur Radius", 0, 50, 1, arc->blurRadius() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setBlurRadius ); + + addItem( slider, 2, 1 ); + } + { + auto slider = new Slider( "Offset X", -50, 50, 1, arc->offsetX() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setOffsetX ); + + addItem( slider, 3, 0 ); + + } + { + auto slider = new Slider( "Offset Y", -50, 50, 1, arc->offsetY() ); + connect( slider, &Slider::valueChanged, arc, &ShadowedArc::setOffsetY ); + + addItem( slider, 3, 1 ); + } + } + }; +} + +ArcPage::ArcPage( QQuickItem* parent ) + : QskLinearBox( Qt::Vertical, parent ) +{ + auto arc = new ShadowedArc(); + arc->setMargins( 40 ); // some extra space for testing the offsets + + { + // initial settings + arc->setStartAngle( 45.0 ); + arc->setSpanAngle( 270.0 ); + arc->setThickness( 10.0 ); + + arc->setFillColor( Qt::darkRed ); + + arc->setBorderWidth( 0 ); + arc->setBorderColor( Qt::darkYellow ); + + arc->setShadowColor( Qt::black ); + arc->setSpreadRadius( 0.0 ); + arc->setBlurRadius( 4.0 ); + arc->setOffsetX( 2.0 ); + arc->setOffsetY( 2.0 ); + } + + auto panel = new ControlPanel( arc ); + panel->setSizePolicy( Qt::Vertical, QskSizePolicy::Fixed ); + + addItem( panel ); + addItem( arc ); +} + +#include "ArcPage.moc" diff --git a/playground/shadows/ArcPage.h b/playground/shadows/ArcPage.h new file mode 100644 index 00000000..eeb62066 --- /dev/null +++ b/playground/shadows/ArcPage.h @@ -0,0 +1,14 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#pragma once + +#include + +class ArcPage : public QskLinearBox +{ + public: + ArcPage( QQuickItem* parent = nullptr ); +}; diff --git a/playground/shadows/BoxPage.cpp b/playground/shadows/BoxPage.cpp new file mode 100644 index 00000000..860c2c0f --- /dev/null +++ b/playground/shadows/BoxPage.cpp @@ -0,0 +1,73 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "BoxPage.h" +#include "ShadowedBox.h" +#include "Slider.h" + +#include +#include + +namespace +{ + class ControlPanel : public QskLinearBox + { + public: + ControlPanel( ShadowedBox* box, QQuickItem* parent = nullptr ) + : QskLinearBox( Qt::Vertical, parent ) + { + { + auto slider = new Slider( "Offset X", -50, 50, 1, box->offsetX() ); + connect( slider, &Slider::valueChanged, box, &ShadowedBox::setOffsetX ); + + addItem( slider ); + } + { + auto slider = new Slider( "Offset Y", -50, 50, 1, box->offsetY() ); + connect( slider, &Slider::valueChanged, box, &ShadowedBox::setOffsetY ); + + addItem( slider ); + } + { + auto slider = new Slider( "Spread Radius", -10, 50, 1, box->spreadRadius() ); + connect( slider, &Slider::valueChanged, box, &ShadowedBox::setSpreadRadius ); + + addItem( slider ); + } + { + auto slider = new Slider( "Blur Radius", 0, 50, 1, box->blurRadius() ); + connect( slider, &Slider::valueChanged, box, &ShadowedBox::setBlurRadius ); + + addItem( slider ); + } + { + auto slider = new Slider( "Opacity", 0, 1, 0.01, box->opacity() ); + connect( slider, &Slider::valueChanged, box, &ShadowedBox::setOpacity ); + + addItem( slider ); + } + } + }; +} + +BoxPage::BoxPage( QQuickItem* parent ) + : QskLinearBox( Qt::Vertical, parent ) +{ + auto box = new ShadowedBox(); + box->setMargins( 40 ); // some extra space for testing the offsets + + { + box->setOffsetX( 10 ); + box->setOffsetY( 10 ); + box->setSpreadRadius( 0 ); + box->setBlurRadius( 5 ); + } + + auto panel = new ControlPanel( box ); + panel->setSizePolicy( Qt::Vertical, QskSizePolicy::Fixed ); + + addItem( panel ); + addItem( box ); +} diff --git a/playground/shadows/BoxPage.h b/playground/shadows/BoxPage.h new file mode 100644 index 00000000..d5dc15aa --- /dev/null +++ b/playground/shadows/BoxPage.h @@ -0,0 +1,19 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#pragma once + +#include + +class QskSlider; + +class BoxPage : public QskLinearBox +{ + public: + BoxPage( QQuickItem* parent = nullptr ); + + private: + void addSlider( int row, const QString&, QskSlider* ); +}; diff --git a/playground/shadows/CMakeLists.txt b/playground/shadows/CMakeLists.txt index 0d3466d7..f65ac316 100644 --- a/playground/shadows/CMakeLists.txt +++ b/playground/shadows/CMakeLists.txt @@ -3,4 +3,7 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################ -qsk_add_example(shadows ShadowedBox.h ShadowedBox.cpp main.cpp) +qsk_add_example(shadows + BoxPage.h BoxPage.cpp ShadowedBox.h ShadowedBox.cpp + ArcPage.h ArcPage.cpp ShadowedArc.h ShadowedArc.cpp + Slider.h Slider.cpp main.cpp) diff --git a/playground/shadows/ShadowedArc.cpp b/playground/shadows/ShadowedArc.cpp new file mode 100644 index 00000000..0ba49ad5 --- /dev/null +++ b/playground/shadows/ShadowedArc.cpp @@ -0,0 +1,269 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "ShadowedArc.h" + +#include +#include +#include +#include + +#include +#include + +QSK_SUBCONTROL( ShadowedArc, Arc ) + +namespace +{ + class Skinlet : public QskSkinlet + { + using Inherited = QskSkinlet; + + public: + enum NodeRoles { ArcRole }; + + Skinlet( QskSkin* skin = nullptr ); + + QRectF subControlRect( const QskSkinnable*, + const QRectF&, QskAspect::Subcontrol ) const override; + + QSGNode* updateSubNode( const QskSkinnable*, + quint8 nodeRole, QSGNode* ) const override; + + private: + QSGNode* updateArcNode( const ShadowedArc*, QSGNode* node ) const; + }; + + Skinlet::Skinlet( QskSkin* skin ) + : QskSkinlet( skin ) + { + setNodeRoles( { ArcRole } ); + } + + QRectF Skinlet::subControlRect( const QskSkinnable* skinnable, + const QRectF& contentsRect, QskAspect::Subcontrol subControl ) const + { + if ( subControl == ShadowedArc::Arc ) + return contentsRect; + + return Inherited::subControlRect( skinnable, contentsRect, subControl ); + } + + QSGNode* Skinlet::updateSubNode( + const QskSkinnable* skinnable, quint8 nodeRole, QSGNode* node ) const + { + if ( nodeRole == ArcRole ) + { + auto arc = static_cast< const ShadowedArc* >( skinnable ); + return updateArcNode( arc, node ); + } + + return Inherited::updateSubNode( skinnable, nodeRole, node ); + } + + QSGNode* Skinlet::updateArcNode( const ShadowedArc* arc, QSGNode* node ) const + { + using Q = ShadowedArc; + + const auto rect = arc->subControlRect( Q::Arc ); + if ( rect.isEmpty() ) + return nullptr; + + auto arcNode = QskSGNode::ensureNode< QskArcNode >( node ); + + const auto metrics = arc->arcMetricsHint( Q::Arc ); + const auto fillGradient = arc->gradientHint( Q::Arc ); + + const auto borderColor = arc->color( Q::Arc | QskAspect::Border ); + const auto borderWidth = arc->metric( Q::Arc | QskAspect::Border ); + + const auto shadowColor = arc->shadowColorHint( Q::Arc ); + const auto shadowMetrics = arc->shadowMetricsHint( Q::Arc ); + + arcNode->setArcData( rect, metrics, borderWidth, borderColor, + fillGradient, shadowColor, shadowMetrics); + + return arcNode; + } +} + +ShadowedArc::ShadowedArc( QQuickItem* parent ) + : Inherited( parent ) +{ + auto skinlet = new Skinlet(); + skinlet->setOwnedBySkinnable( true ); + + setSkinlet( skinlet ); + + // initial settings + + setArcMetrics( { 0.0, 360.0, 1.0, Qt::RelativeSize } ); + + setFillColor( Qt::darkRed ); + + setBorderWidth( 0 ); + setBorderColor( Qt::gray ); + + setShadowColor( Qt::black ); + setShadowMetrics( { 0, 0, QPointF( 0, 0 ), Qt::AbsoluteSize } ); +} + +ShadowedArc::~ShadowedArc() +{ +} + +void ShadowedArc::setThickness( qreal thickness ) +{ + auto metrics = arcMetrics(); + metrics.setThickness( thickness ); + + setArcMetrics( metrics ); +} + +qreal ShadowedArc::thickness() const +{ + return arcMetrics().thickness(); +} + +void ShadowedArc::setBorderWidth( qreal width ) +{ + width = std::max( width, 0.0 ); + setMetric( Arc | QskAspect::Border, width ); +} + +qreal ShadowedArc::borderWidth() const +{ + return metric( Arc | QskAspect::Border ); +} + +void ShadowedArc::setStartAngle( qreal degrees ) +{ + auto metrics = arcMetrics(); + metrics.setStartAngle( degrees ); + + setArcMetrics( metrics ); +} + +qreal ShadowedArc::startAngle() const +{ + return arcMetrics().startAngle(); +} + +void ShadowedArc::setSpanAngle( qreal degrees ) +{ + auto metrics = arcMetrics(); + metrics.setSpanAngle( degrees ); + + setArcMetrics( metrics ); +} + +qreal ShadowedArc::spanAngle() const +{ + return arcMetrics().spanAngle(); +} + +void ShadowedArc::setOffsetX( qreal dx ) +{ + auto metrics = shadowMetrics(); + metrics.setOffsetX( dx ); + + setShadowMetrics( metrics ); +} + +qreal ShadowedArc::offsetX() const +{ + return shadowMetrics().offset().x(); +} + +void ShadowedArc::setOffsetY( qreal dy ) +{ + auto metrics = shadowMetrics(); + metrics.setOffsetY( dy ); + + setShadowMetrics( metrics ); +} + +qreal ShadowedArc::offsetY() const +{ + return shadowMetrics().offset().y(); +} + +void ShadowedArc::setSpreadRadius( qreal radius ) +{ + auto metrics = shadowMetrics(); + metrics.setSpreadRadius( radius ); + + setShadowMetrics( metrics ); +} + +qreal ShadowedArc::spreadRadius() const +{ + return shadowMetrics().spreadRadius(); +} + +void ShadowedArc::setBlurRadius( qreal radius ) +{ + auto metrics = shadowMetrics(); + metrics.setBlurRadius( radius ); + + setShadowMetrics( metrics ); +} + +qreal ShadowedArc::blurRadius() const +{ + return shadowMetrics().blurRadius(); +} + +void ShadowedArc::setFillColor( const QColor& color ) +{ + setColor( Arc, color ); +} + +QColor ShadowedArc::fillColor() const +{ + return color( Arc ); +} + +void ShadowedArc::setShadowColor( const QColor& color ) +{ + setShadowColorHint( Arc, color ); +} + +QColor ShadowedArc::shadowColor() const +{ + return shadowColorHint( Arc ); +} + +void ShadowedArc::setBorderColor( const QColor& color ) +{ + setColor( Arc | QskAspect::Border, color ); +} + +QColor ShadowedArc::borderColor() const +{ + return color( Arc | QskAspect::Border ); +} + +QskShadowMetrics ShadowedArc::shadowMetrics() const +{ + return shadowMetricsHint( Arc ); +} + +void ShadowedArc::setShadowMetrics( const QskShadowMetrics& metrics ) +{ + setShadowMetricsHint( Arc, metrics ); +} + +QskArcMetrics ShadowedArc::arcMetrics() const +{ + return arcMetricsHint( Arc ); +} + +void ShadowedArc::setArcMetrics( const QskArcMetrics& metrics ) +{ + setArcMetricsHint( Arc, metrics ); +} + +#include "moc_ShadowedArc.cpp" diff --git a/playground/shadows/ShadowedArc.h b/playground/shadows/ShadowedArc.h new file mode 100644 index 00000000..a4179ade --- /dev/null +++ b/playground/shadows/ShadowedArc.h @@ -0,0 +1,64 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#pragma once + +#include + +class QskShadowMetrics; +class QskArcMetrics; + +class ShadowedArc : public QskControl +{ + Q_OBJECT + + using Inherited = QskControl; + + public: + QSK_SUBCONTROLS( Arc ) + + ShadowedArc( QQuickItem* parent = nullptr ); + ~ShadowedArc() override; + + qreal thickness() const; + qreal borderWidth() const; + + qreal startAngle() const; + qreal spanAngle() const; + + qreal offsetX() const; + qreal offsetY() const; + + qreal spreadRadius() const; + qreal blurRadius() const; + + QColor borderColor() const; + QColor fillColor() const; + QColor shadowColor() const; + + public Q_SLOTS: + void setThickness( qreal ); + void setBorderWidth( qreal ); + + void setStartAngle( qreal ); + void setSpanAngle( qreal ); + + void setOffsetX( qreal ); + void setOffsetY( qreal ); + + void setSpreadRadius( qreal ); + void setBlurRadius( qreal ); + + void setBorderColor( const QColor& ); + void setFillColor( const QColor& ); + void setShadowColor( const QColor& ); + + private: + QskShadowMetrics shadowMetrics() const; + void setShadowMetrics( const QskShadowMetrics& ); + + QskArcMetrics arcMetrics() const; + void setArcMetrics( const QskArcMetrics& ); +}; diff --git a/playground/shadows/ShadowedBox.cpp b/playground/shadows/ShadowedBox.cpp index 2431e80e..cad0fd22 100644 --- a/playground/shadows/ShadowedBox.cpp +++ b/playground/shadows/ShadowedBox.cpp @@ -14,21 +14,10 @@ ShadowedBox::ShadowedBox( QQuickItem* parentItem ) : QskBox( true, parentItem ) { - QColor c( Qt::darkRed ); -#if 0 - c.setAlpha( 100 ); -#endif - - setGradientHint( Panel, c ); + setGradientHint( Panel, Qt::darkRed ); setBoxShapeHint( Panel, QskBoxShapeMetrics( 40, 0, 15, 0 ) ); setBoxBorderMetricsHint( Panel, 0 ); - -#if 0 - setBoxBorderMetricsHint( Panel, 10 ); - setBoxBorderColorsHint( Panel, Qt::blue ); -#endif - setShadowColorHint( Panel, Qt::black ); } diff --git a/playground/shadows/Slider.cpp b/playground/shadows/Slider.cpp new file mode 100644 index 00000000..0a08201a --- /dev/null +++ b/playground/shadows/Slider.cpp @@ -0,0 +1,47 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "Slider.h" + +#include +#include + +#include + +Slider::Slider( const QString& text, qreal min, qreal max, + qreal step, qreal value, QQuickItem* parent ) + : QskLinearBox( Qt::Horizontal, parent ) +{ + m_label = new QskTextLabel( text, this ); + m_label->setSizePolicy( Qt::Horizontal, QskSizePolicy::Fixed ); + + m_slider = new QskSlider( this ); + m_slider->setBoundaries( min, max ); + m_slider->setStepSize( step ); + m_slider->setSnap( true ); + m_slider->setValue( value ); + + m_valueLabel = new QskTextLabel( this ); + m_valueLabel->setAlignment( Qt::AlignLeft | Qt::AlignVCenter ); + updateLabel( value ); + + const QFontMetricsF fm( m_valueLabel->font() ); + m_valueLabel->setFixedWidth( fm.horizontalAdvance( "-100" ) ); + + connect( m_slider, &QskSlider::valueChanged, this, &Slider::updateLabel ); + connect( m_slider, &QskSlider::valueChanged, this, &Slider::valueChanged ); +} + +void Slider::updateLabel( qreal value ) +{ + m_valueLabel->setText( QString::number( value ) ); +} + +void Slider::setValue( qreal value ) +{ + m_slider->setValue( value ); +} + +#include "moc_Slider.cpp" diff --git a/playground/shadows/Slider.h b/playground/shadows/Slider.h new file mode 100644 index 00000000..c62fa160 --- /dev/null +++ b/playground/shadows/Slider.h @@ -0,0 +1,37 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#pragma once + +#include + +class QskSlider; +class QskTextLabel; + +class Slider : public QskLinearBox +{ + Q_OBJECT + + using Inherited = QskLinearBox; + + public: + Slider( const QString&, qreal min, qreal max, qreal step, + qreal value, QQuickItem* parent = nullptr ); + + qreal value() const; + + Q_SIGNALS: + void valueChanged( qreal ); + + public Q_SLOTS: + void setValue( qreal ); + + private: + void updateLabel( qreal ); + + QskTextLabel* m_label = nullptr; + QskSlider* m_slider = nullptr; + QskTextLabel* m_valueLabel = nullptr; +}; diff --git a/playground/shadows/main.cpp b/playground/shadows/main.cpp index 2d6d6de9..c4e2ceda 100644 --- a/playground/shadows/main.cpp +++ b/playground/shadows/main.cpp @@ -3,129 +3,31 @@ * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ -#include "ShadowedBox.h" +#include "BoxPage.h" +#include "ArcPage.h" #include #include -#include -#include -#include -#include +#include +#include #include #include -#include -class BoxPanel : public QskBox +namespace { - public: - BoxPanel( QQuickItem* parent = nullptr ) - : QskBox( parent ) + class TabView : public QskTabView { - setAutoLayoutChildren( true ); - setPadding( 60 ); + public: + TabView() + { + //setTabBarEdge( Qt::LeftEdge ); - setPanel( true ); - setGradientHint( QskBox::Panel, QGradient::SnowAgain ); - } -}; - -class Slider : public QskSlider -{ - public: - Slider( qreal min, qreal max, qreal step, qreal value, QQuickItem* parent = nullptr ) - : QskSlider( parent ) - { - setBoundaries( min, max ); - setStepSize( step ); - setSnap( true ); - setValue( value ); - } -}; - -class ValueLabel : public QskTextLabel -{ - public: - ValueLabel( QQuickItem* parent = nullptr ) - : QskTextLabel( parent ) - { - setFixedWidth( QFontMetrics( font() ).horizontalAdvance( "-100" ) ); - setAlignment( Qt::AlignLeft | Qt::AlignVCenter ); - } - - void setValue( qreal value ) - { - setText( QString::number( value ) ); - } -}; - -class GridBox : public QskGridBox -{ - public: - GridBox( QQuickItem* parent = nullptr ) - : QskGridBox( parent ) - { - setPanel( true ); - setPadding( 5 ); - setColumnStretchFactor( 1, 1 ); - - auto sliderX = new Slider( -50, 50, 1, 10 ); - auto sliderY = new Slider( -50, 50, 1, 10 ); - auto sliderSpread = new Slider( 0, 50, 1, 0 ); - auto sliderBlur = new Slider( 0, 50, 1, 10 ); - auto sliderOpacity = new Slider( 0, 1, 0.01, 1 ); - - auto panel = new BoxPanel(); - - int row = 0; - - addSlider( row++, "Offset X", sliderX ); - addSlider( row++, "Offset Y", sliderY ); - addSlider( row++, "Spread Radius", sliderSpread ); - addSlider( row++, "Blur Radius", sliderBlur ); - addSlider( row++, "Opacity", sliderOpacity ); - - addItem( panel, row, 0, -1, -1 ); - - auto box = new ShadowedBox( panel ); - - box->setOffsetX( sliderX->value() ); - box->setOffsetY( sliderY->value() ); - box->setSpreadRadius( sliderSpread->value() ); - box->setBlurRadius( sliderBlur->value() ); - box->setOpacity( sliderOpacity->value() ); - - connect( sliderX, &QskSlider::valueChanged, - box, &ShadowedBox::setOffsetX ); - - connect( sliderY, &QskSlider::valueChanged, - box, &ShadowedBox::setOffsetY ); - - connect( sliderSpread, &QskSlider::valueChanged, - box, &ShadowedBox::setSpreadRadius ); - - connect( sliderBlur, &QskSlider::valueChanged, - box, &ShadowedBox::setBlurRadius ); - - connect( sliderOpacity, &QskSlider::valueChanged, - box, &ShadowedBox::setOpacity ); - } - - private: - void addSlider( int row, const QString& text, QskSlider* slider ) - { - addItem( new QskTextLabel( text ), row, 0 ); - addItem( slider, row, 1 ); - - auto label = new ValueLabel(); - label->setValue( slider->value() ); - - addItem( label, row, 2 ); - - connect( slider, &QskSlider::valueChanged, - label, [label]( qreal value ) { label->setText( QString::number( value ) ); } ); - } -}; + addTab( "Arc Shadow", new ArcPage() ); + addTab( "Box Shadow", new BoxPage() ); + } + }; +} int main( int argc, char* argv[] ) { @@ -138,7 +40,7 @@ int main( int argc, char* argv[] ) SkinnyShortcut::enable( SkinnyShortcut::AllShortcuts ); QskWindow window; - window.addItem( new GridBox() ); + window.addItem( new TabView() ); window.resize( 600, 600 ); window.show(); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3906ad94..3c6b4970 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -99,6 +99,7 @@ list(APPEND SOURCES list(APPEND HEADERS nodes/QskArcNode.h + nodes/QskArcShadowNode.h nodes/QskBasicLinesNode.h nodes/QskBoxNode.h nodes/QskBoxClipNode.h @@ -138,6 +139,7 @@ list(APPEND PRIVATE_HEADERS list(APPEND SOURCES nodes/QskArcNode.cpp + nodes/QskArcShadowNode.cpp nodes/QskBasicLinesNode.cpp nodes/QskBoxNode.cpp nodes/QskBoxClipNode.cpp diff --git a/src/controls/QskSkinlet.cpp b/src/controls/QskSkinlet.cpp index e6351519..1924339e 100644 --- a/src/controls/QskSkinlet.cpp +++ b/src/controls/QskSkinlet.cpp @@ -231,7 +231,7 @@ static inline QSGNode* qskUpdateArcNode( return nullptr; auto arcNode = QskSGNode::ensureNode< QskArcNode >( node ); - arcNode->setArcData( rect, metrics, borderWidth, borderColor, gradient ); + arcNode->setArcData( rect, metrics, borderWidth, borderColor, gradient, {}, {} ); return arcNode; } @@ -547,11 +547,11 @@ QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable, } QSGNode* QskSkinlet::updateArcNode( - const QskSkinnable* skinnable, QSGNode* node, const QRectF& rect, + const QskSkinnable* skinnable, QSGNode* node, const QRectF& rect, qreal borderWidth, const QColor& borderColor, const QskGradient& fillGradient, const QskArcMetrics& metrics ) { - return qskUpdateArcNode( skinnable, node, rect, + return qskUpdateArcNode( skinnable, node, rect, borderWidth, borderColor, fillGradient, metrics ); } @@ -594,7 +594,7 @@ QSGNode* QskSkinlet::updateArcNode( const QskSkinnable* skinnable, } QSGNode* QskSkinlet::updateLineNode( const QskSkinnable* skinnable, - QSGNode* node, const QLineF& line, QskAspect::Subcontrol subControl ) + QSGNode* node, const QLineF& line, QskAspect::Subcontrol subControl ) { auto lineStipple = skinnable->stippleMetricsHint( subControl ); if ( !lineStipple.isValid() ) diff --git a/src/nodes/QskArcNode.cpp b/src/nodes/QskArcNode.cpp index a58a72df..ad280879 100644 --- a/src/nodes/QskArcNode.cpp +++ b/src/nodes/QskArcNode.cpp @@ -5,15 +5,27 @@ #include "QskArcNode.h" #include "QskArcMetrics.h" +#include "QskArcShadowNode.h" #include "QskMargins.h" #include "QskGradient.h" #include "QskShapeNode.h" #include "QskStrokeNode.h" #include "QskSGNode.h" +#include "QskShadowMetrics.h" #include #include +namespace +{ + enum NodeRole + { + ShadowRole, + FillRole, + BorderRole + }; +} + static inline QskGradient qskEffectiveGradient( const QskGradient& gradient, const QskArcMetrics& metrics ) { @@ -54,6 +66,14 @@ static inline QRectF qskEffectiveRect( return qskValidOrEmptyInnerRect( rect, QskMargins( 0.5 * borderWidth ) ); } +static void qskUpdateChildren( QSGNode* parentNode, quint8 role, QSGNode* node ) +{ + static const QVector< quint8 > roles = { ShadowRole, FillRole, BorderRole }; + + auto oldNode = QskSGNode::findChildNode( parentNode, role ); + QskSGNode::replaceChildNode( roles, role, parentNode, oldNode, node ); +} + QskArcNode::QskArcNode() { } @@ -65,20 +85,24 @@ QskArcNode::~QskArcNode() void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics, const QskGradient& fillGradient ) { - setArcData( rect, arcMetrics, 0.0, QColor(), fillGradient ); + setArcData( rect, arcMetrics, 0.0, QColor(), fillGradient, {}, {} ); } void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics, - qreal borderWidth, const QColor& borderColor, const QskGradient& fillGradient ) + const qreal borderWidth, const QColor& borderColor, const QskGradient& fillGradient ) { - enum NodeRole - { - FillRole, - BorderRole - }; + setArcData( rect, arcMetrics, borderWidth, borderColor, fillGradient, {}, {} ); +} - const auto metrics = qskEffectiveMetrics( arcMetrics, rect ); - const auto gradient = qskEffectiveGradient( fillGradient, metrics ); +void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics, + const qreal borderWidth, const QColor& borderColor, const QskGradient& fillGradient, + const QColor& shadowColor, const QskShadowMetrics& shadowMetrics ) +{ + const auto metricsArc = qskEffectiveMetrics( arcMetrics, rect ); + const auto gradient = qskEffectiveGradient( fillGradient, metricsArc ); + + auto shadowNode = static_cast< QskArcShadowNode* >( + QskSGNode::findChildNode( this, ShadowRole ) ); auto fillNode = static_cast< QskShapeNode* >( QskSGNode::findChildNode( this, FillRole ) ); @@ -89,22 +113,52 @@ void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics const auto arcRect = qskEffectiveRect( rect, borderWidth ); if ( arcRect.isEmpty() ) { + delete shadowNode; delete fillNode; delete borderNode; - return; } - const auto path = metrics.painterPath( arcRect ); + const auto isFillNodeVisible = gradient.isVisible() && !metricsArc.isNull(); + const auto isStrokeNodeVisible = borderWidth > 0.0 && borderColor.alpha() > 0; + const auto isShadowNodeVisible = shadowColor.alpha() > 0.0 && isFillNodeVisible; - if ( gradient.isVisible() && !metrics.isNull() ) + const auto path = metricsArc.painterPath( arcRect ); + + if ( isShadowNodeVisible ) + { + if ( shadowNode == nullptr ) + { + shadowNode = new QskArcShadowNode; + QskSGNode::setNodeRole( shadowNode, ShadowRole ); + } + + /* + The shader of the shadow node is for circular arcs and we have some + unwanted scaling issues for the spread/blur values when having ellipsoid + arcs. We might also want to add the spread value to the ends of the arc + and not only to its radius. TODO ... + */ + + const auto sm = shadowMetrics.toAbsolute( arcRect.size() ); + const auto shadowRect = sm.shadowRect( arcRect ); + const auto spreadRadius = sm.spreadRadius() + 0.5 * metricsArc.thickness(); + + shadowNode->setShadowData( shadowRect, spreadRadius, sm.blurRadius(), + metricsArc.startAngle(), metricsArc.spanAngle(), shadowColor ); + } + else + { + delete shadowNode; + shadowNode = nullptr; + } + + if ( isFillNodeVisible ) { if ( fillNode == nullptr ) { fillNode = new QskShapeNode; QskSGNode::setNodeRole( fillNode, FillRole ); - - prependChildNode( fillNode ); } fillNode->updateNode( path, QTransform(), arcRect, gradient ); @@ -112,25 +166,29 @@ void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics else { delete fillNode; + fillNode = nullptr; } - if ( borderWidth > 0.0 && borderColor.alpha() > 0 ) + if ( isStrokeNodeVisible ) { if ( borderNode == nullptr ) { borderNode = new QskStrokeNode; QskSGNode::setNodeRole( borderNode, BorderRole ); - - appendChildNode( borderNode ); } QPen pen( borderColor, borderWidth ); pen.setCapStyle( Qt::FlatCap ); - + borderNode->updateNode( path, QTransform(), pen ); } else { delete borderNode; + borderNode = nullptr; } + + qskUpdateChildren(this, ShadowRole, shadowNode); + qskUpdateChildren(this, FillRole, fillNode); + qskUpdateChildren(this, BorderRole, borderNode); } diff --git a/src/nodes/QskArcNode.h b/src/nodes/QskArcNode.h index 1e3e44d1..16784f2a 100644 --- a/src/nodes/QskArcNode.h +++ b/src/nodes/QskArcNode.h @@ -10,6 +10,7 @@ class QskArcMetrics; class QskGradient; +class QskShadowMetrics; /* For the moment a QPainterPath/QskShapeNode. @@ -23,8 +24,13 @@ class QSK_EXPORT QskArcNode : public QskShapeNode ~QskArcNode() override; void setArcData( const QRectF&, const QskArcMetrics&, const QskGradient& ); + void setArcData( const QRectF&, const QskArcMetrics&, qreal borderWidth, const QColor& borderColor, const QskGradient& ); + + void setArcData( const QRectF&, const QskArcMetrics&, + qreal borderWidth, const QColor& borderColor, const QskGradient&, + const QColor& shadowColor, const QskShadowMetrics&); }; #endif diff --git a/src/nodes/QskArcShadowNode.cpp b/src/nodes/QskArcShadowNode.cpp new file mode 100644 index 00000000..8ced5062 --- /dev/null +++ b/src/nodes/QskArcShadowNode.cpp @@ -0,0 +1,368 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#include "QskArcShadowNode.h" + +#include +#include +#include +#include + +#include + +QSK_QT_PRIVATE_BEGIN +#include +QSK_QT_PRIVATE_END + +// QSGMaterialRhiShader became QSGMaterialShader in Qt6 + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) +#include +using RhiShader = QSGMaterialRhiShader; +#else +using RhiShader = QSGMaterialShader; +#endif + +namespace +{ + class Material final : public QSGMaterial + { + public: + Material(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QSGMaterialShader* createShader() const override; +#else + QSGMaterialShader* createShader( QSGRendererInterface::RenderMode ) const override; +#endif + + QSGMaterialType* type() const override; + int compare( const QSGMaterial* other ) const override; + + QVector4D m_color { 0, 0, 0, 1 }; + QVector4D m_arc = {}; + + float m_spreadRadius = 0.0f; + float m_blurRadius = 0.0f; + }; +} + +namespace +{ + class ShaderRhi final : public RhiShader + { + public: + ShaderRhi() + { + const QString root( ":/qskinny/shaders/" ); + setShaderFileName( VertexStage, root + "arcshadow.vert.qsb" ); + setShaderFileName( FragmentStage, root + "arcshadow.frag.qsb" ); + } + + bool updateUniformData( RenderState& state, + QSGMaterial* const newMaterial, QSGMaterial* const oldMaterial ) override + { + const auto matOld = static_cast< Material* >( oldMaterial ); + const auto matNew = static_cast< Material* >( newMaterial ); + + Q_ASSERT( state.uniformData()->size() == 108 ); + + auto data = state.uniformData()->data(); + bool changed = false; + + if ( state.isMatrixDirty() ) + { + const auto matrix = state.combinedMatrix(); + memcpy( data + 0, matrix.constData(), 64 ); + + changed = true; + } + + if ( matOld == nullptr || matNew->m_color != matOld->m_color ) + { + memcpy( data + 64, &matNew->m_color, 16 ); + changed = true; + } + + if ( matOld == nullptr || matNew->m_arc != matOld->m_arc ) + { + memcpy( data + 80, &matNew->m_arc, 16 ); + changed = true; + } + + if ( matOld == nullptr || matNew->m_spreadRadius != matOld->m_spreadRadius ) + { + memcpy( data + 96, &matNew->m_spreadRadius, 4 ); + changed = true; + } + + if ( matOld == nullptr || matNew->m_blurRadius != matOld->m_blurRadius ) + { + memcpy( data + 100, &matNew->m_blurRadius, 4 ); + changed = true; + } + + if ( state.isOpacityDirty() ) + { + const float opacity = state.opacity(); + memcpy( data + 104, &opacity, 4 ); + + changed = true; + } + + return changed; + } + }; +} + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + +namespace +{ + // the old type of shader - specific for OpenGL + + class ShaderGL final : public QSGMaterialShader + { + struct Uniforms + { + int matrix = -1; + int color = -1; + int arc = -1; + int spreadRadius = -1; + int blurRadius = -1; + int opacity = -1; + }; + + public: + ShaderGL() + { + const QString root( ":/qskinny/shaders/" ); + setShaderSourceFile( QOpenGLShader::Vertex, root + "arcshadow.vert" ); + setShaderSourceFile( QOpenGLShader::Fragment, root + "arcshadow.frag" ); + } + + char const* const* attributeNames() const override + { + static char const* const names[] = { "in_vertex", "in_coord", nullptr }; + return names; + } + + void initialize() override + { + QSGMaterialShader::initialize(); + + const auto* const p = program(); + + id.matrix = p->uniformLocation( "matrix" ); + id.color = p->uniformLocation( "color" ); + id.arc = p->uniformLocation( "arc" ); + id.spreadRadius = p->uniformLocation( "spreadRadius" ); + id.blurRadius = p->uniformLocation( "blurRadius" ); + id.opacity = p->uniformLocation( "opacity" ); + } + + void updateState( const QSGMaterialShader::RenderState& state, + QSGMaterial* const newMaterial, QSGMaterial* const oldMaterial ) override + { + auto* const p = program(); + + if ( state.isMatrixDirty() ) + { + p->setUniformValue( id.matrix, state.combinedMatrix() ); + } + + if ( state.isOpacityDirty() ) + { + p->setUniformValue( id.opacity, state.opacity() ); + } + + auto updateMaterial = ( oldMaterial == nullptr ) || + ( newMaterial->compare( oldMaterial ) != 0 ); + + updateMaterial |= state.isCachedMaterialDataDirty(); + + if ( updateMaterial ) + { + const auto* const material = static_cast< const Material* >( newMaterial ); + + p->setUniformValue( id.color, material->m_color ); + p->setUniformValue( id.arc, material->m_arc ); + p->setUniformValue( id.spreadRadius, material->m_spreadRadius ); + p->setUniformValue( id.blurRadius, material->m_blurRadius ); + } + } + + private: + Uniforms id; + }; +} + +#endif + +namespace +{ + Material::Material() + { + setFlag( QSGMaterial::Blending, true ); +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + setFlag( QSGMaterial::SupportsRhiShader, true ); +#endif + } + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + + QSGMaterialShader* Material::createShader() const + { + if ( !( flags() & QSGMaterial::RhiShaderWanted ) ) + return new ShaderGL(); + + return new ShaderRhi(); + } + +#else + + QSGMaterialShader* Material::createShader( QSGRendererInterface::RenderMode ) const + { + return new ShaderRhi(); + } + +#endif + + QSGMaterialType* Material::type() const + { + static QSGMaterialType staticType; + return &staticType; + } + + int Material::compare( const QSGMaterial* const other ) const + { + auto material = static_cast< const Material* >( other ); + + if ( ( material->m_color == m_color ) + && ( material->m_arc == m_arc ) + && qFuzzyCompare( material->m_spreadRadius, m_spreadRadius ) + && qFuzzyCompare( material->m_blurRadius, m_blurRadius ) ) + { + return 0; + } + + return QSGMaterial::compare( other ); + } +} + +class QskArcShadowNodePrivate final : public QSGGeometryNodePrivate +{ + public: + QskArcShadowNodePrivate() + : geometry( QSGGeometry::defaultAttributes_TexturedPoint2D(), 4 ) + { + } + + QSGGeometry geometry; + Material material; + QRectF rect; +}; + +QskArcShadowNode::QskArcShadowNode() + : QSGGeometryNode( *new QskArcShadowNodePrivate ) +{ + Q_D( QskArcShadowNode ); + + setGeometry( &d->geometry ); + setMaterial( &d->material ); + + d->geometry.setDrawingMode( QSGGeometry::DrawTriangleStrip ); + d->material.setFlag( QSGMaterial::Blending ); +} + +QskArcShadowNode::~QskArcShadowNode() = default; + +void QskArcShadowNode::setShadowData( + const QRectF& rect, qreal spreadRadius, qreal blurRadius, + qreal startAngle, qreal spanAngle, const QColor& color ) +{ + if ( qFuzzyIsNull( spanAngle ) || color.alpha() == 0 ) + { + setBoundingRectangle( {} ); + return; + } + + Q_D( QskArcShadowNode ); + + if ( d->rect != rect ) + { + setBoundingRectangle( rect ); // bounding rectangle includig spread/blur + } + + const auto size = qMin( rect.width(), rect.height() ); + + { +#if 1 + const auto a = color.alphaF(); + const QVector4D c( color.redF() * a, color.greenF() * a, color.blueF() * a, a ); +#else + const QVector4D c( color.redF(), color.greenF(), color.blueF(), color.alphaF() ); +#endif + + if ( d->material.m_color != c ) + { + d->material.m_color = c; + markDirty( QSGNode::DirtyMaterial ); + } + } + + { + const float r = spreadRadius / size; + + if ( d->material.m_spreadRadius != r ) + { + d->material.m_spreadRadius = r; + markDirty( QSGNode::DirtyMaterial ); + } + } + + { + const float r = blurRadius / size; + + if ( d->material.m_blurRadius != r ) + { + d->material.m_blurRadius = r; + markDirty( QSGNode::DirtyMaterial ); + } + } + + { + QVector4D arc( 0.0, 0.0, 1.0, 0.0 ); + + { + const auto a1 = qDegreesToRadians( startAngle + 0.5 * spanAngle ); + const auto a2 = qDegreesToRadians( 0.5 * qAbs( spanAngle ) ); + + arc = QVector4D( ::cos( a1 ), ::sin( a1 ), ::cos( a2 ), ::sin( a2 ) ); + } + + if ( d->material.m_arc != arc ) + { + d->material.m_arc = arc; + markDirty( QSGNode::DirtyMaterial ); + } + } +} + +void QskArcShadowNode::setBoundingRectangle( const QRectF& rect ) +{ + Q_D( QskArcShadowNode ); + + if ( d->rect == rect ) + return; + + d->rect = rect; + + QSGGeometry::updateTexturedRectGeometry( + &d->geometry, d->rect, { -0.5, -0.5, 1.0, 1.0 } ); + d->geometry.markVertexDataDirty(); + + markDirty( QSGNode::DirtyGeometry ); +} diff --git a/src/nodes/QskArcShadowNode.h b/src/nodes/QskArcShadowNode.h new file mode 100644 index 00000000..5d76b9bf --- /dev/null +++ b/src/nodes/QskArcShadowNode.h @@ -0,0 +1,32 @@ +/****************************************************************************** + * QSkinny - Copyright (C) 2016 Uwe Rathmann + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + +#ifndef QSK_ARC_SHADOW_NODE_H +#define QSK_ARC_SHADOW_NODE_H + +#include "QskGlobal.h" +#include + +class QskArcMetrics; +class QskShadowMetrics; + +class QskArcShadowNodePrivate; + +class QskArcShadowNode : public QSGGeometryNode +{ + public: + QskArcShadowNode(); + ~QskArcShadowNode() override; + + void setShadowData( const QRectF&, qreal spreadRadius, qreal blurRadius, + qreal startAngle, qreal spanAngle, const QColor& ); + + private: + void setBoundingRectangle( const QRectF& ); + + Q_DECLARE_PRIVATE( QskArcShadowNode ) +}; + +#endif diff --git a/src/nodes/QskBoxShadowNode.cpp b/src/nodes/QskBoxShadowNode.cpp index d94d8ad3..6f730ceb 100644 --- a/src/nodes/QskBoxShadowNode.cpp +++ b/src/nodes/QskBoxShadowNode.cpp @@ -40,7 +40,7 @@ namespace int compare( const QSGMaterial* other ) const override; - QVector2D m_aspect = QVector2D{ 1, 1 }; + QVector2D m_aspectRatio = QVector2D{ 1, 1 }; QVector4D m_radius = QVector4D{ 0, 0, 0, 0 }; QVector4D m_color = QVector4D{ 0, 0, 0, 1 }; float m_blurExtent = 0.0; @@ -91,9 +91,9 @@ namespace changed = true; } - if ( matOld == nullptr || matNew->m_aspect != matOld->m_aspect ) + if ( matOld == nullptr || matNew->m_aspectRatio != matOld->m_aspectRatio ) { - memcpy( data + 96, &matNew->m_aspect, 8 ); + memcpy( data + 96, &matNew->m_aspectRatio, 8 ); changed = true; } @@ -146,7 +146,7 @@ namespace auto p = program(); m_matrixId = p->uniformLocation( "matrix" ); - m_aspectId = p->uniformLocation( "aspect" ); + m_aspectRatioId = p->uniformLocation( "aspectRatio" ); m_opacityId = p->uniformLocation( "opacity" ); m_blurExtentId = p->uniformLocation( "blurExtent" ); m_radiusId = p->uniformLocation( "radius" ); @@ -173,7 +173,7 @@ namespace { auto material = static_cast< const Material* >( newMaterial ); - p->setUniformValue( m_aspectId, material->m_aspect ); + p->setUniformValue( m_aspectRatioId, material->m_aspectRatio ); p->setUniformValue( m_blurExtentId, material->m_blurExtent); p->setUniformValue( m_radiusId, material->m_radius ); p->setUniformValue( m_colorId, material->m_color ); @@ -183,7 +183,7 @@ namespace private: int m_matrixId = -1; int m_opacityId = -1; - int m_aspectId = -1; + int m_aspectRatioId = -1; int m_blurExtentId = -1; int m_radiusId = -1; int m_colorId = -1; @@ -231,7 +231,7 @@ int Material::compare( const QSGMaterial* other ) const auto material = static_cast< const Material* >( other ); if ( ( material->m_color == m_color ) - && ( material->m_aspect == m_aspect ) + && ( material->m_aspectRatio == m_aspectRatio ) && qFuzzyCompare(material->m_blurExtent, m_blurExtent) && qFuzzyCompare(material->m_radius, m_radius) ) { @@ -284,16 +284,16 @@ void QskBoxShadowNode::setShadowData( d->geometry.markVertexDataDirty(); markDirty( QSGNode::DirtyGeometry ); - QVector2D aspect( 1.0, 1.0 ); + QVector2D aspectRatio( 1.0, 1.0 ); if ( rect.width() >= rect.height() ) - aspect.setX( rect.width() / rect.height() ); + aspectRatio.setX( rect.width() / rect.height() ); else - aspect.setY( rect.height() / rect.width() ); + aspectRatio.setY( rect.height() / rect.width() ); - if ( d->material.m_aspect != aspect ) + if ( d->material.m_aspectRatio != aspectRatio ) { - d->material.m_aspect = aspect; + d->material.m_aspectRatio = aspectRatio; markDirty( QSGNode::DirtyMaterial ); } } diff --git a/src/nodes/shaders.qrc b/src/nodes/shaders.qrc index 82a42748..7d2d15a4 100644 --- a/src/nodes/shaders.qrc +++ b/src/nodes/shaders.qrc @@ -2,6 +2,11 @@ + shaders/arcshadow.frag + shaders/arcshadow.vert + shaders/arcshadow.frag.qsb + shaders/arcshadow.vert.qsb + shaders/boxshadow.vert.qsb shaders/boxshadow.frag.qsb shaders/boxshadow.vert diff --git a/src/nodes/shaders/arcshadow-vulkan.frag b/src/nodes/shaders/arcshadow-vulkan.frag new file mode 100644 index 00000000..49646de3 --- /dev/null +++ b/src/nodes/shaders/arcshadow-vulkan.frag @@ -0,0 +1,46 @@ +#version 440 + +layout( location = 0 ) in vec2 coord; +layout( location = 0 ) out vec4 fragColor; + +layout( std140, binding = 0 ) uniform buf +{ + mat4 matrix; + vec4 color; + + /* + arc.xy: cos/sin of the angle of the midpoint + arc.zw: cos/sin of the angle between midpoint/endpoint + */ + vec4 arc; + + float spreadRadius; + float blurRadius; + + float opacity; +} ubuf; + +mat2 rotation( vec2 v ) { return mat2( v.x, -v.y, v.y, v.x ); } + +void main() +{ + float radius = 0.5 - ubuf.blurRadius - ubuf.spreadRadius; + + float dist = abs( length( coord ) - radius ) - ubuf.spreadRadius; + + if ( ( ubuf.arc.z ) < 1.0 && ( dist < 1.0 ) ) + { + vec2 v = coord * rotation( ubuf.arc.xy ); // x-axial symmetric + v.y = abs( v.y ); + + v *= rotation ( ubuf.arc.wz ); // end point to 90° + if ( v.x < 0.0 ) + { + v.y = max( 0.0, abs( v.y - radius ) - ubuf.spreadRadius ); + dist = max( dist, length( v ) ); + } + } + + float a = 1.0 - smoothstep( 0.0, ubuf.blurRadius, dist ); + fragColor = ubuf.color * a * ubuf.opacity; +} diff --git a/src/nodes/shaders/arcshadow-vulkan.vert b/src/nodes/shaders/arcshadow-vulkan.vert new file mode 100644 index 00000000..4899db18 --- /dev/null +++ b/src/nodes/shaders/arcshadow-vulkan.vert @@ -0,0 +1,21 @@ +#version 440 + +layout( location = 0 ) in vec4 in_vertex; +layout( location = 1 ) in vec2 in_coord; +layout( location = 0 ) out vec2 coord; + +layout( std140, binding = 0 ) uniform buf +{ + mat4 matrix; + vec4 color; + vec4 arc; + float spreadRadius; + float blurRadius; + float opacity; +} ubuf; + +void main() +{ + coord = in_coord; + gl_Position = ubuf.matrix * in_vertex; +} diff --git a/src/nodes/shaders/arcshadow.frag b/src/nodes/shaders/arcshadow.frag new file mode 100644 index 00000000..738b0ed4 --- /dev/null +++ b/src/nodes/shaders/arcshadow.frag @@ -0,0 +1,37 @@ +varying lowp vec2 coord; + +uniform lowp vec4 color; +uniform lowp float spreadRadius; +uniform lowp float blurRadius; +uniform lowp float opacity; + +/* + arc.xy: cos/sin of the angle of the midpoint + arc.zw: cos/sin of the angle between midpoint/endpoint + */ +uniform lowp vec4 arc; + +mat2 rotation( vec2 v ) { return mat2( v.x, -v.y, v.y, v.x ); } + +void main() +{ + float radius = 0.5 - blurRadius - spreadRadius; + + float dist = abs( length( coord ) - radius ) - spreadRadius; + + if ( ( arc.z < 1.0 ) && ( dist < 1.0 ) ) + { + vec2 v = coord * rotation( arc.xy ); // x-axial symmetric + v.y = abs( v.y ); + + v *= rotation( arc.wz ); // end point at 90° + if ( v.x < 0.0 ) + { + v.y = max( 0.0, abs( v.y - radius ) - spreadRadius ); + dist = max( dist, length( v ) ); + } + } + + float a = 1.0 - smoothstep( 0.0, blurRadius, dist ); + gl_FragColor = color * a * opacity; +} diff --git a/src/nodes/shaders/arcshadow.frag.qsb b/src/nodes/shaders/arcshadow.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..1c90703303dc33dbd0af723f231835b235812372 GIT binary patch literal 2282 zcmVPk-Q+D~di zY>OsH3h@Gbo98;?nt=O=2tacR8hz0Q`Y?@MWqdE02kka@;3^;H*92&dfnBq$?ZtLd zB%%R~9TO%ZZ(XO)GtXN9%8R7PtSZB_(|f2)tN>drBT{xc*$wYn)1U^ zy;=6;rNB$wx|5{ky1#vy;fWuV&*4X*cG8xxShn&gSnig)wSm&Bmu;t&`xU@D;Nlql&nq5R*uZaUfPU9 zX~b;(V7ChGyqswjI=Q^;LY=$>JeLEvEDIwIypYX=ezHw`;4s7k&R0F4wzl%x1vgY# zoR&@a1P1u5czT+QPnkx%m*vA8bN;a3VLp~@BOw)iG#qP{=I+v^=}qr`wrjS};sVHiT1zaJq07QRYI$ zP1421z->c9ih1MF{&UGJ;YB&gG$D|el%H0PvF}>hr%tE~k}&6BCJCY_ttF|~(600? zjl8l$x?pJ)vTB9Zq?lFB!mPVF_)ti<_*u1ptf~QQjcTz9{Zlu`TISa!y|Qt!%SDi^ zf^Asn+r@6_MLSO5ehK!vy$mfnx}kv#SiT=sDv6icrDCq9pD9M|Y%kyZ5I)F#AJ+os z(o8%%ecTrYxwA>_=k2aV#!YiL!1^GkJDh28ycaI@fUL7-opfXE=K7|y5=Tkm+zcDN zz1XzWMS17_&sJ{VUcX-KX~SIjb~A14-N_f_#-?+}jjLWtDh8XZsonp%t+pb+tZX~D zuwD*c_W@?Bb=vrp>_nsvLc=jC-OpSJfo zgS~H<8EAiyh`m~1W&a*X-LJBD`*WV${+_b&RR%g=CEvd?dRpH=+j9omo|C=vSk_>v zsGn$ip#G%!wTEZ3a&;9h^PvJ2xbcOSx(0?A)1r|gG!sX9x;X0+tPFb<>|);@Lz~pA z%URpD{x&)?HHmM}7HlqlN9fDY-SK_;FuWY&_v)>UTLpNNEzBB1bHW!M}Qmo-=TSWkH(DNi!={L@4Li% zk;yKS>==z3KbMC1d5LhNZ<*vTk)P)Yy9T4E<0|R6Ol!jExkh7u1wH8V3Sn(Kd1S_SaDr`#Qa>Qn*5mX+aNKi zzBTqS**HWoe@J8Rf-dYMYeFA)ApR%7Q1%yObB$zf5{CA1ZLJHv9*?p3HwZU*y2J9c z!DK&SvZ(tL;x(~-IwZEw2sg3)k}$kYUqxM;G-hJ^oMPK#b9tBSn^?af>~j|D7tG%+ z;y=n_{T1OR*A8KCQeIt_R~)+sw@Z1w$8>KGna2|0hQ{A1UK1Yil-XQY*j#%etBI-@ ztce=oMxRgeHKlJ-VPBFyn_}{r&-eTCcc1u;emsgi&*nQIe&cH>vf2-r&4}5o6Q8M3 z9Q!BCotZ}-ux{g!wsX>@ovmLV8 z7TKD8K)A8_Q0SigN07ns-w@A3=KF6+&n}aDM7WWAOtO#2mmR|X4G~;~`vR?fbA*ZS z3-16Q{ze?8`T8Nt=gWli_5BLrhUYl(@OAns;g5(uL70(wZHUZC!VS-lhS+|c@HMK> zACo^P7Wt5)?1i0<%?&lPH|6V*$yKNZh z*@Y7@xCejI_WPNfJpR9r9o0nad+4aA3Pzv$yfL%!TuvLG#W~~iIbr;-P8aoQBCpam ztJ23=mCk)ntF-0D9sJV`FV%yxJSfZWU0GJ^&IeGL*WJ{;TiklO+APyI*5+Tb+AJ0= z2(siWs^(W~4ejaD0PKh9us>=Z)bT+bAJp;lsbg~(#r~gzscHScPsG3<^?Jwu1J}Sl EP`UJ}DgXcg literal 0 HcmV?d00001 diff --git a/src/nodes/shaders/arcshadow.vert b/src/nodes/shaders/arcshadow.vert new file mode 100644 index 00000000..01850039 --- /dev/null +++ b/src/nodes/shaders/arcshadow.vert @@ -0,0 +1,12 @@ +uniform highp mat4 matrix; + +attribute highp vec4 in_vertex; +attribute mediump vec2 in_coord; + +varying mediump vec2 coord; + +void main() +{ + coord = in_coord; + gl_Position = matrix * in_vertex; +} diff --git a/src/nodes/shaders/arcshadow.vert.qsb b/src/nodes/shaders/arcshadow.vert.qsb new file mode 100644 index 0000000000000000000000000000000000000000..ae08a617e90ce04b542051094ed46eb879ef228c GIT binary patch literal 1585 zcmV-12G02a03r-{ob6iOZWBio9@|MsHVGtYAkYF`NSfLqbxjnYN(chcsvsc|B^9cK zqGe;R!?yOW*&j$ixoq!y(!m1&Y5q{|IX|T z2qA`rx=L_Q30HW+5_RFjUmzO5E5cp)hc1!6W(faMIDn4exeweS?CLwh5-$L0k$fBn z^5H(!X9V^cIg9$qNA!r;6|rbSYZQKUyTwo=a8HP~u)&f5d_b$msqZesP3eX*pe0RE z4&LS6{2BqN0l*b(vmfld2t@~g4!|2?OFmsNH6$mVk$~Ja3m&xq81xv_=r`yzSl$76 z9pI5TAo%ls@T0B?8Z?oxiuSzg)mw4HF>kk>$ZlC-)M&Z8cZ`G|y6wi7_^3X=V;FJh zdV8j4x1F$K*Bw)iS~rX^3gUWX?#4~yjbXyoZ25Myy1#0+?I>{f*BR5S`z=36aqOVZ zXfx~tj@{U@8*UtO{%$J{@?0M*aifEE<1jI#ZM$C0^5ck`vjUp^pkY3J8i!6$Zuxbu zR@vD}S+du%HvQ0zT;Bs+hnfh=Nq4=Jucqr+FP$KA_F>DvnM=DhCW&eGTBQI)L)NS2{&Qs9&fVdL_xw(6hQK zBpH%5$nBmRMo?F~HEnC)zp~o)4}Orm@o1VwrmdL};2-^FGjyVIy;e!RYZ55anZd30 zz(JZbs2d!mKs@;w^vygvDTyq$dXPs`spO!qE2?^+e(lJu_n1i5Q(fIUN;8vWr{%EJ z@{Uvq(VMfq`EcurbwBXK(0b@~(vu&bpVrLpzWM(CM0(vDl@uK&xtL@WR0mC3uQ-r!sYOg&RW zTie@>@&@nCOuR|5awz_$CuXK$tUA<0*$tXv^l(58_a&h~oRe7vQq`TqYWJ8wv@E2R z9P+sbSBGDdZTABF1&A}k zkZt@V*E+_8+Rl6g_hq;jPzE5zh!#YT6OD2nz(#PI`t(*v^9sb{xFYdNQdX(UdjN9h zX#6nYH9gPdY92T*H%OXSAlzNXD-v&$@k+#d#&|=-YcSq0@t%{NS|0j;0e-Ktcp!a+ z(U&vvS|IwAjBQcMxdJjvB=a1!aBFG8JqLKijZmKn^eEYl{B@$oh==_K`LFv87I&04 zN%GLov+z7ky70P2^clim1bT|_XQbUKZ(7C_>6{_`)1-4osJbbUj#<)CARV)kudeez zpCg$=Qpc!_ujXl8`bK@{DIRmA59tdmMjv-$spw0jdy?>%L{hWZe}!zFBzj)xLjZ+G zdV$%GFa1&xy6v-YLaen~^Yifh?J3%?R1HEHJ-vb2t@d^2Mmhk6f zUKD?W^7$$G^9zibq*z}hKFUG=u2N3UlAf!CLm6oIXXN8OpwOQ(!!I&ih5CL1xkxY3 z*a{oF%*I|LeanRX8>0A?S`zep#!mvEqxk#DNx&eT1oZmm=BQi8=DZ*?LVkP$ihqA+ zA+O%*q(P*=f{yt~!~6XT;^zZ6ul{jzJ}^M%1Mm49;6vZ$57NH44rnzuoD;m~0<)I&g9_@c&K*PEG;_?<8Q* jckX?5(wTo(*Qc-Qe>;fWZadeX`K~^)KR5ngN?pPF4kaH6 literal 0 HcmV?d00001 diff --git a/src/nodes/shaders/arcshadow2qsb.sh b/src/nodes/shaders/arcshadow2qsb.sh new file mode 100755 index 00000000..d78eed3b --- /dev/null +++ b/src/nodes/shaders/arcshadow2qsb.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +function qsbcompile { + qsbfile=`echo $1 | sed 's/-vulkan//'` + qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -o ${qsbfile}.qsb $1 + # qsb --qt6 -b -o ${qsbfile}.qsb $1 +} + +qsbcompile arcshadow-vulkan.vert +qsbcompile arcshadow-vulkan.frag diff --git a/src/nodes/shaders/boxshadow-vulkan.frag b/src/nodes/shaders/boxshadow-vulkan.frag index a5d5451e..58d79062 100644 --- a/src/nodes/shaders/boxshadow-vulkan.frag +++ b/src/nodes/shaders/boxshadow-vulkan.frag @@ -8,7 +8,7 @@ layout( std140, binding = 0 ) uniform buf mat4 matrix; vec4 color; vec4 radius; - vec2 aspect; + vec2 aspectRatio; float blurExtent; float opacity; } ubuf; @@ -25,25 +25,21 @@ void main() { vec4 col = vec4(0.0); - if ( ubuf.opacity > 0.0 ) - { - const float minRadius = 0.05; + float e2 = 0.5 * ubuf.blurExtent; + float r = 2.0 * effectiveRadius( ubuf.radius, coord ); - float e2 = 0.5 * ubuf.blurExtent; - float r = 2.0 * effectiveRadius( ubuf.radius, coord ); + const float minRadius = 0.05; + float f = minRadius / max( r, minRadius ); - float f = minRadius / max( r, minRadius ); + r += e2 * f; - r += e2 * f; + vec2 d = r + ubuf.blurExtent - ubuf.aspectRatio * ( 1.0 - abs( 2.0 * coord ) ); + float l = min( max(d.x, d.y), 0.0) + length( max(d, 0.0) ); - vec2 d = r + ubuf.blurExtent - ubuf.aspect * ( 1.0 - abs( 2.0 * coord ) ); - float l = min( max(d.x, d.y), 0.0) + length( max(d, 0.0) ); + float shadow = l - r; - float shadow = l - r; - - float v = smoothstep( -e2, e2, shadow ); - col = mix( ubuf.color, vec4(0.0), v ) * ubuf.opacity; - } + float v = smoothstep( -e2, e2, shadow ); + col = mix( ubuf.color, vec4(0.0), v ) * ubuf.opacity; fragColor = col; } diff --git a/src/nodes/shaders/boxshadow-vulkan.vert b/src/nodes/shaders/boxshadow-vulkan.vert index 3a308060..0fe63bd9 100644 --- a/src/nodes/shaders/boxshadow-vulkan.vert +++ b/src/nodes/shaders/boxshadow-vulkan.vert @@ -10,7 +10,7 @@ layout( std140, binding = 0 ) uniform buf mat4 matrix; vec4 color; vec4 radius; - vec2 aspect; + vec2 aspectRatio; float blurExtent; float opacity; } ubuf; diff --git a/src/nodes/shaders/boxshadow.frag b/src/nodes/shaders/boxshadow.frag index b24ff185..61b857f7 100644 --- a/src/nodes/shaders/boxshadow.frag +++ b/src/nodes/shaders/boxshadow.frag @@ -2,7 +2,7 @@ uniform lowp float opacity; uniform lowp float blurExtent; uniform lowp vec4 radius; uniform lowp vec4 color; -uniform lowp vec2 aspect; +uniform lowp vec2 aspectRatio; varying lowp vec2 coord; @@ -18,25 +18,19 @@ void main() { lowp vec4 col = vec4(0.0); - if ( opacity > 0.0 ) - { - const lowp float minRadius = 0.05; + lowp float e2 = 0.5 * blurExtent; + lowp float r = 2.0 * effectiveRadius( radius, coord ); - lowp float e2 = 0.5 * blurExtent; - lowp float r = 2.0 * effectiveRadius( radius, coord ); + const lowp float minRadius = 0.05; + r += e2 * ( minRadius / max( r, minRadius ) ); - lowp float f = minRadius / max( r, minRadius ); + lowp vec2 d = r + blurExtent - aspectRatio * ( 1.0 - abs( 2.0 * coord ) ); + lowp float l = min( max(d.x, d.y), 0.0) + length( max(d, 0.0) ); - r += e2 * f; + lowp float shadow = l - r; - lowp vec2 d = r + blurExtent - aspect * ( 1.0 - abs( 2.0 * coord ) ); - lowp float l = min( max(d.x, d.y), 0.0) + length( max(d, 0.0) ); - - lowp float shadow = l - r; - - lowp float v = smoothstep( -e2, e2, shadow ); - col = mix( color, vec4(0.0), v ) * opacity; - } + lowp float v = smoothstep( -e2, e2, shadow ); + col = mix( color, vec4(0.0), v ) * opacity; gl_FragColor = col; } diff --git a/src/nodes/shaders/boxshadow.frag.qsb b/src/nodes/shaders/boxshadow.frag.qsb index 8ecfc828aa472382eb72816fe916e075d05238ff..3792962e6c2f61324ba37ef9878831e4e61edc89 100644 GIT binary patch literal 2606 zcmV+}3eoid04rs9ob6hBcNURmUiV$rCqVRvgM?1Qv#(xNeP_8IeZm91AGephJSgS17+skx!PGtHV!Q%oa6Ob zY3DbOJ9qBv%wDa95JN(UK{%g+Gbbt{guh5sff|5Qd`gGN9w@z6cp&MBnm7+Sb)~0m zZKgFWmP89Qh1dz-=DNwGhT$9)4X~VmMPIamewuh^ncOqxLc7f!ILq1m7*!ru!D>sy zBs{;7@O}`D!8I4`Ct^W4e(-w2z4J{2D?od zp#mc$VvWS>8;Ngr43p9*gMK^KjGS7-k(Ig=)MV9nYC#w$ent9l5xG@)aQtS&k7GZm zjW?q(36r&^8z0Q&#{8gCZ&h7+s^KP1-HwxL-CsJ*@YruukKspg`E)MVLK8A@8gATl zDy~#ov$Vs)AB0b|b4ERsyc)s9*+GE%A zV0!+FyP&3SCCicPRAG=HPRP~6DlC3M_VUVyWi#}HBu_5-p0pHDY|GQKR4nBcteI(; z?Bk``4wUMwahLoNx{;f-q9FB5b2=7#W-vMVpUhx# zvg5_w$DIMwUEOR3#wG>lEwvWfYd^43|EtAzK~{@vc{PtbI8b+kTC&VV3dX-ukJ)(HsfMdy zyADq9QYu#fj2mH?EXRr4w8q_XLE@=3$cWC7hTqmxRAsQhbEZSAhx zReRe_1JjnbniaQ_X*7!FsSLnpX)>+A_rj=wE~xMTwBkf-*d3K+x+^xQ_8o7ax-0SR zYW^fw^OexAs=8~LB{Jy+#_;m73$4=Mu*~X|=oHy6u)==E+NvC{>YzMcT~!LKs%~CV zv6yaJMyY@*t6xz0?BoGmZd5vJb^A4_oEMzLxm8*;wNuy1K}<5*ft1+;{+}!QK|qz8 z8A#Ha5B^2gQpqG_6t3D0=MEI(&XYF|ZR?r{I^e=Pq36YJVpTG^N`h(@U2>Cs6x+70`<6V=>=O!RLOY;WY7 zX8~#VbP7AuD!eWB3OiG3z5mN@vDG>JZ~6r;xSeSlnJ0AgxY&lHU)%7ga@bpVK({x2 zK;Ni$c%OIk@V44Lye&PNcbW$aK_22|`iI@sKPGfId%K6X<@VwA_77U5|3deuyHV3h z3vVIK2WTJa+jI{*(>;0~x*^?qOOJk7>8WSZ>^I@sB&8139A{;=bZHiApwD1hHB^Ka z;z(wnz^X30d$I=Bc_+lp!f(<}IQXY@(=b(fLN@}iwdZ>P+@`BhdCS?}7i{kfw)X|w z`-06YJ1c~Oem$XM^wf@lu@S6~Ik8jxn$SJ4bHIxEv=~<3m#$p9QjC*o5f)3ohuERy zkhfcms22%%nlavh^O3+8COZ@k1Bln*>NMFOQuI)V9;0uLjR^h1#b8g7+*yVV5H`=S z9faLx*dSrc3>zX0-=16oEo1KzNaGj>$qz%n%xIk7i;RB6=x4#ofRf*#e8KDeaD^{i zB%IHKJkHI$fRXUIljb`@{9VK!AbyT`yOiA_^`Z;;sE54gK;{{;kH=A>_YjRX_L7ZZ z;twl5ee8pg_A|W~DBgxXM!p#OIK{aD7SZMm+2W@es|b}yZFs6`rR)2KGCPa+mnt3vVmh=B^>3i5Islt*mr1skvC8D zNf-&oS`b+0bWG-%57#J%7D(?BVaDeh6xUH09qF62z83K?Up^vRZxVfzY+WbJ*!mu= znW5jJH88&1BAK_C%=c;h4@hQ_uv^UEMJ8{Pyjh3aeb&Jt+}K!|&nAl(NfgJaz%zPaCjLOJ)LNbmQL2sieBDsp`nzk@vT4p6S)*aw*Huaa$kAAF5)WBcob8QYTCM&3(8KaZj9mzeFB zY3|(bgM?!YUnKf(peIRxjOl-a^to?`2siqNy7VQJJxsCvC*X&PZ!!D%K65`pxS9J= z!pz)@Z0^V#7y5U4v^~yjm&o^H%=QG~=zD=^^u0*>Wu`w#`p2366yZjHs!PAfWTz>Q zaPHH@$DH_-@>OJiU}=laG5E*y2bS`a`UA`Mo7U}LRJMOn+5Sc4b9&R-_3xDCA5`=| Qx{98+v047V0QH^A6f>|mNdN!< literal 2656 zcmV-m3ZL}=04+Lrob6hTb{o|ZzBsX+2)855zs3E$=7q~?4#pp*xg^-S@iqoW1mwL+9 zW?Ca+S+qz~h+XulpPL41gzhoXAj>gX^hBHJhao#<;P&VT<+ka-DN}4-W76X?S#603 z;DwFB4uP7&CHpY~azi>k;MzxXsgu=EoF$KAQu3t|&$*`KlDxi6J~wHU5;+u$HNfi| z!8f}`;9$PX8l5REw<;AkwCKY+X@zdpi()rSFXu9;TPcgKFjy@%oVSC}s?-A~F0>0) zi@?N-L$6IbO{eruP^m<2oG#@uvrDX2Gh2PW3cT zcb4H{i@dzDaN+W`;^{DmqT&U=*@_WX(+rJy_3ZW2mo8mClT(8YP`=cP6WYdjWZ}xS z;#DWCx-m?sskyYcrPy0>FU#nrp~$iJvf7DaGw}RaFSu8+(u!lZt$8bF=PDT~P~vXb zipO%Z9hRZB)}z&{$rtHabIJv~-LbXPZ`=! zuH%KN+|-HO)Xelu{@989iOD=o;i%Pc+UYR+WkADtXdRie(iDZmRwX%R-YV0eX@Vp} zlc8{169_X3(_t$;sTP7H&T^DioBXhxZzj_>Azrx#Eh)QPw%b{&Y_DaqYN=?%y6act znv!Pq68Bq)YEC&=B~x`8HB3rZNDwuGAg)n)Z>A^QeAePyX&J^;BGuinneJBaY&WyA z){6Yh=rloYnY*o9mU!{&vz)&DrOc9f+*cnhDydbs=<%~oauvWiQ)C-iW$X&Y7%-Sp z4J4sJCdW2iHmbO>8+#3`r?><2nCQr5e9|@i=J<*mMqc1slet`~8M-A;QZ=tyYpMmA z?PGhq&vfCZz+&nR-fybcDtA`glHBgvJxQB;kQjMOrJ~v7lG|BvJFCYnqvd;*AZ*C* z0=%}wT5-ZP&#x+@2>AxBrQ--S776d`Dm_hQi#?^M9RFW-l&#I+{`8ZcR-!YDjPYZd z-R*58c26VOypNzh*n`@L9La1VcCv}61lm#yxfdN|s}1DK`-hxJS%oy;=^#c_GP-@( z-S#1|)I&1;4dg5JkN)-{E$0TB`9>Q^!)vQap?`D|3Xdxp-9YRC4WwExo}(gs#)+N9 z+>+5n5=HlJ_kS|O$Gb&$D)-wRB>GJ^m(Dbtg&GUQOpzj*=V`ODW;&(`2`1uKX;x}^^-A@vp=QaYr zEc&|(^BskJx9GmfV|fa)-O}!`d=JWU)??Y@gxLf8d>sM37c|>=6gEa6ACY?M+D9Wj zVdy=Dcx(D7e9`nV#5qeA+2%>uGVlF_oyC|tWqfwY7;B!M&j@bzaSr1soTBH!<2gQ$ zIcndYM?MTg{{>*pIliQ(_`JqnfInLPs*<15@=HeC7ckat_`~#T;IaG)u%m{(MY{j? z*Nb!7o`+a5{%zoQ8~BDC{&vT|PYwHjfbJ;9XZkL9(=_WL(S1eCynhmB7+B7Y8AF%X z|9pae#h@8~*`PVEt|jnqCFJFVd?i7@pP)YiJx|`wAa7nEk9pl*#9H%u&LK9Z!T$?k zI6u#T$NBXSvT+V`|2N@Tc9!mQh{IXK_77qEf?@k*@INFB(-)B|FT=m{;IR!}=c}-B z2{w2huXp%6Wb9stjMw)KvgCM zScfY3+GY)URp{}ac?Wu)5#Kuan)VUz&q#;q0K8XayhbFiiFoaVd;!>>2(=ISz5`we zeiJcaUW9Q&LpO%cHAA-reuTJ`!Q=VxK3ElM@9Z_=&<0;))_{4+z}y61um3G${o9ah z*-s%m2;AdFtkz*$&*5jHTen%CdG8vw*MS*B{@#Y{Md0+>y@zpcW8N#^Y5(sCRU# zNTtR-zf^CPUF*4q8$0!46qoDX^1Q*1yhiyb|FLWHR3_PkZ_) z$v5@nAtTSPd%kNGi%v|_U2es0v6xOf^;KsrDk@efo?9GWeq;q*2zNkl-9XL$wIlL&r2*VW!3UJzT7{DWMv?LI{YV7G}HM)q%HD2 zXWd#)?khebA&Gm~!3G>O>g!>B2aP=6z7LJ8;zaSuliyG~Gmaan$E~(BppB-cqp@jU zgY(qgy3^RO#~BcPcJO}mIwScy#OD1jNSyGI?atU-fjZK|?QdA-zfkXD6Q^bM0UvdG OxxYvD%Krzc77pV!&2d2h diff --git a/src/nodes/shaders/boxshadow.vert.qsb b/src/nodes/shaders/boxshadow.vert.qsb index d9831605a22608de23815ce59e348623f0add7e8..2e1e841bb5032bd922c2ab832e10089227db998c 100644 GIT binary patch literal 1576 zcmV+@2G{uj03mXCob6g|Pa8)NUTj{Ew*&&TB~30NO>BrX)jY`=!6AKcPRSU#fOych0wWwy98yf8jObFI~q46)F8ZLtj=`s#Df^n>rs+zNVpr(KsaD?7es&? zvRHn`0HTAR7TEO(yxk2v3s4_iGeLjAcDO?pSP?OsZ;8R3@ zL^j)=3DDaB3kFyS*eSv7Zt(M-F`8VZZ+QEDSvWR5-*O#wxmZ*bKkz~$P!GbI@?KHl zsp~-rKRl~h=8R+0D5-{PyPiaQdesX37Gp)#{f21-J9=Qbf?Km)9rW6vx7iF#Cy=>r zLpQA8w5*(!6(w}6n(Nik1vP{ZU>)n;spT9B&4%lG)v}@o;L<@Dn1X9LS|>pX1rT6h zHf4!0tGx|0m|}Wp!nLXprsd@F6gXF>RwT{HJ+!rL*S7*pScUsn5Xn&&Wm73=;T?cm z<^U?oP9SbY!SzJ@w60_Es%5GRmSfmq)l|Q(n}Kd?eo(cogLNh5`&PaBC4Ll+)**#H zX3Np*rVp7lRX(fSVR3mLO3mZ~3#Pop#E}=7v;NC6lP?%@QFFsU_J|f)-P;R&)63be z;S}@x`w3^{h1lC`&=5gw+ASv$ZoEz~v9%|1DGTwIN}!hWkqJ`K3P6lKsr4C5Bb&s0DRUUL^Pgn{o*2x_*T^SXTmL@3h|~aB=;o>&)=Jc)b{ku zAoLuZ8126SZkf)8-)Q&Y8R5id#A>ge5tu9ae1P<)4hF$VoCv_`?W2IvX-zB9U(IF~ zhH$7rg;^rOO{hA!WTQ|Z@%x)syRQmxMife`MNvVrkpec!6h6i?CbBWYL>a|WHxKVU z)ByhAm#E48V^eHJo)qlc14E8_b9~u2^`!j6 zM~Hp~h&i4w5$hD;F~(1cU!irnP4WE-bCCX=FtHNzwcAb&w#>s z9!mHJ67CVneg?fr=VzFgqZsL|25rouV?qg$)_W{@+A`9w|UKwdUdxKan4C?_f4 zYCciIIZ!GyDfAN=Ex>W{Nn;D|+R;>$+Mp+SQKz6(f?1=(ou!-*wW?N<8P}Vn9;v!S z#dvr7<<4vEx##-6_R?u2?^E)XXHETX^ZVypTRSg`oo_oaU^#J@k}Yh7L8J4Pt+V>% zb!|=EeJv&8EULNap?2ZITMzAAE4;_@X3O(x+U~a~?rj-UqstnMBL`YpsmRjQ-78LR z8%n+eNZ|=a2hYTGmlFacb5b|F#CB@KMt)0<(v>f1bs(d^R{QtcU-P>+RZszyvw!6pL?l`9S*CL~yUYX`RHG`iJfRYc1H00z$Z9S4p zSGBFb+;f7lxF^Ru@lSG3t`hfRJ^2V9pVyOL_v0}w_v6?7_vQ89z1|=HOTUVLUuInQ ztG(5)%7Vld`*Qo(PB(`b@btrPbT8gg^h{qIyP1SZyW>M_pINduyXx)p<@aW(e-@1z aVDWznSX=+rCQtoc=DG5=`TqbWmBfNrpA;Mb literal 1559 zcmV+y2I%RM|3>IH3$Szi-bf(DpV;- zjpOqLw?6yuBMG2LRi%D_{?o71kI=8vf2ww7clJEC??6GN3N#z}ygT#Td9HmkNrVvN zLXAKt5at zhU`F|QL<>5d_+%(b&-k=%nrg`&wC6t0oSzX3L7kmzz4K?igNILBVg!^4 zDBzj{a4Inc;B^jMP(YQi0`LY0DqNPvBDVgjjHdLKpj$PSaX4>w;yK!67X4O^)z5vN znB^`nhh>U0OzTBr0o;Y7t55pM^1~-jt@}|J$JWE3mnM{b<8kQgWPqE>`vE3APLqNSkMbht*7N3P$tt1raX?sRW*){)hkB3o zgQf@r98lXsxlkZZspsRFJKZI$c8~cJxk(xY1tmND%_Ha=QoniHqm{V>I5pr~{R%OT z!V3yt`%_Sg;Qi}IE05}N(ylkJH`KTGs1_g&3q#KF`&#Rm6slmsqT)1M=TQbAkbahQ z;ChPIDCZj}^$rnls*f3!w2I`9L5ZQpIN|krj_#axfb?tH2;uHBT7_uKj5bQNXN)#R zwC9XAPBfqF)bh};lW@Pl{5(l9(CgEMIGm?7+I$S8R3v^>+Jf_wFvFtIgzFUG5jR0R z6V?aGZlt$pJxMg=8|1&{8x-Rak~c&0#-tr8<}eIOSChYq{usHGRg>5EU^NNv&|D?y1;r9l zQU1f)af}WPjfyqr1&*J#UGuB1o7lbuFKXXgzhh+d*z2~x#E<&(JK$!F^>JW#-59)g zO}VQzAol%AlgFQm2$lh&@ElMb@=jSGGtk=xeuoVzZB|#)7|LTmbb>~0ZEa|Iv%1=& zDS}GUyY~0~z{D@)!U> zH3U+5t^X`&iFhrVuXmJLAu9&Fpitt3rK+NM&WhCz6%nDT9q{OlOU)wRU&A%>^Z%m1 z&N$_!;9q{!cV8rn!JT>`J0EeU{-I=t_xxBJ{ITEj@0p(eJ@@t>dh5QIdhrjf$;L}<^&?EQxN{Wa8kz2SXJ1BykG_YpRrK-$~25bt3j36Yu#;un6$^G1GY J|3AYhu2G@K4xRu2 diff --git a/src/nodes/shaders/vulkan2qsb.sh b/src/nodes/shaders/vulkan2qsb.sh index 765f5127..27639dd4 100755 --- a/src/nodes/shaders/vulkan2qsb.sh +++ b/src/nodes/shaders/vulkan2qsb.sh @@ -6,6 +6,9 @@ function qsbcompile { # qsb --qt6 -b -o ${qsbfile}.qsb $1 } +qsbcompile arcshadow-vulkan.vert +qsbcompile arcshadow-vulkan.frag + qsbcompile boxshadow-vulkan.vert qsbcompile boxshadow-vulkan.frag From f9c08c34fb2cc64546bbe6ce9d359f416e934961 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 7 Jan 2024 15:43:34 +0100 Subject: [PATCH 47/72] FUNDING.yml added --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..9dbb2391 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [uwerat] From 81cecb6ec458e1a90dff2a27d1c6f5263acad93b Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 8 Jan 2024 16:06:43 +0100 Subject: [PATCH 48/72] supoort of experimental Qt5/RHI dropped ( use Qt6 for RHI ). Building the qsb files from the makefiles. See https://github.com/uwerat/qskinny/issues/356 --- README.md | 8 ++-- cmake/QskFindMacros.cmake | 5 +++ src/CMakeLists.txt | 47 +++++++++++++++++++++- src/controls/QskWindow.cpp | 14 +++++++ src/nodes/shaders.qrc | 14 +------ src/nodes/shaders/arcshadow.frag.qsb | Bin 2282 -> 0 bytes src/nodes/shaders/arcshadow.vert.qsb | Bin 1585 -> 0 bytes src/nodes/shaders/arcshadow2qsb.sh | 10 ----- src/nodes/shaders/boxshadow.frag.qsb | Bin 2606 -> 0 bytes src/nodes/shaders/boxshadow.vert.qsb | Bin 1576 -> 0 bytes src/nodes/shaders/crisplines.frag.qsb | Bin 872 -> 0 bytes src/nodes/shaders/crisplines.vert.qsb | Bin 1871 -> 0 bytes src/nodes/shaders/gradientconic.frag.qsb | Bin 1826 -> 0 bytes src/nodes/shaders/gradientconic.vert.qsb | Bin 1624 -> 0 bytes src/nodes/shaders/gradientlinear.frag.qsb | Bin 1444 -> 0 bytes src/nodes/shaders/gradientlinear.vert.qsb | Bin 1582 -> 0 bytes src/nodes/shaders/gradientradial.frag.qsb | Bin 1550 -> 0 bytes src/nodes/shaders/gradientradial.vert.qsb | Bin 1479 -> 0 bytes 18 files changed, 71 insertions(+), 27 deletions(-) delete mode 100644 src/nodes/shaders/arcshadow.frag.qsb delete mode 100644 src/nodes/shaders/arcshadow.vert.qsb delete mode 100755 src/nodes/shaders/arcshadow2qsb.sh delete mode 100644 src/nodes/shaders/boxshadow.frag.qsb delete mode 100644 src/nodes/shaders/boxshadow.vert.qsb delete mode 100644 src/nodes/shaders/crisplines.frag.qsb delete mode 100644 src/nodes/shaders/crisplines.vert.qsb delete mode 100644 src/nodes/shaders/gradientconic.frag.qsb delete mode 100644 src/nodes/shaders/gradientconic.vert.qsb delete mode 100644 src/nodes/shaders/gradientlinear.frag.qsb delete mode 100644 src/nodes/shaders/gradientlinear.vert.qsb delete mode 100644 src/nodes/shaders/gradientradial.frag.qsb delete mode 100644 src/nodes/shaders/gradientradial.vert.qsb diff --git a/README.md b/README.md index 070079fe..2b21d3c0 100644 --- a/README.md +++ b/README.md @@ -35,9 +35,11 @@ It might support all versions Qt >= 5.15, but you can rely on: - current long term supported ( LTS ) version of Qt ( at the moment Qt 6.5.x ) - current version of Qt -On debian bullseye these packages need to be installed for Qt5: `build-essential -qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. -For Qt6 you need the corresponding ones. +On Debian these packages need to be installed for Qt6: `build-essential cmake +qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools` +For Qt5 you need: `build-essential cmake +qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg-dev`. + > Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev` diff --git a/cmake/QskFindMacros.cmake b/cmake/QskFindMacros.cmake index 2dbe7d00..0c9d8583 100644 --- a/cmake/QskFindMacros.cmake +++ b/cmake/QskFindMacros.cmake @@ -15,6 +15,11 @@ macro(qsk_setup_Qt) endif() find_package(QT "5.15" NAMES ${QSK_QT_VERSION} REQUIRED COMPONENTS Quick) + if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) + # we need the qsb tool for Qt6 + find_package(Qt6 REQUIRED COMPONENTS ShaderTools) + endif() + if ( QT_FOUND ) # Would like to have a status message about where the Qt installation diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3c6b4970..99386af7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -173,7 +173,9 @@ list(APPEND SOURCES nodes/QskVertex.cpp ) -qt_add_resources(SOURCES nodes/shaders.qrc) +if (QT_VERSION_MAJOR VERSION_LESS 6) + qt_add_resources(SOURCES nodes/shaders.qrc) +endif() list(APPEND HEADERS controls/QskAbstractButton.h @@ -473,6 +475,49 @@ if(BUILD_QSKDLL) set_target_properties(${target} PROPERTIES DEFINE_SYMBOL QSK_MAKEDLL) endif() +if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) + + qt6_add_shaders(${target} "qskshaders" + + BATCHABLE + PRECOMPILE + + #OPTIMIZED + QUIET + + PREFIX + "/qskinny/shaders" + + FILES + nodes/shaders/arcshadow-vulkan.vert + nodes/shaders/arcshadow-vulkan.frag + nodes/shaders/boxshadow-vulkan.vert + nodes/shaders/boxshadow-vulkan.frag + nodes/shaders/crisplines-vulkan.vert + nodes/shaders/crisplines-vulkan.frag + nodes/shaders/gradientconic-vulkan.vert + nodes/shaders/gradientconic-vulkan.frag + nodes/shaders/gradientlinear-vulkan.vert + nodes/shaders/gradientlinear-vulkan.frag + nodes/shaders/gradientradial-vulkan.vert + nodes/shaders/gradientradial-vulkan.frag + + OUTPUTS + arcshadow.vert.qsb + arcshadow.frag.qsb + boxshadow.vert.qsb + boxshadow.frag.qsb + crisplines.vert.qsb + crisplines.frag.qsb + gradientconic.vert.qsb + gradientconic.frag.qsb + gradientlinear.vert.qsb + gradientlinear.frag.qsb + gradientradial.vert.qsb + gradientradial.frag.qsb + ) +endif() + target_include_directories(${target} PUBLIC $ $ diff --git a/src/controls/QskWindow.cpp b/src/controls/QskWindow.cpp index f46c6da5..7955320a 100644 --- a/src/controls/QskWindow.cpp +++ b/src/controls/QskWindow.cpp @@ -416,6 +416,20 @@ void QskWindow::keyReleaseEvent( QKeyEvent* event ) void QskWindow::exposeEvent( QExposeEvent* event ) { +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + if ( qskRenderingHardwareInterface( this ) ) + { + /* + Actually our code supports Qt5 RHI ( f9c08c34fb2cc64546bbe6ce9d359f416e934961 ), + but Qt5 does not come with the qsb tool out of the box. Then we run into + problems with compiling the shader code from the makefiles. + But why should anyone use the experimental Qt5 RHI implementations + instead of using Qt6 ... + */ + qFatal( "the experimental Qt5 RHI implementation is not supported:\n" + "\tuse Qt6 or run the default OpenGL backend." ); + } +#endif ensureFocus( Qt::OtherFocusReason ); layoutItems(); diff --git a/src/nodes/shaders.qrc b/src/nodes/shaders.qrc index 7d2d15a4..3919b702 100644 --- a/src/nodes/shaders.qrc +++ b/src/nodes/shaders.qrc @@ -2,33 +2,21 @@ - shaders/arcshadow.frag shaders/arcshadow.vert - shaders/arcshadow.frag.qsb - shaders/arcshadow.vert.qsb + shaders/arcshadow.frag - shaders/boxshadow.vert.qsb - shaders/boxshadow.frag.qsb shaders/boxshadow.vert shaders/boxshadow.frag - shaders/gradientconic.vert.qsb - shaders/gradientconic.frag.qsb shaders/gradientconic.vert shaders/gradientconic.frag - shaders/gradientradial.vert.qsb - shaders/gradientradial.frag.qsb shaders/gradientradial.vert shaders/gradientradial.frag - shaders/gradientlinear.vert.qsb - shaders/gradientlinear.frag.qsb shaders/gradientlinear.vert shaders/gradientlinear.frag - shaders/crisplines.vert.qsb - shaders/crisplines.frag.qsb shaders/crisplines.vert diff --git a/src/nodes/shaders/arcshadow.frag.qsb b/src/nodes/shaders/arcshadow.frag.qsb deleted file mode 100644 index 1c90703303dc33dbd0af723f231835b235812372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2282 zcmVPk-Q+D~di zY>OsH3h@Gbo98;?nt=O=2tacR8hz0Q`Y?@MWqdE02kka@;3^;H*92&dfnBq$?ZtLd zB%%R~9TO%ZZ(XO)GtXN9%8R7PtSZB_(|f2)tN>drBT{xc*$wYn)1U^ zy;=6;rNB$wx|5{ky1#vy;fWuV&*4X*cG8xxShn&gSnig)wSm&Bmu;t&`xU@D;Nlql&nq5R*uZaUfPU9 zX~b;(V7ChGyqswjI=Q^;LY=$>JeLEvEDIwIypYX=ezHw`;4s7k&R0F4wzl%x1vgY# zoR&@a1P1u5czT+QPnkx%m*vA8bN;a3VLp~@BOw)iG#qP{=I+v^=}qr`wrjS};sVHiT1zaJq07QRYI$ zP1421z->c9ih1MF{&UGJ;YB&gG$D|el%H0PvF}>hr%tE~k}&6BCJCY_ttF|~(600? zjl8l$x?pJ)vTB9Zq?lFB!mPVF_)ti<_*u1ptf~QQjcTz9{Zlu`TISa!y|Qt!%SDi^ zf^Asn+r@6_MLSO5ehK!vy$mfnx}kv#SiT=sDv6icrDCq9pD9M|Y%kyZ5I)F#AJ+os z(o8%%ecTrYxwA>_=k2aV#!YiL!1^GkJDh28ycaI@fUL7-opfXE=K7|y5=Tkm+zcDN zz1XzWMS17_&sJ{VUcX-KX~SIjb~A14-N_f_#-?+}jjLWtDh8XZsonp%t+pb+tZX~D zuwD*c_W@?Bb=vrp>_nsvLc=jC-OpSJfo zgS~H<8EAiyh`m~1W&a*X-LJBD`*WV${+_b&RR%g=CEvd?dRpH=+j9omo|C=vSk_>v zsGn$ip#G%!wTEZ3a&;9h^PvJ2xbcOSx(0?A)1r|gG!sX9x;X0+tPFb<>|);@Lz~pA z%URpD{x&)?HHmM}7HlqlN9fDY-SK_;FuWY&_v)>UTLpNNEzBB1bHW!M}Qmo-=TSWkH(DNi!={L@4Li% zk;yKS>==z3KbMC1d5LhNZ<*vTk)P)Yy9T4E<0|R6Ol!jExkh7u1wH8V3Sn(Kd1S_SaDr`#Qa>Qn*5mX+aNKi zzBTqS**HWoe@J8Rf-dYMYeFA)ApR%7Q1%yObB$zf5{CA1ZLJHv9*?p3HwZU*y2J9c z!DK&SvZ(tL;x(~-IwZEw2sg3)k}$kYUqxM;G-hJ^oMPK#b9tBSn^?af>~j|D7tG%+ z;y=n_{T1OR*A8KCQeIt_R~)+sw@Z1w$8>KGna2|0hQ{A1UK1Yil-XQY*j#%etBI-@ ztce=oMxRgeHKlJ-VPBFyn_}{r&-eTCcc1u;emsgi&*nQIe&cH>vf2-r&4}5o6Q8M3 z9Q!BCotZ}-ux{g!wsX>@ovmLV8 z7TKD8K)A8_Q0SigN07ns-w@A3=KF6+&n}aDM7WWAOtO#2mmR|X4G~;~`vR?fbA*ZS z3-16Q{ze?8`T8Nt=gWli_5BLrhUYl(@OAns;g5(uL70(wZHUZC!VS-lhS+|c@HMK> zACo^P7Wt5)?1i0<%?&lPH|6V*$yKNZh z*@Y7@xCejI_WPNfJpR9r9o0nad+4aA3Pzv$yfL%!TuvLG#W~~iIbr;-P8aoQBCpam ztJ23=mCk)ntF-0D9sJV`FV%yxJSfZWU0GJ^&IeGL*WJ{;TiklO+APyI*5+Tb+AJ0= z2(siWs^(W~4ejaD0PKh9us>=Z)bT+bAJp;lsbg~(#r~gzscHScPsG3<^?Jwu1J}Sl EP`UJ}DgXcg diff --git a/src/nodes/shaders/arcshadow.vert.qsb b/src/nodes/shaders/arcshadow.vert.qsb deleted file mode 100644 index ae08a617e90ce04b542051094ed46eb879ef228c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1585 zcmV-12G02a03r-{ob6iOZWBio9@|MsHVGtYAkYF`NSfLqbxjnYN(chcsvsc|B^9cK zqGe;R!?yOW*&j$ixoq!y(!m1&Y5q{|IX|T z2qA`rx=L_Q30HW+5_RFjUmzO5E5cp)hc1!6W(faMIDn4exeweS?CLwh5-$L0k$fBn z^5H(!X9V^cIg9$qNA!r;6|rbSYZQKUyTwo=a8HP~u)&f5d_b$msqZesP3eX*pe0RE z4&LS6{2BqN0l*b(vmfld2t@~g4!|2?OFmsNH6$mVk$~Ja3m&xq81xv_=r`yzSl$76 z9pI5TAo%ls@T0B?8Z?oxiuSzg)mw4HF>kk>$ZlC-)M&Z8cZ`G|y6wi7_^3X=V;FJh zdV8j4x1F$K*Bw)iS~rX^3gUWX?#4~yjbXyoZ25Myy1#0+?I>{f*BR5S`z=36aqOVZ zXfx~tj@{U@8*UtO{%$J{@?0M*aifEE<1jI#ZM$C0^5ck`vjUp^pkY3J8i!6$Zuxbu zR@vD}S+du%HvQ0zT;Bs+hnfh=Nq4=Jucqr+FP$KA_F>DvnM=DhCW&eGTBQI)L)NS2{&Qs9&fVdL_xw(6hQK zBpH%5$nBmRMo?F~HEnC)zp~o)4}Orm@o1VwrmdL};2-^FGjyVIy;e!RYZ55anZd30 zz(JZbs2d!mKs@;w^vygvDTyq$dXPs`spO!qE2?^+e(lJu_n1i5Q(fIUN;8vWr{%EJ z@{Uvq(VMfq`EcurbwBXK(0b@~(vu&bpVrLpzWM(CM0(vDl@uK&xtL@WR0mC3uQ-r!sYOg&RW zTie@>@&@nCOuR|5awz_$CuXK$tUA<0*$tXv^l(58_a&h~oRe7vQq`TqYWJ8wv@E2R z9P+sbSBGDdZTABF1&A}k zkZt@V*E+_8+Rl6g_hq;jPzE5zh!#YT6OD2nz(#PI`t(*v^9sb{xFYdNQdX(UdjN9h zX#6nYH9gPdY92T*H%OXSAlzNXD-v&$@k+#d#&|=-YcSq0@t%{NS|0j;0e-Ktcp!a+ z(U&vvS|IwAjBQcMxdJjvB=a1!aBFG8JqLKijZmKn^eEYl{B@$oh==_K`LFv87I&04 zN%GLov+z7ky70P2^clim1bT|_XQbUKZ(7C_>6{_`)1-4osJbbUj#<)CARV)kudeez zpCg$=Qpc!_ujXl8`bK@{DIRmA59tdmMjv-$spw0jdy?>%L{hWZe}!zFBzj)xLjZ+G zdV$%GFa1&xy6v-YLaen~^Yifh?J3%?R1HEHJ-vb2t@d^2Mmhk6f zUKD?W^7$$G^9zibq*z}hKFUG=u2N3UlAf!CLm6oIXXN8OpwOQ(!!I&ih5CL1xkxY3 z*a{oF%*I|LeanRX8>0A?S`zep#!mvEqxk#DNx&eT1oZmm=BQi8=DZ*?LVkP$ihqA+ zA+O%*q(P*=f{yt~!~6XT;^zZ6ul{jzJ}^M%1Mm49;6vZ$57NH44rnzuoD;m~0<)I&g9_@c&K*PEG;_?<8Q* jckX?5(wTo(*Qc-Qe>;fWZadeX`K~^)KR5ngN?pPF4kaH6 diff --git a/src/nodes/shaders/arcshadow2qsb.sh b/src/nodes/shaders/arcshadow2qsb.sh deleted file mode 100755 index d78eed3b..00000000 --- a/src/nodes/shaders/arcshadow2qsb.sh +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh - -function qsbcompile { - qsbfile=`echo $1 | sed 's/-vulkan//'` - qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -o ${qsbfile}.qsb $1 - # qsb --qt6 -b -o ${qsbfile}.qsb $1 -} - -qsbcompile arcshadow-vulkan.vert -qsbcompile arcshadow-vulkan.frag diff --git a/src/nodes/shaders/boxshadow.frag.qsb b/src/nodes/shaders/boxshadow.frag.qsb deleted file mode 100644 index 3792962e6c2f61324ba37ef9878831e4e61edc89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2606 zcmV+}3eoid04rs9ob6hBcNURmUiV$rCqVRvgM?1Qv#(xNeP_8IeZm91AGephJSgS17+skx!PGtHV!Q%oa6Ob zY3DbOJ9qBv%wDa95JN(UK{%g+Gbbt{guh5sff|5Qd`gGN9w@z6cp&MBnm7+Sb)~0m zZKgFWmP89Qh1dz-=DNwGhT$9)4X~VmMPIamewuh^ncOqxLc7f!ILq1m7*!ru!D>sy zBs{;7@O}`D!8I4`Ct^W4e(-w2z4J{2D?od zp#mc$VvWS>8;Ngr43p9*gMK^KjGS7-k(Ig=)MV9nYC#w$ent9l5xG@)aQtS&k7GZm zjW?q(36r&^8z0Q&#{8gCZ&h7+s^KP1-HwxL-CsJ*@YruukKspg`E)MVLK8A@8gATl zDy~#ov$Vs)AB0b|b4ERsyc)s9*+GE%A zV0!+FyP&3SCCicPRAG=HPRP~6DlC3M_VUVyWi#}HBu_5-p0pHDY|GQKR4nBcteI(; z?Bk``4wUMwahLoNx{;f-q9FB5b2=7#W-vMVpUhx# zvg5_w$DIMwUEOR3#wG>lEwvWfYd^43|EtAzK~{@vc{PtbI8b+kTC&VV3dX-ukJ)(HsfMdy zyADq9QYu#fj2mH?EXRr4w8q_XLE@=3$cWC7hTqmxRAsQhbEZSAhx zReRe_1JjnbniaQ_X*7!FsSLnpX)>+A_rj=wE~xMTwBkf-*d3K+x+^xQ_8o7ax-0SR zYW^fw^OexAs=8~LB{Jy+#_;m73$4=Mu*~X|=oHy6u)==E+NvC{>YzMcT~!LKs%~CV zv6yaJMyY@*t6xz0?BoGmZd5vJb^A4_oEMzLxm8*;wNuy1K}<5*ft1+;{+}!QK|qz8 z8A#Ha5B^2gQpqG_6t3D0=MEI(&XYF|ZR?r{I^e=Pq36YJVpTG^N`h(@U2>Cs6x+70`<6V=>=O!RLOY;WY7 zX8~#VbP7AuD!eWB3OiG3z5mN@vDG>JZ~6r;xSeSlnJ0AgxY&lHU)%7ga@bpVK({x2 zK;Ni$c%OIk@V44Lye&PNcbW$aK_22|`iI@sKPGfId%K6X<@VwA_77U5|3deuyHV3h z3vVIK2WTJa+jI{*(>;0~x*^?qOOJk7>8WSZ>^I@sB&8139A{;=bZHiApwD1hHB^Ka z;z(wnz^X30d$I=Bc_+lp!f(<}IQXY@(=b(fLN@}iwdZ>P+@`BhdCS?}7i{kfw)X|w z`-06YJ1c~Oem$XM^wf@lu@S6~Ik8jxn$SJ4bHIxEv=~<3m#$p9QjC*o5f)3ohuERy zkhfcms22%%nlavh^O3+8COZ@k1Bln*>NMFOQuI)V9;0uLjR^h1#b8g7+*yVV5H`=S z9faLx*dSrc3>zX0-=16oEo1KzNaGj>$qz%n%xIk7i;RB6=x4#ofRf*#e8KDeaD^{i zB%IHKJkHI$fRXUIljb`@{9VK!AbyT`yOiA_^`Z;;sE54gK;{{;kH=A>_YjRX_L7ZZ z;twl5ee8pg_A|W~DBgxXM!p#OIK{aD7SZMm+2W@es|b}yZFs6`rR)2KGCPa+mnt3vVmh=B^>3i5Islt*mr1skvC8D zNf-&oS`b+0bWG-%57#J%7D(?BVaDeh6xUH09qF62z83K?Up^vRZxVfzY+WbJ*!mu= znW5jJH88&1BAK_C%=c;h4@hQ_uv^UEMJ8{Pyjh3aeb&Jt+}K!|&nAl(NfgJaz%zPaCjLOJ)LNbmQL2sieBDsp`nzk@vT4p6S)*aw*Huaa$kAAF5)WBcob8QYTCM&3(8KaZj9mzeFB zY3|(bgM?!YUnKf(peIRxjOl-a^to?`2siqNy7VQJJxsCvC*X&PZ!!D%K65`pxS9J= z!pz)@Z0^V#7y5U4v^~yjm&o^H%=QG~=zD=^^u0*>Wu`w#`p2366yZjHs!PAfWTz>Q zaPHH@$DH_-@>OJiU}=laG5E*y2bS`a`UA`Mo7U}LRJMOn+5Sc4b9&R-_3xDCA5`=| Qx{98+v047V0QH^A6f>|mNdN!< diff --git a/src/nodes/shaders/boxshadow.vert.qsb b/src/nodes/shaders/boxshadow.vert.qsb deleted file mode 100644 index 2e1e841bb5032bd922c2ab832e10089227db998c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576 zcmV+@2G{uj03mXCob6g|Pa8)NUTj{Ew*&&TB~30NO>BrX)jY`=!6AKcPRSU#fOych0wWwy98yf8jObFI~q46)F8ZLtj=`s#Df^n>rs+zNVpr(KsaD?7es&? zvRHn`0HTAR7TEO(yxk2v3s4_iGeLjAcDO?pSP?OsZ;8R3@ zL^j)=3DDaB3kFyS*eSv7Zt(M-F`8VZZ+QEDSvWR5-*O#wxmZ*bKkz~$P!GbI@?KHl zsp~-rKRl~h=8R+0D5-{PyPiaQdesX37Gp)#{f21-J9=Qbf?Km)9rW6vx7iF#Cy=>r zLpQA8w5*(!6(w}6n(Nik1vP{ZU>)n;spT9B&4%lG)v}@o;L<@Dn1X9LS|>pX1rT6h zHf4!0tGx|0m|}Wp!nLXprsd@F6gXF>RwT{HJ+!rL*S7*pScUsn5Xn&&Wm73=;T?cm z<^U?oP9SbY!SzJ@w60_Es%5GRmSfmq)l|Q(n}Kd?eo(cogLNh5`&PaBC4Ll+)**#H zX3Np*rVp7lRX(fSVR3mLO3mZ~3#Pop#E}=7v;NC6lP?%@QFFsU_J|f)-P;R&)63be z;S}@x`w3^{h1lC`&=5gw+ASv$ZoEz~v9%|1DGTwIN}!hWkqJ`K3P6lKsr4C5Bb&s0DRUUL^Pgn{o*2x_*T^SXTmL@3h|~aB=;o>&)=Jc)b{ku zAoLuZ8126SZkf)8-)Q&Y8R5id#A>ge5tu9ae1P<)4hF$VoCv_`?W2IvX-zB9U(IF~ zhH$7rg;^rOO{hA!WTQ|Z@%x)syRQmxMife`MNvVrkpec!6h6i?CbBWYL>a|WHxKVU z)ByhAm#E48V^eHJo)qlc14E8_b9~u2^`!j6 zM~Hp~h&i4w5$hD;F~(1cU!irnP4WE-bCCX=FtHNzwcAb&w#>s z9!mHJ67CVneg?fr=VzFgqZsL|25rouV?qg$)_W{@+A`9w|UKwdUdxKan4C?_f4 zYCciIIZ!GyDfAN=Ex>W{Nn;D|+R;>$+Mp+SQKz6(f?1=(ou!-*wW?N<8P}Vn9;v!S z#dvr7<<4vEx##-6_R?u2?^E)XXHETX^ZVypTRSg`oo_oaU^#J@k}Yh7L8J4Pt+V>% zb!|=EeJv&8EULNap?2ZITMzAAE4;_@X3O(x+U~a~?rj-UqstnMBL`YpsmRjQ-78LR z8%n+eNZ|=a2hYTGmlFacb5b|F#CB@KMt)0<(v>f1bs(d^R{QtcU-P>+RZszyvw!6pL?l`9S*CL~yUYX`RHG`iJfRYc1H00z$Z9S4p zSGBFb+;f7lxF^Ru@lSG3t`hfRJ^2V9pVyOL_v0}w_v6?7_vQ89z1|=HOTUVLUuInQ ztG(5)%7Vld`*Qo(PB(`b@btrPbT8gg^h{qIyP1SZyW>M_pINduyXx)p<@aW(e-@1z aVDWznSX=+rCQtoc=DG5=`TqbWmBfNrpA;Mb diff --git a/src/nodes/shaders/crisplines.frag.qsb b/src/nodes/shaders/crisplines.frag.qsb deleted file mode 100644 index 274f8d5544268d1261e03ef12bbadf8984a5f083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872 zcmV-u1DE^&00~8SoXu9-Zqq;z-P{`Lrgv^n$Pfu7LJB5I5u&6jD&itlqM}eCRh8v9 zw!0A9(b_JNs{BSjfe+!C58?&E?Cdz%CiH;^Bvx8`XLjc7oU`kd8Dka3SedC-fWEc$cVT}SZSitwI{looM zlJ;AjElbX?AYY};D#VnDLg;W=AX`K#CG=HgK8&RA4&lEByGG**+Lei2pTtakRgxz6 z6)0|3^A*W=fa{eeKDqV^yzdcKZr>$)6QYV}mynel--MAA%Y=Rl;;STH8GU6`zC?9x zlf6j3+h7|sSEl?W$}ge@s@^2-#9l+XrYsKj(tDz(uQj_ z6%Q4v0S?fDR*;VAL#BWe!0qr2XEdT*?S^R68mkI4zrX9 z%%;E!he!5%M+9DKDRh)n2H2N$ou+g(Dk$mvYUW%jfhnecNB~NKXUAx$Al=i_SJ(LB zo_J{{q8Wg(zRzX)*z$e;Q0I|5$oii7Ec8-mV8ews;JqDV>Q8vse<&ZV(;YZ?36BCZ zazZbG{qRi8`qP=7oC^J1ljhpVrk&Q$HbKdXEy?1l{W?BIoQBmrIZ>H%F7zTTSB)BO z9Dyhi)^{KG46@Y;$MojpL(KDJ@0#ahRb@P*yZ#|*!pBN)DR>2;=)M?D6=xUId!udr ymv@1z_(H4r>$Kvne^#;78}sx}c%H^pn=pTy&D>~{dz;bk&dir^dHy#x?c~a-3$$qf diff --git a/src/nodes/shaders/crisplines.vert.qsb b/src/nodes/shaders/crisplines.vert.qsb deleted file mode 100644 index 674b357c8947d6cf75ecaa2cc7866f718001bcd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1871 zcmV-V2e9}605F?)ob6kCZxcrlUz`_QQr=Md0FIu{*Pqy}clW z=n(3P!F^CH3tM=?ho38ALb&kH6M5jYBjj(oMDW@xGU6e~WC)EKgxCgmR}%?A{7$hT zs-gg`?eNs?yA0I^caJEEEa>-y16~QyO}uf2+pQah$blP0>56iDoU{4WBSDT>gu6^L zFfD!A;MGII!*x=7dv2jxDA=9}5A&Sq*^5rax4rm6GGRP6Ot?JvQKppr!u8BT(ariJ zD&@mw;Il0piqfH}7a!a>{!#|p6=~IRqR9;9ANs zjEbN2ot##@Sj8mrhGZUU$sbsE}m#RJu zu2BZ;-@1HvVrpvUQc{_YP%%~Y8+0(2K*#KD<{)ZWcAdPm0~6UH{Cv?_7&Gehic`uD;t%WdF~g``RLPZUb(+*Q;+-}h zucaF61BzQzcaMXu#uU=)%?g%>XQ>W)wOJb}4(rqgD^wezN`nBgkx{8*r`%eoZOAVAm5*zbma8}b_bs^Z!F>fddhK?|en+j}M^8=zXXK7U z)3yA7g#=?Fh3wL+$PwrcKhczI%j6zxDw&CiS(+ z8Bp84Hkc(LOt@bMJmNZOK1}$zon-Mo1bu_r?S$_pd`#L=aXGU!uOgp!tnk>s$Ht7d z=9v6v)b3>b2QOX#LEucoV-8#QT{~`jCYiH-;w=OB#ZPXL_1CNerEGb$fq-e z`vc;ml#u<3!hUdy!~74?bw( z*97r&9$X^%31;&$vx#$XxrS5x4>^I!4*lSUyjpe&u2+(02)LI5Qf>3Bq=PTz@?ALa8Z1Fko7@+? z!-eg(>(ylB<~t61$HZpe?$-TYUEl8w?R}$Pi9_j?r)Ma=lCAV=rPqIuUO!Xmf_BWV zr`PCnOD}khZ_Fzo%8{FyhkgbqwzsKs?NxnQZ}Otf$ktcDs09(+b2b^vlwYQGiH@-|?)X99^iy)A#53O-C9pFQ`YWtyefUghm zqe>7*oo*fTztTI0ryTQ#Sh6&M7G9mgkVhN(Kmb?QFZ=_6{_BE`eIV$P?Whj~TlwQa z>tn#y{20(Wyl)-ew+`=Hhxc3c@P3`cbUcpw{$(Gg*Lhp%aH@3>`n->=__2H_QD4rn zd@E5~iP|ht^#MOzvEG+!U-$D6zFLI-rd@xDRR0k`G@Rf!@I!y|`c!^{ J{6F~|#be=Rv#|gG diff --git a/src/nodes/shaders/gradientconic.frag.qsb b/src/nodes/shaders/gradientconic.frag.qsb deleted file mode 100644 index 8a7e83b9bcffeeb2ad77d625c4ed24b4511852ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1826 zcmV+-2i^Dp02lyxob6a!Zxcrpo;VIk&8<+Nr8IO%3ar6djB$d&Nl5B&laPp#2#})4 z+N{@RTYJ~q9h;;G^`WZNr#|*S^*8j7^re?`X3ng~mvE^>)mB}!@t!l^xqmwz!x)=j zjHTfogFC}q7Q(-X)j&$Y&HkW^^E=zXPc$;QB$pV-OaBE+in>KEbyRg6m67!A-i4HMGDH zV-|IP>~-dJ9iq>gp;{bI%}%0u28y^(+7r-Eba)s{@bmto%|~`DYIboxuc{bN(mKv2 zW$t*l93MNtF2Y@6IJj}CpF|(C@CrGDQrn8zbC` zp-YkOfuS2G-6KPnCf&NBn;_km%ym5Rhj~vA)G{s_FJBz|1xg3o8* z35UbwotCvt(!f3jd5WIX(k{(DV2bI8ISbNJS|22Vmd}CzWAJ&D{2wPh>dGYRm+UIY zhh(1W!uY4iKj!)g$e&XDw5)4N_6BttXWkg^GqOEL@lc*7-D!}|Q|)6EALY-p}T4t)sog^cK}y&kfX%ME~XZ&nr5g0#n>U`5qVf@~lzQ4B29x zS?bMY!}bd4za{x9>9oxp+2jlxoAgH@GnB7Uyt8DF>py@!u3e|~yivmqs-a-`ERy~^ zvYRJc)PGO91*#3#mZ5uRNvD0>q8zk*n`GUWGUYi%YdY2<*_MqQmqzq?ne^J<9rBl^ zHC^)x`Mg7Uu9EH+tYhpinfh{DHR7#NyowR;F6nOJ39cF|y@`(zpMhG0@9NgM*spS*vdHU^)2N^)36DCi;G63YH=a~0Q5eV7he5j| zXl$k%h_!Y1S>^HLjkUZgWQ6hKju@~u;(>?FC)F({YIuTN5JVQXDlFB-uG8#z33EJX zR?usaty*FYHzP;sTGBqp^LD7+VeQJA1vYCN(kJ^`h7h1Ae`bPbdf-p>kSC zC$+1n5M9p&0{3h%DBKDBdKk6j-iM9DyIwxZ}S=my?0oN$DDLzkly6{o9J%$)BT;;uE}oy1+v=)*&EI3J)p%JB(R;| zIf(JL$@l?+{A3X1XpbQC|5AeZK_55Zz2K4_=EnVQeEAQt<&9h8>xfcg$?v4p%^p$m z`Aj?VTwhAh{l@dQ%B(!3_5)G=r;|!$`v2bZ{`a1={Hf482Vay-KGOguK7+Q z2xB~YLCs<0)%eWZ)0Q8{FoL;u6pB#nx4n2KlbQ7cx7n$Ae6i&TrwQkWTGQWMHuSOI zs$IiB_VZ1@Cr*SFHlUnlGIFxT+Sj*}-$CcpiC9 z4a6W8D%2%Tq^2cJ{+c?p8)xi3%LdhRu~0aAa1DCp?wFrr$Juxzp`>KyT2;xAv7 z-*PX2W49mJ$$pSL{~cRGIB;a`+Yxf++y_QHv{@Jf57ogIH;)O~7Wx%E@Jm|CL;t%= Q|LZ%j+Z>Gj6C?0OCtn__e*gdg diff --git a/src/nodes/shaders/gradientconic.vert.qsb b/src/nodes/shaders/gradientconic.vert.qsb deleted file mode 100644 index f807bce7b1287f7efd47d412f9699dabc4694044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmV-e2B-M|03<4Sob6g)PuxZjU+#{7hJ=I!+O$dIgcR<8m1_kiY0+$!n0A>;=e}ghmaFb->+yf&|WK z%vSVgPSKC(F1E`WtOBDRc*^mXg6e|1pVgQJmITZN`x)z_xyK6biX04s0S@!Hvq8ey z42krxHrFt$5VAT5*&w>k*KA!F()v9fW(V z@G`_(R(M(Btth-4@zxYxC-FA9t=XnNw0jVqcNIU7zN6T9kH&pXOqTPce3AS{AFcs6 z!{xKwHgP<&e4FcVe*}2MbE8{Zq#>`Y`H@EkRBx75YX4icGN#X^mU?9eu%K$%KQz*zfWk~Mfz@$K1TRk z6hEo&Hu>Jg`6AXD&3#UD_sCYHM~Nrb9wXg|&(qoiMBgW@)HlUsp%VI#E-JpFZPSW= zq-ROzEbNU8i%%_L{s0c{wMEL?CCbezLtvyD1G3MjMm+_dOc>Dx1NKX=Gg7jd149e*ktz!^Q+WLTU^aLoh>k9=xt>8*D zCw-bB*^(kVr^wFIdUJ&R6SDJ=XNcvf4kGb$oVt!*M)sW`bbU{MFjLgDFbW!Wr0+H= z+AB?mt7b(d{0ZE{1}lP0yvPZbd_O1)Zl&s5k#2=`$Bx#m$n{lr7+FD-VAL&7 zrTw~PyV22tcD$fz4bQFkK@Dxt8}I`xzY)>8Vnx?OvIIXt_~sEr zHFUi_-Lq;A1mAXaF164m;XH<=!(`Gq^S@0y8G`;6O-Q(E4kcdS-fo0Wkgxi-S1j!8 zD7s3CJZx{*X^5bdcGpYzs-_7N@^pzK@05uOLNs5JB5rna1=I+8358G2<ZU~m-cZ<^Sz&|i+*0+8TA9Y;Kq}Aqih~0O7r4l+(-Yymr1%Lw;-&)Wm6)nJu zpRHiyWg5;in*tuR0Yb)Ga5HHX?SodJaa0gn1GXnvX1A#!3yG=bCQ0HGc~Pel?;tt? z8*9(jpPNg8ABN^Lub!-M$s#nbZ+^YCw7R*ep|$VxkPt_4Z}7z4~Mc zo!2*>E5SIHX8_GK-~1q$uR93lYYsxKQOzrwC)K@L_$M#bbcn>cPNhee^&H01S2anC zDj;1lV=IzCWoJl@6i>luW1kTBIUztQr=^%D_HYU-lVzuBdvcLuwZ>p+KUBUMe~nB0 z^tmbV@!a|SiexNqv>^LOwb3#~+_!7Ah*s4}jh2fhi;%x)s=Pl{)a9gLRG+w;@G z_z*sC)m{j`xPQCoh5S#wkbm3r_>fx~@32SlzBM0MvcG(Onh$5G1gAd>TmJD$w)(~Y Wn@N8UnGI3up;#U diff --git a/src/nodes/shaders/gradientlinear.frag.qsb b/src/nodes/shaders/gradientlinear.frag.qsb deleted file mode 100644 index be5fa92c530aaab819c11b1cd8d79624d60c7e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcmV;V1zY+601;7moaI+pZyPrdrX^q9I7ySbX>)I^CS9eDsv1t3R;DBzC`8YC2A)(mYV^e%^6jJ1&fft7ZI2W7$d42w~hDek@kTqh2V|rFAz*!X(`S5~PPb zJ(h8ou(V_&Zi^!np+C)eqC6u%awDzLgY&7e2 z2oDew*@h*_*efs$Y>%fra#sf2qqH0P-=@5~&K2Kn?iC6UjW(#ecl8<@{R}t`?k9Sn zg#T(Ke6OGI`~O|SlUy0#4y8Qc#CYX2^A zFR+T%w_!Y9h%uH9GC3~c=5D(>7S#dTPInvjN_c72e*-q*` zGWjfc(}b}={%#S*0_7Wd9|HXe*-TK(NZ+<%yhC%udjLKvtbZb4oWBESim)+{*D0SX zwEi0u^D1axC;BU}z!+~bbAloN3GmR@rxf393&SJ+FJxCITaR$B5bqCI#Y1==kX~^* z;y!-~dKi~OG0zb`?%f62x5D2=(%S@_d7UT2!@Yb#*q6u-Wq$%5(htp>Qq(!7YKfJj z$^&Q$9g*s0_%-yWuFRB3z5Qm{vXWPR#D9X8qFc}M(XwtNzUjJP0}bV6(&=PEc|o&o zbzM?4-FQfG*;X`q)R~49@7GP!-YJf(M+SSf-=Xce6-Kaay7;!@O1OTh=TmpL^)u9m zbA>Az6j57U-WCjYdOC`>H#fGP`)g^EW&TFo%hf=e?puJ*oo{|zd-iN=y=fLS2H;t) zh7hb^0Ac&Nzr)k6Py|6L?>=wJ6f{g~ywRjA8i)27)UgjCjKe?8lgPJEqR}jvQ*R`_ zF6>BG_!8$uAXb)FY!yHm6}P%X&|&Tn_@gu@717QFB)Dy{z>B zBI0fka=6d6CGW;bhA*6iNh;dz!o3%f%rdy`-Rq@^O4M;rWDAZ{lW`E{ZQ(wOgyNwO zhj1wOS1o=fqxR?c(>Pd#`wc?4F^@zBSr@LhYK^&2l{Ic(s^~p?$F+*EaIH;T|4Hxh z?ylY!uUX&Q8)GTslS*iJH_xDC!z74pTV0_t4rL6*?sElk@8?SRzUT4q6+g~=Bdphl z3q~EJg13Q;GiBV}aq0CZQE^djo33Luol?bE7peQ+yhy}W za?Q*uQU>dX^c3&@-rk}Ki^qCz@92U91=H(w<`>_xHqb0?s77`C>d>PRXtjEICof{e zXT^Q}rZuKt$athYlcD+=Xd8=m>W8vCa<{c|o|r1cGMv(p(Y>P0$~)A=&;75AX4C1V yB9NLoklllxiMutzma!UFK&SmhVx0Z&J_IYHcNI;Ke7VyX{ZMN?S@&;Z&k$F4LC^C5 diff --git a/src/nodes/shaders/gradientlinear.vert.qsb b/src/nodes/shaders/gradientlinear.vert.qsb deleted file mode 100644 index 4a4a0b36b8119e3e992b7dadc3315511c0600028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1582 zcmV+}2GRKd03$1Sob6g|Zxcrl-o$nSCcHzTl#+uKutP8=BtT<=K%r_QAteHYDxv7) z*yr?G`!3v_i37@~s#3pJs@ndA{-XYseyQ4--DiD!X9ox^Rnq#R^X<$$Gdnvow`&gw zA#y@p!*qWjUI<47BBIZZSP(w_1)@%pEJOapC6d=MVTJ*^@T6V`vh8MK*@##bZPB37K6>i$69bi@drY)Mm3#_>E3F=Y?4E%;q6cGg*)@Xu z()BEWM?|0N5P{aoc8x4YViR61>lp3i8pE?5FE7{33{Q;mFi-2d1HnEbV!s@-H?6Ac>50baF4BF2^-0RSbFlvf(R#5tN$0xsL>CkD zMiCs%8v^d0!5ao|S2wmCQZksD2) z0X>gg9Yj8sh|By#;2nfb_Uk@bJSl5I#r=e#e+qo9e;T|~hW@vt&$16;pD}mI+x_5a z`ychOe-?ag|6}mZA_f`QIs@4}YShBoHGLjy|B>e6*k1tVyn&ejM$@09bS?tJ{O`fL z1X~y3$2fSrCa#4ktZ5QY4t^jVrmq20f*r1*>q6DtB<8se9NS<&W>81> ziQ;;`W#DfbxZ99@2me2X?rlT2V(89cz6!8^P)2X7lO~HjGArW!n6t7m;d-@ZyY5(b zT254L+O*v^-PODKm>;^W`ZfM2eRVgVZ-=h8W_i_?6RuZljwQ7!`Ft1!?OJ55wj23Z zd5f+_)2~J|of)fDjRLn*F__j1rxy8v!LocZ=0=;9{8ns>T`t>xJ2EX=HNWWxi(cL7 zSkIodLnkOS{hC)UuB;@cSZmtLe&|N7?-6btLk9KC;Ccy{$-5wOIt#uZ)Je4(k^8Id z$SJ5fSY07v2i2&c%~>wb8AjDLhp3g6DRSB)(v$JIWVPv&0QA`)_t|U_9>f;;p0{3Y z8H<{>Xc@$Gy^`T#sk3Qal_pCnti(ttQJy@~G7&E~6oMux8S$LA>V8z9Nv5Py(YhuX zJO(FLGvf>6D$&+t%0ZDSL#9RK*uW`Jm-)FqLZ&IJIzo-VAys`9#KGsq)`*~!OiWBVltfauDmjv&w zj=-jDBb`J(Pp9J~X2)u3JCOmOqt|WC4I|oJR?9jxfxlt5s$cs-yfw3PHk_NYD1G1f zjYjB1g<83o*i9u+g(d}@F@Xw)I!FO$i>ffFzN(R1>$6W+Qldn#Oi`jf5(2Y0P{)s# z7au*f7Xm*F?L}`rd730Q`#I~$XJ0NXEj@ZrHWwA=BnI3{oFnEOOYLZV`y;FW6v^Xi z&U*aR2+Ec&bavHFRD0rB=v(jh8_xv$pRV{;yIC-NnKG-aSK%$HzBjt+o$tx4rH@=1 z#~VVN-+2?zdql-vB!NazX^TjMV)XG(sr!;pAd{0iJQJ@#4>pkxv+#{mH96f@db6+N z$qzf;?901vv)|)8dUA^vBJO!G`xmq4q4(~c^*r_|OQL_zbEAP?&3*U(E0)3n%i~s-t diff --git a/src/nodes/shaders/gradientradial.frag.qsb b/src/nodes/shaders/gradientradial.frag.qsb deleted file mode 100644 index 9759ed4ca97712fe980d5f9c73e0008e5ed69221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmV+p2J!g-01~};oaI>SZ`4K*-{kV3CP1M;%cHO)E%m{1xTipAk3`U%KX7q>q9WUoU~L_haa#i#xa{S*78kD1-Ey?40-p-QMyw=(CM{mpy5GYw;GnlUy7 z&jdUc^H~D_r7Qqy5+3$9EjG9ieTH=a>9HQ z9P5E*2^vFo0Q7O%dtl(+FJ8`r+k(Xa7a*`Q6v6{#YQ&mT-UnbIXBmOl#(__Q&OX3> zfJ=5r!K@bnk6SuVewm*QP|*WLjMJ^#m~)5(OieW%`5LJHc_Kwre5 zaV1I8UV56@GWU}xNjJP+ z-;7hD$D6>6M7k+GDY#qW+)VRLe1>={17zq^LUznUao;=xDb#x#jgrDScNZN1$G;BU~x4g6~B&i^X3hbe@ zbq@EvC>Lds1tcr3QqPZL{V@h08#eN{^Lro!=NJys~*TEnFEtl4}m7=?XW*_rf#n#FDwyq?#3; zP$-%)!k89K6rn*Tr)dUb91|nug9=_+com>c`lf#~E`gsH_C=b7Nz6aL zu*mwe)F$?Y567zd{0y#6x%o|1S%njm$6+T)d+JueoEt1U2d&lWw7@O|fQkn`hA<`% z=rd6JZ$5-lf4O$4zM<3@2hKciZ+Fz1Z+Fz1=20^$gDa>iGqqKlT$sgzS#a$;#61m{ zEtc>&T)g=E-Q&&2%}fT(#XFAf1-0^WKgDKM2f(MWaS@)&3>#EU@n=y7ykWzdCmRKQ zjr1Uma#xJ~%Lcs$^i_JFR`hg9FO-;yH_LQ`EO--ydtmS;iMM9(YQ$StKGaGa`g3i_ z|7+wwt`7h;spy*0f$!(x4OE{24gK+h;Y^+Nk+S=Cxm{sP5+jO3BNNIcxXM7Gb;KGK(o_Yu%n zNOnrqZARtp3gHV|sE3oytE7ih9+7tr=y}T71o=HrH7Wf3gx=2@`!@|g8?=x1?m}HB zSv92~<`3XZlWoj(opQcJIr*64dI%`A^(pzcU|_Bj{};d@{Taz2e-138ZJT2Fn)a8$ zdY$-Rf*j`R2Ghe`o$R6Sx5(a2vWL2w#Q&A#Zj)@2^j;+1pJ4GGJa-9K432oVz5pD? zX;BX5NI#yJ({xq}duIr@PVt>19-g0Pr29O{;oe`M59xdQbQbrGo@L8bd$rJqtE=a6 zKl0)(4??dSCmBv2A-tp_;Pbbh^};L*R_C+>tSqow8M|mLl{hp9s zUd}XykN7O{7cbl6JAD{8$2a?AXdD}8_zklbLuo%U3m8R6^w5T%__T7B?y7*5{bl0! zYHV{HtDg!#RMcMB-RtW>+DF)7EJuB1?`Fi)E{q=Z_Pz8FuY`Xw*|k>R!ED!!+;5@U ztDf|>ot?KG@UV6V)rC8;U)8YnUmLyu9~GHA+6MKXmT-;uBgoJnI>uxF0b*xQr^ZJO A)c^nh diff --git a/src/nodes/shaders/gradientradial.vert.qsb b/src/nodes/shaders/gradientradial.vert.qsb deleted file mode 100644 index b530364f68a2e9ebd650e4f25df4534996a192b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1479 zcmV;&1vvTu03O76ob6d{Pa8)NUTpJrkU&UCo02rwI3zYN7ned))ip}wR3%a*P>7;P z7P5}>nOvRXejg=i9rpLr^0U2#4(3nSEyV+1Z)n1{h<5 zOk5fGTxEOAWG?gJyThu?fghJOU?zuOCP{LKl zAZU31;mPI`&GQ@D@=8f?%5ogeO%QEl)7C8;$D_2^4BEmB%Ab>Ol*c7`4dgJOgIpf$ z%K0uP(g9gM4s`>Bdm!mDq+648S<-EA4%sda`Aot6mc$R`FQm1v(Ri$j$#NaqUxx1t z$7lH(q6o4OImT4@d;OKW|g648O zu0wop6XZW!8~t1&4wK{uxdXAH1`?tzec`Mo*`Z6 z>pH~`@i)lV1j)Aui~hcbm}gj&;i&%`G?*V1iq8d#!8))(J{L)MfozcTL$H|U=OOla zh3toUoQ3`uzzp*^3LmIng%w9hhdypFk*`y?DslQ9Y!oJP=qBmW5AHEf zak){mbnp!E(xGv+TgM3IBp|>UhaW* z^@bIANuc&hh62>!3B=GOpnUhOcgJJbwDTUUePMt3S4P1D`^d_6200egC4mzW(%4N#0P` zsRXz$Hqv8_^}tUoLc8eWKDK?pY(AHQfotqJR)f>5W11AgqZd9a@&>fdfx4JFSFx77 zNJVW2t%78@AZJZ6WuUzRlPC&vvAKO2B2_z<{-05`4{YXv zwTH`nxl-z;7Mu%3sg1cJjwsxu0jZTdXs#87Dkm`&q)4g2wwjLH=Fb&8c~AjGawuF` zHj0T_17*6-cz(WpYHCNMCdbh8Yfeoi!12;j3U`i0FGTpP{VH$SMk{ET>UV9^*IRXX z-)ULft4gHztajrberZ3hLeM>_$z&8tG4gP@Qh=`mR z6+(Bag=>bzy0x_cd~FbI9ABs&mQps7i_Lgbpq>4J8 zYH?4oDt1KiVmb|SQdGVjseH|-e3wqXeD`$s0Mk=0;qF=WsN`tw)D|=zK!fghn~4sf z^x+@C2}U^{HpZfc5JH#p<%aMcO&qTw9OdJF4dE<1`%NL@XK6pk?Yv2R_e~B0}6U zf1J07@1RAD_(rexGV1=v&`2h1c&7t6x!FlV_K($qvUmq{3R=+jR_1c!nCRS3LF0G^ hI`>@qwJ+@A#eZ~J>VF}r`NW^|-Z-DK{|~_h0=*k1+@$~j From d1fbfd4e43bc931a038ef46fd04bfd9699b23941 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 8 Jan 2024 16:27:43 +0100 Subject: [PATCH 49/72] install qtshadertools --- .github/workflows/cmake.yml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 84656396..837f65aa 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -340,7 +340,7 @@ jobs: version: "6.5.0" target: "desktop" install-deps: "true" - modules: "qtwebengine" + modules: "qtwebengine qtshadertools" cached: ${{ steps.cache-qt-6-2.outputs.cache-hit }} setup-python: "false" tools: "" @@ -431,22 +431,22 @@ jobs: killall iotdashboard killall Xvfb - - name: Configure ( CMake Integration Test ) - shell: bash - run: | - mkdir qskinny_build_test - cmake \ - -S qskinny_source/examples/iotdashboard_smoketest \ - -B qskinny_build_test \ - -G "${{ matrix.config.generators }}" \ - -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny - - - name: Build ( CMake Integration Test ) - shell: bash - run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + #- name: Configure ( CMake Integration Test ) + # shell: bash + # run: | + # mkdir qskinny_build_test + # cmake \ + # -S qskinny_source/examples/iotdashboard_smoketest \ + # -B qskinny_build_test \ + # -G "${{ matrix.config.generators }}" \ + # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny +# + #- name: Build ( CMake Integration Test ) + # shell: bash + # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 099281972e6a5251dc7935160a126646658b8d07 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 9 Jan 2024 11:59:55 +0100 Subject: [PATCH 50/72] qsk_add_shaders cmake function added --- cmake/QskBuildFunctions.cmake | 16 ++++++++++ src/CMakeLists.txt | 56 ++++++++++------------------------- 2 files changed, 32 insertions(+), 40 deletions(-) diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 38fee091..50858598 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -99,3 +99,19 @@ function(qsk_add_example target) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) endfunction() + +function(qsk_add_shaders target) + + cmake_parse_arguments( arg "" "" "FILES" ${ARGN} ) + + # assuming that OUTPUTS is not set in ARGV + foreach( file IN LISTS arg_FILES ) + get_filename_component(qsbname "${file}" NAME) + string(REPLACE "-vulkan" "" qsbname "${qsbname}" ) + list(APPEND outfiles "${qsbname}.qsb") + endforeach() + + qt6_add_shaders( ${target} "qskshaders" BATCHABLE PRECOMPILE QUIET + PREFIX "/qskinny/shaders" ${ARGV} OUTPUTS ${outfiles} ) + +endfunction() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99386af7..15eaa4ef 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -175,6 +175,21 @@ list(APPEND SOURCES if (QT_VERSION_MAJOR VERSION_LESS 6) qt_add_resources(SOURCES nodes/shaders.qrc) +else() + list(APPEND SHADERS + nodes/shaders/arcshadow-vulkan.vert + nodes/shaders/arcshadow-vulkan.frag + nodes/shaders/boxshadow-vulkan.vert + nodes/shaders/boxshadow-vulkan.frag + nodes/shaders/crisplines-vulkan.vert + nodes/shaders/crisplines-vulkan.frag + nodes/shaders/gradientconic-vulkan.vert + nodes/shaders/gradientconic-vulkan.frag + nodes/shaders/gradientlinear-vulkan.vert + nodes/shaders/gradientlinear-vulkan.frag + nodes/shaders/gradientradial-vulkan.vert + nodes/shaders/gradientradial-vulkan.frag + ) endif() list(APPEND HEADERS @@ -476,46 +491,7 @@ if(BUILD_QSKDLL) endif() if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) - - qt6_add_shaders(${target} "qskshaders" - - BATCHABLE - PRECOMPILE - - #OPTIMIZED - QUIET - - PREFIX - "/qskinny/shaders" - - FILES - nodes/shaders/arcshadow-vulkan.vert - nodes/shaders/arcshadow-vulkan.frag - nodes/shaders/boxshadow-vulkan.vert - nodes/shaders/boxshadow-vulkan.frag - nodes/shaders/crisplines-vulkan.vert - nodes/shaders/crisplines-vulkan.frag - nodes/shaders/gradientconic-vulkan.vert - nodes/shaders/gradientconic-vulkan.frag - nodes/shaders/gradientlinear-vulkan.vert - nodes/shaders/gradientlinear-vulkan.frag - nodes/shaders/gradientradial-vulkan.vert - nodes/shaders/gradientradial-vulkan.frag - - OUTPUTS - arcshadow.vert.qsb - arcshadow.frag.qsb - boxshadow.vert.qsb - boxshadow.frag.qsb - crisplines.vert.qsb - crisplines.frag.qsb - gradientconic.vert.qsb - gradientconic.frag.qsb - gradientlinear.vert.qsb - gradientlinear.frag.qsb - gradientradial.vert.qsb - gradientradial.frag.qsb - ) + qsk_add_shaders( ${target} FILES ${SHADERS} ) endif() target_include_directories(${target} PUBLIC From 92e08edda79770b8daa6f956fef2be61ad100bdd Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Wed, 10 Jan 2024 05:38:12 -0500 Subject: [PATCH 51/72] move QskTools.cmake to optional install directive, remove qsk_update_package_config_file for optional cmake keyword --- CMakeLists.txt | 1 - cmake/QSkinnyConfig.cmake | 2 ++ cmake/QskBuildFunctions.cmake | 8 -------- qmlexport/CMakeLists.txt | 2 -- tools/CMakeLists.txt | 8 +++++++- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b971c6aa..35f33b74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,7 +125,6 @@ install( FILES ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake - ${QSK_CMAKE_DIR}/QskTools.cmake DESTINATION ${PACKAGE_LOCATION} COMPONENT diff --git a/cmake/QSkinnyConfig.cmake b/cmake/QSkinnyConfig.cmake index fbffae9e..14ab054c 100644 --- a/cmake/QSkinnyConfig.cmake +++ b/cmake/QSkinnyConfig.cmake @@ -1 +1,3 @@ include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake" OPTIONAL) +include("${CMAKE_CURRENT_LIST_DIR}/QmlExportTargets.cmake" OPTIONAL) diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 8df27d65..32a0fa52 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -115,11 +115,3 @@ function(qsk_add_shaders target) PREFIX "/qskinny/shaders" ${ARGV} OUTPUTS ${outfiles} ) endfunction() - -function(qsk_update_package_config_file target) - - file(APPEND - ${CMAKE_BINARY_DIR}/_QSkinny/QSkinnyConfig.cmake - "include(\"\${CMAKE_CURRENT_LIST_DIR}/${target}.cmake\")\n") - -endfunction() diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index e3ca96c0..30a29ea8 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -42,5 +42,3 @@ install(EXPORT ${PACKAGE_NAME}Targets ${PACKAGE_NAMESPACE} DESTINATION ${PACKAGE_LOCATION}) - -qsk_update_package_config_file(${PACKAGE_NAME}Targets) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 74d10d19..53162269 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,4 +1,10 @@ if(TARGET Qt::Svg) add_subdirectory(svg2qvg) - qsk_update_package_config_file(QskTools) + install( + FILES + ${QSK_CMAKE_DIR}/QskTools.cmake + DESTINATION + ${PACKAGE_LOCATION} + COMPONENT + Devel) endif() From ddc11b30138ea69254356b30f501b156ccc74429 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Wed, 10 Jan 2024 05:36:13 -0500 Subject: [PATCH 52/72] update docs to include reference to required Qt6 packages --- doc/tutorials/03-writing-your-first-application.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index b0d86d5d..8b8d0966 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -13,7 +13,8 @@ layout: docs In this chapter we will write a simple QSkinny application on Linux from scratch. As a prerequisite, a recent Qt version (>= 5.15) should be available. On debian bullseye we need to install these packages `build-essential cmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. -For Qt6 you need the corresponding packages. +On Debian these packages need to be installed for Qt6: `build-essential cmake +qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools`. Then we can build and install QSkinny to `/opt/qskinny` with the following commands: From 315fa27d1e5c53a669e12186dfff77f9dc2bd50f Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 10 Jan 2024 13:23:14 +0100 Subject: [PATCH 53/72] integration reenabled --- .github/workflows/cmake.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 168968c0..01734143 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -432,22 +432,22 @@ jobs: killall iotdashboard killall Xvfb - #- name: Configure ( CMake Integration Test ) - # shell: bash - # run: | - # mkdir qskinny_build_test - # cmake \ - # -S qskinny_source/examples/iotdashboard_smoketest \ - # -B qskinny_build_test \ - # -G "${{ matrix.config.generators }}" \ - # -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ - # -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ - # -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ - # -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny -# - #- name: Build ( CMake Integration Test ) - # shell: bash - # run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} + - name: Configure ( CMake Integration Test ) + shell: bash + run: | + mkdir qskinny_build_test + cmake \ + -S qskinny_source/examples/iotdashboard_smoketest \ + -B qskinny_build_test \ + -G "${{ matrix.config.generators }}" \ + -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \ + -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \ + -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny + + - name: Build ( CMake Integration Test ) + shell: bash + run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }} # - name: Pack # shell: bash From 1f290ed6905a333d312070d41e42ce1345bbe5c6 Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Wed, 10 Jan 2024 06:16:13 -0500 Subject: [PATCH 54/72] update qmlexport install paths to be contained within lib|includes/qskinny dir --- qmlexport/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 30a29ea8..f80804fb 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -23,14 +23,14 @@ endif() # packaging set(PACKAGE_NAME QmlExport) -set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") set_target_properties(${target} PROPERTIES FOLDER libs) set_target_properties(${target} PROPERTIES EXPORT_NAME ${PACKAGE_NAME}) install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets - INCLUDES DESTINATION ${QSKQE_INSTALL_HEADERS} - PUBLIC_HEADER DESTINATION ${QSKQE_INSTALL_HEADERS}) + LIBRARY DESTINATION ${QSK_INSTALL_LIBS} + INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} + PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) export(EXPORT ${PACKAGE_NAME}Targets NAMESPACE ${PACKAGE_NAMESPACE}) From 0b60db6614c78973f3c33b3134b2797dc019937d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 10 Jan 2024 16:46:09 +0100 Subject: [PATCH 55/72] blocking qmlimportscanner --- cmake/QskBuildFunctions.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index 32a0fa52..dddf0004 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -7,6 +7,10 @@ function(qsk_add_executable target) if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) qt6_add_executable(${ARGV}) + + # we manually export our APIs to QML - might change in the future + set_target_properties(${target} PROPERTIES + QT_QML_MODULE_NO_IMPORT_SCAN 1) else() add_executable(${ARGV}) endif() From 690a3c57a1c5568b9d22f4d6cae127925a1144ea Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Wed, 10 Jan 2024 00:33:35 +0100 Subject: [PATCH 56/72] renamed exported targets and files --- .gitignore | 2 ++ CMakeLists.txt | 12 ++++++------ cmake/QSkinnyConfig.cmake | 4 ++-- cmake/{QskTools.cmake => QSkinnyTools.cmake} | 0 qmlexport/CMakeLists.txt | 17 ++++++++++++++--- tools/CMakeLists.txt | 2 +- 6 files changed, 25 insertions(+), 12 deletions(-) rename cmake/{QskTools.cmake => QSkinnyTools.cmake} (100%) diff --git a/.gitignore b/.gitignore index 138bebe4..5369b42e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ qskinny.pro.user html tags .vscode +.cache +compile_commands.json \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 35f33b74..c3d03164 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,7 +93,7 @@ qsk_setup_options() include(GNUInstallDirs) # loading helper macros -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH ${QSK_CMAKE_DIR}) include("QskConfigMacros") include("QskFindMacros") @@ -110,21 +110,21 @@ include(CMakePackageConfigHelpers) # write QSkinnyConfigVersion.cmake file for cmake import write_basic_package_version_file( - ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake VERSION ${PACKAGE_VERSION} COMPATIBILITY AnyNewerVersion) # Copy QSkinnyConfig.cmake to build dir configure_file(${QSK_CMAKE_DIR}/${PACKAGE_NAME}Config.cmake - ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake COPYONLY) # install QSkinnyConfig.cmake and QSkinnyConfigVersion.cmake -# and QskTools.cmake file to lib/cmake/QSkinny directory +# file to lib/cmake/QSkinny directory install( FILES - ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}Config.cmake - ${CMAKE_BINARY_DIR}/_QSkinny/${PACKAGE_NAME}ConfigVersion.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake DESTINATION ${PACKAGE_LOCATION} COMPONENT diff --git a/cmake/QSkinnyConfig.cmake b/cmake/QSkinnyConfig.cmake index 14ab054c..8520eeb3 100644 --- a/cmake/QSkinnyConfig.cmake +++ b/cmake/QSkinnyConfig.cmake @@ -1,3 +1,3 @@ include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake" OPTIONAL) -include("${CMAKE_CURRENT_LIST_DIR}/QmlExportTargets.cmake" OPTIONAL) +include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTools.cmake" OPTIONAL) +include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyQmlExportTargets.cmake" OPTIONAL) diff --git a/cmake/QskTools.cmake b/cmake/QSkinnyTools.cmake similarity index 100% rename from cmake/QskTools.cmake rename to cmake/QSkinnyTools.cmake diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index f80804fb..613bdb26 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -3,8 +3,18 @@ # SPDX-License-Identifier: BSD-3-Clause ############################################################################ -set(HEADERS QskQmlGlobal.h QskShortcutQml.h QskLayoutQml.h QskMainQml.h QskQml.h) -set(SOURCES QskShortcutQml.cpp QskLayoutQml.cpp QskMainQml.cpp QskQml.cpp) +set(HEADERS + QskQmlGlobal.h + QskShortcutQml.h + QskLayoutQml.h + QskMainQml.h + QskQml.h) + +set(SOURCES + QskShortcutQml.cpp + QskLayoutQml.cpp + QskMainQml.cpp + QskQml.cpp) set(target qskqmlexport) qsk_add_library(${target} SHARED ${SOURCES} ${HEADERS}) @@ -22,7 +32,8 @@ if(BUILD_QSKDLL) endif() # packaging -set(PACKAGE_NAME QmlExport) +set(PACKAGE_NAME QSkinnyQmlExport) +set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") set_target_properties(${target} PROPERTIES FOLDER libs) set_target_properties(${target} PROPERTIES EXPORT_NAME ${PACKAGE_NAME}) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 53162269..3052d313 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,7 +2,7 @@ if(TARGET Qt::Svg) add_subdirectory(svg2qvg) install( FILES - ${QSK_CMAKE_DIR}/QskTools.cmake + ${QSK_CMAKE_DIR}/QSkinnyTools.cmake DESTINATION ${PACKAGE_LOCATION} COMPONENT From 09ee9dad3a80f6a50b9ce04f26122109c42023a9 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 11 Jan 2024 17:46:28 +0100 Subject: [PATCH 57/72] changed qskinny cmake package --- CMakeLists.txt | 14 +++++++------- qmlexport/CMakeLists.txt | 8 ++++++-- src/CMakeLists.txt | 4 ++++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3d03164..7d1eeaab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,14 +7,14 @@ cmake_minimum_required(VERSION 3.16.3) macro(qsk_setup_options) - option(BUILD_PEDANTIC "Enable pedantic compile flags ( only GNU/CLANG )" OFF) - option(BUILD_QSKDLL "Build libs ( not plugins ) as shared library" ON) - option(BUILD_QML_EXPORT "Exporting QSkinny to QML" ON) + option(BUILD_PEDANTIC "Enable pedantic compile flags ( only GNU/CLANG )" OFF) + option(BUILD_QSKDLL "Build libs ( not plugins ) as shared library" ON) + option(BUILD_QML_EXPORT "Exporting QSkinny to QML" ON) - option(BUILD_TOOLS "Build qskinny tools" ON) + option(BUILD_TOOLS "Build qskinny tools" ON) option(BUILD_INPUTCONTEXT "Build virtual keyboard support" ON) - option(BUILD_EXAMPLES "Build qskinny examples" ON) - option(BUILD_PLAYGROUND "Build qskinny playground" ON) + option(BUILD_EXAMPLES "Build qskinny examples" ON) + option(BUILD_PLAYGROUND "Build qskinny playground" ON) # we actually want to use cmake_dependent_option - minimum cmake version ?? @@ -66,7 +66,7 @@ macro(qsk_setup_install) # package vars set(PACKAGE_NAME ${PROJECT_NAME}) set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION}) - set(PACKAGE_NAMESPACE ${PROJECT_NAME}::) + set(PACKAGE_NAMESPACE Qsk::) set(PACKAGE_LOCATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) # install paths for headers and libraries diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 613bdb26..244692ff 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -32,11 +32,11 @@ if(BUILD_QSKDLL) endif() # packaging -set(PACKAGE_NAME QSkinnyQmlExport) +set(PACKAGE_NAME QmlExport) set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") set_target_properties(${target} PROPERTIES FOLDER libs) -set_target_properties(${target} PROPERTIES EXPORT_NAME ${PACKAGE_NAME}) +set_target_properties(${target} PROPERTIES EXPORT_NAME QmlExport) install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets LIBRARY DESTINATION ${QSK_INSTALL_LIBS} @@ -53,3 +53,7 @@ install(EXPORT ${PACKAGE_NAME}Targets ${PACKAGE_NAMESPACE} DESTINATION ${PACKAGE_LOCATION}) + +install(FILES $ + DESTINATION + ${QSK_INSTALL_LIBS} OPTIONAL) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b40aa5f8..66d31af8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -561,3 +561,7 @@ install(EXPORT ${PACKAGE_NAME}Targets ${PACKAGE_NAMESPACE} DESTINATION ${PACKAGE_LOCATION}) + +install(FILES $ + DESTINATION + ${QSK_INSTALL_LIBS} OPTIONAL) \ No newline at end of file From da066d1eddd1f0f414880e90a0627e9cb17c9a25 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 11 Jan 2024 18:05:45 +0100 Subject: [PATCH 58/72] fix build break for non msvc compiler --- qmlexport/CMakeLists.txt | 8 +++++--- src/CMakeLists.txt | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 244692ff..4f098f2e 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -54,6 +54,8 @@ install(EXPORT ${PACKAGE_NAME}Targets DESTINATION ${PACKAGE_LOCATION}) -install(FILES $ - DESTINATION - ${QSK_INSTALL_LIBS} OPTIONAL) \ No newline at end of file +if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + install(FILES $ + DESTINATION + ${QSK_INSTALL_LIBS} OPTIONAL) +endif() \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 66d31af8..be10b13f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -562,6 +562,8 @@ install(EXPORT ${PACKAGE_NAME}Targets DESTINATION ${PACKAGE_LOCATION}) -install(FILES $ - DESTINATION - ${QSK_INSTALL_LIBS} OPTIONAL) \ No newline at end of file +if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + install(FILES $ + DESTINATION + ${QSK_INSTALL_LIBS} OPTIONAL) +endif() \ No newline at end of file From 31cdb4be6fd05d529573e4bb105928ee1b5cf114 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 11 Jan 2024 18:06:51 +0100 Subject: [PATCH 59/72] fix qml export install location --- qmlexport/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 4f098f2e..a196415a 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -40,6 +40,8 @@ set_target_properties(${target} PROPERTIES EXPORT_NAME QmlExport) install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets LIBRARY DESTINATION ${QSK_INSTALL_LIBS} + ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} + RUNTIME DESTINATION ${QSK_INSTALL_LIBS} INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) From f6601ca936f124c1c2d248b58d229b12c89847e1 Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 11 Jan 2024 18:17:34 +0100 Subject: [PATCH 60/72] fix integration test --- examples/iotdashboard_smoketest/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/iotdashboard_smoketest/CMakeLists.txt b/examples/iotdashboard_smoketest/CMakeLists.txt index f9924b04..8f8a0c5f 100644 --- a/examples/iotdashboard_smoketest/CMakeLists.txt +++ b/examples/iotdashboard_smoketest/CMakeLists.txt @@ -22,7 +22,7 @@ endfunction() function(qsk_add_example target) cmake_parse_arguments(PARSE_ARGV 1 arg "MANUAL_FINALIZATION" "" "") add_executable(${target} WIN32 MACOSX_BUNDLE ${arg_UNPARSED_ARGUMENTS} ) - target_link_libraries(${target} PRIVATE QSkinny::QSkinny ) + target_link_libraries(${target} PRIVATE Qsk::QSkinny ) target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) endfunction() From 5c12b18b878e0090c498c7678462451f5d04cbbb Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Thu, 11 Jan 2024 18:48:58 +0100 Subject: [PATCH 61/72] fix qml export target filename --- qmlexport/CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index a196415a..44413ee6 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -33,24 +33,25 @@ endif() # packaging set(PACKAGE_NAME QmlExport) +set(PACKAGE_TARGET_FILENAME QSkinny${PACKAGE_NAME}Targets.cmake) set(QSKQE_INSTALL_HEADERS "${CMAKE_INSTALL_INCLUDEDIR}/${target}") set_target_properties(${target} PROPERTIES FOLDER libs) set_target_properties(${target} PROPERTIES EXPORT_NAME QmlExport) -install(TARGETS ${target} EXPORT ${PACKAGE_NAME}Targets +install(TARGETS ${target} EXPORT ${PACKAGE_TARGET_FILENAME} LIBRARY DESTINATION ${QSK_INSTALL_LIBS} ARCHIVE DESTINATION ${QSK_INSTALL_LIBS} RUNTIME DESTINATION ${QSK_INSTALL_LIBS} INCLUDES DESTINATION ${QSK_INSTALL_HEADERS} PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS}) -export(EXPORT ${PACKAGE_NAME}Targets +export(EXPORT ${PACKAGE_TARGET_FILENAME} NAMESPACE ${PACKAGE_NAMESPACE}) -install(EXPORT ${PACKAGE_NAME}Targets +install(EXPORT ${PACKAGE_TARGET_FILENAME} FILE - ${PACKAGE_NAME}Targets.cmake + ${PACKAGE_TARGET_FILENAME} NAMESPACE ${PACKAGE_NAMESPACE} DESTINATION From 7e2e36163703a0ef8a5511a21a6f76c1b459188e Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Fri, 12 Jan 2024 10:11:18 +0100 Subject: [PATCH 62/72] update documentation qsk cmake namespace --- doc/tutorials/03-writing-your-first-application.asciidoc | 2 +- doc/tutorials/08-qskinny-and-qml.asciidoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 8b8d0966..209e98cf 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -83,7 +83,7 @@ add_executable(myapp target_link_libraries(myapp PRIVATE Qt5::Widgets Qt5::Quick - QSkinny::QSkinny) + Qsk::QSkinny) .... Now we can compile our app: diff --git a/doc/tutorials/08-qskinny-and-qml.asciidoc b/doc/tutorials/08-qskinny-and-qml.asciidoc index f1570e23..9af57645 100644 --- a/doc/tutorials/08-qskinny-and-qml.asciidoc +++ b/doc/tutorials/08-qskinny-and-qml.asciidoc @@ -23,7 +23,7 @@ slots or invokables can be used in QML. For example, the QSkinny control .... target_link_libraries(myapp PRIVATE ... - QSkinny::QmlExport) + Qsk::QmlExport) ... .... From ffb59345971393ccc54a0a8b5581745e4173577c Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 13 Jan 2024 10:07:53 +0100 Subject: [PATCH 63/72] first-application steps modified --- .../03-writing-your-first-application.asciidoc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 209e98cf..24e86a27 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -10,7 +10,7 @@ layout: docs === Building the QSkinny repository -In this chapter we will write a simple QSkinny application on Linux from scratch. +In this chapter we will write a simple QSkinny application on Linux from scratch in C++. As a prerequisite, a recent Qt version (>= 5.15) should be available. On debian bullseye we need to install these packages `build-essential cmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. On Debian these packages need to be installed for Qt6: `build-essential cmake @@ -74,14 +74,13 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package(Qt5 REQUIRED COMPONENTS Widgets Quick) +find_package(Qt5 REQUIRED COMPONENTS Quick) find_package(QSkinny REQUIRED) add_executable(myapp src/main.cpp) target_link_libraries(myapp PRIVATE - Qt5::Widgets Qt5::Quick Qsk::QSkinny) .... @@ -122,9 +121,9 @@ int main( int argc, char* argv[] ) { QGuiApplication app( argc, argv ); - auto* horizontalBox = new QskLinearBox( Qt::Horizontal ); - auto* button1 = new QskPushButton( "button 1", horizontalBox ); - auto* button2 = new QskPushButton( "button 2", horizontalBox ); + auto horizontalBox = new QskLinearBox( Qt::Horizontal ); + (void) new QskPushButton( "Button 1", horizontalBox ); + (void) new QskPushButton( "Button 2", horizontalBox ); QskWindow window; window.addItem( horizontalBox ); From f04c3d3a6384241166eba86f57a93d7b6d3c5fca Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 13 Jan 2024 11:01:38 +0100 Subject: [PATCH 64/72] description updated, build hints replaced by reference to the tutorial --- README.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2b21d3c0..487a1d97 100644 --- a/README.md +++ b/README.md @@ -22,28 +22,18 @@ The code already provides a solid fundament for an automotive GUI with currently ~300K lines of pure C++ code. As expected it results in a good startup performance and a low memory footprint. -Nontheless QSkinny is lacking in areas like documentation or appealing -default skins. The QML API has not been completed after reaching a -proof of concept state. Furthermore the current selection of the implemented -controls is limited to the needs of the driving projects. +Nontheless QSkinny is lacking in areas like documentation. +The QML API has not been completed after reaching a proof of concept state. QSkinny is supposed to run on all platforms being supported by Qt/Quick. -But so far only Linux is actively tested. -It might support all versions Qt >= 5.15, but you can rely on: +It might support other versions of Qt, but you can rely on: - Qt 5.15 - current long term supported ( LTS ) version of Qt ( at the moment Qt 6.5.x ) - current version of Qt -On Debian these packages need to be installed for Qt6: `build-essential cmake -qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools` -For Qt5 you need: `build-essential cmake -qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg-dev`. - - -> Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev` - -> Optional: When enabling the `pinyin` feature the following package needs to be installed: `libimepinyin-dev` +How to build/install and use QSkinny is described in this +[tutorial](doc/doc/tutorials/03-writing-your-first-application.asciidoc) If you want to know more about QSkinny - or even like to give it a specific direction - please contact support@qskinny.org. From c0672d1f8c34f3dbae618ff3215448303f4e6eae Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 13 Jan 2024 11:04:51 +0100 Subject: [PATCH 65/72] link fixed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 487a1d97..97ac24a4 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ It might support other versions of Qt, but you can rely on: - current version of Qt How to build/install and use QSkinny is described in this -[tutorial](doc/doc/tutorials/03-writing-your-first-application.asciidoc) +[tutorial](doc/tutorials/03-writing-your-first-application.asciidoc) If you want to know more about QSkinny - or even like to give it a specific direction - please contact support@qskinny.org. From 097bfbe26a5c4fc8b58e0fb007e21efb6b8b4036 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 13 Jan 2024 11:11:50 +0100 Subject: [PATCH 66/72] qt6 as the default use case --- .../03-writing-your-first-application.asciidoc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 24e86a27..c4202ebe 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -11,10 +11,14 @@ layout: docs === Building the QSkinny repository In this chapter we will write a simple QSkinny application on Linux from scratch in C++. -As a prerequisite, a recent Qt version (>= 5.15) should be available. On debian bullseye we need to install -these packages `build-essential cmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. -On Debian these packages need to be installed for Qt6: `build-essential cmake -qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools`. +As a prerequisite, a supported Qt version should be available. + +On debian bullseye we need to install these packages +`build-essential cmake qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools`. + +( For Qt 5.15 you need the corresponding packages beside of the shadertools ) + +Optional packages for the virtual keyboard are `libhunspell-dev libimepinyin-dev` Then we can build and install QSkinny to `/opt/qskinny` with the following commands: @@ -74,14 +78,14 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package(Qt5 REQUIRED COMPONENTS Quick) +find_package(Qt6 REQUIRED COMPONENTS Quick) find_package(QSkinny REQUIRED) add_executable(myapp src/main.cpp) target_link_libraries(myapp PRIVATE - Qt5::Quick + Qt6::Quick Qsk::QSkinny) .... @@ -95,7 +99,7 @@ $ cmake ../ && make .... When running myapp it needs to find the skin plugins. Setting QT_PLUGIN_PATH is one -option ( see https://doc.qt.io/qt-5/deployment-plugins.html ): +option ( see https://doc.qt.io/qt/deployment-plugins.html ): [source,shell] .... From ae6ba604b6ffa0db49579c2ba8786ee7285cf5f6 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 13 Jan 2024 11:41:22 +0100 Subject: [PATCH 67/72] using cmake instead of make in the docs --- README.md | 4 ++-- doc/tutorials/03-writing-your-first-application.asciidoc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 97ac24a4..22db8c1f 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ It might support other versions of Qt, but you can rely on: - current long term supported ( LTS ) version of Qt ( at the moment Qt 6.5.x ) - current version of Qt -How to build/install and use QSkinny is described in this -[tutorial](doc/tutorials/03-writing-your-first-application.asciidoc) +How to build, install and use QSkinny is described in this +[tutorial](doc/tutorials/03-writing-your-first-application.asciidoc). If you want to know more about QSkinny - or even like to give it a specific direction - please contact support@qskinny.org. diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index c4202ebe..65cdf7c4 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -27,8 +27,8 @@ Then we can build and install QSkinny to `/opt/qskinny` with the following comma $ git clone https://github.com/uwerat/qskinny.git # clone $ cd qskinny $ mkdir build && cd build -$ cmake ../ && make # build -$ sudo make install # install +$ cmake .. && cmake --build . +$ sudo cmake --install . --prefix "/opt/qskinny" .... To target a specific Qt version simply pass the cmake build variable `QSK_QT_VERSION` during the build step: From a39c28825812e41049723d3f6fc6d81784378c44 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 16 Jan 2024 11:42:40 +0100 Subject: [PATCH 68/72] tutorial updated --- ...03-writing-your-first-application.asciidoc | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 65cdf7c4..1627ac63 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -10,14 +10,12 @@ layout: docs === Building the QSkinny repository -In this chapter we will write a simple QSkinny application on Linux from scratch in C++. -As a prerequisite, a supported Qt version should be available. +In this chapter we will write a simple QSkinny application on Linux from scratch in C++ with Qt6. +As a prerequisite, a supported Qt6 version should be available. On debian bullseye we need to install these packages `build-essential cmake qtbase6-dev qtbase6-private-dev qtdeclarative6-dev qtdeclarative6-private-dev libqt6svg-dev qt6-shadertools`. -( For Qt 5.15 you need the corresponding packages beside of the shadertools ) - Optional packages for the virtual keyboard are `libhunspell-dev libimepinyin-dev` Then we can build and install QSkinny to `/opt/qskinny` with the following commands: @@ -27,15 +25,23 @@ Then we can build and install QSkinny to `/opt/qskinny` with the following comma $ git clone https://github.com/uwerat/qskinny.git # clone $ cd qskinny $ mkdir build && cd build -$ cmake .. && cmake --build . +$ cmake .. +$ cmake --build . $ sudo cmake --install . --prefix "/opt/qskinny" .... -To target a specific Qt version simply pass the cmake build variable `QSK_QT_VERSION` during the build step: + +Considering that you want to use a specific Qt version that is installed below "/path/to/qt" +you have 2 options: [source,shell] +$ cmake .. -DCMAKE_PREFIX_PATH=/path/to/qt .... -$ cmake -DQSK_QT_VERSION=Qt5 ../ && make + +or + +[source,shell] +$ /path/to/qt/bin/qt-cmake .. .... === Compiling our first app @@ -60,7 +66,7 @@ int main( int argc, char* argv[] ) .... For now this will just create an empty window (the `QskWindow`) without any controls. -Next, we need to create a `myapp.pro` file in our `myapp` directory. +Next, we need to create a `CMakeLists.txt` file in our `myapp` directory. .CMakeLists.txt [source,cmake] @@ -110,7 +116,9 @@ This should show just an empty window. === Adding UI controls -Now that we have our app running, we can add some UI controls to it by extending the `main.cpp` file we created earlier. We will add some additional include directives, and then create a horizontal layout containing two push buttons. The layout with the two buttons will be shown in the window. Below is the complete updated source file: +Now that we have our app running, we can add some UI controls to it by extending the `main.cpp` file we created earlier. +We will add some additional include directives, and then create a horizontal layout containing two push buttons. +The layout with the two buttons will be shown in the window. Below is the complete updated source file: .main.cpp [source, cpp] @@ -125,9 +133,17 @@ int main( int argc, char* argv[] ) { QGuiApplication app( argc, argv ); - auto horizontalBox = new QskLinearBox( Qt::Horizontal ); - (void) new QskPushButton( "Button 1", horizontalBox ); - (void) new QskPushButton( "Button 2", horizontalBox ); + auto box = new QskLinearBox( Qt::Horizontal ); + + /* + some design systems work with transparencies ( f.e Fluent2 ) + and we need to have a control providing a solid base color + as bottom layer. + */ + box->setPanel( true ); + + (void) new QskPushButton( "Button 1", box ); + (void) new QskPushButton( "Button 2", box ); QskWindow window; window.addItem( horizontalBox ); From 683088539fbd25255eaede4e142d74cb9cd3c0c9 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 16 Jan 2024 14:43:10 +0100 Subject: [PATCH 69/72] typos fixed --- doc/tutorials/03-writing-your-first-application.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/tutorials/03-writing-your-first-application.asciidoc b/doc/tutorials/03-writing-your-first-application.asciidoc index 1627ac63..cd16d942 100644 --- a/doc/tutorials/03-writing-your-first-application.asciidoc +++ b/doc/tutorials/03-writing-your-first-application.asciidoc @@ -35,12 +35,14 @@ Considering that you want to use a specific Qt version that is installed below " you have 2 options: [source,shell] +.... $ cmake .. -DCMAKE_PREFIX_PATH=/path/to/qt .... or [source,shell] +.... $ /path/to/qt/bin/qt-cmake .. .... From 530720beb366a383106d03acfa5c4a0ae1bbb72b Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 17 Jan 2024 11:47:21 +0100 Subject: [PATCH 70/72] QSK_QT_VERSION removed as CMAKE_PREFIX_PATH offers a more general solution for selecting a specific Qt version --- cmake/QskFindMacros.cmake | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/cmake/QskFindMacros.cmake b/cmake/QskFindMacros.cmake index 0c9d8583..b27d24d2 100644 --- a/cmake/QskFindMacros.cmake +++ b/cmake/QskFindMacros.cmake @@ -5,15 +5,9 @@ macro(qsk_setup_Qt) - # Use QSK_QT_VERSION specified with baseline 5.15 - # otherwise fallback to latest known supported Qt version gte 5.15 - # set vars for correct alpha descending sort order and direction (ex. Qt6, Qt5) - if ( NOT QSK_QT_VERSION ) # QSK_QT_VERSION=Qt5 - set(QSK_QT_VERSION Qt6 Qt5) - set(CMAKE_FIND_PACKAGE_SORT_ORDER NAME) - set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) - endif() - find_package(QT "5.15" NAMES ${QSK_QT_VERSION} REQUIRED COMPONENTS Quick) + # relying on cmake heuristics to select a specific Qt version is no good idea. + # using -DCMAKE_PREFIX_PATH="..." is highly recommended + find_package(QT "5.15" NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick) if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) # we need the qsb tool for Qt6 From 511db2650e2304a07ddfc0075366053c8782f15e Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 17 Jan 2024 14:31:45 +0100 Subject: [PATCH 71/72] copyright notice generalised --- CMakeLists.txt | 2 +- cmake/QSkinnyTools.cmake | 2 +- cmake/QskBuildFunctions.cmake | 2 +- cmake/QskConfigMacros.cmake | 2 +- cmake/QskFindMacros.cmake | 2 +- examples/CMakeLists.txt | 2 +- examples/boxes/Box.cpp | 2 +- examples/boxes/Box.h | 2 +- examples/boxes/CMakeLists.txt | 2 +- examples/boxes/main.cpp | 2 +- examples/buttons/CMakeLists.txt | 2 +- examples/buttons/main.cpp | 2 +- examples/desktop/CMakeLists.txt | 2 +- examples/desktop/main.cpp | 2 +- examples/frames/CMakeLists.txt | 2 +- examples/frames/Frame.cpp | 2 +- examples/frames/Frame.h | 2 +- examples/frames/main.cpp | 2 +- examples/gallery/CMakeLists.txt | 2 +- examples/gallery/Page.cpp | 2 +- examples/gallery/Page.h | 2 +- examples/gallery/button/ButtonPage.cpp | 2 +- examples/gallery/button/ButtonPage.h | 2 +- examples/gallery/dialog/DialogPage.cpp | 2 +- examples/gallery/dialog/DialogPage.h | 2 +- examples/gallery/inputs/InputPage.cpp | 2 +- examples/gallery/inputs/InputPage.h | 2 +- examples/gallery/label/LabelPage.cpp | 2 +- examples/gallery/label/LabelPage.h | 2 +- examples/gallery/listbox/ListBoxPage.cpp | 2 +- examples/gallery/listbox/ListBoxPage.h | 2 +- examples/gallery/main.cpp | 2 +- examples/gallery/progressbar/ProgressBarPage.cpp | 2 +- examples/gallery/progressbar/ProgressBarPage.h | 2 +- examples/gallery/selector/SelectorPage.cpp | 2 +- examples/gallery/selector/SelectorPage.h | 2 +- examples/glabels/CMakeLists.txt | 2 +- examples/glabels/main.cpp | 2 +- examples/iotdashboard/MainItem.h | 5 +++++ examples/layouts/ButtonBox.cpp | 2 +- examples/layouts/ButtonBox.h | 2 +- examples/layouts/CMakeLists.txt | 2 +- examples/layouts/DynamicConstraintsPage.cpp | 2 +- examples/layouts/DynamicConstraintsPage.h | 2 +- examples/layouts/FlowLayoutPage.cpp | 2 +- examples/layouts/FlowLayoutPage.h | 2 +- examples/layouts/GridLayoutPage.cpp | 2 +- examples/layouts/GridLayoutPage.h | 2 +- examples/layouts/LinearLayoutPage.cpp | 2 +- examples/layouts/LinearLayoutPage.h | 2 +- examples/layouts/StackLayoutPage.cpp | 2 +- examples/layouts/StackLayoutPage.h | 2 +- examples/layouts/SwipeViewPage.cpp | 2 +- examples/layouts/SwipeViewPage.h | 2 +- examples/layouts/TestRectangle.cpp | 2 +- examples/layouts/TestRectangle.h | 2 +- examples/layouts/main.cpp | 2 +- examples/mycontrols/CMakeLists.txt | 2 +- examples/mycontrols/MySkin.cpp | 2 +- examples/mycontrols/MySkin.h | 2 +- examples/mycontrols/MyToggleButton.cpp | 2 +- examples/mycontrols/MyToggleButton.h | 2 +- examples/mycontrols/MyToggleButtonSkinlet.cpp | 2 +- examples/mycontrols/MyToggleButtonSkinlet.h | 2 +- examples/mycontrols/main.cpp | 2 +- examples/qvgviewer/CMakeLists.txt | 2 +- examples/qvgviewer/MainWindow.cpp | 2 +- examples/qvgviewer/MainWindow.h | 2 +- examples/qvgviewer/main.cpp | 2 +- examples/tabview/CMakeLists.txt | 2 +- examples/tabview/CustomSlider.cpp | 2 +- examples/tabview/CustomSlider.h | 2 +- examples/tabview/CustomSliderSkinlet.cpp | 2 +- examples/tabview/CustomSliderSkinlet.h | 2 +- examples/tabview/OtherSlider.cpp | 2 +- examples/tabview/OtherSlider.h | 2 +- examples/tabview/main.cpp | 2 +- examples/thumbnails/CMakeLists.txt | 2 +- examples/thumbnails/main.cpp | 2 +- inputcontext/CMakeLists.txt | 2 +- inputcontext/QskInputContextGlobal.h | 2 +- inputcontext/QskInputContextPlugin.cpp | 2 +- playground/anchors/AnchorBox.cpp | 2 +- playground/anchors/AnchorBox.h | 2 +- playground/anchors/CMakeLists.txt | 2 +- playground/anchors/main.cpp | 2 +- playground/charts/CMakeLists.txt | 2 +- playground/charts/ChartSample.cpp | 2 +- playground/charts/ChartSample.h | 2 +- playground/charts/ChartView.cpp | 2 +- playground/charts/ChartView.h | 4 ++-- playground/charts/CircularChart.cpp | 4 ++-- playground/charts/CircularChart.h | 4 ++-- playground/charts/CircularChartSkinlet.cpp | 2 +- playground/charts/CircularChartSkinlet.h | 2 +- playground/charts/StackedChart.cpp | 2 +- playground/charts/StackedChart.h | 4 ++-- playground/charts/main.cpp | 2 +- playground/dialogbuttons/CMakeLists.txt | 2 +- playground/dialogbuttons/Window.cpp | 2 +- playground/dialogbuttons/Window.h | 2 +- playground/dialogbuttons/main.cpp | 2 +- playground/dials/CMakeLists.txt | 2 +- playground/dials/Dashboard.cpp | 2 +- playground/dials/Dashboard.h | 2 +- playground/dials/Dial.cpp | 2 +- playground/dials/Dial.h | 2 +- playground/dials/DialSkinlet.cpp | 2 +- playground/dials/DialSkinlet.h | 2 +- playground/dials/MainWindow.h | 2 +- playground/dials/SkinFactory.cpp | 2 +- playground/dials/SkinFactory.h | 2 +- playground/dials/main.cpp | 2 +- playground/gradients/CMakeLists.txt | 2 +- playground/gradients/GradientQuickShape.cpp | 2 +- playground/gradients/GradientQuickShape.h | 2 +- playground/gradients/GradientView.cpp | 2 +- playground/gradients/GradientView.h | 2 +- playground/gradients/main.cpp | 2 +- playground/grids/CMakeLists.txt | 2 +- playground/grids/GridAccessor.cpp | 2 +- playground/grids/GridAccessor.h | 2 +- playground/grids/GridGraphics.cpp | 2 +- playground/grids/GridGraphics.h | 2 +- playground/grids/GridQuick.cpp | 2 +- playground/grids/GridQuick.h | 2 +- playground/grids/GridSkinny.cpp | 2 +- playground/grids/GridSkinny.h | 2 +- playground/grids/GridWidgets.cpp | 2 +- playground/grids/GridWidgets.h | 2 +- playground/grids/TestBox.cpp | 2 +- playground/grids/TestBox.h | 2 +- playground/grids/main.cpp | 2 +- playground/images/CMakeLists.txt | 2 +- playground/images/Image.cpp | 2 +- playground/images/Image.h | 2 +- playground/images/main.cpp | 2 +- playground/inputpanel/CMakeLists.txt | 2 +- playground/inputpanel/main.cpp | 2 +- playground/invoker/CMakeLists.txt | 2 +- playground/invoker/Callback.cpp | 2 +- playground/invoker/Callback.h | 2 +- playground/invoker/Invoker.cpp | 2 +- playground/invoker/Invoker.h | 2 +- playground/invoker/main.cpp | 2 +- playground/plots/CMakeLists.txt | 2 +- playground/plots/Plot.cpp | 4 ++-- playground/plots/Plot.h | 4 ++-- playground/plots/PlotCursor.cpp | 4 ++-- playground/plots/PlotCursor.h | 4 ++-- playground/plots/PlotCursorSkinlet.cpp | 2 +- playground/plots/PlotCursorSkinlet.h | 2 +- playground/plots/PlotSkin.cpp | 4 ++-- playground/plots/PlotSkin.h | 4 ++-- playground/plots/QskPlotCorridor.cpp | 4 ++-- playground/plots/QskPlotCorridor.h | 2 +- playground/plots/QskPlotCorridorData.cpp | 4 ++-- playground/plots/QskPlotCorridorData.h | 4 ++-- playground/plots/QskPlotCorridorSkinlet.cpp | 2 +- playground/plots/QskPlotCorridorSkinlet.h | 2 +- playground/plots/QskPlotCurve.cpp | 4 ++-- playground/plots/QskPlotCurve.h | 4 ++-- playground/plots/QskPlotCurveData.cpp | 4 ++-- playground/plots/QskPlotCurveData.h | 4 ++-- playground/plots/QskPlotCurveSkinlet.cpp | 2 +- playground/plots/QskPlotCurveSkinlet.h | 2 +- playground/plots/QskPlotGrid.cpp | 4 ++-- playground/plots/QskPlotGrid.h | 2 +- playground/plots/QskPlotGridSkinlet.cpp | 2 +- playground/plots/QskPlotGridSkinlet.h | 2 +- playground/plots/QskPlotItem.cpp | 4 ++-- playground/plots/QskPlotItem.h | 4 ++-- playground/plots/QskPlotNamespace.h | 2 +- playground/plots/QskPlotView.cpp | 4 ++-- playground/plots/QskPlotView.h | 4 ++-- playground/plots/QskPlotViewSkinlet.cpp | 2 +- playground/plots/QskPlotViewSkinlet.h | 2 +- playground/plots/main.cpp | 4 ++-- playground/shadows/ArcPage.cpp | 2 +- playground/shadows/ArcPage.h | 2 +- playground/shadows/BoxPage.cpp | 2 +- playground/shadows/BoxPage.h | 2 +- playground/shadows/CMakeLists.txt | 2 +- playground/shadows/ShadowedArc.cpp | 2 +- playground/shadows/ShadowedArc.h | 2 +- playground/shadows/ShadowedBox.cpp | 2 +- playground/shadows/ShadowedBox.h | 2 +- playground/shadows/Slider.cpp | 2 +- playground/shadows/Slider.h | 2 +- playground/shadows/main.cpp | 2 +- playground/shapes/CMakeLists.txt | 2 +- playground/shapes/GeometricShape.cpp | 2 +- playground/shapes/GeometricShape.h | 2 +- playground/shapes/ShapeItem.cpp | 2 +- playground/shapes/ShapeItem.h | 2 +- playground/shapes/Stroke.cpp | 2 +- playground/shapes/Stroke.h | 2 +- playground/shapes/Window.cpp | 2 +- playground/shapes/Window.h | 2 +- playground/shapes/main.cpp | 2 +- playground/webview/CMakeLists.txt | 2 +- playground/webview/main.cpp | 2 +- qmlexport/CMakeLists.txt | 4 ++-- qmlexport/QskLayoutQml.cpp | 2 +- qmlexport/QskLayoutQml.h | 2 +- qmlexport/QskMainQml.cpp | 2 +- qmlexport/QskMainQml.h | 2 +- qmlexport/QskQml.cpp | 2 +- qmlexport/QskQml.h | 2 +- qmlexport/QskQml.hpp | 2 +- qmlexport/QskQmlGlobal.h | 2 +- qmlexport/QskShortcutQml.cpp | 2 +- qmlexport/QskShortcutQml.h | 2 +- skins/fluent2/QskFluent2Global.h | 2 +- skins/fluent2/QskFluent2Skin.cpp | 2 +- skins/fluent2/QskFluent2Skin.h | 2 +- skins/fluent2/QskFluent2SkinFactory.cpp | 2 +- skins/fluent2/QskFluent2SkinFactory.h | 2 +- skins/fluent2/QskFluent2Theme.cpp | 2 +- skins/fluent2/QskFluent2Theme.h | 2 +- skins/material3/CMakeLists.txt | 2 +- skins/material3/QskMaterial3Global.h | 2 +- skins/material3/QskMaterial3Skin.cpp | 2 +- skins/material3/QskMaterial3Skin.h | 2 +- skins/material3/QskMaterial3SkinFactory.cpp | 2 +- skins/material3/QskMaterial3SkinFactory.h | 2 +- skins/squiek/CMakeLists.txt | 2 +- skins/squiek/QskSquiekGlobal.h | 2 +- skins/squiek/QskSquiekSkin.cpp | 2 +- skins/squiek/QskSquiekSkin.h | 2 +- skins/squiek/QskSquiekSkinFactory.cpp | 2 +- skins/squiek/QskSquiekSkinFactory.h | 2 +- src/CMakeLists.txt | 4 ++-- src/common/QskArcMetrics.cpp | 2 +- src/common/QskArcMetrics.h | 2 +- src/common/QskAspect.cpp | 2 +- src/common/QskAspect.h | 2 +- src/common/QskBoxBorderColors.cpp | 2 +- src/common/QskBoxBorderColors.h | 2 +- src/common/QskBoxBorderMetrics.cpp | 2 +- src/common/QskBoxBorderMetrics.h | 2 +- src/common/QskBoxHints.cpp | 2 +- src/common/QskBoxHints.h | 2 +- src/common/QskBoxShapeMetrics.cpp | 2 +- src/common/QskBoxShapeMetrics.h | 2 +- src/common/QskFunctions.cpp | 5 +++++ src/common/QskFunctions.h | 2 +- src/common/QskGlobal.h | 2 +- src/common/QskGradient.cpp | 2 +- src/common/QskGradient.h | 2 +- src/common/QskGradientDirection.cpp | 2 +- src/common/QskGradientDirection.h | 2 +- src/common/QskGradientStop.cpp | 2 +- src/common/QskGradientStop.h | 2 +- src/common/QskGraduation.cpp | 2 +- src/common/QskGraduation.h | 2 +- src/common/QskGraduationMetrics.cpp | 5 +++++ src/common/QskGraduationMetrics.h | 2 +- src/common/QskHctColor.h | 2 +- src/common/QskIntervalF.cpp | 2 +- src/common/QskIntervalF.h | 2 +- src/common/QskLabelData.cpp | 2 +- src/common/QskLabelData.h | 2 +- src/common/QskMargins.cpp | 5 +++++ src/common/QskMargins.h | 2 +- src/common/QskMetaFunction.cpp | 2 +- src/common/QskMetaFunction.h | 2 +- src/common/QskMetaFunction.hpp | 2 +- src/common/QskMetaInvokable.cpp | 2 +- src/common/QskMetaInvokable.h | 2 +- src/common/QskNamespace.h | 2 +- src/common/QskObjectCounter.cpp | 2 +- src/common/QskObjectCounter.h | 2 +- src/common/QskPlacementPolicy.cpp | 2 +- src/common/QskPlacementPolicy.h | 2 +- src/common/QskPlatform.cpp | 5 +++++ src/common/QskPlatform.h | 2 +- src/common/QskRgbValue.cpp | 2 +- src/common/QskRgbValue.h | 2 +- src/common/QskShadowMetrics.cpp | 2 +- src/common/QskShadowMetrics.h | 2 +- src/common/QskSizePolicy.cpp | 2 +- src/common/QskSizePolicy.h | 2 +- src/common/QskStateCombination.h | 2 +- src/common/QskStippleMetrics.cpp | 2 +- src/common/QskStippleMetrics.h | 2 +- src/common/QskTextColors.cpp | 2 +- src/common/QskTextColors.h | 2 +- src/common/QskTextOptions.cpp | 2 +- src/common/QskTextOptions.h | 2 +- src/common/QskTickmarks.cpp | 2 +- src/common/QskTickmarks.h | 2 +- src/controls/QskAbstractButton.cpp | 2 +- src/controls/QskAbstractButton.h | 2 +- src/controls/QskAnimationHint.cpp | 2 +- src/controls/QskAnimationHint.h | 2 +- src/controls/QskAnimator.cpp | 2 +- src/controls/QskAnimator.h | 2 +- src/controls/QskBoundedControl.cpp | 2 +- src/controls/QskBoundedControl.h | 2 +- src/controls/QskBoundedInput.cpp | 2 +- src/controls/QskBoundedInput.h | 2 +- src/controls/QskBoundedRangeInput.cpp | 2 +- src/controls/QskBoundedRangeInput.h | 2 +- src/controls/QskBoundedValueInput.cpp | 2 +- src/controls/QskBoundedValueInput.h | 2 +- src/controls/QskBox.cpp | 2 +- src/controls/QskBox.h | 2 +- src/controls/QskBoxSkinlet.cpp | 2 +- src/controls/QskBoxSkinlet.h | 2 +- src/controls/QskCheckBox.cpp | 2 +- src/controls/QskCheckBox.h | 2 +- src/controls/QskCheckBoxSkinlet.cpp | 2 +- src/controls/QskCheckBoxSkinlet.h | 2 +- src/controls/QskComboBox.cpp | 2 +- src/controls/QskComboBox.h | 2 +- src/controls/QskComboBoxSkinlet.cpp | 2 +- src/controls/QskComboBoxSkinlet.h | 2 +- src/controls/QskControl.cpp | 2 +- src/controls/QskControl.h | 2 +- src/controls/QskControlPrivate.cpp | 2 +- src/controls/QskControlPrivate.h | 2 +- src/controls/QskDirtyItemFilter.cpp | 2 +- src/controls/QskDirtyItemFilter.h | 2 +- src/controls/QskDrawer.cpp | 2 +- src/controls/QskDrawer.h | 2 +- src/controls/QskDrawerSkinlet.cpp | 2 +- src/controls/QskDrawerSkinlet.h | 2 +- src/controls/QskEvent.cpp | 2 +- src/controls/QskEvent.h | 2 +- src/controls/QskFlickAnimator.cpp | 2 +- src/controls/QskFlickAnimator.h | 2 +- src/controls/QskFocusIndicator.cpp | 2 +- src/controls/QskFocusIndicator.h | 2 +- src/controls/QskFocusIndicatorSkinlet.cpp | 2 +- src/controls/QskFocusIndicatorSkinlet.h | 2 +- src/controls/QskGesture.cpp | 2 +- src/controls/QskGesture.h | 2 +- src/controls/QskGestureRecognizer.cpp | 2 +- src/controls/QskGestureRecognizer.h | 2 +- src/controls/QskGraphicLabel.cpp | 2 +- src/controls/QskGraphicLabel.h | 2 +- src/controls/QskGraphicLabelSkinlet.cpp | 2 +- src/controls/QskGraphicLabelSkinlet.h | 2 +- src/controls/QskHintAnimator.cpp | 2 +- src/controls/QskHintAnimator.h | 2 +- src/controls/QskInputGrabber.cpp | 2 +- src/controls/QskInputGrabber.h | 2 +- src/controls/QskListView.cpp | 2 +- src/controls/QskListView.h | 2 +- src/controls/QskListViewSkinlet.cpp | 2 +- src/controls/QskListViewSkinlet.h | 2 +- src/controls/QskMainView.cpp | 2 +- src/controls/QskMainView.h | 2 +- src/controls/QskMenu.cpp | 2 +- src/controls/QskMenu.h | 2 +- src/controls/QskMenuSkinlet.cpp | 2 +- src/controls/QskMenuSkinlet.h | 2 +- src/controls/QskObjectTree.cpp | 2 +- src/controls/QskObjectTree.h | 2 +- src/controls/QskPageIndicator.cpp | 2 +- src/controls/QskPageIndicator.h | 2 +- src/controls/QskPageIndicatorSkinlet.cpp | 2 +- src/controls/QskPageIndicatorSkinlet.h | 2 +- src/controls/QskPanGestureRecognizer.cpp | 2 +- src/controls/QskPanGestureRecognizer.h | 2 +- src/controls/QskPopup.cpp | 2 +- src/controls/QskPopup.h | 2 +- src/controls/QskPopupSkinlet.cpp | 2 +- src/controls/QskPopupSkinlet.h | 2 +- src/controls/QskProgressBar.cpp | 2 +- src/controls/QskProgressBar.h | 2 +- src/controls/QskProgressBarSkinlet.cpp | 2 +- src/controls/QskProgressBarSkinlet.h | 2 +- src/controls/QskProgressIndicator.cpp | 2 +- src/controls/QskProgressIndicator.h | 2 +- src/controls/QskProgressIndicatorSkinlet.cpp | 2 +- src/controls/QskProgressIndicatorSkinlet.h | 2 +- src/controls/QskProgressRing.cpp | 2 +- src/controls/QskProgressRing.h | 2 +- src/controls/QskProgressRingSkinlet.cpp | 2 +- src/controls/QskProgressRingSkinlet.h | 2 +- src/controls/QskPushButton.cpp | 2 +- src/controls/QskPushButton.h | 2 +- src/controls/QskPushButtonSkinlet.cpp | 2 +- src/controls/QskPushButtonSkinlet.h | 2 +- src/controls/QskQuick.cpp | 2 +- src/controls/QskQuick.h | 2 +- src/controls/QskQuickItem.cpp | 2 +- src/controls/QskQuickItem.h | 2 +- src/controls/QskQuickItemPrivate.cpp | 2 +- src/controls/QskQuickItemPrivate.h | 2 +- src/controls/QskRadioBox.cpp | 2 +- src/controls/QskRadioBox.h | 2 +- src/controls/QskRadioBoxSkinlet.cpp | 2 +- src/controls/QskRadioBoxSkinlet.h | 2 +- src/controls/QskScrollArea.cpp | 2 +- src/controls/QskScrollArea.h | 2 +- src/controls/QskScrollBox.cpp | 2 +- src/controls/QskScrollBox.h | 2 +- src/controls/QskScrollView.cpp | 2 +- src/controls/QskScrollView.h | 2 +- src/controls/QskScrollViewSkinlet.cpp | 2 +- src/controls/QskScrollViewSkinlet.h | 2 +- src/controls/QskSegmentedBar.cpp | 2 +- src/controls/QskSegmentedBar.h | 2 +- src/controls/QskSegmentedBarSkinlet.cpp | 2 +- src/controls/QskSegmentedBarSkinlet.h | 2 +- src/controls/QskSeparator.cpp | 2 +- src/controls/QskSeparator.h | 2 +- src/controls/QskSeparatorSkinlet.cpp | 2 +- src/controls/QskSeparatorSkinlet.h | 2 +- src/controls/QskSetup.cpp | 2 +- src/controls/QskSetup.h | 2 +- src/controls/QskShortcutMap.cpp | 2 +- src/controls/QskShortcutMap.h | 2 +- src/controls/QskSimpleListBox.cpp | 2 +- src/controls/QskSimpleListBox.h | 2 +- src/controls/QskSkin.cpp | 2 +- src/controls/QskSkin.h | 2 +- src/controls/QskSkinFactory.cpp | 2 +- src/controls/QskSkinFactory.h | 2 +- src/controls/QskSkinHintTable.cpp | 2 +- src/controls/QskSkinHintTable.h | 2 +- src/controls/QskSkinHintTableEditor.cpp | 2 +- src/controls/QskSkinHintTableEditor.h | 2 +- src/controls/QskSkinManager.cpp | 2 +- src/controls/QskSkinManager.h | 2 +- src/controls/QskSkinStateChanger.h | 2 +- src/controls/QskSkinTransition.cpp | 2 +- src/controls/QskSkinTransition.h | 5 +++++ src/controls/QskSkinlet.cpp | 2 +- src/controls/QskSkinlet.h | 2 +- src/controls/QskSkinnable.cpp | 2 +- src/controls/QskSkinnable.h | 2 +- src/controls/QskSlider.cpp | 2 +- src/controls/QskSlider.h | 2 +- src/controls/QskSliderSkinlet.cpp | 2 +- src/controls/QskSliderSkinlet.h | 2 +- src/controls/QskSpinBox.cpp | 2 +- src/controls/QskSpinBox.h | 2 +- src/controls/QskSpinBoxSkinlet.cpp | 2 +- src/controls/QskSpinBoxSkinlet.h | 2 +- src/controls/QskStatusIndicator.cpp | 2 +- src/controls/QskStatusIndicator.h | 2 +- src/controls/QskStatusIndicatorSkinlet.cpp | 2 +- src/controls/QskStatusIndicatorSkinlet.h | 2 +- src/controls/QskSubWindow.cpp | 2 +- src/controls/QskSubWindow.h | 2 +- src/controls/QskSubWindowArea.cpp | 2 +- src/controls/QskSubWindowArea.h | 2 +- src/controls/QskSubWindowAreaSkinlet.cpp | 2 +- src/controls/QskSubWindowAreaSkinlet.h | 2 +- src/controls/QskSubWindowSkinlet.cpp | 2 +- src/controls/QskSubWindowSkinlet.h | 2 +- src/controls/QskSwipeView.cpp | 2 +- src/controls/QskSwipeView.h | 2 +- src/controls/QskSwitchButton.cpp | 5 +++++ src/controls/QskSwitchButton.h | 5 +++++ src/controls/QskSwitchButtonSkinlet.cpp | 2 +- src/controls/QskSwitchButtonSkinlet.h | 2 +- src/controls/QskTabBar.cpp | 2 +- src/controls/QskTabBar.h | 2 +- src/controls/QskTabButton.cpp | 2 +- src/controls/QskTabButton.h | 2 +- src/controls/QskTabButtonSkinlet.cpp | 2 +- src/controls/QskTabButtonSkinlet.h | 2 +- src/controls/QskTabView.cpp | 2 +- src/controls/QskTabView.h | 2 +- src/controls/QskTabViewSkinlet.cpp | 2 +- src/controls/QskTabViewSkinlet.h | 2 +- src/controls/QskTextInput.cpp | 2 +- src/controls/QskTextInput.h | 2 +- src/controls/QskTextInputSkinlet.cpp | 2 +- src/controls/QskTextInputSkinlet.h | 2 +- src/controls/QskTextLabel.cpp | 2 +- src/controls/QskTextLabel.h | 2 +- src/controls/QskTextLabelSkinlet.cpp | 2 +- src/controls/QskTextLabelSkinlet.h | 2 +- src/controls/QskVariantAnimator.cpp | 2 +- src/controls/QskVariantAnimator.h | 2 +- src/controls/QskWindow.cpp | 2 +- src/controls/QskWindow.h | 2 +- src/dialogs/QskDialog.cpp | 2 +- src/dialogs/QskDialog.h | 2 +- src/dialogs/QskDialogButton.cpp | 2 +- src/dialogs/QskDialogButton.h | 2 +- src/dialogs/QskDialogButtonBox.cpp | 2 +- src/dialogs/QskDialogButtonBox.h | 2 +- src/dialogs/QskDialogSubWindow.cpp | 2 +- src/dialogs/QskDialogSubWindow.h | 2 +- src/dialogs/QskDialogWindow.cpp | 2 +- src/dialogs/QskDialogWindow.h | 2 +- src/dialogs/QskMessageSubWindow.cpp | 2 +- src/dialogs/QskMessageSubWindow.h | 2 +- src/dialogs/QskMessageWindow.cpp | 2 +- src/dialogs/QskMessageWindow.h | 2 +- src/dialogs/QskSelectionSubWindow.cpp | 2 +- src/dialogs/QskSelectionSubWindow.h | 2 +- src/dialogs/QskSelectionWindow.cpp | 2 +- src/dialogs/QskSelectionWindow.h | 2 +- src/graphic/QskColorFilter.cpp | 2 +- src/graphic/QskColorFilter.h | 2 +- src/graphic/QskGraphic.cpp | 2 +- src/graphic/QskGraphic.h | 2 +- src/graphic/QskGraphicIO.cpp | 2 +- src/graphic/QskGraphicIO.h | 2 +- src/graphic/QskGraphicImageProvider.cpp | 2 +- src/graphic/QskGraphicImageProvider.h | 2 +- src/graphic/QskGraphicPaintEngine.cpp | 2 +- src/graphic/QskGraphicPaintEngine.h | 2 +- src/graphic/QskGraphicProvider.cpp | 2 +- src/graphic/QskGraphicProvider.h | 2 +- src/graphic/QskGraphicProviderMap.cpp | 2 +- src/graphic/QskGraphicProviderMap.h | 2 +- src/graphic/QskGraphicTextureFactory.cpp | 2 +- src/graphic/QskGraphicTextureFactory.h | 2 +- src/graphic/QskIcon.cpp | 2 +- src/graphic/QskIcon.h | 2 +- src/graphic/QskPainterCommand.cpp | 2 +- src/graphic/QskPainterCommand.h | 2 +- src/graphic/QskStandardSymbol.cpp | 2 +- src/graphic/QskStandardSymbol.h | 2 +- src/inputpanel/QskHunspellTextPredictor.cpp | 2 +- src/inputpanel/QskHunspellTextPredictor.h | 2 +- src/inputpanel/QskInputContext.cpp | 2 +- src/inputpanel/QskInputContext.h | 2 +- src/inputpanel/QskInputPanel.cpp | 2 +- src/inputpanel/QskInputPanel.h | 2 +- src/inputpanel/QskInputPanelBox.cpp | 2 +- src/inputpanel/QskInputPanelBox.h | 2 +- src/inputpanel/QskInputPredictionBar.cpp | 2 +- src/inputpanel/QskInputPredictionBar.h | 2 +- src/inputpanel/QskPinyinTextPredictor.cpp | 2 +- src/inputpanel/QskPinyinTextPredictor.h | 2 +- src/inputpanel/QskTextPredictor.cpp | 2 +- src/inputpanel/QskTextPredictor.h | 2 +- src/inputpanel/QskVirtualKeyboard.cpp | 2 +- src/inputpanel/QskVirtualKeyboard.h | 2 +- src/inputpanel/QskVirtualKeyboardLayouts.cpp | 2 +- src/layouts/QskGridBox.cpp | 2 +- src/layouts/QskGridBox.h | 2 +- src/layouts/QskGridLayoutEngine.cpp | 2 +- src/layouts/QskGridLayoutEngine.h | 2 +- src/layouts/QskIndexedLayoutBox.cpp | 2 +- src/layouts/QskIndexedLayoutBox.h | 2 +- src/layouts/QskLayoutChain.cpp | 2 +- src/layouts/QskLayoutChain.h | 2 +- src/layouts/QskLayoutElement.cpp | 2 +- src/layouts/QskLayoutElement.h | 2 +- src/layouts/QskLayoutEngine2D.cpp | 2 +- src/layouts/QskLayoutEngine2D.h | 2 +- src/layouts/QskLayoutMetrics.cpp | 2 +- src/layouts/QskLayoutMetrics.h | 2 +- src/layouts/QskLinearBox.cpp | 2 +- src/layouts/QskLinearBox.h | 2 +- src/layouts/QskLinearLayoutEngine.cpp | 2 +- src/layouts/QskLinearLayoutEngine.h | 2 +- src/layouts/QskStackBox.cpp | 2 +- src/layouts/QskStackBox.h | 2 +- src/layouts/QskStackBoxAnimator.cpp | 2 +- src/layouts/QskStackBoxAnimator.h | 2 +- src/layouts/QskSubcontrolLayoutEngine.cpp | 2 +- src/layouts/QskSubcontrolLayoutEngine.h | 2 +- src/nodes/QskArcNode.cpp | 2 +- src/nodes/QskArcNode.h | 2 +- src/nodes/QskArcShadowNode.cpp | 2 +- src/nodes/QskArcShadowNode.h | 2 +- src/nodes/QskBasicLinesNode.cpp | 2 +- src/nodes/QskBasicLinesNode.h | 2 +- src/nodes/QskBoxBasicStroker.cpp | 2 +- src/nodes/QskBoxBasicStroker.h | 2 +- src/nodes/QskBoxClipNode.cpp | 2 +- src/nodes/QskBoxClipNode.h | 2 +- src/nodes/QskBoxColorMap.h | 2 +- src/nodes/QskBoxFillNode.cpp | 2 +- src/nodes/QskBoxFillNode.h | 2 +- src/nodes/QskBoxGradientStroker.cpp | 2 +- src/nodes/QskBoxGradientStroker.h | 2 +- src/nodes/QskBoxMetrics.cpp | 2 +- src/nodes/QskBoxMetrics.h | 2 +- src/nodes/QskBoxNode.cpp | 2 +- src/nodes/QskBoxNode.h | 2 +- src/nodes/QskBoxRectangleNode.cpp | 2 +- src/nodes/QskBoxRectangleNode.h | 2 +- src/nodes/QskBoxRenderer.cpp | 2 +- src/nodes/QskBoxRenderer.h | 2 +- src/nodes/QskBoxShadowNode.cpp | 2 +- src/nodes/QskBoxShadowNode.h | 2 +- src/nodes/QskColorRamp.cpp | 2 +- src/nodes/QskColorRamp.h | 2 +- src/nodes/QskFillNode.cpp | 2 +- src/nodes/QskFillNode.h | 2 +- src/nodes/QskFillNodePrivate.h | 2 +- src/nodes/QskGradientMaterial.cpp | 2 +- src/nodes/QskGradientMaterial.h | 2 +- src/nodes/QskGraduationNode.cpp | 2 +- src/nodes/QskGraduationNode.h | 2 +- src/nodes/QskGraduationRenderer.cpp | 2 +- src/nodes/QskGraduationRenderer.h | 2 +- src/nodes/QskGraphicNode.cpp | 2 +- src/nodes/QskGraphicNode.h | 2 +- src/nodes/QskLinesNode.cpp | 2 +- src/nodes/QskLinesNode.h | 2 +- src/nodes/QskPaintedNode.cpp | 2 +- src/nodes/QskPaintedNode.h | 2 +- src/nodes/QskPlainTextRenderer.cpp | 2 +- src/nodes/QskPlainTextRenderer.h | 2 +- src/nodes/QskRectangleNode.cpp | 2 +- src/nodes/QskRectangleNode.h | 2 +- src/nodes/QskRichTextRenderer.cpp | 2 +- src/nodes/QskRichTextRenderer.h | 2 +- src/nodes/QskSGNode.cpp | 2 +- src/nodes/QskSGNode.h | 2 +- src/nodes/QskSceneTexture.cpp | 2 +- src/nodes/QskSceneTexture.h | 2 +- src/nodes/QskShapeNode.cpp | 2 +- src/nodes/QskShapeNode.h | 2 +- src/nodes/QskStippledLineRenderer.cpp | 2 +- src/nodes/QskStippledLineRenderer.h | 2 +- src/nodes/QskStrokeNode.cpp | 2 +- src/nodes/QskStrokeNode.h | 2 +- src/nodes/QskTextNode.cpp | 2 +- src/nodes/QskTextNode.h | 2 +- src/nodes/QskTextRenderer.cpp | 2 +- src/nodes/QskTextRenderer.h | 2 +- src/nodes/QskTextureRenderer.cpp | 2 +- src/nodes/QskTextureRenderer.h | 2 +- src/nodes/QskTreeNode.cpp | 2 +- src/nodes/QskTreeNode.h | 2 +- src/nodes/QskVertex.cpp | 2 +- src/nodes/QskVertex.h | 2 +- support/CMakeLists.txt | 2 +- support/SkinnyGlobal.h | 2 +- support/SkinnyNamespace.cpp | 2 +- support/SkinnyNamespace.h | 2 +- support/SkinnyShapeFactory.cpp | 2 +- support/SkinnyShapeFactory.h | 2 +- support/SkinnyShapeProvider.cpp | 2 +- support/SkinnyShapeProvider.h | 2 +- support/SkinnyShortcut.cpp | 5 +++++ support/SkinnyShortcut.h | 2 +- tools/svg2qvg/CMakeLists.txt | 2 +- tools/svg2qvg/main.cpp | 2 +- 644 files changed, 705 insertions(+), 660 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d1eeaab..539979e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/cmake/QSkinnyTools.cmake b/cmake/QSkinnyTools.cmake index ab6bc25b..119ca7c3 100644 --- a/cmake/QSkinnyTools.cmake +++ b/cmake/QSkinnyTools.cmake @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/cmake/QskBuildFunctions.cmake b/cmake/QskBuildFunctions.cmake index dddf0004..ca679293 100644 --- a/cmake/QskBuildFunctions.cmake +++ b/cmake/QskBuildFunctions.cmake @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/cmake/QskConfigMacros.cmake b/cmake/QskConfigMacros.cmake index 8cc8992b..6b9261cc 100644 --- a/cmake/QskConfigMacros.cmake +++ b/cmake/QskConfigMacros.cmake @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/cmake/QskFindMacros.cmake b/cmake/QskFindMacros.cmake index b27d24d2..f2791254 100644 --- a/cmake/QskFindMacros.cmake +++ b/cmake/QskFindMacros.cmake @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a9951719..e9419b42 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/boxes/Box.cpp b/examples/boxes/Box.cpp index e4a336ba..991a8651 100644 --- a/examples/boxes/Box.cpp +++ b/examples/boxes/Box.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/boxes/Box.h b/examples/boxes/Box.h index ffc85ad0..ede059c5 100644 --- a/examples/boxes/Box.h +++ b/examples/boxes/Box.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/boxes/CMakeLists.txt b/examples/boxes/CMakeLists.txt index 9ad84b97..3618cb1d 100644 --- a/examples/boxes/CMakeLists.txt +++ b/examples/boxes/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/boxes/main.cpp b/examples/boxes/main.cpp index a7ca9108..cfb52c1e 100644 --- a/examples/boxes/main.cpp +++ b/examples/boxes/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/buttons/CMakeLists.txt b/examples/buttons/CMakeLists.txt index 5e6d8ffa..520b2fb3 100644 --- a/examples/buttons/CMakeLists.txt +++ b/examples/buttons/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/buttons/main.cpp b/examples/buttons/main.cpp index 517976d9..ecf1f8ce 100644 --- a/examples/buttons/main.cpp +++ b/examples/buttons/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/desktop/CMakeLists.txt b/examples/desktop/CMakeLists.txt index 92141750..5a99225b 100644 --- a/examples/desktop/CMakeLists.txt +++ b/examples/desktop/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/desktop/main.cpp b/examples/desktop/main.cpp index 5d1351bb..f5d37909 100644 --- a/examples/desktop/main.cpp +++ b/examples/desktop/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/frames/CMakeLists.txt b/examples/frames/CMakeLists.txt index 467cc3b5..18b1081a 100644 --- a/examples/frames/CMakeLists.txt +++ b/examples/frames/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/frames/Frame.cpp b/examples/frames/Frame.cpp index 45f2b170..ecbfcb1f 100644 --- a/examples/frames/Frame.cpp +++ b/examples/frames/Frame.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/frames/Frame.h b/examples/frames/Frame.h index 44a631e8..b7cba2c9 100644 --- a/examples/frames/Frame.h +++ b/examples/frames/Frame.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/frames/main.cpp b/examples/frames/main.cpp index 2dd76ba4..72af953a 100644 --- a/examples/frames/main.cpp +++ b/examples/frames/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/CMakeLists.txt b/examples/gallery/CMakeLists.txt index e229a560..4941b1ff 100644 --- a/examples/gallery/CMakeLists.txt +++ b/examples/gallery/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/gallery/Page.cpp b/examples/gallery/Page.cpp index 757e60b6..1b32a3db 100644 --- a/examples/gallery/Page.cpp +++ b/examples/gallery/Page.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/Page.h b/examples/gallery/Page.h index 6a825e9e..774a0628 100644 --- a/examples/gallery/Page.h +++ b/examples/gallery/Page.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/button/ButtonPage.cpp b/examples/gallery/button/ButtonPage.cpp index 047802af..7ba35788 100644 --- a/examples/gallery/button/ButtonPage.cpp +++ b/examples/gallery/button/ButtonPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/button/ButtonPage.h b/examples/gallery/button/ButtonPage.h index ed805bb6..ee94ecce 100644 --- a/examples/gallery/button/ButtonPage.h +++ b/examples/gallery/button/ButtonPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/dialog/DialogPage.cpp b/examples/gallery/dialog/DialogPage.cpp index 0e9e7946..d2dccd1e 100644 --- a/examples/gallery/dialog/DialogPage.cpp +++ b/examples/gallery/dialog/DialogPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/dialog/DialogPage.h b/examples/gallery/dialog/DialogPage.h index ca52dcdf..46a42cb8 100644 --- a/examples/gallery/dialog/DialogPage.h +++ b/examples/gallery/dialog/DialogPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/inputs/InputPage.cpp b/examples/gallery/inputs/InputPage.cpp index 3e19e1ee..efc52e11 100644 --- a/examples/gallery/inputs/InputPage.cpp +++ b/examples/gallery/inputs/InputPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/inputs/InputPage.h b/examples/gallery/inputs/InputPage.h index 6e0357ec..1899a679 100644 --- a/examples/gallery/inputs/InputPage.h +++ b/examples/gallery/inputs/InputPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/label/LabelPage.cpp b/examples/gallery/label/LabelPage.cpp index 4754b3ce..f009b098 100644 --- a/examples/gallery/label/LabelPage.cpp +++ b/examples/gallery/label/LabelPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/label/LabelPage.h b/examples/gallery/label/LabelPage.h index 89f31d6c..b25cc549 100644 --- a/examples/gallery/label/LabelPage.h +++ b/examples/gallery/label/LabelPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/listbox/ListBoxPage.cpp b/examples/gallery/listbox/ListBoxPage.cpp index 4393e32e..455d2afc 100644 --- a/examples/gallery/listbox/ListBoxPage.cpp +++ b/examples/gallery/listbox/ListBoxPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/listbox/ListBoxPage.h b/examples/gallery/listbox/ListBoxPage.h index 0fc44927..5bc55248 100644 --- a/examples/gallery/listbox/ListBoxPage.h +++ b/examples/gallery/listbox/ListBoxPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index 6861c778..17a91c07 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/progressbar/ProgressBarPage.cpp b/examples/gallery/progressbar/ProgressBarPage.cpp index 8655343b..668f4996 100644 --- a/examples/gallery/progressbar/ProgressBarPage.cpp +++ b/examples/gallery/progressbar/ProgressBarPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/progressbar/ProgressBarPage.h b/examples/gallery/progressbar/ProgressBarPage.h index 7f18c15a..82c883c5 100644 --- a/examples/gallery/progressbar/ProgressBarPage.h +++ b/examples/gallery/progressbar/ProgressBarPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/selector/SelectorPage.cpp b/examples/gallery/selector/SelectorPage.cpp index 6a1c4d88..32797ba6 100644 --- a/examples/gallery/selector/SelectorPage.cpp +++ b/examples/gallery/selector/SelectorPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/gallery/selector/SelectorPage.h b/examples/gallery/selector/SelectorPage.h index 740921f0..c51678be 100644 --- a/examples/gallery/selector/SelectorPage.h +++ b/examples/gallery/selector/SelectorPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/glabels/CMakeLists.txt b/examples/glabels/CMakeLists.txt index e9e9ca76..a69cbeb2 100644 --- a/examples/glabels/CMakeLists.txt +++ b/examples/glabels/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/glabels/main.cpp b/examples/glabels/main.cpp index 0885bc30..c8c1c09b 100644 --- a/examples/glabels/main.cpp +++ b/examples/glabels/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/iotdashboard/MainItem.h b/examples/iotdashboard/MainItem.h index feb6ef5d..388c2541 100644 --- a/examples/iotdashboard/MainItem.h +++ b/examples/iotdashboard/MainItem.h @@ -1,3 +1,8 @@ +/****************************************************************************** + * Copyright (C) 2021 Edelhirsch Software GmbH + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #pragma once #include diff --git a/examples/layouts/ButtonBox.cpp b/examples/layouts/ButtonBox.cpp index c63cf67b..c3eb5329 100644 --- a/examples/layouts/ButtonBox.cpp +++ b/examples/layouts/ButtonBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/ButtonBox.h b/examples/layouts/ButtonBox.h index 45622593..6464356f 100644 --- a/examples/layouts/ButtonBox.h +++ b/examples/layouts/ButtonBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/CMakeLists.txt b/examples/layouts/CMakeLists.txt index a4b57bc3..9b80459c 100644 --- a/examples/layouts/CMakeLists.txt +++ b/examples/layouts/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/layouts/DynamicConstraintsPage.cpp b/examples/layouts/DynamicConstraintsPage.cpp index 06fce56d..a05c88af 100644 --- a/examples/layouts/DynamicConstraintsPage.cpp +++ b/examples/layouts/DynamicConstraintsPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/DynamicConstraintsPage.h b/examples/layouts/DynamicConstraintsPage.h index 773fa8d2..6e583747 100644 --- a/examples/layouts/DynamicConstraintsPage.h +++ b/examples/layouts/DynamicConstraintsPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/FlowLayoutPage.cpp b/examples/layouts/FlowLayoutPage.cpp index 8fba6a29..07baff86 100644 --- a/examples/layouts/FlowLayoutPage.cpp +++ b/examples/layouts/FlowLayoutPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/FlowLayoutPage.h b/examples/layouts/FlowLayoutPage.h index a75f99cf..9500f8d5 100644 --- a/examples/layouts/FlowLayoutPage.h +++ b/examples/layouts/FlowLayoutPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/GridLayoutPage.cpp b/examples/layouts/GridLayoutPage.cpp index 22b28867..e3f791c1 100644 --- a/examples/layouts/GridLayoutPage.cpp +++ b/examples/layouts/GridLayoutPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/GridLayoutPage.h b/examples/layouts/GridLayoutPage.h index f1748c48..9690d752 100644 --- a/examples/layouts/GridLayoutPage.h +++ b/examples/layouts/GridLayoutPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/LinearLayoutPage.cpp b/examples/layouts/LinearLayoutPage.cpp index 71ffe6a5..3b348aa4 100644 --- a/examples/layouts/LinearLayoutPage.cpp +++ b/examples/layouts/LinearLayoutPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/LinearLayoutPage.h b/examples/layouts/LinearLayoutPage.h index b0c32786..0facf930 100644 --- a/examples/layouts/LinearLayoutPage.h +++ b/examples/layouts/LinearLayoutPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/StackLayoutPage.cpp b/examples/layouts/StackLayoutPage.cpp index 39241fb4..7d593c95 100644 --- a/examples/layouts/StackLayoutPage.cpp +++ b/examples/layouts/StackLayoutPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/StackLayoutPage.h b/examples/layouts/StackLayoutPage.h index 3e90a82b..cf75d298 100644 --- a/examples/layouts/StackLayoutPage.h +++ b/examples/layouts/StackLayoutPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/SwipeViewPage.cpp b/examples/layouts/SwipeViewPage.cpp index 9ce05c65..328bd2e0 100644 --- a/examples/layouts/SwipeViewPage.cpp +++ b/examples/layouts/SwipeViewPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/SwipeViewPage.h b/examples/layouts/SwipeViewPage.h index 02ce94dd..c608824e 100644 --- a/examples/layouts/SwipeViewPage.h +++ b/examples/layouts/SwipeViewPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/TestRectangle.cpp b/examples/layouts/TestRectangle.cpp index a0b85c83..e1232206 100644 --- a/examples/layouts/TestRectangle.cpp +++ b/examples/layouts/TestRectangle.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/TestRectangle.h b/examples/layouts/TestRectangle.h index 0cbd64a3..c451bdb4 100644 --- a/examples/layouts/TestRectangle.h +++ b/examples/layouts/TestRectangle.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/layouts/main.cpp b/examples/layouts/main.cpp index 5af6b1e2..971429fa 100644 --- a/examples/layouts/main.cpp +++ b/examples/layouts/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/CMakeLists.txt b/examples/mycontrols/CMakeLists.txt index 0d566205..193f34d4 100644 --- a/examples/mycontrols/CMakeLists.txt +++ b/examples/mycontrols/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/mycontrols/MySkin.cpp b/examples/mycontrols/MySkin.cpp index 9fcaef8e..fadc8d79 100644 --- a/examples/mycontrols/MySkin.cpp +++ b/examples/mycontrols/MySkin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/MySkin.h b/examples/mycontrols/MySkin.h index e28b08af..1c01e1ff 100644 --- a/examples/mycontrols/MySkin.h +++ b/examples/mycontrols/MySkin.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/MyToggleButton.cpp b/examples/mycontrols/MyToggleButton.cpp index 33cd7b9e..4619e1c3 100644 --- a/examples/mycontrols/MyToggleButton.cpp +++ b/examples/mycontrols/MyToggleButton.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/MyToggleButton.h b/examples/mycontrols/MyToggleButton.h index 634e3a7c..ccee81ef 100644 --- a/examples/mycontrols/MyToggleButton.h +++ b/examples/mycontrols/MyToggleButton.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/MyToggleButtonSkinlet.cpp b/examples/mycontrols/MyToggleButtonSkinlet.cpp index ec846467..115f5ac9 100644 --- a/examples/mycontrols/MyToggleButtonSkinlet.cpp +++ b/examples/mycontrols/MyToggleButtonSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/MyToggleButtonSkinlet.h b/examples/mycontrols/MyToggleButtonSkinlet.h index ce35dc6d..ad57e5d4 100644 --- a/examples/mycontrols/MyToggleButtonSkinlet.h +++ b/examples/mycontrols/MyToggleButtonSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/mycontrols/main.cpp b/examples/mycontrols/main.cpp index e8795648..c57914f7 100644 --- a/examples/mycontrols/main.cpp +++ b/examples/mycontrols/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/qvgviewer/CMakeLists.txt b/examples/qvgviewer/CMakeLists.txt index 2c11863f..2ff2c0d8 100644 --- a/examples/qvgviewer/CMakeLists.txt +++ b/examples/qvgviewer/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/qvgviewer/MainWindow.cpp b/examples/qvgviewer/MainWindow.cpp index 1a53bef4..bd32d95f 100644 --- a/examples/qvgviewer/MainWindow.cpp +++ b/examples/qvgviewer/MainWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/qvgviewer/MainWindow.h b/examples/qvgviewer/MainWindow.h index 458d4601..aca9d988 100644 --- a/examples/qvgviewer/MainWindow.h +++ b/examples/qvgviewer/MainWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/qvgviewer/main.cpp b/examples/qvgviewer/main.cpp index b5b6af36..9dc3ede2 100644 --- a/examples/qvgviewer/main.cpp +++ b/examples/qvgviewer/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/CMakeLists.txt b/examples/tabview/CMakeLists.txt index 0de6ffef..70e4c967 100644 --- a/examples/tabview/CMakeLists.txt +++ b/examples/tabview/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/tabview/CustomSlider.cpp b/examples/tabview/CustomSlider.cpp index de9c56cb..aedfec13 100644 --- a/examples/tabview/CustomSlider.cpp +++ b/examples/tabview/CustomSlider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/CustomSlider.h b/examples/tabview/CustomSlider.h index a3935b49..628a171e 100644 --- a/examples/tabview/CustomSlider.h +++ b/examples/tabview/CustomSlider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/CustomSliderSkinlet.cpp b/examples/tabview/CustomSliderSkinlet.cpp index 3dc52ae8..af511854 100644 --- a/examples/tabview/CustomSliderSkinlet.cpp +++ b/examples/tabview/CustomSliderSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/CustomSliderSkinlet.h b/examples/tabview/CustomSliderSkinlet.h index 369c5456..deb23a6f 100644 --- a/examples/tabview/CustomSliderSkinlet.h +++ b/examples/tabview/CustomSliderSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/OtherSlider.cpp b/examples/tabview/OtherSlider.cpp index 97c93b8c..b8c7f157 100644 --- a/examples/tabview/OtherSlider.cpp +++ b/examples/tabview/OtherSlider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/OtherSlider.h b/examples/tabview/OtherSlider.h index ebdb4ed3..0cb01910 100644 --- a/examples/tabview/OtherSlider.h +++ b/examples/tabview/OtherSlider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/tabview/main.cpp b/examples/tabview/main.cpp index 020fe49f..1311650d 100644 --- a/examples/tabview/main.cpp +++ b/examples/tabview/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/examples/thumbnails/CMakeLists.txt b/examples/thumbnails/CMakeLists.txt index 8476ae68..4d9b7ef8 100644 --- a/examples/thumbnails/CMakeLists.txt +++ b/examples/thumbnails/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/examples/thumbnails/main.cpp b/examples/thumbnails/main.cpp index 4c577de0..98e0f78a 100644 --- a/examples/thumbnails/main.cpp +++ b/examples/thumbnails/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/inputcontext/CMakeLists.txt b/inputcontext/CMakeLists.txt index 43a9db6d..0c1a7490 100644 --- a/inputcontext/CMakeLists.txt +++ b/inputcontext/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/inputcontext/QskInputContextGlobal.h b/inputcontext/QskInputContextGlobal.h index 2e1437e6..acc2d3eb 100644 --- a/inputcontext/QskInputContextGlobal.h +++ b/inputcontext/QskInputContextGlobal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/inputcontext/QskInputContextPlugin.cpp b/inputcontext/QskInputContextPlugin.cpp index 8d7d9e0e..18412cf3 100644 --- a/inputcontext/QskInputContextPlugin.cpp +++ b/inputcontext/QskInputContextPlugin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/anchors/AnchorBox.cpp b/playground/anchors/AnchorBox.cpp index 86101900..27127230 100644 --- a/playground/anchors/AnchorBox.cpp +++ b/playground/anchors/AnchorBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/anchors/AnchorBox.h b/playground/anchors/AnchorBox.h index f44093ce..3a501daa 100644 --- a/playground/anchors/AnchorBox.h +++ b/playground/anchors/AnchorBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/anchors/CMakeLists.txt b/playground/anchors/CMakeLists.txt index 56dbb69f..02fdc7dd 100644 --- a/playground/anchors/CMakeLists.txt +++ b/playground/anchors/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/anchors/main.cpp b/playground/anchors/main.cpp index 695b61d2..0675cd99 100644 --- a/playground/anchors/main.cpp +++ b/playground/anchors/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/charts/CMakeLists.txt b/playground/charts/CMakeLists.txt index bcbd2f24..7284c940 100644 --- a/playground/charts/CMakeLists.txt +++ b/playground/charts/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # This file may be used under the terms of the 3-clause BSD License ############################################################################ diff --git a/playground/charts/ChartSample.cpp b/playground/charts/ChartSample.cpp index f2e6a4f6..5db412a5 100644 --- a/playground/charts/ChartSample.cpp +++ b/playground/charts/ChartSample.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/charts/ChartSample.h b/playground/charts/ChartSample.h index 710128bd..08618283 100644 --- a/playground/charts/ChartSample.h +++ b/playground/charts/ChartSample.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/charts/ChartView.cpp b/playground/charts/ChartView.cpp index cbdc66cc..527f2a05 100644 --- a/playground/charts/ChartView.cpp +++ b/playground/charts/ChartView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * This file may be used under the terms of the 3-clause BSD License *****************************************************************************/ diff --git a/playground/charts/ChartView.h b/playground/charts/ChartView.h index 808c6bd6..f947f5b5 100644 --- a/playground/charts/ChartView.h +++ b/playground/charts/ChartView.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/charts/CircularChart.cpp b/playground/charts/CircularChart.cpp index 46b92ef1..c7f3b485 100644 --- a/playground/charts/CircularChart.cpp +++ b/playground/charts/CircularChart.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "CircularChart.h" diff --git a/playground/charts/CircularChart.h b/playground/charts/CircularChart.h index d51106be..b6f914aa 100644 --- a/playground/charts/CircularChart.h +++ b/playground/charts/CircularChart.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/charts/CircularChartSkinlet.cpp b/playground/charts/CircularChartSkinlet.cpp index 79dc7217..736479a9 100644 --- a/playground/charts/CircularChartSkinlet.cpp +++ b/playground/charts/CircularChartSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/charts/CircularChartSkinlet.h b/playground/charts/CircularChartSkinlet.h index 5bc403d6..f9b43611 100644 --- a/playground/charts/CircularChartSkinlet.h +++ b/playground/charts/CircularChartSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/charts/StackedChart.cpp b/playground/charts/StackedChart.cpp index 9d984985..8fe9b7ae 100644 --- a/playground/charts/StackedChart.cpp +++ b/playground/charts/StackedChart.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * This file may be used under the terms of the 3-clause BSD License *****************************************************************************/ diff --git a/playground/charts/StackedChart.h b/playground/charts/StackedChart.h index 9efef84e..6ddc9270 100644 --- a/playground/charts/StackedChart.h +++ b/playground/charts/StackedChart.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/charts/main.cpp b/playground/charts/main.cpp index 90ab4688..d9c14a88 100644 --- a/playground/charts/main.cpp +++ b/playground/charts/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * This file may be used under the terms of the 3-clause BSD License *****************************************************************************/ diff --git a/playground/dialogbuttons/CMakeLists.txt b/playground/dialogbuttons/CMakeLists.txt index 0f0bc6c3..68fa1e01 100644 --- a/playground/dialogbuttons/CMakeLists.txt +++ b/playground/dialogbuttons/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/dialogbuttons/Window.cpp b/playground/dialogbuttons/Window.cpp index 0db8b6cb..99a53c2b 100644 --- a/playground/dialogbuttons/Window.cpp +++ b/playground/dialogbuttons/Window.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dialogbuttons/Window.h b/playground/dialogbuttons/Window.h index 6636595a..7c559595 100644 --- a/playground/dialogbuttons/Window.h +++ b/playground/dialogbuttons/Window.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dialogbuttons/main.cpp b/playground/dialogbuttons/main.cpp index b1d677d4..6d4c275c 100644 --- a/playground/dialogbuttons/main.cpp +++ b/playground/dialogbuttons/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/CMakeLists.txt b/playground/dials/CMakeLists.txt index b62b68ca..a7da047e 100644 --- a/playground/dials/CMakeLists.txt +++ b/playground/dials/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/dials/Dashboard.cpp b/playground/dials/Dashboard.cpp index d2cfa22a..bf107885 100644 --- a/playground/dials/Dashboard.cpp +++ b/playground/dials/Dashboard.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/Dashboard.h b/playground/dials/Dashboard.h index 36db2c2f..19df011f 100644 --- a/playground/dials/Dashboard.h +++ b/playground/dials/Dashboard.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/Dial.cpp b/playground/dials/Dial.cpp index a88f510a..7c842183 100644 --- a/playground/dials/Dial.cpp +++ b/playground/dials/Dial.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/Dial.h b/playground/dials/Dial.h index bcc2152f..6bd58de7 100644 --- a/playground/dials/Dial.h +++ b/playground/dials/Dial.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/DialSkinlet.cpp b/playground/dials/DialSkinlet.cpp index 243145fe..a00175e2 100644 --- a/playground/dials/DialSkinlet.cpp +++ b/playground/dials/DialSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/DialSkinlet.h b/playground/dials/DialSkinlet.h index 6c261b0e..a24365af 100644 --- a/playground/dials/DialSkinlet.h +++ b/playground/dials/DialSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/MainWindow.h b/playground/dials/MainWindow.h index f45b6733..7cf65ab2 100644 --- a/playground/dials/MainWindow.h +++ b/playground/dials/MainWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/SkinFactory.cpp b/playground/dials/SkinFactory.cpp index d0eac4a4..c03ef792 100644 --- a/playground/dials/SkinFactory.cpp +++ b/playground/dials/SkinFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/SkinFactory.h b/playground/dials/SkinFactory.h index 6bb0f2fa..8d6209df 100644 --- a/playground/dials/SkinFactory.h +++ b/playground/dials/SkinFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/dials/main.cpp b/playground/dials/main.cpp index 40624dd4..be866f01 100644 --- a/playground/dials/main.cpp +++ b/playground/dials/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/gradients/CMakeLists.txt b/playground/gradients/CMakeLists.txt index 26e4030b..cdbe015b 100644 --- a/playground/gradients/CMakeLists.txt +++ b/playground/gradients/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/gradients/GradientQuickShape.cpp b/playground/gradients/GradientQuickShape.cpp index 6def8fe2..4261920a 100644 --- a/playground/gradients/GradientQuickShape.cpp +++ b/playground/gradients/GradientQuickShape.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/gradients/GradientQuickShape.h b/playground/gradients/GradientQuickShape.h index 013b7702..8053af39 100644 --- a/playground/gradients/GradientQuickShape.h +++ b/playground/gradients/GradientQuickShape.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/gradients/GradientView.cpp b/playground/gradients/GradientView.cpp index 3d969069..b067955e 100644 --- a/playground/gradients/GradientView.cpp +++ b/playground/gradients/GradientView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/gradients/GradientView.h b/playground/gradients/GradientView.h index ed32af8e..89be3177 100644 --- a/playground/gradients/GradientView.h +++ b/playground/gradients/GradientView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/gradients/main.cpp b/playground/gradients/main.cpp index a6ffaaaf..38f91695 100644 --- a/playground/gradients/main.cpp +++ b/playground/gradients/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/CMakeLists.txt b/playground/grids/CMakeLists.txt index 43132f1e..02021e7a 100644 --- a/playground/grids/CMakeLists.txt +++ b/playground/grids/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/grids/GridAccessor.cpp b/playground/grids/GridAccessor.cpp index 273677eb..31c530f1 100644 --- a/playground/grids/GridAccessor.cpp +++ b/playground/grids/GridAccessor.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridAccessor.h b/playground/grids/GridAccessor.h index eaf827f2..f11fac74 100644 --- a/playground/grids/GridAccessor.h +++ b/playground/grids/GridAccessor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridGraphics.cpp b/playground/grids/GridGraphics.cpp index 88d60a9c..1d73cbd2 100644 --- a/playground/grids/GridGraphics.cpp +++ b/playground/grids/GridGraphics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridGraphics.h b/playground/grids/GridGraphics.h index 62be9c3b..30d00c83 100644 --- a/playground/grids/GridGraphics.h +++ b/playground/grids/GridGraphics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridQuick.cpp b/playground/grids/GridQuick.cpp index 186156b8..f185860c 100644 --- a/playground/grids/GridQuick.cpp +++ b/playground/grids/GridQuick.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridQuick.h b/playground/grids/GridQuick.h index d7e8a02c..667fedee 100644 --- a/playground/grids/GridQuick.h +++ b/playground/grids/GridQuick.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridSkinny.cpp b/playground/grids/GridSkinny.cpp index 89e1d46a..d93068f0 100644 --- a/playground/grids/GridSkinny.cpp +++ b/playground/grids/GridSkinny.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridSkinny.h b/playground/grids/GridSkinny.h index 856d42d5..ed3e09d0 100644 --- a/playground/grids/GridSkinny.h +++ b/playground/grids/GridSkinny.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridWidgets.cpp b/playground/grids/GridWidgets.cpp index d989ca9e..bf1b9b7f 100644 --- a/playground/grids/GridWidgets.cpp +++ b/playground/grids/GridWidgets.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/GridWidgets.h b/playground/grids/GridWidgets.h index 9cd38f9a..4da2c3bd 100644 --- a/playground/grids/GridWidgets.h +++ b/playground/grids/GridWidgets.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/TestBox.cpp b/playground/grids/TestBox.cpp index a0086459..67aecd58 100644 --- a/playground/grids/TestBox.cpp +++ b/playground/grids/TestBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/TestBox.h b/playground/grids/TestBox.h index d22e37c1..8bd29c17 100644 --- a/playground/grids/TestBox.h +++ b/playground/grids/TestBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/grids/main.cpp b/playground/grids/main.cpp index 7ab3e575..faacad20 100644 --- a/playground/grids/main.cpp +++ b/playground/grids/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/images/CMakeLists.txt b/playground/images/CMakeLists.txt index 5db9372a..06fa0f77 100644 --- a/playground/images/CMakeLists.txt +++ b/playground/images/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/images/Image.cpp b/playground/images/Image.cpp index 85c2d333..af083d9e 100644 --- a/playground/images/Image.cpp +++ b/playground/images/Image.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/images/Image.h b/playground/images/Image.h index 92c57e25..51be747a 100644 --- a/playground/images/Image.h +++ b/playground/images/Image.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/images/main.cpp b/playground/images/main.cpp index 6502590f..5db79527 100644 --- a/playground/images/main.cpp +++ b/playground/images/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/inputpanel/CMakeLists.txt b/playground/inputpanel/CMakeLists.txt index cd631634..dde327f3 100644 --- a/playground/inputpanel/CMakeLists.txt +++ b/playground/inputpanel/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/inputpanel/main.cpp b/playground/inputpanel/main.cpp index 9948a048..eabc5362 100644 --- a/playground/inputpanel/main.cpp +++ b/playground/inputpanel/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/invoker/CMakeLists.txt b/playground/invoker/CMakeLists.txt index c9ec4a9f..5fe2155e 100644 --- a/playground/invoker/CMakeLists.txt +++ b/playground/invoker/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/invoker/Callback.cpp b/playground/invoker/Callback.cpp index a485788a..1149aaf5 100644 --- a/playground/invoker/Callback.cpp +++ b/playground/invoker/Callback.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/invoker/Callback.h b/playground/invoker/Callback.h index 4da0c273..c2f185d2 100644 --- a/playground/invoker/Callback.h +++ b/playground/invoker/Callback.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/invoker/Invoker.cpp b/playground/invoker/Invoker.cpp index c959a230..0346dc3b 100644 --- a/playground/invoker/Invoker.cpp +++ b/playground/invoker/Invoker.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/invoker/Invoker.h b/playground/invoker/Invoker.h index 0f4ab012..3d826486 100644 --- a/playground/invoker/Invoker.h +++ b/playground/invoker/Invoker.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/invoker/main.cpp b/playground/invoker/main.cpp index 06292bb0..e296d19d 100644 --- a/playground/invoker/main.cpp +++ b/playground/invoker/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/CMakeLists.txt b/playground/plots/CMakeLists.txt index 9cc36159..66349be3 100644 --- a/playground/plots/CMakeLists.txt +++ b/playground/plots/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # This file may be used under the terms of the 3-clause BSD License ############################################################################ diff --git a/playground/plots/Plot.cpp b/playground/plots/Plot.cpp index c5723e24..5ba1b9cb 100644 --- a/playground/plots/Plot.cpp +++ b/playground/plots/Plot.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "Plot.h" diff --git a/playground/plots/Plot.h b/playground/plots/Plot.h index eac16e0b..5af34fca 100644 --- a/playground/plots/Plot.h +++ b/playground/plots/Plot.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/PlotCursor.cpp b/playground/plots/PlotCursor.cpp index dddb0b54..88591408 100644 --- a/playground/plots/PlotCursor.cpp +++ b/playground/plots/PlotCursor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "PlotCursor.h" diff --git a/playground/plots/PlotCursor.h b/playground/plots/PlotCursor.h index 1c784693..cb310507 100644 --- a/playground/plots/PlotCursor.h +++ b/playground/plots/PlotCursor.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/PlotCursorSkinlet.cpp b/playground/plots/PlotCursorSkinlet.cpp index e0660937..48095c24 100644 --- a/playground/plots/PlotCursorSkinlet.cpp +++ b/playground/plots/PlotCursorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/PlotCursorSkinlet.h b/playground/plots/PlotCursorSkinlet.h index b3e03b77..17ac04cb 100644 --- a/playground/plots/PlotCursorSkinlet.h +++ b/playground/plots/PlotCursorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/PlotSkin.cpp b/playground/plots/PlotSkin.cpp index 968d0565..4ff8b1d2 100644 --- a/playground/plots/PlotSkin.cpp +++ b/playground/plots/PlotSkin.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "PlotSkin.h" diff --git a/playground/plots/PlotSkin.h b/playground/plots/PlotSkin.h index 946344c3..0a6dbf03 100644 --- a/playground/plots/PlotSkin.h +++ b/playground/plots/PlotSkin.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotCorridor.cpp b/playground/plots/QskPlotCorridor.cpp index a7144e52..21f6d90b 100644 --- a/playground/plots/QskPlotCorridor.cpp +++ b/playground/plots/QskPlotCorridor.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotCorridor.h" diff --git a/playground/plots/QskPlotCorridor.h b/playground/plots/QskPlotCorridor.h index b375482d..1492ba87 100644 --- a/playground/plots/QskPlotCorridor.h +++ b/playground/plots/QskPlotCorridor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * This file may be used under the terms of the 3-clause BSD License *****************************************************************************/ diff --git a/playground/plots/QskPlotCorridorData.cpp b/playground/plots/QskPlotCorridorData.cpp index 55b40c57..d6f72b3e 100644 --- a/playground/plots/QskPlotCorridorData.cpp +++ b/playground/plots/QskPlotCorridorData.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotCorridorData.h" diff --git a/playground/plots/QskPlotCorridorData.h b/playground/plots/QskPlotCorridorData.h index 3fac0b7a..54c9c2f5 100644 --- a/playground/plots/QskPlotCorridorData.h +++ b/playground/plots/QskPlotCorridorData.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotCorridorSkinlet.cpp b/playground/plots/QskPlotCorridorSkinlet.cpp index e7ab51bf..cebd749a 100644 --- a/playground/plots/QskPlotCorridorSkinlet.cpp +++ b/playground/plots/QskPlotCorridorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotCorridorSkinlet.h b/playground/plots/QskPlotCorridorSkinlet.h index e79e8b32..59a4a2d6 100644 --- a/playground/plots/QskPlotCorridorSkinlet.h +++ b/playground/plots/QskPlotCorridorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotCurve.cpp b/playground/plots/QskPlotCurve.cpp index d39c2b42..02f3fb02 100644 --- a/playground/plots/QskPlotCurve.cpp +++ b/playground/plots/QskPlotCurve.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotCurve.h" diff --git a/playground/plots/QskPlotCurve.h b/playground/plots/QskPlotCurve.h index cf5c77e3..f42d56cd 100644 --- a/playground/plots/QskPlotCurve.h +++ b/playground/plots/QskPlotCurve.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotCurveData.cpp b/playground/plots/QskPlotCurveData.cpp index 66b76ac9..029e0242 100644 --- a/playground/plots/QskPlotCurveData.cpp +++ b/playground/plots/QskPlotCurveData.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotCurveData.h" diff --git a/playground/plots/QskPlotCurveData.h b/playground/plots/QskPlotCurveData.h index fe802566..47f76626 100644 --- a/playground/plots/QskPlotCurveData.h +++ b/playground/plots/QskPlotCurveData.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotCurveSkinlet.cpp b/playground/plots/QskPlotCurveSkinlet.cpp index 0731c94f..64f92b7e 100644 --- a/playground/plots/QskPlotCurveSkinlet.cpp +++ b/playground/plots/QskPlotCurveSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotCurveSkinlet.h b/playground/plots/QskPlotCurveSkinlet.h index 070487ba..65c48f7d 100644 --- a/playground/plots/QskPlotCurveSkinlet.h +++ b/playground/plots/QskPlotCurveSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotGrid.cpp b/playground/plots/QskPlotGrid.cpp index 06d27cd2..3db5f80d 100644 --- a/playground/plots/QskPlotGrid.cpp +++ b/playground/plots/QskPlotGrid.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotGrid.h" diff --git a/playground/plots/QskPlotGrid.h b/playground/plots/QskPlotGrid.h index 4b4ce25b..8c4d8834 100644 --- a/playground/plots/QskPlotGrid.h +++ b/playground/plots/QskPlotGrid.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * This file may be used under the terms of the 3-clause BSD License *****************************************************************************/ diff --git a/playground/plots/QskPlotGridSkinlet.cpp b/playground/plots/QskPlotGridSkinlet.cpp index ebd490c2..c328d2e2 100644 --- a/playground/plots/QskPlotGridSkinlet.cpp +++ b/playground/plots/QskPlotGridSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotGridSkinlet.h b/playground/plots/QskPlotGridSkinlet.h index 2ab51f80..a0c114c9 100644 --- a/playground/plots/QskPlotGridSkinlet.h +++ b/playground/plots/QskPlotGridSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotItem.cpp b/playground/plots/QskPlotItem.cpp index de829694..929972e8 100644 --- a/playground/plots/QskPlotItem.cpp +++ b/playground/plots/QskPlotItem.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotItem.h" diff --git a/playground/plots/QskPlotItem.h b/playground/plots/QskPlotItem.h index 6ae96c86..3f343d8a 100644 --- a/playground/plots/QskPlotItem.h +++ b/playground/plots/QskPlotItem.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotNamespace.h b/playground/plots/QskPlotNamespace.h index 30644ba7..34202ab1 100644 --- a/playground/plots/QskPlotNamespace.h +++ b/playground/plots/QskPlotNamespace.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotView.cpp b/playground/plots/QskPlotView.cpp index 887c6418..18fc60e0 100644 --- a/playground/plots/QskPlotView.cpp +++ b/playground/plots/QskPlotView.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "QskPlotView.h" diff --git a/playground/plots/QskPlotView.h b/playground/plots/QskPlotView.h index 37a7ae9d..53243a9e 100644 --- a/playground/plots/QskPlotView.h +++ b/playground/plots/QskPlotView.h @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #pragma once diff --git a/playground/plots/QskPlotViewSkinlet.cpp b/playground/plots/QskPlotViewSkinlet.cpp index db3878d2..f3f1aaf4 100644 --- a/playground/plots/QskPlotViewSkinlet.cpp +++ b/playground/plots/QskPlotViewSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/QskPlotViewSkinlet.h b/playground/plots/QskPlotViewSkinlet.h index f861b6e1..37d54f68 100644 --- a/playground/plots/QskPlotViewSkinlet.h +++ b/playground/plots/QskPlotViewSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/plots/main.cpp b/playground/plots/main.cpp index f2612e44..7d8ced9d 100644 --- a/playground/plots/main.cpp +++ b/playground/plots/main.cpp @@ -1,6 +1,6 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann - * This file may be used under the terms of the 3-clause BSD License + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ #include "Plot.h" diff --git a/playground/shadows/ArcPage.cpp b/playground/shadows/ArcPage.cpp index 7ee25532..3ed5c5e4 100644 --- a/playground/shadows/ArcPage.cpp +++ b/playground/shadows/ArcPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/ArcPage.h b/playground/shadows/ArcPage.h index eeb62066..e5ee9010 100644 --- a/playground/shadows/ArcPage.h +++ b/playground/shadows/ArcPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/BoxPage.cpp b/playground/shadows/BoxPage.cpp index 860c2c0f..9c82c3cb 100644 --- a/playground/shadows/BoxPage.cpp +++ b/playground/shadows/BoxPage.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/BoxPage.h b/playground/shadows/BoxPage.h index d5dc15aa..77fe50f1 100644 --- a/playground/shadows/BoxPage.h +++ b/playground/shadows/BoxPage.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/CMakeLists.txt b/playground/shadows/CMakeLists.txt index f65ac316..30b2ad1e 100644 --- a/playground/shadows/CMakeLists.txt +++ b/playground/shadows/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/shadows/ShadowedArc.cpp b/playground/shadows/ShadowedArc.cpp index 0ba49ad5..bb209f3f 100644 --- a/playground/shadows/ShadowedArc.cpp +++ b/playground/shadows/ShadowedArc.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/ShadowedArc.h b/playground/shadows/ShadowedArc.h index a4179ade..c8f486d3 100644 --- a/playground/shadows/ShadowedArc.h +++ b/playground/shadows/ShadowedArc.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/ShadowedBox.cpp b/playground/shadows/ShadowedBox.cpp index cad0fd22..dac3502d 100644 --- a/playground/shadows/ShadowedBox.cpp +++ b/playground/shadows/ShadowedBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/ShadowedBox.h b/playground/shadows/ShadowedBox.h index 5cc898d6..d0aaa88b 100644 --- a/playground/shadows/ShadowedBox.h +++ b/playground/shadows/ShadowedBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/Slider.cpp b/playground/shadows/Slider.cpp index 0a08201a..b6f4b8fc 100644 --- a/playground/shadows/Slider.cpp +++ b/playground/shadows/Slider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/Slider.h b/playground/shadows/Slider.h index c62fa160..7698c323 100644 --- a/playground/shadows/Slider.h +++ b/playground/shadows/Slider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shadows/main.cpp b/playground/shadows/main.cpp index c4e2ceda..d3f110fc 100644 --- a/playground/shadows/main.cpp +++ b/playground/shadows/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/CMakeLists.txt b/playground/shapes/CMakeLists.txt index 89122dc9..b02b0265 100644 --- a/playground/shapes/CMakeLists.txt +++ b/playground/shapes/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/shapes/GeometricShape.cpp b/playground/shapes/GeometricShape.cpp index 92935093..99932352 100644 --- a/playground/shapes/GeometricShape.cpp +++ b/playground/shapes/GeometricShape.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/GeometricShape.h b/playground/shapes/GeometricShape.h index 3e521a49..ee8296c5 100644 --- a/playground/shapes/GeometricShape.h +++ b/playground/shapes/GeometricShape.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/ShapeItem.cpp b/playground/shapes/ShapeItem.cpp index 9f1f9421..73771ec9 100644 --- a/playground/shapes/ShapeItem.cpp +++ b/playground/shapes/ShapeItem.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/ShapeItem.h b/playground/shapes/ShapeItem.h index b8d15300..edab674c 100644 --- a/playground/shapes/ShapeItem.h +++ b/playground/shapes/ShapeItem.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/Stroke.cpp b/playground/shapes/Stroke.cpp index d72090d7..96c7c9e5 100644 --- a/playground/shapes/Stroke.cpp +++ b/playground/shapes/Stroke.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/Stroke.h b/playground/shapes/Stroke.h index 85cd0464..e8b63ded 100644 --- a/playground/shapes/Stroke.h +++ b/playground/shapes/Stroke.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/Window.cpp b/playground/shapes/Window.cpp index 72a30f39..13eb59fd 100644 --- a/playground/shapes/Window.cpp +++ b/playground/shapes/Window.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/Window.h b/playground/shapes/Window.h index 10858ba5..112f59c2 100644 --- a/playground/shapes/Window.h +++ b/playground/shapes/Window.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/shapes/main.cpp b/playground/shapes/main.cpp index e253cf51..3348afa9 100644 --- a/playground/shapes/main.cpp +++ b/playground/shapes/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/playground/webview/CMakeLists.txt b/playground/webview/CMakeLists.txt index 54529c22..eea87839 100644 --- a/playground/webview/CMakeLists.txt +++ b/playground/webview/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/playground/webview/main.cpp b/playground/webview/main.cpp index 17aa9b59..f4a4294b 100644 --- a/playground/webview/main.cpp +++ b/playground/webview/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/CMakeLists.txt b/qmlexport/CMakeLists.txt index 44413ee6..e1b78483 100644 --- a/qmlexport/CMakeLists.txt +++ b/qmlexport/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ @@ -61,4 +61,4 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") install(FILES $ DESTINATION ${QSK_INSTALL_LIBS} OPTIONAL) -endif() \ No newline at end of file +endif() diff --git a/qmlexport/QskLayoutQml.cpp b/qmlexport/QskLayoutQml.cpp index 72a1b018..d089504e 100644 --- a/qmlexport/QskLayoutQml.cpp +++ b/qmlexport/QskLayoutQml.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskLayoutQml.h b/qmlexport/QskLayoutQml.h index c8c92be2..89ed3ee0 100644 --- a/qmlexport/QskLayoutQml.h +++ b/qmlexport/QskLayoutQml.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskMainQml.cpp b/qmlexport/QskMainQml.cpp index 54d0d640..05cb69e8 100644 --- a/qmlexport/QskMainQml.cpp +++ b/qmlexport/QskMainQml.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskMainQml.h b/qmlexport/QskMainQml.h index e3b0e779..438a4e6e 100644 --- a/qmlexport/QskMainQml.h +++ b/qmlexport/QskMainQml.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskQml.cpp b/qmlexport/QskQml.cpp index ea903451..b8c2c20a 100644 --- a/qmlexport/QskQml.cpp +++ b/qmlexport/QskQml.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskQml.h b/qmlexport/QskQml.h index 6a65b8c2..90c7f216 100644 --- a/qmlexport/QskQml.h +++ b/qmlexport/QskQml.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskQml.hpp b/qmlexport/QskQml.hpp index ef252500..dff4db9a 100644 --- a/qmlexport/QskQml.hpp +++ b/qmlexport/QskQml.hpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskQmlGlobal.h b/qmlexport/QskQmlGlobal.h index 13141da7..7c937466 100644 --- a/qmlexport/QskQmlGlobal.h +++ b/qmlexport/QskQmlGlobal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskShortcutQml.cpp b/qmlexport/QskShortcutQml.cpp index 6b0a450a..51600216 100644 --- a/qmlexport/QskShortcutQml.cpp +++ b/qmlexport/QskShortcutQml.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/qmlexport/QskShortcutQml.h b/qmlexport/QskShortcutQml.h index 9783879a..5ecc4067 100644 --- a/qmlexport/QskShortcutQml.h +++ b/qmlexport/QskShortcutQml.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2Global.h b/skins/fluent2/QskFluent2Global.h index 0a58068e..f99a52f2 100644 --- a/skins/fluent2/QskFluent2Global.h +++ b/skins/fluent2/QskFluent2Global.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2Skin.cpp b/skins/fluent2/QskFluent2Skin.cpp index 0e42ef5f..240c23d7 100644 --- a/skins/fluent2/QskFluent2Skin.cpp +++ b/skins/fluent2/QskFluent2Skin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2Skin.h b/skins/fluent2/QskFluent2Skin.h index 2678dba4..c0be6488 100644 --- a/skins/fluent2/QskFluent2Skin.h +++ b/skins/fluent2/QskFluent2Skin.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2SkinFactory.cpp b/skins/fluent2/QskFluent2SkinFactory.cpp index 8b393b73..b9beb18d 100644 --- a/skins/fluent2/QskFluent2SkinFactory.cpp +++ b/skins/fluent2/QskFluent2SkinFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2SkinFactory.h b/skins/fluent2/QskFluent2SkinFactory.h index 3b081862..2f5bf8fa 100644 --- a/skins/fluent2/QskFluent2SkinFactory.h +++ b/skins/fluent2/QskFluent2SkinFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2Theme.cpp b/skins/fluent2/QskFluent2Theme.cpp index f7c20d30..490bf2e0 100644 --- a/skins/fluent2/QskFluent2Theme.cpp +++ b/skins/fluent2/QskFluent2Theme.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/fluent2/QskFluent2Theme.h b/skins/fluent2/QskFluent2Theme.h index a4d18feb..74d2925f 100644 --- a/skins/fluent2/QskFluent2Theme.h +++ b/skins/fluent2/QskFluent2Theme.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/material3/CMakeLists.txt b/skins/material3/CMakeLists.txt index a76dfaba..cce742e0 100644 --- a/skins/material3/CMakeLists.txt +++ b/skins/material3/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/skins/material3/QskMaterial3Global.h b/skins/material3/QskMaterial3Global.h index 5280e12c..ab63d841 100644 --- a/skins/material3/QskMaterial3Global.h +++ b/skins/material3/QskMaterial3Global.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/material3/QskMaterial3Skin.cpp b/skins/material3/QskMaterial3Skin.cpp index 8443dbf5..e548d72c 100644 --- a/skins/material3/QskMaterial3Skin.cpp +++ b/skins/material3/QskMaterial3Skin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2022 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/material3/QskMaterial3Skin.h b/skins/material3/QskMaterial3Skin.h index 2dbdcbc9..99ecc035 100644 --- a/skins/material3/QskMaterial3Skin.h +++ b/skins/material3/QskMaterial3Skin.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2022 Edelhirsch Software GmbH + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/material3/QskMaterial3SkinFactory.cpp b/skins/material3/QskMaterial3SkinFactory.cpp index 541db64d..16c2f6dd 100644 --- a/skins/material3/QskMaterial3SkinFactory.cpp +++ b/skins/material3/QskMaterial3SkinFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/material3/QskMaterial3SkinFactory.h b/skins/material3/QskMaterial3SkinFactory.h index 292b8b1a..927bd032 100644 --- a/skins/material3/QskMaterial3SkinFactory.h +++ b/skins/material3/QskMaterial3SkinFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/squiek/CMakeLists.txt b/skins/squiek/CMakeLists.txt index e8674ede..e7c873f6 100644 --- a/skins/squiek/CMakeLists.txt +++ b/skins/squiek/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/skins/squiek/QskSquiekGlobal.h b/skins/squiek/QskSquiekGlobal.h index 659f344a..8ff5e4f7 100644 --- a/skins/squiek/QskSquiekGlobal.h +++ b/skins/squiek/QskSquiekGlobal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/squiek/QskSquiekSkin.cpp b/skins/squiek/QskSquiekSkin.cpp index abcdac21..c2e888c5 100644 --- a/skins/squiek/QskSquiekSkin.cpp +++ b/skins/squiek/QskSquiekSkin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/squiek/QskSquiekSkin.h b/skins/squiek/QskSquiekSkin.h index fad53065..0036a35f 100644 --- a/skins/squiek/QskSquiekSkin.h +++ b/skins/squiek/QskSquiekSkin.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/squiek/QskSquiekSkinFactory.cpp b/skins/squiek/QskSquiekSkinFactory.cpp index 937c771c..d2c4711d 100644 --- a/skins/squiek/QskSquiekSkinFactory.cpp +++ b/skins/squiek/QskSquiekSkinFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/skins/squiek/QskSquiekSkinFactory.h b/skins/squiek/QskSquiekSkinFactory.h index 06b845c1..42b71c86 100644 --- a/skins/squiek/QskSquiekSkinFactory.h +++ b/skins/squiek/QskSquiekSkinFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index be10b13f..351997f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ @@ -566,4 +566,4 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") install(FILES $ DESTINATION ${QSK_INSTALL_LIBS} OPTIONAL) -endif() \ No newline at end of file +endif() diff --git a/src/common/QskArcMetrics.cpp b/src/common/QskArcMetrics.cpp index 938a0ab9..956508ce 100644 --- a/src/common/QskArcMetrics.cpp +++ b/src/common/QskArcMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskArcMetrics.h b/src/common/QskArcMetrics.h index 6197f3a9..fe80ed46 100644 --- a/src/common/QskArcMetrics.h +++ b/src/common/QskArcMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskAspect.cpp b/src/common/QskAspect.cpp index a5d901c1..67c0a69a 100644 --- a/src/common/QskAspect.cpp +++ b/src/common/QskAspect.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskAspect.h b/src/common/QskAspect.h index 7b67eb36..badad39a 100644 --- a/src/common/QskAspect.h +++ b/src/common/QskAspect.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxBorderColors.cpp b/src/common/QskBoxBorderColors.cpp index 75a39ec3..9bde095b 100644 --- a/src/common/QskBoxBorderColors.cpp +++ b/src/common/QskBoxBorderColors.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxBorderColors.h b/src/common/QskBoxBorderColors.h index 64fe383b..9cbad86a 100644 --- a/src/common/QskBoxBorderColors.h +++ b/src/common/QskBoxBorderColors.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxBorderMetrics.cpp b/src/common/QskBoxBorderMetrics.cpp index 6bb4d1e0..1272f87e 100644 --- a/src/common/QskBoxBorderMetrics.cpp +++ b/src/common/QskBoxBorderMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxBorderMetrics.h b/src/common/QskBoxBorderMetrics.h index 807bf546..333c58c0 100644 --- a/src/common/QskBoxBorderMetrics.h +++ b/src/common/QskBoxBorderMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxHints.cpp b/src/common/QskBoxHints.cpp index 08fd8a76..851078c7 100644 --- a/src/common/QskBoxHints.cpp +++ b/src/common/QskBoxHints.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxHints.h b/src/common/QskBoxHints.h index 969c89cb..7da0ed65 100644 --- a/src/common/QskBoxHints.h +++ b/src/common/QskBoxHints.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxShapeMetrics.cpp b/src/common/QskBoxShapeMetrics.cpp index 06a39ba1..3441d0fa 100644 --- a/src/common/QskBoxShapeMetrics.cpp +++ b/src/common/QskBoxShapeMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskBoxShapeMetrics.h b/src/common/QskBoxShapeMetrics.h index dec4d914..2252be63 100644 --- a/src/common/QskBoxShapeMetrics.h +++ b/src/common/QskBoxShapeMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskFunctions.cpp b/src/common/QskFunctions.cpp index 5b40280f..892c9a84 100644 --- a/src/common/QskFunctions.cpp +++ b/src/common/QskFunctions.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "QskFunctions.h" #include diff --git a/src/common/QskFunctions.h b/src/common/QskFunctions.h index 1ac3e3d9..38f85add 100644 --- a/src/common/QskFunctions.h +++ b/src/common/QskFunctions.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGlobal.h b/src/common/QskGlobal.h index 44b20eed..408d6e2b 100644 --- a/src/common/QskGlobal.h +++ b/src/common/QskGlobal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradient.cpp b/src/common/QskGradient.cpp index 31e18a0a..3a66b5e8 100644 --- a/src/common/QskGradient.cpp +++ b/src/common/QskGradient.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradient.h b/src/common/QskGradient.h index 441aaa4f..7e5fd665 100644 --- a/src/common/QskGradient.h +++ b/src/common/QskGradient.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradientDirection.cpp b/src/common/QskGradientDirection.cpp index 900377b5..18f58521 100644 --- a/src/common/QskGradientDirection.cpp +++ b/src/common/QskGradientDirection.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradientDirection.h b/src/common/QskGradientDirection.h index 4ba3e1ad..68cc99a5 100644 --- a/src/common/QskGradientDirection.h +++ b/src/common/QskGradientDirection.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradientStop.cpp b/src/common/QskGradientStop.cpp index a2a73d95..451fa70c 100644 --- a/src/common/QskGradientStop.cpp +++ b/src/common/QskGradientStop.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGradientStop.h b/src/common/QskGradientStop.h index d115be62..ae6bed02 100644 --- a/src/common/QskGradientStop.h +++ b/src/common/QskGradientStop.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGraduation.cpp b/src/common/QskGraduation.cpp index e9680550..3d20132d 100644 --- a/src/common/QskGraduation.cpp +++ b/src/common/QskGraduation.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGraduation.h b/src/common/QskGraduation.h index 08d24449..9bb6e9b2 100644 --- a/src/common/QskGraduation.h +++ b/src/common/QskGraduation.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskGraduationMetrics.cpp b/src/common/QskGraduationMetrics.cpp index e2ef5378..4feb8941 100644 --- a/src/common/QskGraduationMetrics.cpp +++ b/src/common/QskGraduationMetrics.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "QskGraduationMetrics.h" #include diff --git a/src/common/QskGraduationMetrics.h b/src/common/QskGraduationMetrics.h index 73582eff..26c2b546 100644 --- a/src/common/QskGraduationMetrics.h +++ b/src/common/QskGraduationMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskHctColor.h b/src/common/QskHctColor.h index 4d7541b3..dbe5fe17 100644 --- a/src/common/QskHctColor.h +++ b/src/common/QskHctColor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskIntervalF.cpp b/src/common/QskIntervalF.cpp index 5b31268b..9e579a33 100644 --- a/src/common/QskIntervalF.cpp +++ b/src/common/QskIntervalF.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskIntervalF.h b/src/common/QskIntervalF.h index 72b7fb44..fdbf4289 100644 --- a/src/common/QskIntervalF.h +++ b/src/common/QskIntervalF.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskLabelData.cpp b/src/common/QskLabelData.cpp index c4ae86ba..0d33a79a 100644 --- a/src/common/QskLabelData.cpp +++ b/src/common/QskLabelData.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskLabelData.h b/src/common/QskLabelData.h index 2ed156a6..0ce779a4 100644 --- a/src/common/QskLabelData.h +++ b/src/common/QskLabelData.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMargins.cpp b/src/common/QskMargins.cpp index 5aa5f98e..80927e24 100644 --- a/src/common/QskMargins.cpp +++ b/src/common/QskMargins.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "QskMargins.h" #include diff --git a/src/common/QskMargins.h b/src/common/QskMargins.h index bc433294..faa43f9a 100644 --- a/src/common/QskMargins.h +++ b/src/common/QskMargins.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMetaFunction.cpp b/src/common/QskMetaFunction.cpp index 0eb31d39..56d04080 100644 --- a/src/common/QskMetaFunction.cpp +++ b/src/common/QskMetaFunction.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMetaFunction.h b/src/common/QskMetaFunction.h index 75880caf..d521574b 100644 --- a/src/common/QskMetaFunction.h +++ b/src/common/QskMetaFunction.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMetaFunction.hpp b/src/common/QskMetaFunction.hpp index 26af0860..386c6a46 100644 --- a/src/common/QskMetaFunction.hpp +++ b/src/common/QskMetaFunction.hpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMetaInvokable.cpp b/src/common/QskMetaInvokable.cpp index 2dce0046..1f73633d 100644 --- a/src/common/QskMetaInvokable.cpp +++ b/src/common/QskMetaInvokable.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskMetaInvokable.h b/src/common/QskMetaInvokable.h index 1cfd2ddf..8dca8b0d 100644 --- a/src/common/QskMetaInvokable.h +++ b/src/common/QskMetaInvokable.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskNamespace.h b/src/common/QskNamespace.h index 0d48523e..0129e81f 100644 --- a/src/common/QskNamespace.h +++ b/src/common/QskNamespace.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskObjectCounter.cpp b/src/common/QskObjectCounter.cpp index 0ec9ee4c..e8a014cb 100644 --- a/src/common/QskObjectCounter.cpp +++ b/src/common/QskObjectCounter.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskObjectCounter.h b/src/common/QskObjectCounter.h index cabc57e2..57a8c233 100644 --- a/src/common/QskObjectCounter.h +++ b/src/common/QskObjectCounter.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskPlacementPolicy.cpp b/src/common/QskPlacementPolicy.cpp index e32c4246..fa59d56a 100644 --- a/src/common/QskPlacementPolicy.cpp +++ b/src/common/QskPlacementPolicy.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskPlacementPolicy.h b/src/common/QskPlacementPolicy.h index 6ace326c..22b56ade 100644 --- a/src/common/QskPlacementPolicy.h +++ b/src/common/QskPlacementPolicy.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskPlatform.cpp b/src/common/QskPlatform.cpp index 018ef40a..c54c29eb 100644 --- a/src/common/QskPlatform.cpp +++ b/src/common/QskPlatform.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "QskPlatform.h" #include diff --git a/src/common/QskPlatform.h b/src/common/QskPlatform.h index e7e6e061..48be41b3 100644 --- a/src/common/QskPlatform.h +++ b/src/common/QskPlatform.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskRgbValue.cpp b/src/common/QskRgbValue.cpp index 360392b9..66b354f0 100644 --- a/src/common/QskRgbValue.cpp +++ b/src/common/QskRgbValue.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskRgbValue.h b/src/common/QskRgbValue.h index a8317a91..163aefd4 100644 --- a/src/common/QskRgbValue.h +++ b/src/common/QskRgbValue.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskShadowMetrics.cpp b/src/common/QskShadowMetrics.cpp index fe37abd4..b5331dc9 100644 --- a/src/common/QskShadowMetrics.cpp +++ b/src/common/QskShadowMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskShadowMetrics.h b/src/common/QskShadowMetrics.h index efd9c137..bb85a117 100644 --- a/src/common/QskShadowMetrics.h +++ b/src/common/QskShadowMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskSizePolicy.cpp b/src/common/QskSizePolicy.cpp index d0cd8aa9..70d40108 100644 --- a/src/common/QskSizePolicy.cpp +++ b/src/common/QskSizePolicy.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskSizePolicy.h b/src/common/QskSizePolicy.h index 2b0f51f0..d7e01cea 100644 --- a/src/common/QskSizePolicy.h +++ b/src/common/QskSizePolicy.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskStateCombination.h b/src/common/QskStateCombination.h index 1cf6016a..10fdf835 100644 --- a/src/common/QskStateCombination.h +++ b/src/common/QskStateCombination.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskStippleMetrics.cpp b/src/common/QskStippleMetrics.cpp index 6b4d0520..dc921367 100644 --- a/src/common/QskStippleMetrics.cpp +++ b/src/common/QskStippleMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskStippleMetrics.h b/src/common/QskStippleMetrics.h index a637faf1..a3cd0947 100644 --- a/src/common/QskStippleMetrics.h +++ b/src/common/QskStippleMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTextColors.cpp b/src/common/QskTextColors.cpp index e75e0ef8..4130cf8c 100644 --- a/src/common/QskTextColors.cpp +++ b/src/common/QskTextColors.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTextColors.h b/src/common/QskTextColors.h index c7fa6799..02cb4975 100644 --- a/src/common/QskTextColors.h +++ b/src/common/QskTextColors.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTextOptions.cpp b/src/common/QskTextOptions.cpp index f4c678c9..53f64e2f 100644 --- a/src/common/QskTextOptions.cpp +++ b/src/common/QskTextOptions.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTextOptions.h b/src/common/QskTextOptions.h index 984da585..cd88c6f8 100644 --- a/src/common/QskTextOptions.h +++ b/src/common/QskTextOptions.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTickmarks.cpp b/src/common/QskTickmarks.cpp index d9f744fa..ac75892d 100644 --- a/src/common/QskTickmarks.cpp +++ b/src/common/QskTickmarks.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/common/QskTickmarks.h b/src/common/QskTickmarks.h index a90915cd..953b7627 100644 --- a/src/common/QskTickmarks.h +++ b/src/common/QskTickmarks.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAbstractButton.cpp b/src/controls/QskAbstractButton.cpp index 53853649..54d25943 100644 --- a/src/controls/QskAbstractButton.cpp +++ b/src/controls/QskAbstractButton.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAbstractButton.h b/src/controls/QskAbstractButton.h index 8a458ad4..6d081a48 100644 --- a/src/controls/QskAbstractButton.h +++ b/src/controls/QskAbstractButton.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAnimationHint.cpp b/src/controls/QskAnimationHint.cpp index 2d0dda05..86160f61 100644 --- a/src/controls/QskAnimationHint.cpp +++ b/src/controls/QskAnimationHint.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAnimationHint.h b/src/controls/QskAnimationHint.h index 0d906cfa..56a5d5e6 100644 --- a/src/controls/QskAnimationHint.h +++ b/src/controls/QskAnimationHint.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAnimator.cpp b/src/controls/QskAnimator.cpp index 78b7f34e..bc1609be 100644 --- a/src/controls/QskAnimator.cpp +++ b/src/controls/QskAnimator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskAnimator.h b/src/controls/QskAnimator.h index f7e6dd89..9c3a0a88 100644 --- a/src/controls/QskAnimator.h +++ b/src/controls/QskAnimator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedControl.cpp b/src/controls/QskBoundedControl.cpp index 85cfde81..a25df91c 100644 --- a/src/controls/QskBoundedControl.cpp +++ b/src/controls/QskBoundedControl.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedControl.h b/src/controls/QskBoundedControl.h index d36e9f86..ec89efc6 100644 --- a/src/controls/QskBoundedControl.h +++ b/src/controls/QskBoundedControl.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedInput.cpp b/src/controls/QskBoundedInput.cpp index e5275a45..288c4061 100644 --- a/src/controls/QskBoundedInput.cpp +++ b/src/controls/QskBoundedInput.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedInput.h b/src/controls/QskBoundedInput.h index 7bcbcfae..1ac0a017 100644 --- a/src/controls/QskBoundedInput.h +++ b/src/controls/QskBoundedInput.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedRangeInput.cpp b/src/controls/QskBoundedRangeInput.cpp index 051ebf95..5c2ebe54 100644 --- a/src/controls/QskBoundedRangeInput.cpp +++ b/src/controls/QskBoundedRangeInput.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedRangeInput.h b/src/controls/QskBoundedRangeInput.h index 6b4c2dfa..990fb188 100644 --- a/src/controls/QskBoundedRangeInput.h +++ b/src/controls/QskBoundedRangeInput.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedValueInput.cpp b/src/controls/QskBoundedValueInput.cpp index ba72ab73..54e5af1b 100644 --- a/src/controls/QskBoundedValueInput.cpp +++ b/src/controls/QskBoundedValueInput.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoundedValueInput.h b/src/controls/QskBoundedValueInput.h index 97794303..e5af6617 100644 --- a/src/controls/QskBoundedValueInput.h +++ b/src/controls/QskBoundedValueInput.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBox.cpp b/src/controls/QskBox.cpp index 242a6db8..3513f967 100644 --- a/src/controls/QskBox.cpp +++ b/src/controls/QskBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBox.h b/src/controls/QskBox.h index 296654e9..a5f8cac0 100644 --- a/src/controls/QskBox.h +++ b/src/controls/QskBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoxSkinlet.cpp b/src/controls/QskBoxSkinlet.cpp index 181af0b7..65749da3 100644 --- a/src/controls/QskBoxSkinlet.cpp +++ b/src/controls/QskBoxSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskBoxSkinlet.h b/src/controls/QskBoxSkinlet.h index 5527ea9d..bb5c34d4 100644 --- a/src/controls/QskBoxSkinlet.h +++ b/src/controls/QskBoxSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskCheckBox.cpp b/src/controls/QskCheckBox.cpp index 14ea7622..f4a62524 100644 --- a/src/controls/QskCheckBox.cpp +++ b/src/controls/QskCheckBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskCheckBox.h b/src/controls/QskCheckBox.h index 12b0a136..f8617f58 100644 --- a/src/controls/QskCheckBox.h +++ b/src/controls/QskCheckBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskCheckBoxSkinlet.cpp b/src/controls/QskCheckBoxSkinlet.cpp index e93bc0ed..2b5531dd 100644 --- a/src/controls/QskCheckBoxSkinlet.cpp +++ b/src/controls/QskCheckBoxSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskCheckBoxSkinlet.h b/src/controls/QskCheckBoxSkinlet.h index 48e085b1..d4dac0b7 100644 --- a/src/controls/QskCheckBoxSkinlet.h +++ b/src/controls/QskCheckBoxSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskComboBox.cpp b/src/controls/QskComboBox.cpp index ef79a486..9e39f602 100644 --- a/src/controls/QskComboBox.cpp +++ b/src/controls/QskComboBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskComboBox.h b/src/controls/QskComboBox.h index 83a9f1ec..76b7df1e 100644 --- a/src/controls/QskComboBox.h +++ b/src/controls/QskComboBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskComboBoxSkinlet.cpp b/src/controls/QskComboBoxSkinlet.cpp index 9f4a4323..fc2da6fa 100644 --- a/src/controls/QskComboBoxSkinlet.cpp +++ b/src/controls/QskComboBoxSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskComboBoxSkinlet.h b/src/controls/QskComboBoxSkinlet.h index a2579e4b..0e4aa4c7 100644 --- a/src/controls/QskComboBoxSkinlet.h +++ b/src/controls/QskComboBoxSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskControl.cpp b/src/controls/QskControl.cpp index 6867d6e7..b2b03bca 100644 --- a/src/controls/QskControl.cpp +++ b/src/controls/QskControl.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskControl.h b/src/controls/QskControl.h index ac04e197..41793c87 100644 --- a/src/controls/QskControl.h +++ b/src/controls/QskControl.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskControlPrivate.cpp b/src/controls/QskControlPrivate.cpp index 84cc755f..c8608dc4 100644 --- a/src/controls/QskControlPrivate.cpp +++ b/src/controls/QskControlPrivate.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskControlPrivate.h b/src/controls/QskControlPrivate.h index 9a9dd09a..239201a5 100644 --- a/src/controls/QskControlPrivate.h +++ b/src/controls/QskControlPrivate.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDirtyItemFilter.cpp b/src/controls/QskDirtyItemFilter.cpp index b0ccbf0f..416f0253 100644 --- a/src/controls/QskDirtyItemFilter.cpp +++ b/src/controls/QskDirtyItemFilter.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDirtyItemFilter.h b/src/controls/QskDirtyItemFilter.h index 95235c81..60fe2241 100644 --- a/src/controls/QskDirtyItemFilter.h +++ b/src/controls/QskDirtyItemFilter.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDrawer.cpp b/src/controls/QskDrawer.cpp index 87890a8d..c08cbd69 100644 --- a/src/controls/QskDrawer.cpp +++ b/src/controls/QskDrawer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDrawer.h b/src/controls/QskDrawer.h index b6c852f2..7f853d6c 100644 --- a/src/controls/QskDrawer.h +++ b/src/controls/QskDrawer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDrawerSkinlet.cpp b/src/controls/QskDrawerSkinlet.cpp index e10f5923..43008870 100644 --- a/src/controls/QskDrawerSkinlet.cpp +++ b/src/controls/QskDrawerSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskDrawerSkinlet.h b/src/controls/QskDrawerSkinlet.h index b6d1c771..e37d7823 100644 --- a/src/controls/QskDrawerSkinlet.h +++ b/src/controls/QskDrawerSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskEvent.cpp b/src/controls/QskEvent.cpp index b3aeae87..b143bcd4 100644 --- a/src/controls/QskEvent.cpp +++ b/src/controls/QskEvent.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskEvent.h b/src/controls/QskEvent.h index 094090e9..0fe85d27 100644 --- a/src/controls/QskEvent.h +++ b/src/controls/QskEvent.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFlickAnimator.cpp b/src/controls/QskFlickAnimator.cpp index 019a0a5f..ef0fbe7c 100644 --- a/src/controls/QskFlickAnimator.cpp +++ b/src/controls/QskFlickAnimator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFlickAnimator.h b/src/controls/QskFlickAnimator.h index 2d4274a4..18ee021c 100644 --- a/src/controls/QskFlickAnimator.h +++ b/src/controls/QskFlickAnimator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFocusIndicator.cpp b/src/controls/QskFocusIndicator.cpp index 8051de8b..2601cc1a 100644 --- a/src/controls/QskFocusIndicator.cpp +++ b/src/controls/QskFocusIndicator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFocusIndicator.h b/src/controls/QskFocusIndicator.h index 63241aab..330edd1c 100644 --- a/src/controls/QskFocusIndicator.h +++ b/src/controls/QskFocusIndicator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFocusIndicatorSkinlet.cpp b/src/controls/QskFocusIndicatorSkinlet.cpp index 5c196aff..96988a9b 100644 --- a/src/controls/QskFocusIndicatorSkinlet.cpp +++ b/src/controls/QskFocusIndicatorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskFocusIndicatorSkinlet.h b/src/controls/QskFocusIndicatorSkinlet.h index e58e5663..f76c4cb0 100644 --- a/src/controls/QskFocusIndicatorSkinlet.h +++ b/src/controls/QskFocusIndicatorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGesture.cpp b/src/controls/QskGesture.cpp index ef4b177a..efb4765e 100644 --- a/src/controls/QskGesture.cpp +++ b/src/controls/QskGesture.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGesture.h b/src/controls/QskGesture.h index 7432c6b4..847f6200 100644 --- a/src/controls/QskGesture.h +++ b/src/controls/QskGesture.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGestureRecognizer.cpp b/src/controls/QskGestureRecognizer.cpp index 099307ab..9afb4e64 100644 --- a/src/controls/QskGestureRecognizer.cpp +++ b/src/controls/QskGestureRecognizer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGestureRecognizer.h b/src/controls/QskGestureRecognizer.h index c4ac00dc..38c1ca96 100644 --- a/src/controls/QskGestureRecognizer.h +++ b/src/controls/QskGestureRecognizer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGraphicLabel.cpp b/src/controls/QskGraphicLabel.cpp index ff593e2c..39a1802a 100644 --- a/src/controls/QskGraphicLabel.cpp +++ b/src/controls/QskGraphicLabel.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGraphicLabel.h b/src/controls/QskGraphicLabel.h index 14268c8d..12a12881 100644 --- a/src/controls/QskGraphicLabel.h +++ b/src/controls/QskGraphicLabel.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGraphicLabelSkinlet.cpp b/src/controls/QskGraphicLabelSkinlet.cpp index 4959a8c6..2f156432 100644 --- a/src/controls/QskGraphicLabelSkinlet.cpp +++ b/src/controls/QskGraphicLabelSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskGraphicLabelSkinlet.h b/src/controls/QskGraphicLabelSkinlet.h index 9700e0c3..dbc64e1a 100644 --- a/src/controls/QskGraphicLabelSkinlet.h +++ b/src/controls/QskGraphicLabelSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskHintAnimator.cpp b/src/controls/QskHintAnimator.cpp index cec53ccd..2b0c8df6 100644 --- a/src/controls/QskHintAnimator.cpp +++ b/src/controls/QskHintAnimator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskHintAnimator.h b/src/controls/QskHintAnimator.h index 6c645202..6708e2bd 100644 --- a/src/controls/QskHintAnimator.h +++ b/src/controls/QskHintAnimator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskInputGrabber.cpp b/src/controls/QskInputGrabber.cpp index 81219392..187f5cc8 100644 --- a/src/controls/QskInputGrabber.cpp +++ b/src/controls/QskInputGrabber.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskInputGrabber.h b/src/controls/QskInputGrabber.h index 8ef0cb78..1fe83fe3 100644 --- a/src/controls/QskInputGrabber.h +++ b/src/controls/QskInputGrabber.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskListView.cpp b/src/controls/QskListView.cpp index b74e0c38..ede7038f 100644 --- a/src/controls/QskListView.cpp +++ b/src/controls/QskListView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskListView.h b/src/controls/QskListView.h index 8023cfcf..82a7cfe4 100644 --- a/src/controls/QskListView.h +++ b/src/controls/QskListView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskListViewSkinlet.cpp b/src/controls/QskListViewSkinlet.cpp index 77907d75..2017da67 100644 --- a/src/controls/QskListViewSkinlet.cpp +++ b/src/controls/QskListViewSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskListViewSkinlet.h b/src/controls/QskListViewSkinlet.h index c16cc637..fad76b21 100644 --- a/src/controls/QskListViewSkinlet.h +++ b/src/controls/QskListViewSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMainView.cpp b/src/controls/QskMainView.cpp index cad52776..a02fc60c 100644 --- a/src/controls/QskMainView.cpp +++ b/src/controls/QskMainView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMainView.h b/src/controls/QskMainView.h index c0160e6c..35950c68 100644 --- a/src/controls/QskMainView.h +++ b/src/controls/QskMainView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMenu.cpp b/src/controls/QskMenu.cpp index 3d22ce17..e690332b 100644 --- a/src/controls/QskMenu.cpp +++ b/src/controls/QskMenu.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMenu.h b/src/controls/QskMenu.h index b0042455..88670ec6 100644 --- a/src/controls/QskMenu.h +++ b/src/controls/QskMenu.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMenuSkinlet.cpp b/src/controls/QskMenuSkinlet.cpp index dae18d89..7ee5bf81 100644 --- a/src/controls/QskMenuSkinlet.cpp +++ b/src/controls/QskMenuSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskMenuSkinlet.h b/src/controls/QskMenuSkinlet.h index 34a3c0b5..1751aa8f 100644 --- a/src/controls/QskMenuSkinlet.h +++ b/src/controls/QskMenuSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskObjectTree.cpp b/src/controls/QskObjectTree.cpp index dfb8a18c..8ad73138 100644 --- a/src/controls/QskObjectTree.cpp +++ b/src/controls/QskObjectTree.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskObjectTree.h b/src/controls/QskObjectTree.h index 9ad04570..b112e6e8 100644 --- a/src/controls/QskObjectTree.h +++ b/src/controls/QskObjectTree.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPageIndicator.cpp b/src/controls/QskPageIndicator.cpp index a16eddf8..fcf94251 100644 --- a/src/controls/QskPageIndicator.cpp +++ b/src/controls/QskPageIndicator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPageIndicator.h b/src/controls/QskPageIndicator.h index 0f82fce2..3d18d534 100644 --- a/src/controls/QskPageIndicator.h +++ b/src/controls/QskPageIndicator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPageIndicatorSkinlet.cpp b/src/controls/QskPageIndicatorSkinlet.cpp index 11424045..15906504 100644 --- a/src/controls/QskPageIndicatorSkinlet.cpp +++ b/src/controls/QskPageIndicatorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPageIndicatorSkinlet.h b/src/controls/QskPageIndicatorSkinlet.h index 078061f2..3a935392 100644 --- a/src/controls/QskPageIndicatorSkinlet.h +++ b/src/controls/QskPageIndicatorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPanGestureRecognizer.cpp b/src/controls/QskPanGestureRecognizer.cpp index 859b8d91..9d9eee04 100644 --- a/src/controls/QskPanGestureRecognizer.cpp +++ b/src/controls/QskPanGestureRecognizer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPanGestureRecognizer.h b/src/controls/QskPanGestureRecognizer.h index ba3bb121..448524cc 100644 --- a/src/controls/QskPanGestureRecognizer.h +++ b/src/controls/QskPanGestureRecognizer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPopup.cpp b/src/controls/QskPopup.cpp index c11ad127..41e0111c 100644 --- a/src/controls/QskPopup.cpp +++ b/src/controls/QskPopup.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPopup.h b/src/controls/QskPopup.h index caf66346..94feb773 100644 --- a/src/controls/QskPopup.h +++ b/src/controls/QskPopup.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPopupSkinlet.cpp b/src/controls/QskPopupSkinlet.cpp index b989dc1e..47f2fbef 100644 --- a/src/controls/QskPopupSkinlet.cpp +++ b/src/controls/QskPopupSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPopupSkinlet.h b/src/controls/QskPopupSkinlet.h index ecd3a758..7e37298d 100644 --- a/src/controls/QskPopupSkinlet.h +++ b/src/controls/QskPopupSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressBar.cpp b/src/controls/QskProgressBar.cpp index 92a964ce..16b17f63 100644 --- a/src/controls/QskProgressBar.cpp +++ b/src/controls/QskProgressBar.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressBar.h b/src/controls/QskProgressBar.h index f1f1b613..df844df8 100644 --- a/src/controls/QskProgressBar.h +++ b/src/controls/QskProgressBar.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressBarSkinlet.cpp b/src/controls/QskProgressBarSkinlet.cpp index 92be1c09..74fe9e69 100644 --- a/src/controls/QskProgressBarSkinlet.cpp +++ b/src/controls/QskProgressBarSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressBarSkinlet.h b/src/controls/QskProgressBarSkinlet.h index a3f36cd1..581630bc 100644 --- a/src/controls/QskProgressBarSkinlet.h +++ b/src/controls/QskProgressBarSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressIndicator.cpp b/src/controls/QskProgressIndicator.cpp index 9cf220e4..7dd8d11e 100644 --- a/src/controls/QskProgressIndicator.cpp +++ b/src/controls/QskProgressIndicator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressIndicator.h b/src/controls/QskProgressIndicator.h index 77d49002..4df628f7 100644 --- a/src/controls/QskProgressIndicator.h +++ b/src/controls/QskProgressIndicator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressIndicatorSkinlet.cpp b/src/controls/QskProgressIndicatorSkinlet.cpp index 04d98efb..d686377d 100644 --- a/src/controls/QskProgressIndicatorSkinlet.cpp +++ b/src/controls/QskProgressIndicatorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressIndicatorSkinlet.h b/src/controls/QskProgressIndicatorSkinlet.h index b99a53da..e1299adc 100644 --- a/src/controls/QskProgressIndicatorSkinlet.h +++ b/src/controls/QskProgressIndicatorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressRing.cpp b/src/controls/QskProgressRing.cpp index 9734ccab..dcc1d8d6 100644 --- a/src/controls/QskProgressRing.cpp +++ b/src/controls/QskProgressRing.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressRing.h b/src/controls/QskProgressRing.h index e4ce68e2..90d0048c 100644 --- a/src/controls/QskProgressRing.h +++ b/src/controls/QskProgressRing.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressRingSkinlet.cpp b/src/controls/QskProgressRingSkinlet.cpp index fa5c7ca5..86e90329 100644 --- a/src/controls/QskProgressRingSkinlet.cpp +++ b/src/controls/QskProgressRingSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskProgressRingSkinlet.h b/src/controls/QskProgressRingSkinlet.h index 009640ee..767930b1 100644 --- a/src/controls/QskProgressRingSkinlet.h +++ b/src/controls/QskProgressRingSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2023 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPushButton.cpp b/src/controls/QskPushButton.cpp index 862872f2..3d866cc7 100644 --- a/src/controls/QskPushButton.cpp +++ b/src/controls/QskPushButton.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPushButton.h b/src/controls/QskPushButton.h index d3699905..93515034 100644 --- a/src/controls/QskPushButton.h +++ b/src/controls/QskPushButton.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPushButtonSkinlet.cpp b/src/controls/QskPushButtonSkinlet.cpp index 43f94fea..7f19d782 100644 --- a/src/controls/QskPushButtonSkinlet.cpp +++ b/src/controls/QskPushButtonSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskPushButtonSkinlet.h b/src/controls/QskPushButtonSkinlet.h index b2d2583c..852bfd98 100644 --- a/src/controls/QskPushButtonSkinlet.h +++ b/src/controls/QskPushButtonSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuick.cpp b/src/controls/QskQuick.cpp index 9d223a36..3c153188 100644 --- a/src/controls/QskQuick.cpp +++ b/src/controls/QskQuick.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuick.h b/src/controls/QskQuick.h index c8afaafd..31024855 100644 --- a/src/controls/QskQuick.h +++ b/src/controls/QskQuick.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuickItem.cpp b/src/controls/QskQuickItem.cpp index 76d786ac..aa106f08 100644 --- a/src/controls/QskQuickItem.cpp +++ b/src/controls/QskQuickItem.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuickItem.h b/src/controls/QskQuickItem.h index 1b519a24..02f1807f 100644 --- a/src/controls/QskQuickItem.h +++ b/src/controls/QskQuickItem.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuickItemPrivate.cpp b/src/controls/QskQuickItemPrivate.cpp index 52e86b6f..bdfcb19e 100644 --- a/src/controls/QskQuickItemPrivate.cpp +++ b/src/controls/QskQuickItemPrivate.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskQuickItemPrivate.h b/src/controls/QskQuickItemPrivate.h index 150f4b93..615b3df3 100644 --- a/src/controls/QskQuickItemPrivate.h +++ b/src/controls/QskQuickItemPrivate.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskRadioBox.cpp b/src/controls/QskRadioBox.cpp index 70707591..482e3704 100644 --- a/src/controls/QskRadioBox.cpp +++ b/src/controls/QskRadioBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskRadioBox.h b/src/controls/QskRadioBox.h index 973f4c48..70cbcd9c 100644 --- a/src/controls/QskRadioBox.h +++ b/src/controls/QskRadioBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskRadioBoxSkinlet.cpp b/src/controls/QskRadioBoxSkinlet.cpp index 5accb744..2bc73a19 100644 --- a/src/controls/QskRadioBoxSkinlet.cpp +++ b/src/controls/QskRadioBoxSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskRadioBoxSkinlet.h b/src/controls/QskRadioBoxSkinlet.h index f934c5ec..3a777c3c 100644 --- a/src/controls/QskRadioBoxSkinlet.h +++ b/src/controls/QskRadioBoxSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollArea.cpp b/src/controls/QskScrollArea.cpp index 971848a1..6f4602c7 100644 --- a/src/controls/QskScrollArea.cpp +++ b/src/controls/QskScrollArea.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollArea.h b/src/controls/QskScrollArea.h index 957c29a8..e9139694 100644 --- a/src/controls/QskScrollArea.h +++ b/src/controls/QskScrollArea.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollBox.cpp b/src/controls/QskScrollBox.cpp index a975baed..65c78795 100644 --- a/src/controls/QskScrollBox.cpp +++ b/src/controls/QskScrollBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollBox.h b/src/controls/QskScrollBox.h index c7a64ffd..9b191810 100644 --- a/src/controls/QskScrollBox.h +++ b/src/controls/QskScrollBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollView.cpp b/src/controls/QskScrollView.cpp index 34622005..3627cc99 100644 --- a/src/controls/QskScrollView.cpp +++ b/src/controls/QskScrollView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollView.h b/src/controls/QskScrollView.h index 4771b394..6b340acf 100644 --- a/src/controls/QskScrollView.h +++ b/src/controls/QskScrollView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollViewSkinlet.cpp b/src/controls/QskScrollViewSkinlet.cpp index 3ab7848e..05865dc6 100644 --- a/src/controls/QskScrollViewSkinlet.cpp +++ b/src/controls/QskScrollViewSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskScrollViewSkinlet.h b/src/controls/QskScrollViewSkinlet.h index 0bc9d190..7e9feff0 100644 --- a/src/controls/QskScrollViewSkinlet.h +++ b/src/controls/QskScrollViewSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSegmentedBar.cpp b/src/controls/QskSegmentedBar.cpp index 058b728f..94b094c2 100644 --- a/src/controls/QskSegmentedBar.cpp +++ b/src/controls/QskSegmentedBar.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSegmentedBar.h b/src/controls/QskSegmentedBar.h index d65735a7..e32cbf5b 100644 --- a/src/controls/QskSegmentedBar.h +++ b/src/controls/QskSegmentedBar.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSegmentedBarSkinlet.cpp b/src/controls/QskSegmentedBarSkinlet.cpp index 17dc78ec..602587d7 100644 --- a/src/controls/QskSegmentedBarSkinlet.cpp +++ b/src/controls/QskSegmentedBarSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSegmentedBarSkinlet.h b/src/controls/QskSegmentedBarSkinlet.h index 15fa1d39..b63a319c 100644 --- a/src/controls/QskSegmentedBarSkinlet.h +++ b/src/controls/QskSegmentedBarSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSeparator.cpp b/src/controls/QskSeparator.cpp index c7802be7..14bacf42 100644 --- a/src/controls/QskSeparator.cpp +++ b/src/controls/QskSeparator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSeparator.h b/src/controls/QskSeparator.h index 1453a273..b7365777 100644 --- a/src/controls/QskSeparator.h +++ b/src/controls/QskSeparator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSeparatorSkinlet.cpp b/src/controls/QskSeparatorSkinlet.cpp index 0c2c1117..a117f328 100644 --- a/src/controls/QskSeparatorSkinlet.cpp +++ b/src/controls/QskSeparatorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSeparatorSkinlet.h b/src/controls/QskSeparatorSkinlet.h index 35b035ca..09274471 100644 --- a/src/controls/QskSeparatorSkinlet.h +++ b/src/controls/QskSeparatorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSetup.cpp b/src/controls/QskSetup.cpp index 37e4edc4..8fcf0319 100644 --- a/src/controls/QskSetup.cpp +++ b/src/controls/QskSetup.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSetup.h b/src/controls/QskSetup.h index 26da9732..1ea4c7f0 100644 --- a/src/controls/QskSetup.h +++ b/src/controls/QskSetup.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskShortcutMap.cpp b/src/controls/QskShortcutMap.cpp index c7d518ec..147924f6 100644 --- a/src/controls/QskShortcutMap.cpp +++ b/src/controls/QskShortcutMap.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskShortcutMap.h b/src/controls/QskShortcutMap.h index 69b895ee..3d547f33 100644 --- a/src/controls/QskShortcutMap.h +++ b/src/controls/QskShortcutMap.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSimpleListBox.cpp b/src/controls/QskSimpleListBox.cpp index 2e818059..c94acc47 100644 --- a/src/controls/QskSimpleListBox.cpp +++ b/src/controls/QskSimpleListBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSimpleListBox.h b/src/controls/QskSimpleListBox.h index 360e522d..86f94e64 100644 --- a/src/controls/QskSimpleListBox.h +++ b/src/controls/QskSimpleListBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkin.cpp b/src/controls/QskSkin.cpp index a791eb05..e93fbec6 100644 --- a/src/controls/QskSkin.cpp +++ b/src/controls/QskSkin.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkin.h b/src/controls/QskSkin.h index ba6a6206..5bd9d799 100644 --- a/src/controls/QskSkin.h +++ b/src/controls/QskSkin.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinFactory.cpp b/src/controls/QskSkinFactory.cpp index 7f9ecbc3..9d1ab835 100644 --- a/src/controls/QskSkinFactory.cpp +++ b/src/controls/QskSkinFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinFactory.h b/src/controls/QskSkinFactory.h index da2e8d2f..a6fc67d8 100644 --- a/src/controls/QskSkinFactory.h +++ b/src/controls/QskSkinFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinHintTable.cpp b/src/controls/QskSkinHintTable.cpp index 4a830278..cd0d1482 100644 --- a/src/controls/QskSkinHintTable.cpp +++ b/src/controls/QskSkinHintTable.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinHintTable.h b/src/controls/QskSkinHintTable.h index 0bdf0683..006ec57f 100644 --- a/src/controls/QskSkinHintTable.h +++ b/src/controls/QskSkinHintTable.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinHintTableEditor.cpp b/src/controls/QskSkinHintTableEditor.cpp index cd92d991..a89ed995 100644 --- a/src/controls/QskSkinHintTableEditor.cpp +++ b/src/controls/QskSkinHintTableEditor.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinHintTableEditor.h b/src/controls/QskSkinHintTableEditor.h index 8b9aa13d..b91255c4 100644 --- a/src/controls/QskSkinHintTableEditor.h +++ b/src/controls/QskSkinHintTableEditor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinManager.cpp b/src/controls/QskSkinManager.cpp index 33864821..ae4cc662 100644 --- a/src/controls/QskSkinManager.cpp +++ b/src/controls/QskSkinManager.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinManager.h b/src/controls/QskSkinManager.h index fd88e450..74563854 100644 --- a/src/controls/QskSkinManager.h +++ b/src/controls/QskSkinManager.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinStateChanger.h b/src/controls/QskSkinStateChanger.h index 906fdbae..4aaba3cc 100644 --- a/src/controls/QskSkinStateChanger.h +++ b/src/controls/QskSkinStateChanger.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinTransition.cpp b/src/controls/QskSkinTransition.cpp index dc6ee00c..8b6776a0 100644 --- a/src/controls/QskSkinTransition.cpp +++ b/src/controls/QskSkinTransition.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinTransition.h b/src/controls/QskSkinTransition.h index 6fc13f1b..79598897 100644 --- a/src/controls/QskSkinTransition.h +++ b/src/controls/QskSkinTransition.h @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #ifndef QSK_SKIN_TRANSITION_H #define QSK_SKIN_TRANSITION_H diff --git a/src/controls/QskSkinlet.cpp b/src/controls/QskSkinlet.cpp index 1924339e..93b86dce 100644 --- a/src/controls/QskSkinlet.cpp +++ b/src/controls/QskSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinlet.h b/src/controls/QskSkinlet.h index 3cfc7db0..e4a76de6 100644 --- a/src/controls/QskSkinlet.h +++ b/src/controls/QskSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index e82f51b3..3931dd9d 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index 94886960..bed91135 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSlider.cpp b/src/controls/QskSlider.cpp index 15f6184c..d92366c3 100644 --- a/src/controls/QskSlider.cpp +++ b/src/controls/QskSlider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSlider.h b/src/controls/QskSlider.h index 68413b0b..88418d80 100644 --- a/src/controls/QskSlider.h +++ b/src/controls/QskSlider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSliderSkinlet.cpp b/src/controls/QskSliderSkinlet.cpp index 3adda86c..9dbc720b 100644 --- a/src/controls/QskSliderSkinlet.cpp +++ b/src/controls/QskSliderSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSliderSkinlet.h b/src/controls/QskSliderSkinlet.h index 3795c0b2..170e13c6 100644 --- a/src/controls/QskSliderSkinlet.h +++ b/src/controls/QskSliderSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSpinBox.cpp b/src/controls/QskSpinBox.cpp index 9959cac7..56ae6e7f 100644 --- a/src/controls/QskSpinBox.cpp +++ b/src/controls/QskSpinBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSpinBox.h b/src/controls/QskSpinBox.h index 5837e951..518537c1 100644 --- a/src/controls/QskSpinBox.h +++ b/src/controls/QskSpinBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSpinBoxSkinlet.cpp b/src/controls/QskSpinBoxSkinlet.cpp index b0394f30..8970f703 100644 --- a/src/controls/QskSpinBoxSkinlet.cpp +++ b/src/controls/QskSpinBoxSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSpinBoxSkinlet.h b/src/controls/QskSpinBoxSkinlet.h index 81fc3fdb..1a0710b1 100644 --- a/src/controls/QskSpinBoxSkinlet.h +++ b/src/controls/QskSpinBoxSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskStatusIndicator.cpp b/src/controls/QskStatusIndicator.cpp index 643d2fe4..09a67a34 100644 --- a/src/controls/QskStatusIndicator.cpp +++ b/src/controls/QskStatusIndicator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskStatusIndicator.h b/src/controls/QskStatusIndicator.h index b08e8e54..a99ddc52 100644 --- a/src/controls/QskStatusIndicator.h +++ b/src/controls/QskStatusIndicator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskStatusIndicatorSkinlet.cpp b/src/controls/QskStatusIndicatorSkinlet.cpp index 50a512b3..9cb2e7d7 100644 --- a/src/controls/QskStatusIndicatorSkinlet.cpp +++ b/src/controls/QskStatusIndicatorSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskStatusIndicatorSkinlet.h b/src/controls/QskStatusIndicatorSkinlet.h index 1f128d3a..782b97e8 100644 --- a/src/controls/QskStatusIndicatorSkinlet.h +++ b/src/controls/QskStatusIndicatorSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindow.cpp b/src/controls/QskSubWindow.cpp index 229b4000..90833ef6 100644 --- a/src/controls/QskSubWindow.cpp +++ b/src/controls/QskSubWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindow.h b/src/controls/QskSubWindow.h index 42afd11b..a23932b0 100644 --- a/src/controls/QskSubWindow.h +++ b/src/controls/QskSubWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowArea.cpp b/src/controls/QskSubWindowArea.cpp index 7829a214..5e7db643 100644 --- a/src/controls/QskSubWindowArea.cpp +++ b/src/controls/QskSubWindowArea.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowArea.h b/src/controls/QskSubWindowArea.h index 171fb7ec..3400ab2e 100644 --- a/src/controls/QskSubWindowArea.h +++ b/src/controls/QskSubWindowArea.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowAreaSkinlet.cpp b/src/controls/QskSubWindowAreaSkinlet.cpp index 32dc81f8..4c66656d 100644 --- a/src/controls/QskSubWindowAreaSkinlet.cpp +++ b/src/controls/QskSubWindowAreaSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowAreaSkinlet.h b/src/controls/QskSubWindowAreaSkinlet.h index 99c2ac22..d93929a5 100644 --- a/src/controls/QskSubWindowAreaSkinlet.h +++ b/src/controls/QskSubWindowAreaSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowSkinlet.cpp b/src/controls/QskSubWindowSkinlet.cpp index 84e9a571..ff69abeb 100644 --- a/src/controls/QskSubWindowSkinlet.cpp +++ b/src/controls/QskSubWindowSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSubWindowSkinlet.h b/src/controls/QskSubWindowSkinlet.h index fd2bc5dc..fb1f1187 100644 --- a/src/controls/QskSubWindowSkinlet.h +++ b/src/controls/QskSubWindowSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSwipeView.cpp b/src/controls/QskSwipeView.cpp index 545c416f..a1e94a09 100644 --- a/src/controls/QskSwipeView.cpp +++ b/src/controls/QskSwipeView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSwipeView.h b/src/controls/QskSwipeView.h index 390634e0..5135a840 100644 --- a/src/controls/QskSwipeView.h +++ b/src/controls/QskSwipeView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSwitchButton.cpp b/src/controls/QskSwitchButton.cpp index c0b28d3c..b0dd5800 100644 --- a/src/controls/QskSwitchButton.cpp +++ b/src/controls/QskSwitchButton.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "QskSwitchButton.h" QSK_SUBCONTROL( QskSwitchButton, Handle ) diff --git a/src/controls/QskSwitchButton.h b/src/controls/QskSwitchButton.h index 067d2638..cc32faed 100644 --- a/src/controls/QskSwitchButton.h +++ b/src/controls/QskSwitchButton.h @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #ifndef QSK_SWITCH_BUTTON_H #define QSK_SWITCH_BUTTON_H diff --git a/src/controls/QskSwitchButtonSkinlet.cpp b/src/controls/QskSwitchButtonSkinlet.cpp index 9de85d8b..e755c8c6 100644 --- a/src/controls/QskSwitchButtonSkinlet.cpp +++ b/src/controls/QskSwitchButtonSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskSwitchButtonSkinlet.h b/src/controls/QskSwitchButtonSkinlet.h index 653ec469..f9926d0e 100644 --- a/src/controls/QskSwitchButtonSkinlet.h +++ b/src/controls/QskSwitchButtonSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabBar.cpp b/src/controls/QskTabBar.cpp index 919e829e..eb0eaff8 100644 --- a/src/controls/QskTabBar.cpp +++ b/src/controls/QskTabBar.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabBar.h b/src/controls/QskTabBar.h index 922582ce..e80c24fd 100644 --- a/src/controls/QskTabBar.h +++ b/src/controls/QskTabBar.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabButton.cpp b/src/controls/QskTabButton.cpp index b1ea1977..71e0fd11 100644 --- a/src/controls/QskTabButton.cpp +++ b/src/controls/QskTabButton.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabButton.h b/src/controls/QskTabButton.h index 95b1394f..422c744f 100644 --- a/src/controls/QskTabButton.h +++ b/src/controls/QskTabButton.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabButtonSkinlet.cpp b/src/controls/QskTabButtonSkinlet.cpp index 0299d5c6..109f0a99 100644 --- a/src/controls/QskTabButtonSkinlet.cpp +++ b/src/controls/QskTabButtonSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabButtonSkinlet.h b/src/controls/QskTabButtonSkinlet.h index d7940996..5b0f7337 100644 --- a/src/controls/QskTabButtonSkinlet.h +++ b/src/controls/QskTabButtonSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabView.cpp b/src/controls/QskTabView.cpp index 100a55f8..5a2a6285 100644 --- a/src/controls/QskTabView.cpp +++ b/src/controls/QskTabView.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabView.h b/src/controls/QskTabView.h index c625576e..9df69c6d 100644 --- a/src/controls/QskTabView.h +++ b/src/controls/QskTabView.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabViewSkinlet.cpp b/src/controls/QskTabViewSkinlet.cpp index 8946f167..3cb2835f 100644 --- a/src/controls/QskTabViewSkinlet.cpp +++ b/src/controls/QskTabViewSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTabViewSkinlet.h b/src/controls/QskTabViewSkinlet.h index 057e19eb..6427fd1e 100644 --- a/src/controls/QskTabViewSkinlet.h +++ b/src/controls/QskTabViewSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextInput.cpp b/src/controls/QskTextInput.cpp index 92e79076..91491377 100644 --- a/src/controls/QskTextInput.cpp +++ b/src/controls/QskTextInput.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextInput.h b/src/controls/QskTextInput.h index e676156e..f26e6a6b 100644 --- a/src/controls/QskTextInput.h +++ b/src/controls/QskTextInput.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextInputSkinlet.cpp b/src/controls/QskTextInputSkinlet.cpp index 99b57fe4..8f0e1b4c 100644 --- a/src/controls/QskTextInputSkinlet.cpp +++ b/src/controls/QskTextInputSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextInputSkinlet.h b/src/controls/QskTextInputSkinlet.h index ac12198a..946c6d32 100644 --- a/src/controls/QskTextInputSkinlet.h +++ b/src/controls/QskTextInputSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextLabel.cpp b/src/controls/QskTextLabel.cpp index 370c6b26..d5fd6d24 100644 --- a/src/controls/QskTextLabel.cpp +++ b/src/controls/QskTextLabel.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextLabel.h b/src/controls/QskTextLabel.h index b6e766b0..4911a8dd 100644 --- a/src/controls/QskTextLabel.h +++ b/src/controls/QskTextLabel.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextLabelSkinlet.cpp b/src/controls/QskTextLabelSkinlet.cpp index a981386c..3826afeb 100644 --- a/src/controls/QskTextLabelSkinlet.cpp +++ b/src/controls/QskTextLabelSkinlet.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskTextLabelSkinlet.h b/src/controls/QskTextLabelSkinlet.h index 85752cab..1aa53f1c 100644 --- a/src/controls/QskTextLabelSkinlet.h +++ b/src/controls/QskTextLabelSkinlet.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskVariantAnimator.cpp b/src/controls/QskVariantAnimator.cpp index 61b8a57c..7518cc9a 100644 --- a/src/controls/QskVariantAnimator.cpp +++ b/src/controls/QskVariantAnimator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskVariantAnimator.h b/src/controls/QskVariantAnimator.h index ea438e62..0f86e78a 100644 --- a/src/controls/QskVariantAnimator.h +++ b/src/controls/QskVariantAnimator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskWindow.cpp b/src/controls/QskWindow.cpp index 7955320a..431e9da9 100644 --- a/src/controls/QskWindow.cpp +++ b/src/controls/QskWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/controls/QskWindow.h b/src/controls/QskWindow.h index 07320b65..1dca9609 100644 --- a/src/controls/QskWindow.h +++ b/src/controls/QskWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialog.cpp b/src/dialogs/QskDialog.cpp index d75b5b4e..c3f21a97 100644 --- a/src/dialogs/QskDialog.cpp +++ b/src/dialogs/QskDialog.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialog.h b/src/dialogs/QskDialog.h index 51c0fe3f..988e9162 100644 --- a/src/dialogs/QskDialog.h +++ b/src/dialogs/QskDialog.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogButton.cpp b/src/dialogs/QskDialogButton.cpp index 82553680..d3ccde3b 100644 --- a/src/dialogs/QskDialogButton.cpp +++ b/src/dialogs/QskDialogButton.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogButton.h b/src/dialogs/QskDialogButton.h index 44f3c902..7fd1f0ae 100644 --- a/src/dialogs/QskDialogButton.h +++ b/src/dialogs/QskDialogButton.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogButtonBox.cpp b/src/dialogs/QskDialogButtonBox.cpp index 47cfc75a..f71290c6 100644 --- a/src/dialogs/QskDialogButtonBox.cpp +++ b/src/dialogs/QskDialogButtonBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogButtonBox.h b/src/dialogs/QskDialogButtonBox.h index db9dc42c..620a0be8 100644 --- a/src/dialogs/QskDialogButtonBox.h +++ b/src/dialogs/QskDialogButtonBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogSubWindow.cpp b/src/dialogs/QskDialogSubWindow.cpp index 5643fec7..22dd751f 100644 --- a/src/dialogs/QskDialogSubWindow.cpp +++ b/src/dialogs/QskDialogSubWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogSubWindow.h b/src/dialogs/QskDialogSubWindow.h index c0cff1d7..2a045e90 100644 --- a/src/dialogs/QskDialogSubWindow.h +++ b/src/dialogs/QskDialogSubWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogWindow.cpp b/src/dialogs/QskDialogWindow.cpp index 99014d6c..e8c2ea25 100644 --- a/src/dialogs/QskDialogWindow.cpp +++ b/src/dialogs/QskDialogWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskDialogWindow.h b/src/dialogs/QskDialogWindow.h index 40e7ada7..6b81e05f 100644 --- a/src/dialogs/QskDialogWindow.h +++ b/src/dialogs/QskDialogWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskMessageSubWindow.cpp b/src/dialogs/QskMessageSubWindow.cpp index 966247ae..ad9fde29 100644 --- a/src/dialogs/QskMessageSubWindow.cpp +++ b/src/dialogs/QskMessageSubWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskMessageSubWindow.h b/src/dialogs/QskMessageSubWindow.h index 54d844ad..fe4cb75b 100644 --- a/src/dialogs/QskMessageSubWindow.h +++ b/src/dialogs/QskMessageSubWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskMessageWindow.cpp b/src/dialogs/QskMessageWindow.cpp index c5195b26..e22d3e55 100644 --- a/src/dialogs/QskMessageWindow.cpp +++ b/src/dialogs/QskMessageWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskMessageWindow.h b/src/dialogs/QskMessageWindow.h index 8965946e..1a65fca3 100644 --- a/src/dialogs/QskMessageWindow.h +++ b/src/dialogs/QskMessageWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskSelectionSubWindow.cpp b/src/dialogs/QskSelectionSubWindow.cpp index 3f24e187..91a22f38 100644 --- a/src/dialogs/QskSelectionSubWindow.cpp +++ b/src/dialogs/QskSelectionSubWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskSelectionSubWindow.h b/src/dialogs/QskSelectionSubWindow.h index e36390dd..a8373bfa 100644 --- a/src/dialogs/QskSelectionSubWindow.h +++ b/src/dialogs/QskSelectionSubWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskSelectionWindow.cpp b/src/dialogs/QskSelectionWindow.cpp index b95542c5..f14674e3 100644 --- a/src/dialogs/QskSelectionWindow.cpp +++ b/src/dialogs/QskSelectionWindow.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/dialogs/QskSelectionWindow.h b/src/dialogs/QskSelectionWindow.h index b14727c0..c54e9879 100644 --- a/src/dialogs/QskSelectionWindow.h +++ b/src/dialogs/QskSelectionWindow.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskColorFilter.cpp b/src/graphic/QskColorFilter.cpp index f8049754..d99fa073 100644 --- a/src/graphic/QskColorFilter.cpp +++ b/src/graphic/QskColorFilter.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskColorFilter.h b/src/graphic/QskColorFilter.h index c45b10c8..9f72e3e4 100644 --- a/src/graphic/QskColorFilter.h +++ b/src/graphic/QskColorFilter.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphic.cpp b/src/graphic/QskGraphic.cpp index c6326790..791e79ae 100644 --- a/src/graphic/QskGraphic.cpp +++ b/src/graphic/QskGraphic.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphic.h b/src/graphic/QskGraphic.h index b45aa937..bd678397 100644 --- a/src/graphic/QskGraphic.h +++ b/src/graphic/QskGraphic.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicIO.cpp b/src/graphic/QskGraphicIO.cpp index 8678d9ea..77d21785 100644 --- a/src/graphic/QskGraphicIO.cpp +++ b/src/graphic/QskGraphicIO.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicIO.h b/src/graphic/QskGraphicIO.h index c5d6fdf5..f4c40be7 100644 --- a/src/graphic/QskGraphicIO.h +++ b/src/graphic/QskGraphicIO.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicImageProvider.cpp b/src/graphic/QskGraphicImageProvider.cpp index f5111caa..9a1c8f7b 100644 --- a/src/graphic/QskGraphicImageProvider.cpp +++ b/src/graphic/QskGraphicImageProvider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicImageProvider.h b/src/graphic/QskGraphicImageProvider.h index 35f870ce..5a92a3e5 100644 --- a/src/graphic/QskGraphicImageProvider.h +++ b/src/graphic/QskGraphicImageProvider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicPaintEngine.cpp b/src/graphic/QskGraphicPaintEngine.cpp index 729361b0..7088d9c6 100644 --- a/src/graphic/QskGraphicPaintEngine.cpp +++ b/src/graphic/QskGraphicPaintEngine.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicPaintEngine.h b/src/graphic/QskGraphicPaintEngine.h index bb78d7a0..e34d806e 100644 --- a/src/graphic/QskGraphicPaintEngine.h +++ b/src/graphic/QskGraphicPaintEngine.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicProvider.cpp b/src/graphic/QskGraphicProvider.cpp index edc66ac7..da3767e2 100644 --- a/src/graphic/QskGraphicProvider.cpp +++ b/src/graphic/QskGraphicProvider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicProvider.h b/src/graphic/QskGraphicProvider.h index 6c935a4d..2eead705 100644 --- a/src/graphic/QskGraphicProvider.h +++ b/src/graphic/QskGraphicProvider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicProviderMap.cpp b/src/graphic/QskGraphicProviderMap.cpp index 2145fade..b60112bf 100644 --- a/src/graphic/QskGraphicProviderMap.cpp +++ b/src/graphic/QskGraphicProviderMap.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicProviderMap.h b/src/graphic/QskGraphicProviderMap.h index b71f0d56..30952172 100644 --- a/src/graphic/QskGraphicProviderMap.h +++ b/src/graphic/QskGraphicProviderMap.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicTextureFactory.cpp b/src/graphic/QskGraphicTextureFactory.cpp index 029ee187..24cff214 100644 --- a/src/graphic/QskGraphicTextureFactory.cpp +++ b/src/graphic/QskGraphicTextureFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskGraphicTextureFactory.h b/src/graphic/QskGraphicTextureFactory.h index f31d8573..557e9eaf 100644 --- a/src/graphic/QskGraphicTextureFactory.h +++ b/src/graphic/QskGraphicTextureFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskIcon.cpp b/src/graphic/QskIcon.cpp index 0bd4a5e4..afebe961 100644 --- a/src/graphic/QskIcon.cpp +++ b/src/graphic/QskIcon.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskIcon.h b/src/graphic/QskIcon.h index 681178e8..dbc7845b 100644 --- a/src/graphic/QskIcon.h +++ b/src/graphic/QskIcon.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskPainterCommand.cpp b/src/graphic/QskPainterCommand.cpp index 5a61b209..a6a3db70 100644 --- a/src/graphic/QskPainterCommand.cpp +++ b/src/graphic/QskPainterCommand.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskPainterCommand.h b/src/graphic/QskPainterCommand.h index e7d5ccde..e6dd7ac0 100644 --- a/src/graphic/QskPainterCommand.h +++ b/src/graphic/QskPainterCommand.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskStandardSymbol.cpp b/src/graphic/QskStandardSymbol.cpp index 6898b0df..80e63574 100644 --- a/src/graphic/QskStandardSymbol.cpp +++ b/src/graphic/QskStandardSymbol.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/graphic/QskStandardSymbol.h b/src/graphic/QskStandardSymbol.h index 100ab0b2..c79a6bbb 100644 --- a/src/graphic/QskStandardSymbol.h +++ b/src/graphic/QskStandardSymbol.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskHunspellTextPredictor.cpp b/src/inputpanel/QskHunspellTextPredictor.cpp index a172490c..49a4de9b 100644 --- a/src/inputpanel/QskHunspellTextPredictor.cpp +++ b/src/inputpanel/QskHunspellTextPredictor.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskHunspellTextPredictor.h b/src/inputpanel/QskHunspellTextPredictor.h index 10812ce1..11d7f0b6 100644 --- a/src/inputpanel/QskHunspellTextPredictor.h +++ b/src/inputpanel/QskHunspellTextPredictor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputContext.cpp b/src/inputpanel/QskInputContext.cpp index 1e05eb0c..ec3aa01b 100644 --- a/src/inputpanel/QskInputContext.cpp +++ b/src/inputpanel/QskInputContext.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputContext.h b/src/inputpanel/QskInputContext.h index 2c046528..fa284e3e 100644 --- a/src/inputpanel/QskInputContext.h +++ b/src/inputpanel/QskInputContext.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPanel.cpp b/src/inputpanel/QskInputPanel.cpp index 8ced7fea..9625873b 100644 --- a/src/inputpanel/QskInputPanel.cpp +++ b/src/inputpanel/QskInputPanel.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPanel.h b/src/inputpanel/QskInputPanel.h index 79e45c9c..d72e3d7c 100644 --- a/src/inputpanel/QskInputPanel.h +++ b/src/inputpanel/QskInputPanel.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPanelBox.cpp b/src/inputpanel/QskInputPanelBox.cpp index 23ba6879..46cda216 100644 --- a/src/inputpanel/QskInputPanelBox.cpp +++ b/src/inputpanel/QskInputPanelBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPanelBox.h b/src/inputpanel/QskInputPanelBox.h index ac2edbba..aaaa8554 100644 --- a/src/inputpanel/QskInputPanelBox.h +++ b/src/inputpanel/QskInputPanelBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPredictionBar.cpp b/src/inputpanel/QskInputPredictionBar.cpp index 330e4755..fa4c1f98 100644 --- a/src/inputpanel/QskInputPredictionBar.cpp +++ b/src/inputpanel/QskInputPredictionBar.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskInputPredictionBar.h b/src/inputpanel/QskInputPredictionBar.h index 2371f117..b4154f58 100644 --- a/src/inputpanel/QskInputPredictionBar.h +++ b/src/inputpanel/QskInputPredictionBar.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskPinyinTextPredictor.cpp b/src/inputpanel/QskPinyinTextPredictor.cpp index cd066109..e051b634 100644 --- a/src/inputpanel/QskPinyinTextPredictor.cpp +++ b/src/inputpanel/QskPinyinTextPredictor.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskPinyinTextPredictor.h b/src/inputpanel/QskPinyinTextPredictor.h index 8b9e0c08..00196728 100644 --- a/src/inputpanel/QskPinyinTextPredictor.h +++ b/src/inputpanel/QskPinyinTextPredictor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskTextPredictor.cpp b/src/inputpanel/QskTextPredictor.cpp index c9b5144a..f5cbcf84 100644 --- a/src/inputpanel/QskTextPredictor.cpp +++ b/src/inputpanel/QskTextPredictor.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskTextPredictor.h b/src/inputpanel/QskTextPredictor.h index c17fa125..42e1387d 100644 --- a/src/inputpanel/QskTextPredictor.h +++ b/src/inputpanel/QskTextPredictor.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskVirtualKeyboard.cpp b/src/inputpanel/QskVirtualKeyboard.cpp index c0e7ccf9..1416a587 100644 --- a/src/inputpanel/QskVirtualKeyboard.cpp +++ b/src/inputpanel/QskVirtualKeyboard.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskVirtualKeyboard.h b/src/inputpanel/QskVirtualKeyboard.h index 8e45d455..ca660420 100644 --- a/src/inputpanel/QskVirtualKeyboard.h +++ b/src/inputpanel/QskVirtualKeyboard.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/inputpanel/QskVirtualKeyboardLayouts.cpp b/src/inputpanel/QskVirtualKeyboardLayouts.cpp index 44dfcc50..7d933f60 100644 --- a/src/inputpanel/QskVirtualKeyboardLayouts.cpp +++ b/src/inputpanel/QskVirtualKeyboardLayouts.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskGridBox.cpp b/src/layouts/QskGridBox.cpp index d0e93b99..15c6c2b9 100644 --- a/src/layouts/QskGridBox.cpp +++ b/src/layouts/QskGridBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskGridBox.h b/src/layouts/QskGridBox.h index f177ad49..73a8e1ed 100644 --- a/src/layouts/QskGridBox.h +++ b/src/layouts/QskGridBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskGridLayoutEngine.cpp b/src/layouts/QskGridLayoutEngine.cpp index cc56af13..dacf5ded 100644 --- a/src/layouts/QskGridLayoutEngine.cpp +++ b/src/layouts/QskGridLayoutEngine.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskGridLayoutEngine.h b/src/layouts/QskGridLayoutEngine.h index 37a63ef7..fab552e0 100644 --- a/src/layouts/QskGridLayoutEngine.h +++ b/src/layouts/QskGridLayoutEngine.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskIndexedLayoutBox.cpp b/src/layouts/QskIndexedLayoutBox.cpp index 7fb7a26a..cc219541 100644 --- a/src/layouts/QskIndexedLayoutBox.cpp +++ b/src/layouts/QskIndexedLayoutBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskIndexedLayoutBox.h b/src/layouts/QskIndexedLayoutBox.h index 5098297a..58532f6f 100644 --- a/src/layouts/QskIndexedLayoutBox.h +++ b/src/layouts/QskIndexedLayoutBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutChain.cpp b/src/layouts/QskLayoutChain.cpp index 9bdbd855..5a086f88 100644 --- a/src/layouts/QskLayoutChain.cpp +++ b/src/layouts/QskLayoutChain.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutChain.h b/src/layouts/QskLayoutChain.h index 8895f264..2c268407 100644 --- a/src/layouts/QskLayoutChain.h +++ b/src/layouts/QskLayoutChain.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutElement.cpp b/src/layouts/QskLayoutElement.cpp index 5d768edb..ba02f294 100644 --- a/src/layouts/QskLayoutElement.cpp +++ b/src/layouts/QskLayoutElement.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutElement.h b/src/layouts/QskLayoutElement.h index 4bebca0b..36a655a7 100644 --- a/src/layouts/QskLayoutElement.h +++ b/src/layouts/QskLayoutElement.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutEngine2D.cpp b/src/layouts/QskLayoutEngine2D.cpp index 5add6d55..1a49fd7b 100644 --- a/src/layouts/QskLayoutEngine2D.cpp +++ b/src/layouts/QskLayoutEngine2D.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutEngine2D.h b/src/layouts/QskLayoutEngine2D.h index d468c24c..ed1da76d 100644 --- a/src/layouts/QskLayoutEngine2D.h +++ b/src/layouts/QskLayoutEngine2D.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutMetrics.cpp b/src/layouts/QskLayoutMetrics.cpp index 01456414..7e5c91f0 100644 --- a/src/layouts/QskLayoutMetrics.cpp +++ b/src/layouts/QskLayoutMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLayoutMetrics.h b/src/layouts/QskLayoutMetrics.h index c440daf7..33e440c8 100644 --- a/src/layouts/QskLayoutMetrics.h +++ b/src/layouts/QskLayoutMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLinearBox.cpp b/src/layouts/QskLinearBox.cpp index cc4ec382..46291fbf 100644 --- a/src/layouts/QskLinearBox.cpp +++ b/src/layouts/QskLinearBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLinearBox.h b/src/layouts/QskLinearBox.h index b0b67d84..71fe7a72 100644 --- a/src/layouts/QskLinearBox.h +++ b/src/layouts/QskLinearBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLinearLayoutEngine.cpp b/src/layouts/QskLinearLayoutEngine.cpp index 3d46a1b8..fecd4855 100644 --- a/src/layouts/QskLinearLayoutEngine.cpp +++ b/src/layouts/QskLinearLayoutEngine.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskLinearLayoutEngine.h b/src/layouts/QskLinearLayoutEngine.h index 799cd021..00543064 100644 --- a/src/layouts/QskLinearLayoutEngine.h +++ b/src/layouts/QskLinearLayoutEngine.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskStackBox.cpp b/src/layouts/QskStackBox.cpp index 2b3eaf54..87b14999 100644 --- a/src/layouts/QskStackBox.cpp +++ b/src/layouts/QskStackBox.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskStackBox.h b/src/layouts/QskStackBox.h index 0ba97e7a..b910c984 100644 --- a/src/layouts/QskStackBox.h +++ b/src/layouts/QskStackBox.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskStackBoxAnimator.cpp b/src/layouts/QskStackBoxAnimator.cpp index 5171537b..5558fd31 100644 --- a/src/layouts/QskStackBoxAnimator.cpp +++ b/src/layouts/QskStackBoxAnimator.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskStackBoxAnimator.h b/src/layouts/QskStackBoxAnimator.h index 8fd0d994..c7b887dc 100644 --- a/src/layouts/QskStackBoxAnimator.h +++ b/src/layouts/QskStackBoxAnimator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskSubcontrolLayoutEngine.cpp b/src/layouts/QskSubcontrolLayoutEngine.cpp index e00b4835..13ee254f 100644 --- a/src/layouts/QskSubcontrolLayoutEngine.cpp +++ b/src/layouts/QskSubcontrolLayoutEngine.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/layouts/QskSubcontrolLayoutEngine.h b/src/layouts/QskSubcontrolLayoutEngine.h index c1afc485..d2a80ec6 100644 --- a/src/layouts/QskSubcontrolLayoutEngine.h +++ b/src/layouts/QskSubcontrolLayoutEngine.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskArcNode.cpp b/src/nodes/QskArcNode.cpp index ad280879..e3de5c0a 100644 --- a/src/nodes/QskArcNode.cpp +++ b/src/nodes/QskArcNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskArcNode.h b/src/nodes/QskArcNode.h index 16784f2a..c4fa330a 100644 --- a/src/nodes/QskArcNode.h +++ b/src/nodes/QskArcNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskArcShadowNode.cpp b/src/nodes/QskArcShadowNode.cpp index 8ced5062..ed1128b1 100644 --- a/src/nodes/QskArcShadowNode.cpp +++ b/src/nodes/QskArcShadowNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskArcShadowNode.h b/src/nodes/QskArcShadowNode.h index 5d76b9bf..2a6528fa 100644 --- a/src/nodes/QskArcShadowNode.h +++ b/src/nodes/QskArcShadowNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBasicLinesNode.cpp b/src/nodes/QskBasicLinesNode.cpp index 93414295..292a5629 100644 --- a/src/nodes/QskBasicLinesNode.cpp +++ b/src/nodes/QskBasicLinesNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBasicLinesNode.h b/src/nodes/QskBasicLinesNode.h index cbbe02a2..3d355a7b 100644 --- a/src/nodes/QskBasicLinesNode.h +++ b/src/nodes/QskBasicLinesNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxBasicStroker.cpp b/src/nodes/QskBoxBasicStroker.cpp index b6442179..b893428a 100644 --- a/src/nodes/QskBoxBasicStroker.cpp +++ b/src/nodes/QskBoxBasicStroker.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxBasicStroker.h b/src/nodes/QskBoxBasicStroker.h index 79ee62cd..b43e9fbc 100644 --- a/src/nodes/QskBoxBasicStroker.h +++ b/src/nodes/QskBoxBasicStroker.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxClipNode.cpp b/src/nodes/QskBoxClipNode.cpp index 1ac27826..d90891b6 100644 --- a/src/nodes/QskBoxClipNode.cpp +++ b/src/nodes/QskBoxClipNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxClipNode.h b/src/nodes/QskBoxClipNode.h index 51f773f4..9312334d 100644 --- a/src/nodes/QskBoxClipNode.h +++ b/src/nodes/QskBoxClipNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxColorMap.h b/src/nodes/QskBoxColorMap.h index dc6f216a..69f04604 100644 --- a/src/nodes/QskBoxColorMap.h +++ b/src/nodes/QskBoxColorMap.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxFillNode.cpp b/src/nodes/QskBoxFillNode.cpp index 971a422c..2da882c5 100644 --- a/src/nodes/QskBoxFillNode.cpp +++ b/src/nodes/QskBoxFillNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxFillNode.h b/src/nodes/QskBoxFillNode.h index 9b8875fe..d43b82d7 100644 --- a/src/nodes/QskBoxFillNode.h +++ b/src/nodes/QskBoxFillNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxGradientStroker.cpp b/src/nodes/QskBoxGradientStroker.cpp index 6cf8c2d8..ad2537ca 100644 --- a/src/nodes/QskBoxGradientStroker.cpp +++ b/src/nodes/QskBoxGradientStroker.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxGradientStroker.h b/src/nodes/QskBoxGradientStroker.h index 1245497b..1d133802 100644 --- a/src/nodes/QskBoxGradientStroker.h +++ b/src/nodes/QskBoxGradientStroker.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxMetrics.cpp b/src/nodes/QskBoxMetrics.cpp index 0a448020..a0cf0cff 100644 --- a/src/nodes/QskBoxMetrics.cpp +++ b/src/nodes/QskBoxMetrics.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxMetrics.h b/src/nodes/QskBoxMetrics.h index a78b8a1e..cde8508d 100644 --- a/src/nodes/QskBoxMetrics.h +++ b/src/nodes/QskBoxMetrics.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxNode.cpp b/src/nodes/QskBoxNode.cpp index 4de2242c..fbad3b89 100644 --- a/src/nodes/QskBoxNode.cpp +++ b/src/nodes/QskBoxNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxNode.h b/src/nodes/QskBoxNode.h index 41764edb..999fa58c 100644 --- a/src/nodes/QskBoxNode.h +++ b/src/nodes/QskBoxNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxRectangleNode.cpp b/src/nodes/QskBoxRectangleNode.cpp index ae3ce80c..da7c8a97 100644 --- a/src/nodes/QskBoxRectangleNode.cpp +++ b/src/nodes/QskBoxRectangleNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxRectangleNode.h b/src/nodes/QskBoxRectangleNode.h index 502f5ced..cae20aab 100644 --- a/src/nodes/QskBoxRectangleNode.h +++ b/src/nodes/QskBoxRectangleNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxRenderer.cpp b/src/nodes/QskBoxRenderer.cpp index ea85dfcf..3c9c73ea 100644 --- a/src/nodes/QskBoxRenderer.cpp +++ b/src/nodes/QskBoxRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxRenderer.h b/src/nodes/QskBoxRenderer.h index 78786643..1b6face6 100644 --- a/src/nodes/QskBoxRenderer.h +++ b/src/nodes/QskBoxRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxShadowNode.cpp b/src/nodes/QskBoxShadowNode.cpp index 6f730ceb..cfb0099e 100644 --- a/src/nodes/QskBoxShadowNode.cpp +++ b/src/nodes/QskBoxShadowNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskBoxShadowNode.h b/src/nodes/QskBoxShadowNode.h index b4c71f68..2605a0e2 100644 --- a/src/nodes/QskBoxShadowNode.h +++ b/src/nodes/QskBoxShadowNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskColorRamp.cpp b/src/nodes/QskColorRamp.cpp index b5d059fb..2d0cc7d9 100644 --- a/src/nodes/QskColorRamp.cpp +++ b/src/nodes/QskColorRamp.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskColorRamp.h b/src/nodes/QskColorRamp.h index 68d27135..df105128 100644 --- a/src/nodes/QskColorRamp.h +++ b/src/nodes/QskColorRamp.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskFillNode.cpp b/src/nodes/QskFillNode.cpp index b5fbba51..bdb6ddc5 100644 --- a/src/nodes/QskFillNode.cpp +++ b/src/nodes/QskFillNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskFillNode.h b/src/nodes/QskFillNode.h index 5da3be54..a2d7abac 100644 --- a/src/nodes/QskFillNode.h +++ b/src/nodes/QskFillNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskFillNodePrivate.h b/src/nodes/QskFillNodePrivate.h index 7e79984c..2da5784b 100644 --- a/src/nodes/QskFillNodePrivate.h +++ b/src/nodes/QskFillNodePrivate.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGradientMaterial.cpp b/src/nodes/QskGradientMaterial.cpp index 29771012..1a64f699 100644 --- a/src/nodes/QskGradientMaterial.cpp +++ b/src/nodes/QskGradientMaterial.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGradientMaterial.h b/src/nodes/QskGradientMaterial.h index 074e1822..77c24dcf 100644 --- a/src/nodes/QskGradientMaterial.h +++ b/src/nodes/QskGradientMaterial.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraduationNode.cpp b/src/nodes/QskGraduationNode.cpp index 5221bfc1..46bc22a9 100644 --- a/src/nodes/QskGraduationNode.cpp +++ b/src/nodes/QskGraduationNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraduationNode.h b/src/nodes/QskGraduationNode.h index c00f710c..4f3466ad 100644 --- a/src/nodes/QskGraduationNode.h +++ b/src/nodes/QskGraduationNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraduationRenderer.cpp b/src/nodes/QskGraduationRenderer.cpp index d596f841..a9616946 100644 --- a/src/nodes/QskGraduationRenderer.cpp +++ b/src/nodes/QskGraduationRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraduationRenderer.h b/src/nodes/QskGraduationRenderer.h index 9354cf98..d765e33d 100644 --- a/src/nodes/QskGraduationRenderer.h +++ b/src/nodes/QskGraduationRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraphicNode.cpp b/src/nodes/QskGraphicNode.cpp index 047fe03f..e2c7b1bd 100644 --- a/src/nodes/QskGraphicNode.cpp +++ b/src/nodes/QskGraphicNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskGraphicNode.h b/src/nodes/QskGraphicNode.h index 32628b2b..07f98057 100644 --- a/src/nodes/QskGraphicNode.h +++ b/src/nodes/QskGraphicNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskLinesNode.cpp b/src/nodes/QskLinesNode.cpp index 1d89715e..e3dc1671 100644 --- a/src/nodes/QskLinesNode.cpp +++ b/src/nodes/QskLinesNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskLinesNode.h b/src/nodes/QskLinesNode.h index 4a1271a6..e54f9d2a 100644 --- a/src/nodes/QskLinesNode.h +++ b/src/nodes/QskLinesNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskPaintedNode.cpp b/src/nodes/QskPaintedNode.cpp index 1b2ff4b3..129a580a 100644 --- a/src/nodes/QskPaintedNode.cpp +++ b/src/nodes/QskPaintedNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskPaintedNode.h b/src/nodes/QskPaintedNode.h index 41835ec6..24a7e975 100644 --- a/src/nodes/QskPaintedNode.h +++ b/src/nodes/QskPaintedNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskPlainTextRenderer.cpp b/src/nodes/QskPlainTextRenderer.cpp index 77d13684..6a4b3053 100644 --- a/src/nodes/QskPlainTextRenderer.cpp +++ b/src/nodes/QskPlainTextRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskPlainTextRenderer.h b/src/nodes/QskPlainTextRenderer.h index c2835d77..e2f21d25 100644 --- a/src/nodes/QskPlainTextRenderer.h +++ b/src/nodes/QskPlainTextRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskRectangleNode.cpp b/src/nodes/QskRectangleNode.cpp index 6690912b..e05dc871 100644 --- a/src/nodes/QskRectangleNode.cpp +++ b/src/nodes/QskRectangleNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskRectangleNode.h b/src/nodes/QskRectangleNode.h index 5bcbec20..5f2993be 100644 --- a/src/nodes/QskRectangleNode.h +++ b/src/nodes/QskRectangleNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskRichTextRenderer.cpp b/src/nodes/QskRichTextRenderer.cpp index d8507710..e6cbd248 100644 --- a/src/nodes/QskRichTextRenderer.cpp +++ b/src/nodes/QskRichTextRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskRichTextRenderer.h b/src/nodes/QskRichTextRenderer.h index 762dc62e..4e5c4567 100644 --- a/src/nodes/QskRichTextRenderer.h +++ b/src/nodes/QskRichTextRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskSGNode.cpp b/src/nodes/QskSGNode.cpp index ad26f651..265a4d0f 100644 --- a/src/nodes/QskSGNode.cpp +++ b/src/nodes/QskSGNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskSGNode.h b/src/nodes/QskSGNode.h index 3ebe7e82..9fd5c06c 100644 --- a/src/nodes/QskSGNode.h +++ b/src/nodes/QskSGNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskSceneTexture.cpp b/src/nodes/QskSceneTexture.cpp index 0274391a..dc359993 100644 --- a/src/nodes/QskSceneTexture.cpp +++ b/src/nodes/QskSceneTexture.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskSceneTexture.h b/src/nodes/QskSceneTexture.h index eff6727f..89cc73b5 100644 --- a/src/nodes/QskSceneTexture.h +++ b/src/nodes/QskSceneTexture.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskShapeNode.cpp b/src/nodes/QskShapeNode.cpp index 91f9c765..fc6b5f9a 100644 --- a/src/nodes/QskShapeNode.cpp +++ b/src/nodes/QskShapeNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskShapeNode.h b/src/nodes/QskShapeNode.h index 84779627..c5fb24ac 100644 --- a/src/nodes/QskShapeNode.h +++ b/src/nodes/QskShapeNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskStippledLineRenderer.cpp b/src/nodes/QskStippledLineRenderer.cpp index f578f478..a0a7da60 100644 --- a/src/nodes/QskStippledLineRenderer.cpp +++ b/src/nodes/QskStippledLineRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskStippledLineRenderer.h b/src/nodes/QskStippledLineRenderer.h index acda0bb7..bcf38820 100644 --- a/src/nodes/QskStippledLineRenderer.h +++ b/src/nodes/QskStippledLineRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskStrokeNode.cpp b/src/nodes/QskStrokeNode.cpp index baaa811a..fb16c63c 100644 --- a/src/nodes/QskStrokeNode.cpp +++ b/src/nodes/QskStrokeNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskStrokeNode.h b/src/nodes/QskStrokeNode.h index 01abaaba..3d168577 100644 --- a/src/nodes/QskStrokeNode.h +++ b/src/nodes/QskStrokeNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextNode.cpp b/src/nodes/QskTextNode.cpp index 71d62dcc..11ba3d2b 100644 --- a/src/nodes/QskTextNode.cpp +++ b/src/nodes/QskTextNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextNode.h b/src/nodes/QskTextNode.h index bf2ec6cd..4289b573 100644 --- a/src/nodes/QskTextNode.h +++ b/src/nodes/QskTextNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextRenderer.cpp b/src/nodes/QskTextRenderer.cpp index c76f246e..f078a599 100644 --- a/src/nodes/QskTextRenderer.cpp +++ b/src/nodes/QskTextRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextRenderer.h b/src/nodes/QskTextRenderer.h index c876c355..467db7e6 100644 --- a/src/nodes/QskTextRenderer.h +++ b/src/nodes/QskTextRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextureRenderer.cpp b/src/nodes/QskTextureRenderer.cpp index 4d545736..cade0829 100644 --- a/src/nodes/QskTextureRenderer.cpp +++ b/src/nodes/QskTextureRenderer.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTextureRenderer.h b/src/nodes/QskTextureRenderer.h index cd10e806..3b907ab2 100644 --- a/src/nodes/QskTextureRenderer.h +++ b/src/nodes/QskTextureRenderer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTreeNode.cpp b/src/nodes/QskTreeNode.cpp index f8d4c408..a3f70f23 100644 --- a/src/nodes/QskTreeNode.cpp +++ b/src/nodes/QskTreeNode.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskTreeNode.h b/src/nodes/QskTreeNode.h index 5adc141d..ad50ad83 100644 --- a/src/nodes/QskTreeNode.h +++ b/src/nodes/QskTreeNode.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskVertex.cpp b/src/nodes/QskVertex.cpp index c34bbe6d..a84e83ba 100644 --- a/src/nodes/QskVertex.cpp +++ b/src/nodes/QskVertex.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/src/nodes/QskVertex.h b/src/nodes/QskVertex.h index 400a6a66..0d928a84 100644 --- a/src/nodes/QskVertex.h +++ b/src/nodes/QskVertex.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index 5dc77dd5..ecd53385 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/support/SkinnyGlobal.h b/support/SkinnyGlobal.h index 1750693f..84942af8 100644 --- a/support/SkinnyGlobal.h +++ b/support/SkinnyGlobal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyNamespace.cpp b/support/SkinnyNamespace.cpp index 31da9c91..35fea3c7 100644 --- a/support/SkinnyNamespace.cpp +++ b/support/SkinnyNamespace.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyNamespace.h b/support/SkinnyNamespace.h index 5451a5e0..0aeda789 100644 --- a/support/SkinnyNamespace.h +++ b/support/SkinnyNamespace.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyShapeFactory.cpp b/support/SkinnyShapeFactory.cpp index 2804928b..75cb6334 100644 --- a/support/SkinnyShapeFactory.cpp +++ b/support/SkinnyShapeFactory.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyShapeFactory.h b/support/SkinnyShapeFactory.h index 422d2e0e..2ed9f8bd 100644 --- a/support/SkinnyShapeFactory.h +++ b/support/SkinnyShapeFactory.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyShapeProvider.cpp b/support/SkinnyShapeProvider.cpp index 4db4b89e..122ac010 100644 --- a/support/SkinnyShapeProvider.cpp +++ b/support/SkinnyShapeProvider.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyShapeProvider.h b/support/SkinnyShapeProvider.h index cf7fbde9..8306afef 100644 --- a/support/SkinnyShapeProvider.h +++ b/support/SkinnyShapeProvider.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/support/SkinnyShortcut.cpp b/support/SkinnyShortcut.cpp index 6226f559..d7bbff01 100644 --- a/support/SkinnyShortcut.cpp +++ b/support/SkinnyShortcut.cpp @@ -1,3 +1,8 @@ +/****************************************************************************** + * QSkinny - Copyright (C) The authors + * SPDX-License-Identifier: BSD-3-Clause + *****************************************************************************/ + #include "SkinnyShortcut.h" #include "SkinnyNamespace.h" diff --git a/support/SkinnyShortcut.h b/support/SkinnyShortcut.h index ac363574..84587d7e 100644 --- a/support/SkinnyShortcut.h +++ b/support/SkinnyShortcut.h @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ diff --git a/tools/svg2qvg/CMakeLists.txt b/tools/svg2qvg/CMakeLists.txt index 6c64b50c..05507a7b 100644 --- a/tools/svg2qvg/CMakeLists.txt +++ b/tools/svg2qvg/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################ -# QSkinny - Copyright (C) 2016 Uwe Rathmann +# QSkinny - Copyright (C) The authors # SPDX-License-Identifier: BSD-3-Clause ############################################################################ diff --git a/tools/svg2qvg/main.cpp b/tools/svg2qvg/main.cpp index 4821c4e0..d5ffcf82 100644 --- a/tools/svg2qvg/main.cpp +++ b/tools/svg2qvg/main.cpp @@ -1,5 +1,5 @@ /****************************************************************************** - * QSkinny - Copyright (C) 2016 Uwe Rathmann + * QSkinny - Copyright (C) The authors * SPDX-License-Identifier: BSD-3-Clause *****************************************************************************/ From 9f3f1b37478a7f511964f478b3ba801f6cc222dd Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 17 Jan 2024 15:32:51 +0100 Subject: [PATCH 72/72] better information about the licenses --- COPYING | 9 --------- LICENSES | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) delete mode 100644 COPYING create mode 100644 LICENSES diff --git a/COPYING b/COPYING deleted file mode 100644 index 797a2daf..00000000 --- a/COPYING +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (C) 2016 Uwe Rathmann - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES b/LICENSES new file mode 100644 index 00000000..af85ab72 --- /dev/null +++ b/LICENSES @@ -0,0 +1,21 @@ +Project: QSkinny + +Homepage: https://github.com/uwerat/qskinny +Maintainer: Uwe Rathmann ( uwe@qskinny.org ) + +SPDX-License-Identifier: BSD-3-Clause +Copyright (C) The authors + +3rdparty code: + +a) HCT color system + + Code: https://github.com/material-foundation/material-color-utilities + SPDX-License-Identifier: Apache License 2.0 + Copyright (C) 2021 Google LLC + +b) Cassowary constraint solving algorithm + + Code: https://github.com/nucleic/kiwi + SPDX-License-Identifier: BSD 3-Clause "New" or "Revised" License + Copyright (c) 2013, Nucleic Development Team