From 8a64b5a9818e80d97296613b18567d9334111d94 Mon Sep 17 00:00:00 2001 From: johanneshilden Date: Fri, 13 Oct 2017 22:37:05 +0300 Subject: [PATCH] Figure out segfault --- components/lib/qtmaterialrippleoverlay.cpp | 20 ++++++++--------- components/qtmaterialautocomplete.cpp | 25 +++++++++++++++++++++- components/qtmaterialautocomplete.h | 1 + 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/components/lib/qtmaterialrippleoverlay.cpp b/components/lib/qtmaterialrippleoverlay.cpp index b6a4223..76d3295 100644 --- a/components/lib/qtmaterialrippleoverlay.cpp +++ b/components/lib/qtmaterialrippleoverlay.cpp @@ -21,24 +21,24 @@ QtMaterialRippleOverlay::~QtMaterialRippleOverlay() void QtMaterialRippleOverlay::addRipple(QtMaterialRipple *ripple) { - ripple->setOverlay(this); - m_ripples.push_back(ripple); - ripple->start(); + //ripple->setOverlay(this); + //m_ripples.push_back(ripple); + //ripple->start(); } void QtMaterialRippleOverlay::addRipple(const QPoint &position, qreal radius) { - QtMaterialRipple *ripple = new QtMaterialRipple(position); - ripple->setRadiusEndValue(radius); - addRipple(ripple); + //QtMaterialRipple *ripple = new QtMaterialRipple(position); + //ripple->setRadiusEndValue(radius); + //addRipple(ripple); } void QtMaterialRippleOverlay::removeRipple(QtMaterialRipple *ripple) { - if (m_ripples.removeOne(ripple)) { - delete ripple; - update(); - } + //if (m_ripples.removeOne(ripple)) { + // delete ripple; + // update(); + //} } /*! diff --git a/components/qtmaterialautocomplete.cpp b/components/qtmaterialautocomplete.cpp index d2804a1..cd2a07c 100644 --- a/components/qtmaterialautocomplete.cpp +++ b/components/qtmaterialautocomplete.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "qtmaterialflatbutton.h" /*! @@ -104,13 +105,18 @@ void QtMaterialAutoComplete::updateResults(QString text) item->setHaloVisible(false); item->setFixedHeight(50); d->menuLayout->addWidget(item); + //item->installEventFilter(this); } } else if (diff < 0) { for (int c = 0; c < -diff; c++) { QWidget *widget = d->menuLayout->itemAt(0)->widget(); if (widget) { d->menuLayout->removeWidget(widget); - delete widget; + //widget->setParent(0); + //qDebug() << widget->parent(); + //qDebug() << widget->parentWidget(); + //delete widget; + widget->deleteLater(); } } } @@ -163,3 +169,20 @@ bool QtMaterialAutoComplete::QtMaterialAutoComplete::event(QEvent *event) } return QtMaterialTextField::event(event); } + +bool QtMaterialAutoComplete::eventFilter(QObject *watched, QEvent *event) +{ + Q_D(QtMaterialAutoComplete); + + switch (event->type()) + { + case QEvent::MouseButtonPress: { + qDebug() << "mouse pressl"; + d->menu->hide(); + break; + } + default: + break; + } + return QtMaterialTextField::eventFilter(watched, event); +} diff --git a/components/qtmaterialautocomplete.h b/components/qtmaterialautocomplete.h index b8c0dee..a3a10fa 100644 --- a/components/qtmaterialautocomplete.h +++ b/components/qtmaterialautocomplete.h @@ -20,6 +20,7 @@ protected slots: protected: bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(QtMaterialAutoComplete)