Fix FPS Counter that take resources even if invisible

This commit is contained in:
Julien Wadel 2024-11-07 10:20:17 +01:00
parent 8ad4d8be1e
commit e15186e63b
3 changed files with 8 additions and 13 deletions

View file

@ -29,6 +29,8 @@
FPSCounter::FPSCounter(QQuickItem *parent) : QQuickPaintedItem(parent), _currentFPS(0), _cacheCount(0) {
_times.clear();
setFlag(QQuickItem::ItemHasContents);
connect(this, &FPSCounter::visibleChanged, this,
[this]() { update(); }); // If not call at first, item will never call paint.
}
FPSCounter::~FPSCounter() {
@ -56,15 +58,8 @@ int FPSCounter::fps() const {
}
void FPSCounter::paint(QPainter *painter) {
if (isVisible()) {
recalculateFPS();
// lDebug()<< __FUNCTION__;
/*
QBrush brush(Qt::yellow);
painter->setBrush(brush);
painter->setPen(Qt::NoPen);
painter->setRenderHint(QPainter::Antialiasing);
painter->drawRoundedRect(0, 0, boundingRect().width(), boundingRect().height(), 0, 0);
*/
update();
update(); // Request next frame
}
}

View file

@ -26,7 +26,7 @@ class FPSCounter : public QQuickPaintedItem {
public:
FPSCounter(QQuickItem *parent = 0);
~FPSCounter();
void paint(QPainter *);
virtual void paint(QPainter *) override;
Q_INVOKABLE int fps() const;
signals:

View file

@ -33,7 +33,7 @@ FormItemLayout {
id: textField
Layout.preferredWidth: 360 * DefaultStyle.dp
placeholderText: useTitleAsPlaceHolder ? mainItem.title : mainItem.placeHolder
initialText: mainItem.propertyOwner[mainItem.propertyName]
initialText: mainItem.propertyOwner[mainItem.propertyName] || ''
customWidth: mainItem.parent.width
propertyName: mainItem.propertyName
propertyOwner: mainItem.propertyOwner