bool ReceivedMessageTransition::eventTest(QEvent* event) { if (!QSignalTransition::eventTest(event)) { return false; } QStateMachine::SignalEvent* signalEvent = static_cast<QStateMachine::SignalEvent*>(event); const QVariant& qVariant(signalEvent->arguments().at(0)); if (!qVariant.canConvert<AddressedMessage>()) { LOG(ERROR) << "ReceivedMessageTransition::eventTest(): " << "cannot convert to AddressedMessage..."; return false; } const AddressedMessage& message = qVariant.value<AddressedMessage>(); if (message.getMessage().getMessageNumber() == expectedMessageNumber) { return true; } else { LOG(ERROR) << "ReceivedMessageTransition::eventTest(): " << "recevied wrong message number: " << message.getMessage().getMessageNumber() << ", expected: " << expectedMessageNumber; return false; } }
bool SignalTransition::eventTest(QEvent *event) { Q_ASSERT(event); if (!QSignalTransition::eventTest(event)) return false; if (m_guard.isEmpty()) return true; QQmlContext *outerContext = QQmlEngine::contextForObject(this); QQmlContext context(outerContext); QQmlContextData::get(outerContext)->imports->addref(); QQmlContextData::get(&context)->imports = QQmlContextData::get(outerContext)->imports; QStateMachine::SignalEvent *e = static_cast<QStateMachine::SignalEvent*>(event); // Set arguments as context properties int count = e->arguments().count(); QMetaMethod metaMethod = e->sender()->metaObject()->method(e->signalIndex()); for (int i = 0; i < count; i++) context.setContextProperty(metaMethod.parameterNames()[i], QVariant::fromValue(e->arguments().at(i))); QQmlExpression expr(m_guard, &context, this); QVariant result = expr.evaluate(); return result.toBool(); }
void SignalTransition::onTransition(QEvent *event) { if (m_signalExpression) { QStateMachine::SignalEvent *e = static_cast<QStateMachine::SignalEvent*>(event); m_signalExpression->evaluate(e->arguments()); } QSignalTransition::onTransition(event); }
//virtual void PropertySettingSignalTransition::onTransition(QEvent * e) { if (m_qp_targetObject) { QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(e); if (!se->arguments().isEmpty()) { m_qp_targetObject->setProperty(m_propertyName.toLatin1().constData(),se->arguments().at(0)); } } QSignalTransition::onTransition(e); }
/*! \reimp The default implementation returns true if the \a event is a QStateMachine::SignalEvent object and the event's sender and signal index match this transition, and returns false otherwise. */ bool QSignalTransition::eventTest(QEvent *event) { Q_D(const QSignalTransition); if (event->type() == QEvent::StateMachineSignal) { if (d->signalIndex == -1) return false; QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(event); return (se->sender() == d->sender) && (se->signalIndex() == d->signalIndex); } return false; }
void ReorderState::onEntry(QEvent* event) { CardWindowManagerState::onEntry(event); QStateMachine::SignalEvent* se = static_cast<QStateMachine::SignalEvent*>(event); if (se && !se->arguments().isEmpty()) { QPoint pt = se->arguments().at(0).toPoint(); m_wm->enterReorder(pt); //int slice = se->arguments().at(1).toInt(); //m_grid = new ReorderGrid(m_wm, slice); } SystemUiController::instance()->enterOrExitCardReorder(true); }
void ReorderState::onExit(QEvent* event) { CardWindowManagerState::onExit(event); QStateMachine::SignalEvent* se = static_cast<QStateMachine::SignalEvent*>(event); if (se && !se->arguments().isEmpty()) { bool canceled = se->arguments().at(0).toBool(); if (canceled) m_wm->cancelReorder(); } //delete m_grid; SystemUiController::instance()->enterOrExitCardReorder(false); }
bool MaximizeToFocusTransition::eventTest(QEvent* event) { if (!QSignalTransition::eventTest(event)) return false; QStateMachine::SignalEvent* se = static_cast<QStateMachine::SignalEvent*>(event); CardWindow* win = se->arguments().at(0).value<CardWindow*>(); CardWindowManager* wm = static_cast<CardWindowManager*>(senderObject()); if (win == wm->activeWindow()) { // window is already focused SystemUiController::instance()->setCardWindowMaximized(true); return false; } return true; }
static PyObject *meth_QStateMachine_SignalEvent_sender(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QStateMachine::SignalEvent *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QStateMachine_SignalEvent, &sipCpp)) { QObject *sipRes; Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->sender(); Py_END_ALLOW_THREADS return sipConvertFromType(sipRes,sipType_QObject,NULL); } }
// -------------------------------------------------------------------------------------------------- void PreparingState::onEntry(QEvent* event) { CardWindowManagerState::onEntry(event); // unpack the window which we need to prepare CardWindow* win = 0; if (event->type() == QEvent::StateMachineSignal) { QStateMachine::SignalEvent* se = static_cast<QStateMachine::SignalEvent*>(event); win = se->arguments().at(0).value<CardWindow*>(); if (win) { QRectF boundingRect = m_wm->normalOrScreenBounds(0); if(WindowType::Type_ModalChildWindowCard != win->type()) win->setBoundingRect(boundingRect.width(), boundingRect.height()); else { win->setBoundingRect(Settings::LunaSettings()->modalWindowWidth, Settings::LunaSettings()->modalWindowHeight); } } } m_wm->prepareAddWindowSibling(win); }
void FocusState::onEntry(QEvent* event) { CardWindowManagerState::onEntry(event); CardWindow* win = 0; if (event->type() == QEvent::StateMachineSignal) { QStateMachine::SignalEvent* se = static_cast<QStateMachine::SignalEvent*>(event); win = se->arguments().at(0).value<CardWindow*>(); } CardGroup* activeGroup = m_wm->activeGroup(); Q_ASSERT(activeGroup != 0); if (activeGroup == win->cardGroup()) { // update the active card within the active group and maximize it activeGroup->setActiveCard(win); m_wm->maximizeActiveWindow(); } else { // make this card the active card in its group and focus the group win->cardGroup()->setActiveCard(win); m_wm->setActiveGroup(win->cardGroup()); m_wm->slideAllGroups(); } }