4646
4747#include < QCoreApplication>
4848
49- bool PythonQtStdDecorators::connect (QObject* sender, const QByteArray & signal, PyObject* callable)
49+ bool PythonQtStdDecorators::connect (QObject* sender, const QString & signal, PyObject* callable)
5050{
5151 bool result = false ;
52- QByteArray signalTmp;
53- char first = signal.at (0 );
54- if (first>=' 0' && first<=' 9' ) {
55- signalTmp = signal;
56- } else {
57- signalTmp = " 2" + signal;
52+ QByteArray signalTmp = signal.toLatin1 ();
53+ char first = signalTmp.at (0 );
54+ if (first<' 0' || first>' 9' ) {
55+ signalTmp = " 2" + signalTmp;
5856 }
5957
6058 if (sender) {
6159 result = PythonQt::self ()->addSignalHandler (sender, signalTmp, callable);
6260 if (!result) {
6361 if (sender->metaObject ()->indexOfSignal (QMetaObject::normalizedSignature (signalTmp.constData ()+1 )) == -1 ) {
64- qWarning (" PythonQt: QObject::connect() signal '%s' does not exist on %s" , signal.constData (), sender->metaObject ()->className ());
62+ qWarning (" PythonQt: QObject::connect() signal '%s' does not exist on %s" , signal.toLatin1 (). constData (), sender->metaObject ()->className ());
6563 }
6664 }
6765 }
6866 return result;
6967}
7068
71- bool PythonQtStdDecorators::connect (QObject* sender, const QByteArray & signal, QObject* receiver, const QByteArray & slot, Qt::ConnectionType type)
69+ bool PythonQtStdDecorators::connect (QObject* sender, const QString & signal, QObject* receiver, const QString & slot, Qt::ConnectionType type)
7270{
7371 bool r = false ;
7472 if (sender && receiver) {
75- QByteArray signalTmp;
76- char first = signal.at (0 );
77- if (first>=' 0' && first<=' 9' ) {
78- signalTmp = signal;
79- } else {
80- signalTmp = " 2" + signal;
73+ QByteArray signalTmp = signal.toLatin1 ();
74+ char first = signalTmp.at (0 );
75+ if (first<' 0' || first>' 9' ) {
76+ signalTmp = " 2" + signalTmp;
8177 }
8278
83- QByteArray slotTmp;
84- first = slot.at (0 );
85- if (first>=' 0' && first<=' 9' ) {
86- slotTmp = slot;
87- } else {
88- slotTmp = " 1" + slot;
79+ QByteArray slotTmp = slot.toLatin1 ();
80+ first = slotTmp.at (0 );
81+ if (first<' 0' || first>' 9' ) {
82+ slotTmp = " 1" + slotTmp;
8983 }
9084 r = QObject::connect (sender, signalTmp, receiver, slotTmp, type);
9185 }
9286 return r;
9387}
9488
95- bool PythonQtStdDecorators::disconnect (QObject* sender, const QByteArray & signal, PyObject* callable)
89+ bool PythonQtStdDecorators::disconnect (QObject* sender, const QString & signal, PyObject* callable)
9690{
9791 bool result = false ;
98- QByteArray signalTmp;
99- char first = signal.at (0 );
100- if (first>=' 0' && first<=' 9' ) {
101- signalTmp = signal;
102- } else {
103- signalTmp = " 2" + signal;
92+ QByteArray signalTmp = signal.toLatin1 ();
93+ char first = signalTmp.at (0 );
94+ if (first<' 0' || first>' 9' ) {
95+ signalTmp = " 2" + signalTmp;
10496 }
10597 if (sender) {
10698 result = PythonQt::self ()->removeSignalHandler (sender, signalTmp, callable);
@@ -109,31 +101,27 @@ bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal
109101 }
110102 if (!result) {
111103 if (sender->metaObject ()->indexOfSignal (QMetaObject::normalizedSignature (signalTmp.constData ()+1 )) == -1 ) {
112- qWarning (" PythonQt: QObject::disconnect() signal '%s' does not exist on %s" , signal.constData (), sender->metaObject ()->className ());
104+ qWarning (" PythonQt: QObject::disconnect() signal '%s' does not exist on %s" , signal.toLatin1 (). constData (), sender->metaObject ()->className ());
113105 }
114106 }
115107 }
116108 return result;
117109}
118110
119- bool PythonQtStdDecorators::disconnect (QObject* sender, const QByteArray & signal, QObject* receiver, const QByteArray & slot)
111+ bool PythonQtStdDecorators::disconnect (QObject* sender, const QString & signal, QObject* receiver, const QString & slot)
120112{
121113 bool r = false ;
122114 if (sender && receiver) {
123- QByteArray signalTmp;
124- char first = signal.at (0 );
125- if (first>=' 0' && first<=' 9' ) {
126- signalTmp = signal;
127- } else {
128- signalTmp = " 2" + signal;
115+ QByteArray signalTmp = signal.toLatin1 ();
116+ char first = signalTmp.at (0 );
117+ if (first<' 0' || first>' 9' ) {
118+ signalTmp = " 2" + signalTmp;
129119 }
130120
131- QByteArray slotTmp;
132- first = slot.at (0 );
133- if (first>=' 0' && first<=' 9' ) {
134- slotTmp = slot;
135- } else {
136- slotTmp = " 1" + slot;
121+ QByteArray slotTmp = slot.toLatin1 ();
122+ first = slotTmp.at (0 );
123+ if (first<' 0' || first>' 9' ) {
124+ slotTmp = " 1" + slotTmp;
137125 }
138126
139127 r = QObject::disconnect (sender, signalTmp, receiver, slotTmp);
0 commit comments