Exemplo n.º 1
0
bool MascaraInterfaceV1::eventFilter(QObject *obj, QEvent *e)
{
    bool ret = QObject::eventFilter(obj, e);
    if (ret)
        return ret;

    if (e->type() == QEvent::Close) {
        QQuickView *view = qobject_cast<QQuickView *>(obj);
        if (!view) {
            qWarning() << "No view!";
            return ret;
        }

        int dialogId = view->property("MascaraWindowId").toInt();
        QHash<int, QQuickView *>::iterator it = m_windows.find(dialogId);
        if (it == m_windows.end()) {
            qWarning() << "Destroyed an unknown dialog " << dialogId;
            return ret;
        }

        m_windows.erase(it);
        qDebug() << "Deleting " << view;
        view->deleteLater();

        if (m_windows.count() == 0) {
            m_closeTimer.start();
            qDebug() << "Starting close timer";
        }
    }

    return ret;
}