PythonQtStdDecorators.cpp
116 lines
| 3.4 KiB
| text/x-c
|
CppLexer
/ src / PythonQtStdDecorators.cpp
ezust
|
r0 | /* | ||
* | ||||
* Copyright (C) 2006 MeVis Research GmbH All Rights Reserved. | ||||
* | ||||
* This library is free software; you can redistribute it and/or | ||||
* modify it under the terms of the GNU Lesser General Public | ||||
* License as published by the Free Software Foundation; either | ||||
* version 2.1 of the License, or (at your option) any later version. | ||||
* | ||||
* This library is distributed in the hope that it will be useful, | ||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
* Lesser General Public License for more details. | ||||
* | ||||
* Further, this software is distributed without any warranty that it is | ||||
* free of the rightful claim of any third person regarding infringement | ||||
* or the like. Any license provided herein, whether implied or | ||||
* otherwise, applies only to this software file. Patent licenses, if | ||||
* any, provided herein do not apply to combinations of this program with | ||||
* other software, or any other product whatsoever. | ||||
* | ||||
* You should have received a copy of the GNU Lesser General Public | ||||
* License along with this library; if not, write to the Free Software | ||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
* | ||||
* Contact information: MeVis Research GmbH, Universitaetsallee 29, | ||||
* 28359 Bremen, Germany or: | ||||
* | ||||
* http://www.mevis.de | ||||
* | ||||
*/ | ||||
//---------------------------------------------------------------------------------- | ||||
/*! | ||||
// \file PythonQtStdDecorators.cpp | ||||
// \author Florian Link | ||||
// \author Last changed by $Author: florian $ | ||||
// \date 2007-04 | ||||
*/ | ||||
//---------------------------------------------------------------------------------- | ||||
#include "PythonQtStdDecorators.h" | ||||
#include "PythonQt.h" | ||||
#include "PythonQtClassInfo.h" | ||||
bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, PyObject* callable) | ||||
{ | ||||
QByteArray signalTmp("2"); | ||||
signalTmp += signal; | ||||
if (sender) { | ||||
return PythonQt::self()->addSignalHandler(sender, signalTmp, callable); | ||||
} else { | ||||
return false; | ||||
} | ||||
} | ||||
bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, QObject* receiver, const QByteArray& slot) | ||||
{ | ||||
bool r = false; | ||||
if (sender && receiver) { | ||||
QByteArray signalTmp("2"); | ||||
signalTmp += signal; | ||||
QByteArray slotTmp("1"); | ||||
slotTmp += slot; | ||||
if (receiver) { | ||||
r = QObject::connect(sender, signalTmp, receiver, slotTmp); | ||||
} | ||||
} | ||||
return r; | ||||
} | ||||
bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal, PyObject* callable) | ||||
{ | ||||
QByteArray signalTmp("2"); | ||||
signalTmp += signal; | ||||
if (sender) { | ||||
return PythonQt::self()->removeSignalHandler(sender, signalTmp, callable); | ||||
} else { | ||||
return false; | ||||
} | ||||
} | ||||
bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal, QObject* receiver, const QByteArray& slot) | ||||
{ | ||||
bool r = false; | ||||
if (sender && receiver) { | ||||
QByteArray signalTmp("2"); | ||||
signalTmp += signal; | ||||
QByteArray slotTmp("1"); | ||||
slotTmp += slot; | ||||
if (receiver) { | ||||
r = QObject::disconnect(sender, signalTmp, receiver, slotTmp); | ||||
} | ||||
} | ||||
return r; | ||||
} | ||||
QObject* PythonQtStdDecorators::parent(QObject* o) { | ||||
return o->parent(); | ||||
} | ||||
void PythonQtStdDecorators::setParent(QObject* o, QObject* parent) | ||||
{ | ||||
o->setParent(parent); | ||||
} | ||||
QVariantList PythonQtStdDecorators::children(QObject* o) | ||||
{ | ||||
QVariantList v; | ||||
QListIterator<QObject*> it(o->children()); | ||||
while (it.hasNext()) { | ||||
v << qVariantFromValue(it.next()); | ||||
} | ||||
return v; | ||||
} | ||||