, instead of
QWidgetFactory would be really great.
What are exactly the benefits in rewriting QWidgetFactory in Python?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
string
?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Hello,
are there Python bindings for qtpiemenu (from Trolltech Solutions)?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Torsten Marek [EMAIL PROTECTED] wrote:
This came up some days ago, I think Phil fixed it in the snapshots. And he
said that he'll release sip 4.2/PyQt 3.14 in a couple of days, so you'll
need
some patience - or build the snapshot yourself.
OK, I'll build RC2 for now. Thanks
--
Giovanni Bajo
the global qApp, not the QApplication.
In Qt, I can down-cast the qApp pointer to my subclass to access my methods,
how can I do the same in PyQt?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
in PyQt?
sys.modules['qt'].__dict__['qApp'] = A(sys.argv)
...might do it. You have to make sure that this is done before the other
modules that want to use it get imported.
I'll try that, thanks.
Would you consider this behaviour a bug, and in that case, is it feasable to
fix it?
--
Giovanni
never advocated
heavy use of import*. In fact, it is a construct I rarely use. PyQt is
one of the case where the construct really turns out to be useful.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de
infrastructure for this, as the windows
version of qt.pyd exports just one visible symbol.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
/sip/build and others within /sip/sipgen/build.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
this?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
, in customEvent
NameError: global name 'syntax_error' is not defined
app.postEvent(w, QCustomEvent(QEvent.User))
app.exec_loop()
1
Is this a known problem? Surely it is a serious one since we cannot afford
to ignore exceptions.
This is with SIP 4.2, PyQT 3.14.
--
Giovanni Bajo
.'
print sys.stderr,'Giovanni Bajo [EMAIL PROTECTED] reports that it is
omitted\n\n'
print 'done'
=
I get this output:
=
about to post event, should see nothing yet
about to process
.
There is something weird going on.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Giovanni Bajo [EMAIL PROTECTED] wrote:
I have attached a more practical example, that shows the problem in more
detail.
Thanks. I would call this a very serious bug.
BTW, let me notice that this does *not only* happen with an explicit
postEvent() call. Even though I am unable to reproduce
the wrapped Python
exceptions there.
This probably requires Qt compilatoin with exception support (-exceptions).
I would find totally acceptable to have the pre-SIP 4.2 behaviour in case Qt
is compiled without exception support.
--
Giovanni Bajo
___
PyKDE
sipResObj;
48638 }
48639 }
...
/sipkdecorepart0.cpp
I'm not sure a reinterpret_cast is *ever* a solution. Probably the point
is where it is assumed that pid_t is int, rather than using pid_t
directly.
Giovanni Bajo
___
PyKDE
++
classes, and you don't want to mention hundreds of mangled names in a linker
script (including vtables, etc.), or manually mark each and every member
function and member variable with a GCC-specific __attribute__. But this is
not the case here.
--
Giovanni Bajo
/pipermail/pykde/2005-February/009680.html
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
a QValueListpid_t,
whatever pid_t is typedef'd to.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
that the long* will never point to
the int object, and thus will not be able to modify its contents in any way.
This is off-topic though :)
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo
(qApp, App)
Traceback (most recent call last):
File stdin, line 1, in ?
SystemError: error return without exception set
I speculate this got broken when you touched exception support in sip 4.2?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
parents, so you first
create the child, and later bind it to either parent depending on some
information extracted from the child itself. Remember that it is very common to
subclass QListBoxItemText to store additional information.
Giovanni Bajo
___
PyKDE
). The issue I am
reporting is that the error message could be improved by saying something
more specific.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
do
qApp.processEvents()). If you can poll very often within your long task, the
GUI will be still responsive. Anyway, this is better answered on the
qt-interest mailing list.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
label3 = )
If you call this as:
QListView(None, None, foo)
PyQt will effectively call the first constructor rather than the second. I
believe I could use sip.cast to disambiguate but I would like to know the
rationale behind the choice of allowing None as null string.
--
Giovanni Bajo
a pointer
was going to be dereferenced.
The current behaviour is wrong and I'll change it. There is a danger
that the change might break some code.
Yes, but as with the typed enum change, it's for a good cause. Thanks.
Giovanni Bajo
___
PyKDE mailing
, line 1, in ?
AttributeError: 'super' object has no attribute 'emit'
Why is super broken?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
methods thing which SIP does? Is it
documented anywhere? I found also some references to it some days ago,
reading up an old thread in a mailing list that was comparing Boost.Python
with SIP.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
vertically.
A QListView could do that with 2 columns, but I don't want the column
headers. Any suggestions appreciated.
QTable?
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
vertically.
A QListView could do that with 2 columns, but I don't want the column
headers. Any suggestions appreciated.
Ah well, even easier, QListView.header().hide().
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
, but in Qt 3.x hide() is inherited from QWidget.hide
(since QHeader is a QWidget).
BTW, I believe this kind of questions are better answered in the qt-interest
mailing list.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
unicode(i) to convert QString to a Python unicode string.
Either that, or keep the QString. It pretty much depends on what you are
going to do with that families dict.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
': True}
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
syntax would be, then?
def pyApp():
import sip
return sip.cast(qApp, App)
gives me a:
SystemError: error return without exception set
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
)
i.isSelected
built-in method isSelected of QListBoxText object at 0x008158A0
i.selected
Traceback (most recent call last):
File stdin, line 1, in ?
AttributeError: selected
l.firstItem() is i
True
Which version of Qt/PyQt are you using?
Giovanni Bajo
somehow fixed
this, it might just be hidden and come back somewhere else in other forms.
Given that you can reproduce it and that we even have a short snippet (which
might not be available next time it happens), it might be worth investigating
this problem a little. What do you think?
Giovanni Bajo
modified for a bugfix (it was leaking objects),
which might be the change which hides this bug in the current PyQt snapshot.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Hello,
would it be possible to add a specific __repr__ function for classes like
QPoint, QRect, QSize, QString, QStringList, QObject (show its name if any),
etc.? It is unfortunate that printing them is not enough to show their
contents.
Thanks!
--
Giovanni Bajo
on sip.pyd only.
Can this be done?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
?
Not if it isn't part of the official Qt API.
Depends on your definition of API. It is not documented in Qt Assistant, but
I can use it from C++ code with any official Qt version, without patching Qt
in any way: it is defined in public headers and it is an exported symbold in
dynamic libraries.
--
Giovanni Bajo
guess this issue should be highlighted in the documentation.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Toby Dickenson [EMAIL PROTECTED] wrote:
On Wednesday 25 May 2005 16:13, Giovanni Bajo wrote:
So, I don't see any easy way to take care of this automatically. One
has to remember to manually destroy the dialog calling deleteLater
Yes. My PyQt idiom for running a dialog is:
dlg
codebase, I prefer things that either
crash or work perfectly, without having to go hunting memory leaks
everywhere :)
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
sip.wrappertype and changes only one function, __call__).
I do not have a short testcase to demonstrate this but I was wondering if
this rings a bell.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
and suggestions about
Installer, you can find it here but it's still work in progress:
http://www.develer.com/oss/PyInstaller
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
: 8776 Kb
VmSize: 25320 Kb VmRss: 8784 Kb
VmSize: 25320 Kb VmRss: 8788 Kb
VmSize: 25320 Kb VmRss: 8796 Kb
VmSize: 25320 Kb VmRss: 8804 Kb
VmSize: 25320 Kb VmRss: 8808 Kb
VmSize: 25320 Kb VmRss: 8816 Kb
[...]
I have attached the updated script.
--
Giovanni Bajo
#!/usr/bin/env python
from qt import
.xx = d
del d
del w1
del w2
gc.collect()
0
app.processEvents()
gc.collect()
0
print wd
weakref at 00813690; to 'instance' at 00812FD0
d should be collected as w1 and w2 are destroyed.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
is destroyed or not... maybe you
could set that at the very start of the derived destructor.
The second problem is a memory leak:
I'll think about this tomorrow - my head hurts at the moment.
Sure :)
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
of the dialog instance back to Python?
Well, which C++ API would you intend to call to achieve this? We still need the
QDialog to keep its parent widget because it is the widget on which the dialog
is modal.
Giovanni Bajo
___
PyKDE mailing listPyKDE
Phil Thompson [EMAIL PROTECTED] wrote:
Should be fixed in tonight's SIP snapshot. The cyclic garbage collector
was
ignoring the extra reference to wrappers of objects owned by C++.
Thanks, I just verified that this fixes my problem!
--
Giovanni Bajo
a reason() method which tells you how the widget got the focus (in case you
want to do something only if it got focus by mouse).
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
the object is a QWidget.
Either that, or always retry to downcast any reference you get from the
internal SIP map of existing python refernces. QScrollView.viewport() really
*is* supposed to return *at least* a QWidget.
--
Giovanni Bajo
___
PyKDE mailing list
, and this
would be a sole example.
Some PyKDE uses have this requirement - hence sip.cast().
I would like to see some.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Phil Thompson [EMAIL PROTECTED] wrote:
ignoring the extra reference to wrappers of objects owned by C++.
Thanks, I just verified that this fixes my problem!
I've had to back this out - it's the wrong fix and breaks other things.
Okie dokie. Is a different fix planned?
--
Giovanni Bajo
is going to implement a general
solution so that you always get the most derived class Python knows about --
QMainWindow in this case.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo
with the single-file build, but memory usage was much lower.
You'll have to rewrite this for GCC, but it could be a starting point if you
are interested.
--
Giovanni Bajo
sipconfig.pch.patch
Description: Binary data
___
PyKDE mailing listPyKDE
problem.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
the outcome of this
discussion is.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
of this.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
and pick the correct behaviour
for their code. Explicit is better than implicit, after all.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
for QObject? Of course I'm thinking of PyQt4.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
the %MethodCode
for
QDialog.exec_loop. I'll remember you that exec_loop is called only for
modal
dialogs, while for modeless dialogs show() is called.
Ok, this is in tonight's PyQt snapshot.
Thanks! Remember to document it properly!
--
Giovanni Bajo
!
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
tuple.
We are using Windows XP, Qt 3.3.3.
Works for me with the 20050810 snapshots, so it must have been broken in the
very last snapshot.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
snapshot-20050821 - Broken
SIP snapshot-20050817 - OK
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
, in ?
assert wr() is None
AssertionError
Output with SIP snapshot-20050817:
weakref at 00817750; dead
--
Giovanni Bajo
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import gc
import weakref
from qt import *
app = QApplication([])
class OO(object):
pass
tp = OO()
wr = weakref.ref(tp)
dlg
Giovanni Bajo [EMAIL PROTECTED] wrote:
Eventually produced... :) Attached to this mail.
Followup: it could be reduced a little bit more. Attached again.
--
Giovanni Bajo#!/usr/bin/env python
#-*- coding: utf-8 -*-
import gc
import weakref
from qt import *
app = QApplication([])
class OO
this. You'll have to google for a download
link.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
or so since tomorrow, so I might be a little
slow at testing further changes.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
you
probably
intend - didn't troubleshoot that).
Out of curiosity, couldn't this be checked to generate an Exception instead
of a segfault?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
. Instead,
since it reuses the existing feature file, compilation may break.
I am not sure saving a few seconds of compilation of mkfeatures.cpp is worth
the building headaches. I reckon it'd be better if configure.py could do
just that, and reconfigure everything from scratch.
--
Giovanni Bajo
. It would be better to have a flag which means keep any
existing features file.
Yes, much like a common ./configure:
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
Thanks!
--
Giovanni Bajo
Huaicai Mo [EMAIL PROTECTED] wrote:
I noticed that Qt 3.3.5 has been released with some bugs fix. I wonder
does
the new PyQt 3.15 supports Qt 3.3.5?
It works for me.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
in this
version?
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
to the support.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
/2005-April/010108.html).
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
, QComboBox' focus policy is KeyFocus, so it only gets
the focus through key presses, *not* mouse actions. If you want to change this,
use setFocusPolicy(QWidget.StrongFocus) so that it can get the focus through
either mouse or keyboard.
Giovanni Bajo
shipped with a
more tight integration with distutils. I'd be happy to contirbute it (since
I start needing it) if I could get some details on the right way of doing
it.
Anybody has previous experience on this? Phil, what do you suggest?
--
Giovanni Bajo
, we can switch SIP
itself to use distutils, if we feel it's the right thing to do. For that,
you'll have to release at least a development snapshot with this new build
system, so that people can work on it.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
package.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Compiling the latest SIP snapshot with MSVC gives this error:
qtlib.c(723) : error C2143: syntax error : missing ';' before 'type'
The problem is that in C it is invalid to declare a variable in the middle
of a scope.
--
Giovanni Bajo
___
PyKDE
Hello,
this snippet causes a segfault on my computer (using Python 2.4.2):
import sip
sip.SIP_VERSION_STR
'4.3.1'
class Foo(object):
... __metaclass__ = sip.wrappertype
...
hasattr(Foo, bar)
Segmentation fault
--
Giovanni Bajo
___
PyKDE
positive that, even if your
application is not well decoupled, you can still isolate the performance
sensitive algorithms in functions which have nothing to do with PyQt.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http
that often
anyway. Weird idea: maybe it would be possible to make it a configure-time
option? Would that be too much of a burden to maintain? In that case, I'm +1
on making the automatic conversion the default.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE
this strange
behaviour:
import sip
isinstance(sip.wrapper, object)
True
issubclass(sip.wrapper, object)
True
Dunno if it's related to the fix.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman
fast. There is a simple solution though: I have been meaning to suggest Phil
to add an exception-raising __hash__ method to QString. Those who want to
hash by identify can still do it explicitally (calling id()), instead of
relying on it being the default.
--
Giovanni Bajo
an
implicit conversion in the bindings of a language for which explicit is
better than implicit is a motto. I'm just saying that we should think twice
about it.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de
other object in Python has the same property?
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
decides to support it in PyQt).
A very simple case which happens often in my software is displaying logs in
a text widget.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
had issues with strings in these prototypes.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
Hello,
It appears that QObject::sender() returns None when called from a slot
invoked through a PYSIGNAL. Is there a way to access the information also
for PYSIGNALs? Would it be possible to modify sender() so that it works also
for PYSIGNALs?
--
Giovanni Bajo
this road, we can as well totally remove any kind of Qt
container and iterator, and substitute everything with Python concepts. I would
probably like an additional PyQt layer for this, but I believe the basic PyQt
should fly lower.
Giovanni Bajo
___
PyKDE
version of Qt: it should be to wrap Qt to Python.
This string issue is of course very borderline, and I don't think it's
inappropriate for PyQt to return Python strings from methods, as long as
there is still a way to access QStrings if needed for any reason.
--
Giovanni Bajo
, with %Feature directives.
I believe a Python-only implementation would be easier to work on. See also the
mail by David Bobble with which I totally agree.
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de
. This means that it's easier for people to work on
it and customize its behaviour.
4. The wrapper doesn't have to be written by Phil. Hopefully, he
should be happy about that. ;-)
I totally agree with you.
Giovanni Bajo
___
PyKDE mailing list
, to not confuse existing Qt users and I
think it's a noble goal. I also understand that this is not ideal for a
Python-only programmer.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
.
--
Giovanni Bajo
___
PyKDE mailing listPyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
1 - 100 of 578 matches
Mail list logo