| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When exporting an object to DBus, and the object has N signals, this code
was connecting the QDBusConnectionPrivate multiple times to the destroyed
signal of the object.
Merge-request: 1961
Reviewed-by: Olivier Goffart <ogoffart@trolltech.com>
|
| |/
|/| |
|
| | |
|
| | |
|
| |
| |
| |
| | |
We want people to not use this signal directly.
|
| |
| |
| |
| |
| |
| |
| |
| | |
We were using this signal to update the signal hooks when the remote
service changed. That meant each Qt app received every single service
creation, change or destruction.
Now we only watch the services we're really interested in.
|
| |
| |
| |
| |
| |
| |
| | |
QDBusConnectionPrivate
I'll need to recurse into the signal connection mechanism in the next
commit.
|
| |
| |
| |
| |
| |
| |
| | |
Use null services to indicate we're not interested in the owner, but
empty-but-not-null to indicate we don't know what the owner is. Since
empty service names are not valid, this will mean that this rule won't
match.
|
| |
| |
| |
| |
| | |
This allows us to listen only to the activations we're really
interested in.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
matching.
The bus allows us to match string arguments when receiving messages.
This is very useful for the NameOwnerChanged signal, whose first
argument is usually what we're interested in.
By using these new functions, you can restrict receiving of signals to
those that you truly want, instead of receiving NameOwnerChanged for all
services registered/unregistered on the bus.
|
|/
|
|
| |
I'll use this feature to match the NameOwnerChanged signal from the bus.
|
|
|
|
| |
Reviewed-by: Markus Goetz
|
|
|
|
|
|
| |
The minimum version for the recursive mutexes is D-Bus 0.93. That's
also the same version that introduced the default thread functions. So
we don't need to provide ours anymore, just use the default.
|
|
|
|
|
|
|
|
|
|
|
|
| |
At least in D-Bus 1.2.16, there's a deadlock caused by locking an
already-locked mutex. When Qt is linked to libdbus-1 instead of
dynamically loading it, it maintains legacy compatibility by only
providing the non-recursive mutexes, which triggers this deadlock.
The recursive functions have been present since 0.93, so I guess the
non-recursive variants aren't tested.
Report: https://bugzilla.novell.com/show_bug.cgi?id=482749#c30
|
|
|
|
|
| |
Reviewed-By: Thiago Macieira <thiago.macieira@nokia.com>
Merge-Request: 1657
|
|
|
|
| |
Reviewed-by: Trust Me
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 3ed5b5ebf5b360dedbba14c03f6ca5701b3b9290. That was
a well-intentioned commit and technically correct, but it breaks when
there are static QDBusConnection objects in something that is loaded
before QtDBus (like libraries that depend on QtDBus or applications
like qdbus)
Since QDBusConnection is ref-counted, the last instance is supposed to
disconnect. However, if we have already unloaded libdbus-1, we can't
do that. Q_GLOBAL_STATICs are destroyed too soon.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/painting/svgviewer/files/bubbles.svg
src/corelib/kernel/qobject.cpp
src/network/kernel/qhostinfo.cpp
tests/auto/qhostinfo/tst_qhostinfo.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make some functions static that are not used anywhere but in the
current file. Others that are used, add the declaration to the _p.h to
ensure we don't forget about them.
Finally, there's no need to enable debugging code if it's not used
anywhere.
Reviewed-by: TrustMe
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Conflicts:
tests/auto/auto.pro
|
| | |
| | |
| | |
| | | |
Instead, only run the unload code if we successfully loaded.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
doc/src/examples.qdoc
doc/src/plugins-howto.qdoc
doc/src/topics.qdoc
examples/phonon/musicplayer/mainwindow.cpp
src/3rdparty/freetype/src/base/ftobjs.c
src/corelib/global/qglobal.h
src/corelib/tools/qalgorithms.h
src/corelib/tools/qshareddata.cpp
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/tools.pri
src/corelib/xml/qxmlstream.h
src/gui/painting/painting.pri
src/gui/widgets/qdatetimeedit.cpp
tests/auto/qdesktopservices/qdesktopservices.pro
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qtextcodec/test/test.pro
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On the Mac, it means "-framework ApplicationServices -framework Carbon
-framework AppKit" are no longer part of the default LIBS in Qt
applications. This required a lot of fixes where we used Mac-specific
code in Qt.
On X11, it was very straightforward, because we apparently use very
little of X11 outside QtGui.
I haven't changed the Windows-specific LIBS paths, because I don't
know how Windows behaves. Windows has DLLs, but it links to static
"import" libraries. So is it static linking or dynamic linking?
Reviewed-By: Marius Storm-Olsen
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
| | |
| | |
| | |
| | |
| | |
| | | |
Rationale: We're using template magic now to get the private
pointer in qglobal.h, so no need to have two macros. Also
keeps backward compatibility with outside (KDE) code.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/corelib/global/qglobal.h
src/corelib/kernel/qmetatype.cpp
src/corelib/kernel/qobject.cpp
src/corelib/thread/qthread_unix.cpp
src/gui/graphicsview/qgraphicssceneevent.h
src/gui/itemviews/qheaderview.h
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qgesture.h
src/gui/kernel/qgesturerecognizer.h
src/gui/painting/qpaintengine_raster.cpp
src/network/access/qhttpnetworkreply.cpp
src/network/access/qnetworkcookie.h
src/network/socket/qnativesocketengine_unix.cpp
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Contains some smaller fixes and renaming of macros. Looks big,
but isn't scary at all ;)
|
|\ \ \ \
| |/ / /
|/| / /
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure.exe
qmake/Makefile.unix
qmake/generators/makefile.cpp
src/corelib/global/qglobal.h
src/corelib/kernel/kernel.pri
src/corelib/kernel/qcoreevent.cpp
src/corelib/kernel/qsharedmemory_unix.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/kernel/qaction.cpp
src/gui/kernel/qaction.h
src/gui/kernel/qaction_p.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget.h
src/gui/kernel/qwidget_mac.mm
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/styles/qwindowsstyle.cpp
src/gui/text/qfontengine_qpf.cpp
src/gui/widgets/qabstractscrollarea_p.h
src/network/access/qnetworkaccessdebugpipebackend.cpp
src/network/socket/qlocalsocket_unix.cpp
src/network/socket/qnativesocketengine_p.h
src/network/socket/qnativesocketengine_unix.cpp
src/openvg/qpaintengine_vg.cpp
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qcssparser/qcssparser.pro
tests/auto/qdir/tst_qdir.cpp
tests/auto/qfile/tst_qfile.cpp
tests/auto/qobject/tst_qobject.cpp
tests/auto/qpathclipper/qpathclipper.pro
tests/auto/qprocess/tst_qprocess.cpp
tests/auto/qsettings/tst_qsettings.cpp
tests/auto/qsharedpointer/qsharedpointer.pro
tests/auto/qsqlquerymodel/qsqlquerymodel.pro
tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro
tests/auto/qsqltablemodel/qsqltablemodel.pro
tests/auto/qsqlthread/qsqlthread.pro
tests/auto/qwidget/tst_qwidget.cpp
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I had this #ifdef __OPTIMIZE__ there so that the compiler would know
not to generate unnecessary calls and a long jump table for the switch
of the marshalling code.
Turns out that in release mode, the checks I added to make sure we
detect invalid object paths and signatures were never hit (we always
treated them as pure strings).
So use the signature- and object path-checking code in both release
and debug mode.
Task-number: reported via email (tst_qdbusmarshall failing)
Reviewed-by: Peter Hartmann
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/sql/drivers/ibase/qsql_ibase.cpp
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qsqldatabase/tst_databases.h
tests/auto/qsqldatabase/tst_qsqldatabase.cpp
translations/qt_ru.ts
|
| | | |
|
| | | |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
with QDBusInterface.
The problem was that I didn't know how to implement the operator= for
all types. But it turns out that this was possible all along: the only
types I have to implement the operator= for are the basic types, which
are already demarshalled.
The complex types are left in QDBusArgument semi-demarshalling, but we
have QDBusMetaType::demarshall, which takes a void* to an
already-constructed type and demarshalls into it. That's exactly what
the doctor ordered.
Task-number: 206765
Reviewed-By: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This works for the case of complex types that have to be demarshalled.
We don't need to instantiate a new type because QMetaProperty has already
done that for us.
Also, fix the handling of properties of type variant. I have verified
as well that the sending of those properties on the wire use a
double-variant encoding (i.e., a variant containing a variant
containing some data, the same that Qt 4.5 uses). It's a bit pedantic
and it's hard to use when reading stuff, because you get a QVariant
containing a QDBusVariant which contains data, but I can't change this
anymore.
Reviewed-By: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Complex properties require demarshalling before passing on to
QMetaProperty::write(). We can't pass on a QVariant containing an
un-demarshalled QDBusArgument.
So add a new function that does the decoding properly, as well as
error checking.
Also take the opportunity to properly check the interface name in the
case of setting a property exported from the object itself (not an
adaptor).
Task-number: 240608
Reviewed-by: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When calling qt_metacall with the ReadProperty or WriteProperty, the
data is on argv[0] like it was before, but now the QVariant itself is
on argv[1] and there's an extra parameter in argv[2] which the meta
code can use to indicate result.
This allows QtDBus to process properties much more easily. In the case
of property reading, we need to be able to modify the variant itself,
because copying types when we don't have the data isn't very easy.
As for setting, we need to be able to tell setProperty to return true
or false depending on whether we succeeded in setting the property or
not.
Reviewed-By: Kent Hansen
Reviewed-By: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a small performance improvement when making a call: we don't
need to validate what we already know to be valid because we either
designed it to be so or because we've already validated.
The D-Bus library unfortunately validates again and there's nothing we
can do about it. But we can avoid doing it twice in our own code.
Reviewed-By: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In case the object creation fails, set isValid to false. This will
prevent any outgoing calls to be made with invalid information. In
that case, lastError will never change either.
This required adding a method to QDBusPendingCall, to be able to
create one such object from an existing QDBusError.
Reviewed-By: Marius Bugge Monsen
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
marshalling code.
Reviewed-By: Harald Fernengel
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-By: Harald Fernengel
|