From 920ed2232c89fa726f6d418b2a8b0efff9a3f079 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 8 Dec 2017 13:56:35 +0100 Subject: [PATCH] memory problems fixed --- src/controls/QskControl.cpp | 7 +++++-- src/controls/QskInputPanel.cpp | 3 +++ src/controls/QskSkinnable.cpp | 7 +++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/controls/QskControl.cpp b/src/controls/QskControl.cpp index 0c85e56d..b80fd689 100644 --- a/src/controls/QskControl.cpp +++ b/src/controls/QskControl.cpp @@ -1107,8 +1107,11 @@ void QskControl::itemChange( QQuickItem::ItemChange change, { case QQuickItem::ItemParentHasChanged: { - if ( !d->explicitLocale ) - qskResolveLocale( this ); + if ( value.item ) + { + if ( !d->explicitLocale ) + qskResolveLocale( this ); + } // not necessarily correct, when parent != parentItem ??? qskSendEventTo( this, QEvent::ParentChange ); diff --git a/src/controls/QskInputPanel.cpp b/src/controls/QskInputPanel.cpp index eedfe7e3..d774258a 100644 --- a/src/controls/QskInputPanel.cpp +++ b/src/controls/QskInputPanel.cpp @@ -178,6 +178,9 @@ static qreal qskRowStretch( const QskInputPanel::KeyRow& keyRow ) stretch += qskKeyStretch( key ); } + if ( stretch == 0.0 ) + stretch = QskInputPanel::KeyCount; + return stretch; } diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index 6f6c3e0c..3c5427b9 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -117,8 +117,11 @@ public: ~PrivateData() { - if ( skinlet && skinlet->isOwnedBySkinnable() ) - delete skinlet; + if ( hasLocalSkinlet ) + { + if ( skinlet && skinlet->isOwnedBySkinnable() ) + delete skinlet; + } } QskSkinHintTable hintTable;