void EventPlugin::onDbEvent(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload) { qfLogFuncFrame() << "name:" << name << "source:" << source << "payload:" << payload; if(name == QLatin1String(DBEVENT_NOTIFY_NAME)) { if(source == QSqlDriver::OtherSource) { QJsonDocument jsd = QJsonDocument::fromJson(payload.toString().toUtf8()); QVariantMap m = jsd.toVariant().toMap(); QString domain = m.value(QStringLiteral("domain")).toString(); if(domain.isEmpty()) { qfWarning() << "DbNotify with invalid domain, payload:" << payload.toString(); return; } QString event_name = m.value(QStringLiteral("event")).toString(); if(event_name.isEmpty()) { qfWarning() << "DbNotify with invalid event name, payload:" << payload.toString(); return; } if(event_name == eventName()) { QVariant pl = m.value(QStringLiteral("payload")); qfDebug() << "emitting domain:" << domain << "payload:" << pl; emit dbEventNotify(domain, pl); } } else { //qfDebug() << "self db notify"; } } }
void ReceiptsWidget::settleDownInPartWidget(ReceiptsPartWidget *part_widget) { connect(part_widget, SIGNAL(resetPartRequest()), this, SLOT(reset())); connect(part_widget, SIGNAL(reloadPartRequest()), this, SLOT(reset())); connect(eventPlugin(), SIGNAL(dbEventNotify(QString,QVariant)), this, SLOT(onDbEventNotify(QString,QVariant)), Qt::QueuedConnection); }
void CompetitorsPlugin::onRegistrationsDockVisibleChanged(bool on) { if(on && !m_registrationsDockWidget->widget()) { auto *rw = new RegistrationsWidget(); qff::MainWindow *fwk = qff::MainWindow::frameWork(); connect(fwk->plugin("Event"), SIGNAL(dbEventNotify(QString, QVariant)), rw, SLOT(onDbEvent(QString, QVariant))); m_registrationsDockWidget->setWidget(rw); rw->reload(); //m_registrationsDockWidget->loadPersistentSettingsRecursively(); } }
void RelaysPlugin::onDbEventNotify(const QString &domain, int connection_id, const QVariant &data) { Q_UNUSED(connection_id) qfLogFuncFrame() << "domain:" << domain << "payload:" << data; emit dbEventNotify(domain, connection_id, data); }