fix build on Windows (#176)

* fix build on Windows

fixes the following error from CI:

common\QskAspect.cpp(199): error C2666: 'QFlags<QskAspect::State>::operator &': 3 overloads have similar conversions
D:\a\qskinny\Qt\5.15.2\msvc2019_64\include\QtCore/qflags.h(146): note: could be 'QFlags<QskAspect::State> QFlags<QskAspect::State>::operator &(Enum) noexcept const'
        with
        [
            Enum=QskAspect::State
        ]
D:\a\qskinny\Qt\5.15.2\msvc2019_64\include\QtCore/qflags.h(145): note: or       'QFlags<QskAspect::State> QFlags<QskAspect::State>::operator &(uint) noexcept const'
D:\a\qskinny\Qt\5.15.2\msvc2019_64\include\QtCore/qflags.h(144): note: or       'QFlags<QskAspect::State> QFlags<QskAspect::State>::operator &(int) noexcept const'
common\QskAspect.cpp(199): note: or       'built-in C++ operator&(QFlags<QskAspect::State>::Int, quint16)'
common\QskAspect.cpp(199): note: while trying to match the argument list '(QskAspect::States, const quint16)'

* fix build on Windows

fixes the following error from CI:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3124): error C2027: use of undefined type 'QskMenuSkinlet::PrivateData'
D:\a\qskinny\qskinny\src\controls\QskMenuSkinlet.h(54): note: see declaration of 'QskMenuSkinlet::PrivateData'
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3123): note: while compiling class template member function 'void std::default_delete<QskMenuSkinlet::PrivateData>::operator ()(_Ty *) noexcept const'
        with
        [
            _Ty=QskMenuSkinlet::PrivateData
        ]
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3233): note: see reference to function template instantiation 'void std::default_delete<QskMenuSkinlet::PrivateData>::operator ()(_Ty *) noexcept const' being compiled
        with
        [
            _Ty=QskMenuSkinlet::PrivateData
        ]
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3160): note: see reference to class template instantiation 'std::default_delete<QskMenuSkinlet::PrivateData>' being compiled
D:\a\qskinny\qskinny\src\controls\QskMenuSkinlet.h(55): note: see reference to class template instantiation 'std::unique_ptr<QskMenuSkinlet::PrivateData,std::default_delete<QskMenuSkinlet::PrivateData>>' being compiled
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3124): error C2338: can't delete an incomplete type
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.31.31103\include\memory(3125): warning C4150: deletion of pointer to incomplete type 'QskMenuSkinlet::PrivateData'; no destructor called
D:\a\qskinny\qskinny\src\controls\QskMenuSkinlet.h(54): note: see declaration of 'QskMenuSkinlet::PrivateData
This commit is contained in:
Peter Hartmann 2022-04-13 11:24:18 +02:00 committed by GitHub
parent b8a9264c4f
commit 7693c8d911
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 2 deletions

View File

@ -194,7 +194,7 @@ static QByteArray qskStatesToString(
for ( int i = 0; i < 16; i++ )
{
const quint16 mask = 1 << i;
const uint mask = 1 << i;
if ( states & mask )
{

View File

@ -229,6 +229,8 @@ QskMenuSkinlet::QskMenuSkinlet( QskSkin* skin )
appendNodeRoles( { PanelRole } );
}
QskMenuSkinlet::~QskMenuSkinlet() = default;
QRectF QskMenuSkinlet::cursorRect(
const QskSkinnable* skinnable, const QRectF& contentsRect, int index ) const
{

View File

@ -19,7 +19,7 @@ class QSK_EXPORT QskMenuSkinlet : public QskPopupSkinlet
};
Q_INVOKABLE QskMenuSkinlet( QskSkin* = nullptr );
~QskMenuSkinlet() = default;
~QskMenuSkinlet();
QRectF subControlRect( const QskSkinnable*,
const QRectF&, QskAspect::Subcontrol ) const override;