Fix tray visibility and message reception issues
- Disable sound initialization to prevent hanging
- Add missing import re in utils.py
- Fix settings loading for QSettings
- Update file paths to use PROJECT_ROOT
- Revert to working API paths and listener from commit efdc63e
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
# Automatically generated configuration for PyQt6.QtStateMachine.
|
||||
|
||||
sip-version = "6.14.0"
|
||||
sip-abi-version = "13.8"
|
||||
module-tags = ["Qt_6_10_0", "Linux"]
|
||||
module-disabled-features = ["PyQt_OpenGL_ES2"]
|
||||
@@ -0,0 +1,58 @@
|
||||
// QtStateMachinemod.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
%Module(name=PyQt6.QtStateMachine, keyword_arguments="Optional", use_limited_api=True)
|
||||
|
||||
%Import QtCore/QtCoremod.sip
|
||||
%Import QtGui/QtGuimod.sip
|
||||
|
||||
%Copying
|
||||
Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
|
||||
This file is part of PyQt6.
|
||||
|
||||
This file may be used under the terms of the GNU General Public License
|
||||
version 3.0 as published by the Free Software Foundation and appearing in
|
||||
the file LICENSE included in the packaging of this file. Please review the
|
||||
following information to ensure the GNU General Public License version 3.0
|
||||
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
|
||||
If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
then you may purchase a commercial license. For more information contact
|
||||
info@riverbankcomputing.com.
|
||||
|
||||
This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
%End
|
||||
|
||||
%DefaultSupertype PyQt6.sip.simplewrapper
|
||||
|
||||
%Include qabstractstate.sip
|
||||
%Include qabstracttransition.sip
|
||||
%Include qeventtransition.sip
|
||||
%Include qfinalstate.sip
|
||||
%Include qhistorystate.sip
|
||||
%Include qkeyeventtransition.sip
|
||||
%Include qmouseeventtransition.sip
|
||||
%Include qsignaltransition.sip
|
||||
%Include qstate.sip
|
||||
%Include qstatemachine.sip
|
||||
@@ -0,0 +1,45 @@
|
||||
// qabstractstate.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QAbstractState : public QObject
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qabstractstate.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
virtual ~QAbstractState();
|
||||
QState *parentState() const;
|
||||
QStateMachine *machine() const;
|
||||
bool active() const;
|
||||
|
||||
signals:
|
||||
void activeChanged(bool active);
|
||||
void entered();
|
||||
void exited();
|
||||
|
||||
protected:
|
||||
QAbstractState(QState *parent /TransferThis/ = 0);
|
||||
virtual void onEntry(QEvent *event) = 0;
|
||||
virtual void onExit(QEvent *event) = 0;
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
@@ -0,0 +1,97 @@
|
||||
// qabstracttransition.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QAbstractTransition : public QObject
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qabstracttransition.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
enum TransitionType
|
||||
{
|
||||
ExternalTransition,
|
||||
InternalTransition,
|
||||
};
|
||||
|
||||
QAbstractTransition(QState *sourceState /TransferThis/ = 0);
|
||||
virtual ~QAbstractTransition();
|
||||
QState *sourceState() const;
|
||||
QAbstractState *targetState() const;
|
||||
void setTargetState(QAbstractState *target /KeepReference=0/);
|
||||
QList<QAbstractState *> targetStates() const;
|
||||
void setTargetStates(const QList<QAbstractState *> &targets /KeepReference=0/);
|
||||
QAbstractTransition::TransitionType transitionType() const;
|
||||
void setTransitionType(QAbstractTransition::TransitionType type);
|
||||
QStateMachine *machine() const;
|
||||
void addAnimation(QAbstractAnimation *animation /GetWrapper/);
|
||||
%MethodCode
|
||||
// We want to keep a reference to the animation but this is in addition to the
|
||||
// existing ones and does not replace them - so we can't use /KeepReference/.
|
||||
sipCpp->addAnimation(a0);
|
||||
|
||||
// Use the user object as a list of the references.
|
||||
PyObject *user = sipGetUserObject((sipSimpleWrapper *)sipSelf);
|
||||
|
||||
if (!user)
|
||||
{
|
||||
user = PyList_New(0);
|
||||
sipSetUserObject((sipSimpleWrapper *)sipSelf, user);
|
||||
}
|
||||
|
||||
if (user)
|
||||
PyList_Append(user, a0Wrapper);
|
||||
%End
|
||||
|
||||
void removeAnimation(QAbstractAnimation *animation /GetWrapper/);
|
||||
%MethodCode
|
||||
// Discard the extra animation reference that we took in addAnimation().
|
||||
sipCpp->removeAnimation(a0);
|
||||
|
||||
// Use the user object as a list of the references.
|
||||
PyObject *user = sipGetUserObject((sipSimpleWrapper *)sipSelf);
|
||||
|
||||
if (user)
|
||||
{
|
||||
Py_ssize_t i = 0;
|
||||
|
||||
// Note that we deal with an object appearing in the list more than once.
|
||||
while (i < PyList_Size(user))
|
||||
if (PyList_GetItem(user, i) == a0Wrapper)
|
||||
PyList_SetSlice(user, i, i + 1, NULL);
|
||||
else
|
||||
++i;
|
||||
}
|
||||
%End
|
||||
|
||||
QList<QAbstractAnimation *> animations() const;
|
||||
|
||||
signals:
|
||||
void triggered();
|
||||
void targetStateChanged();
|
||||
void targetStatesChanged();
|
||||
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event) = 0;
|
||||
virtual void onTransition(QEvent *event) = 0;
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
// qeventtransition.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QEventTransition : public QAbstractTransition
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qeventtransition.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
QEventTransition(QState *sourceState /TransferThis/ = 0);
|
||||
QEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, QState *sourceState /TransferThis/ = 0);
|
||||
virtual ~QEventTransition();
|
||||
QObject *eventSource() const;
|
||||
void setEventSource(QObject *object /KeepReference=10/);
|
||||
QEvent::Type eventType() const;
|
||||
void setEventType(QEvent::Type type);
|
||||
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event);
|
||||
virtual void onTransition(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
@@ -0,0 +1,37 @@
|
||||
// qfinalstate.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QFinalState : public QAbstractState
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qfinalstate.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
QFinalState(QState *parent /TransferThis/ = 0);
|
||||
virtual ~QFinalState();
|
||||
|
||||
protected:
|
||||
virtual void onEntry(QEvent *event);
|
||||
virtual void onExit(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
// qhistorystate.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QHistoryState : public QAbstractState
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qhistorystate.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
enum HistoryType
|
||||
{
|
||||
ShallowHistory,
|
||||
DeepHistory,
|
||||
};
|
||||
|
||||
QHistoryState(QState *parent /TransferThis/ = 0);
|
||||
QHistoryState(QHistoryState::HistoryType type, QState *parent /TransferThis/ = 0);
|
||||
virtual ~QHistoryState();
|
||||
QAbstractTransition *defaultTransition() const;
|
||||
void setDefaultTransition(QAbstractTransition *transition);
|
||||
QAbstractState *defaultState() const;
|
||||
void setDefaultState(QAbstractState *state);
|
||||
QHistoryState::HistoryType historyType() const;
|
||||
void setHistoryType(QHistoryState::HistoryType type);
|
||||
|
||||
signals:
|
||||
void defaultTransitionChanged();
|
||||
void defaultStateChanged();
|
||||
void historyTypeChanged();
|
||||
|
||||
protected:
|
||||
virtual void onEntry(QEvent *event);
|
||||
virtual void onExit(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
// qkeyeventtransition.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QKeyEventTransition : public QEventTransition
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qkeyeventtransition.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
QKeyEventTransition(QState *sourceState /TransferThis/ = 0);
|
||||
QKeyEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, int key, QState *sourceState /TransferThis/ = 0);
|
||||
virtual ~QKeyEventTransition();
|
||||
int key() const;
|
||||
void setKey(int key);
|
||||
Qt::KeyboardModifiers modifierMask() const;
|
||||
void setModifierMask(Qt::KeyboardModifiers modifiers);
|
||||
|
||||
protected:
|
||||
virtual void onTransition(QEvent *event);
|
||||
virtual bool eventTest(QEvent *event);
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
// qmouseeventtransition.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QMouseEventTransition : public QEventTransition
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qmouseeventtransition.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
QMouseEventTransition(QState *sourceState /TransferThis/ = 0);
|
||||
QMouseEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, Qt::MouseButton button, QState *sourceState /TransferThis/ = 0);
|
||||
virtual ~QMouseEventTransition();
|
||||
Qt::MouseButton button() const;
|
||||
void setButton(Qt::MouseButton button);
|
||||
Qt::KeyboardModifiers modifierMask() const;
|
||||
void setModifierMask(Qt::KeyboardModifiers modifiers);
|
||||
QPainterPath hitTestPath() const;
|
||||
void setHitTestPath(const QPainterPath &path);
|
||||
|
||||
protected:
|
||||
virtual void onTransition(QEvent *event);
|
||||
virtual bool eventTest(QEvent *event);
|
||||
};
|
||||
@@ -0,0 +1,62 @@
|
||||
// qsignaltransition.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QSignalTransition : public QAbstractTransition
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qsignaltransition.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
QSignalTransition(QState *sourceState /TransferThis/ = 0);
|
||||
QSignalTransition(SIP_PYOBJECT signal /TypeHint="pyqtBoundSignal"/, QState *sourceState /TransferThis/ = 0) /NoDerived/;
|
||||
%MethodCode
|
||||
QObject *sender;
|
||||
QByteArray signal_signature;
|
||||
|
||||
if ((sipError = pyqt6_qtstatemachine_get_pyqtsignal_parts(a0, &sender, signal_signature)) == sipErrorNone)
|
||||
{
|
||||
sipCpp = new sipQSignalTransition(a1);
|
||||
sipCpp->setSenderObject(sender);
|
||||
sipCpp->setSignal(signal_signature);
|
||||
}
|
||||
else if (sipError == sipErrorContinue)
|
||||
{
|
||||
sipError = sipBadCallableArg(0, a0);
|
||||
}
|
||||
%End
|
||||
|
||||
virtual ~QSignalTransition();
|
||||
const QObject *senderObject() const;
|
||||
void setSenderObject(const QObject *sender);
|
||||
QByteArray signal() const;
|
||||
void setSignal(const QByteArray &signal);
|
||||
|
||||
protected:
|
||||
virtual bool eventTest(QEvent *event);
|
||||
virtual void onTransition(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
|
||||
signals:
|
||||
void senderObjectChanged();
|
||||
void signalChanged();
|
||||
};
|
||||
@@ -0,0 +1,100 @@
|
||||
// qstate.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QState : public QAbstractState
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qstate.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
enum ChildMode
|
||||
{
|
||||
ExclusiveStates,
|
||||
ParallelStates,
|
||||
};
|
||||
|
||||
enum RestorePolicy
|
||||
{
|
||||
DontRestoreProperties,
|
||||
RestoreProperties,
|
||||
};
|
||||
|
||||
QState(QState *parent /TransferThis/ = 0);
|
||||
QState(QState::ChildMode childMode, QState *parent /TransferThis/ = 0);
|
||||
virtual ~QState();
|
||||
QAbstractState *errorState() const;
|
||||
void setErrorState(QAbstractState *state /KeepReference/);
|
||||
void addTransition(QAbstractTransition *transition /Transfer/);
|
||||
QSignalTransition *addTransition(SIP_PYOBJECT signal /TypeHint="pyqtBoundSignal"/, QAbstractState *target);
|
||||
%MethodCode
|
||||
QObject *sender;
|
||||
QByteArray signal_signature;
|
||||
|
||||
if ((sipError = pyqt6_qtstatemachine_get_pyqtsignal_parts(a0, &sender, signal_signature)) == sipErrorNone)
|
||||
{
|
||||
sipRes = sipCpp->addTransition(sender, signal_signature.constData(), a1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sipError = sipBadCallableArg(0, a0);
|
||||
}
|
||||
%End
|
||||
|
||||
QAbstractTransition *addTransition(QAbstractState *target /Transfer/);
|
||||
void removeTransition(QAbstractTransition *transition /TransferBack/);
|
||||
QList<QAbstractTransition *> transitions() const;
|
||||
QAbstractState *initialState() const;
|
||||
void setInitialState(QAbstractState *state /KeepReference/);
|
||||
QState::ChildMode childMode() const;
|
||||
void setChildMode(QState::ChildMode mode);
|
||||
void assignProperty(QObject *object, const char *name, const QVariant &value);
|
||||
|
||||
signals:
|
||||
void finished();
|
||||
void propertiesAssigned();
|
||||
void childModeChanged();
|
||||
void initialStateChanged();
|
||||
void errorStateChanged();
|
||||
|
||||
protected:
|
||||
virtual void onEntry(QEvent *event);
|
||||
virtual void onExit(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
|
||||
%ModuleHeaderCode
|
||||
// Imports from QtCore.
|
||||
typedef sipErrorState (*pyqt6_qtstatemachine_get_pyqtsignal_parts_t)(PyObject *, QObject **, QByteArray &);
|
||||
extern pyqt6_qtstatemachine_get_pyqtsignal_parts_t pyqt6_qtstatemachine_get_pyqtsignal_parts;
|
||||
%End
|
||||
|
||||
%ModuleCode
|
||||
// Imports from QtCore.
|
||||
pyqt6_qtstatemachine_get_pyqtsignal_parts_t pyqt6_qtstatemachine_get_pyqtsignal_parts;
|
||||
%End
|
||||
|
||||
%PostInitialisationCode
|
||||
// Imports from QtCore.
|
||||
pyqt6_qtstatemachine_get_pyqtsignal_parts = (pyqt6_qtstatemachine_get_pyqtsignal_parts_t)sipImportSymbol("pyqt6_get_pyqtsignal_parts");
|
||||
Q_ASSERT(pyqt6_qtstatemachine_get_pyqtsignal_parts);
|
||||
%End
|
||||
@@ -0,0 +1,144 @@
|
||||
// qstatemachine.sip generated by MetaSIP
|
||||
//
|
||||
// This file is part of the QtStateMachine Python extension module.
|
||||
//
|
||||
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of PyQt6.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public License
|
||||
// version 3.0 as published by the Free Software Foundation and appearing in
|
||||
// the file LICENSE included in the packaging of this file. Please review the
|
||||
// following information to ensure the GNU General Public License version 3.0
|
||||
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
||||
//
|
||||
// If you do not wish to use this file under the terms of the GPL version 3.0
|
||||
// then you may purchase a commercial license. For more information contact
|
||||
// info@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
class QStateMachine : public QState
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qstatemachine.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
class SignalEvent : public QEvent /NoDefaultCtors/
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qstatemachine.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
virtual ~SignalEvent();
|
||||
QObject *sender() const;
|
||||
int signalIndex() const;
|
||||
QList<QVariant> arguments() const;
|
||||
};
|
||||
|
||||
class WrappedEvent : public QEvent /NoDefaultCtors/
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qstatemachine.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
virtual ~WrappedEvent();
|
||||
QObject *object() const;
|
||||
QEvent *event() const;
|
||||
};
|
||||
|
||||
enum EventPriority
|
||||
{
|
||||
NormalPriority,
|
||||
HighPriority,
|
||||
};
|
||||
|
||||
enum Error
|
||||
{
|
||||
NoError,
|
||||
NoInitialStateError,
|
||||
NoDefaultStateInHistoryStateError,
|
||||
NoCommonAncestorForTransitionError,
|
||||
StateMachineChildModeSetToParallelError,
|
||||
};
|
||||
|
||||
explicit QStateMachine(QObject *parent /TransferThis/ = 0);
|
||||
QStateMachine(QState::ChildMode childMode, QObject *parent /TransferThis/ = 0);
|
||||
virtual ~QStateMachine();
|
||||
void addState(QAbstractState *state /Transfer/);
|
||||
void removeState(QAbstractState *state /TransferBack/);
|
||||
QStateMachine::Error error() const;
|
||||
QString errorString() const;
|
||||
void clearError();
|
||||
bool isRunning() const;
|
||||
bool isAnimated() const;
|
||||
void setAnimated(bool enabled);
|
||||
void addDefaultAnimation(QAbstractAnimation *animation /GetWrapper/);
|
||||
%MethodCode
|
||||
// We want to keep a reference to the animation but this is in addition to the
|
||||
// existing ones and does not replace them - so we can't use /KeepReference/.
|
||||
sipCpp->addDefaultAnimation(a0);
|
||||
|
||||
// Use the user object as a list of the references.
|
||||
PyObject *user = sipGetUserObject((sipSimpleWrapper *)sipSelf);
|
||||
|
||||
if (!user)
|
||||
{
|
||||
user = PyList_New(0);
|
||||
sipSetUserObject((sipSimpleWrapper *)sipSelf, user);
|
||||
}
|
||||
|
||||
if (user)
|
||||
PyList_Append(user, a0Wrapper);
|
||||
%End
|
||||
|
||||
QList<QAbstractAnimation *> defaultAnimations() const;
|
||||
void removeDefaultAnimation(QAbstractAnimation *animation /GetWrapper/);
|
||||
%MethodCode
|
||||
// Discard the extra animation reference that we took in addDefaultAnimation().
|
||||
sipCpp->removeDefaultAnimation(a0);
|
||||
|
||||
// Use the user object as a list of the references.
|
||||
PyObject *user = sipGetUserObject((sipSimpleWrapper *)sipSelf);
|
||||
|
||||
if (user)
|
||||
{
|
||||
Py_ssize_t i = 0;
|
||||
|
||||
// Note that we deal with an object appearing in the list more than once.
|
||||
while (i < PyList_Size(user))
|
||||
if (PyList_GetItem(user, i) == a0Wrapper)
|
||||
PyList_SetSlice(user, i, i + 1, NULL);
|
||||
else
|
||||
++i;
|
||||
}
|
||||
%End
|
||||
|
||||
QState::RestorePolicy globalRestorePolicy() const;
|
||||
void setGlobalRestorePolicy(QState::RestorePolicy restorePolicy);
|
||||
void postEvent(QEvent *event /Transfer/, QStateMachine::EventPriority priority = QStateMachine::NormalPriority);
|
||||
int postDelayedEvent(QEvent *event /Transfer/, int delay);
|
||||
bool cancelDelayedEvent(int id);
|
||||
QSet<QAbstractState *> configuration() const;
|
||||
virtual bool eventFilter(QObject *watched, QEvent *event);
|
||||
|
||||
public slots:
|
||||
void start();
|
||||
void stop();
|
||||
void setRunning(bool running);
|
||||
|
||||
signals:
|
||||
void started();
|
||||
void stopped();
|
||||
void runningChanged(bool running);
|
||||
|
||||
protected:
|
||||
virtual void onEntry(QEvent *event);
|
||||
virtual void onExit(QEvent *event);
|
||||
virtual bool event(QEvent *e);
|
||||
};
|
||||
Reference in New Issue
Block a user