Thiago Macieira [Mon, 12 Jun 2006 09:18:45 +0000 (09:18 +0000)]
* qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
that took a QDBusMessage parameter.
* qt/src/qdbusbus.h: Add a default flag for RequestName.
* qt/tools/dbus.cpp: Don't use automatic call because we might
be calling an async method: request a reply.
Thiago Macieira [Sun, 11 Jun 2006 12:18:23 +0000 (12:18 +0000)]
* test/qt/*: Update the testcases, including testing the new
functionality of sending null QByteArray and QString over the
bus. Add new headertest test and restore the old
qdbusxmlparser test.
Thiago Macieira [Sun, 11 Jun 2006 12:16:30 +0000 (12:16 +0000)]
* qt/tools/dbuscpp2xml.cpp: Compile on Windows.
* qt/tools/dbusidl2cpp.cpp: Add missing newline.
* qt/examples/Makefile.am:
* qt/examples/chat.h: Use UI-generated files with the ui_*.h
form.
* qt/src/qdbusmarshall.cpp: Allow sending of QString() and
QByteArray() (nulls) over the bus.
* qt/src/qdbusabstractinterface.cpp: Use the correct variable,
the one that has the signature suffix stripped.
* qt/src/qdbusreply.h: Make some methods const.
Thiago Macieira [Fri, 9 Jun 2006 21:43:14 +0000 (21:43 +0000)]
Patch from Timo Hoenig <thoenig@suse.de>.
* qt/dbus/Makefile.am: New file. Fix "make dist", add all
headers required during build to EXTRA_DIST.
* qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to
EXTRA_DIST.
* qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
* configure.in: Fix "make dist", take care that the Makefile
for qt/dbus is being generated.
Robert McQueen [Wed, 7 Jun 2006 00:03:57 +0000 (00:03 +0000)]
2005-05-06 Robert McQueen <robot101@debian.org>
* glib/dbus-gvalue-utils.c: Fix the failing test where static string
pointers were put into a GPtrArray-based specialised collection, and
then freed along with the array. GValues which you add into
collections or maps which have the NOCOPY flag set are assumed to not
belong to the caller, so rather than the existing pointer-stealing
semantics, they are copied instead. Given that the main consumers of
this abstraction are the bindings themselves, I don't think this is
too bad, but others should watch their choice of take vs set_static.
Robert McQueen [Tue, 6 Jun 2006 23:07:04 +0000 (23:07 +0000)]
2005-05-06 Robert McQueen <robot101@debian.org>
* glib/dbus-gvalue-utils.c: Spotted a warning about the return value
of g_slist_prepend not being used. Fixed copying of slist-based
specialised collections, then wrote a test case and found that it was
all broken. Went on to fix iterating and appending too. Good thing
nobody uses this code yet.
Robert McQueen [Tue, 6 Jun 2006 19:45:39 +0000 (19:45 +0000)]
2005-05-06 Robert McQueen <robot101@debian.org>
* glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
the iterators use gvalue_take_ptrarray_value (the GValues themselves
are discarded without unsetting, so it makes no difference whether
we take or set_static). Remove cases for G_TYPE_POINTER because
there really is nothing useful we can do with them in our
specialised types - we *need* boxed copy/free functions at the very
least.
Thiago Macieira [Mon, 5 Jun 2006 18:13:07 +0000 (18:13 +0000)]
* qt/dbus: Add directory. I had forgotten to add this
yesterday after the move...
* qt/examples/Makefile.am:
* qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
* qt/tools/Makefile.am:
* qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
Added feature to get and set properties.
Added validation of service, object path and interface names.
* qt/tools/dbusidl2cpp.cpp: Two new features:
1) Allow specifying both the header and the source file names,
by separating them with a colon.
2) Don't write an interface output if the -p switch wasn't
given, but the -a was.
* qt/src/*: Fix usage of Iterators and ConstIterators.
Fix shadowing of variables by other variables (-Wshadow).
Fix keyword-cleanliness in headers.
Fix ASCII-cast (QLatin1String, QLatin1Char).
Fix validation of member names.
Add extra checking of introspection data during XML parsing.
Various bug fixes.
Thiago Macieira [Sun, 4 Jun 2006 15:52:05 +0000 (15:52 +0000)]
* qt/: Update to Subversion r548032.
This includes a big reorganisation of the files inside the
subdir.
We really need a version control system that supports moving of
files. I'm not bothering with history anyways anymore, since the
bindings will be moved out to git. The history should be restored from
Subversion when that happens.
Sjoerd Simons [Tue, 30 May 2006 15:34:10 +0000 (15:34 +0000)]
* dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
clear:
"Failed to connect to socket <host>:<port> <error>" instead of
"Failed to connect to socket <host>: <error>:<port>"
* dbus/dbus-transport-unix.c: Fix crash when no host option is given
for a tcp transport.
Thiago Macieira [Mon, 29 May 2006 18:17:09 +0000 (18:17 +0000)]
* qt/*: Update the QtDBus bindings up to revision 546310 in
Subversion.
This adds the dbuscpp2xml tool, that parses a C++ header and
outputs a D-BUS Introspection XML.
Havoc Pennington [Sun, 21 May 2006 05:33:52 +0000 (05:33 +0000)]
2006-05-21 Havoc Pennington <hp@redhat.com>
* glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
is not NULL when it shouldn't be. Also a couple of possible fixes
for #4637 though I don't understand why the bug happens, to be
honest... also the object constructor has an assert name != NULL
and the name is only currently NULL for peer-to-peer proxies that
I don't think anyone uses? So it should be asserting.
Anyway, for now at least see if we get an earlier assertion failure.
* glib/dbus-gvalue-utils.c: Put in a couple of assertions for
apparently broken code to be sure the tests fail and someone
will fix them...
Thiago Macieira [Sun, 7 May 2006 09:36:19 +0000 (09:36 +0000)]
* qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
and arrays when they had a single element: has_next returns
false, even before you read the element. So, instead, check
the array length.
Thiago Macieira [Tue, 2 May 2006 14:00:27 +0000 (14:00 +0000)]
* qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
call (r535506)
* qt/dbusidl2cpp.cpp:
* qt/qdbusabstractadaptor.cpp:
* qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
sibling of the QDBusAbstractAdaptor objects instead of the
parent. (r535848)
* qt/dbusidl2cpp.cpp:
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface.h:
* qt/qdbusabstractinterface_p.h:
* qt/qdbusinterface.cpp: Make properties in interfaces
actually work. The code that was generated would not compile,
due to moc calls to functions that did not exist. They now
shall. (r536571)
* qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
and disable the copy operators. (r533772, r534746)
* qt/qdbuserror.h: Remove the automatic cast to
bool. (r533929)
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface.h: Change the default call mode to
not use the event loop. Add convenience call() methods that
take a CallMode parameter. (r534042)
* qt/qdbusconnection.h: Change the default call mode to not
use the event loop. (r534042)
* qt/qdbusinterface.cpp:
* qt/qdbusinterface.h: Add a method to tell us if the
interface is valid (since we don't return a null pointer
anymore) (r534099)
* qt/qdbusinterface_p.h: Don't crash if metaObject is 0
(r534101)
* qt/qdbusinternalfilters.cpp: Decouple the introspection
function in two so taht we get the chance to introspect
without having a QDBusMessage (r534102)
* qt/qdbusbus.h:
* qt/qdbusconnection.cpp:
* qt/qdbusconnection_p.h:
* qt/qdbusintegrator.cpp: Keep a list of our own names to
avoid a round-trip to the server when attempting to introspect
one of our own objects. Also make sure the filter functions
match the empty interface as well. (r534108)
Don't keep the connection names. Instead, trust the unique
connection name (r534111)
Remove event loop usage (r534112)
* qt/qdbusconnection_p.h:
* qt/qdbusmetaobject.cpp:
* qt/qdbusmetaobject_p.h:
* qt/qdbusintegrator.cpp: Use the new merged-interface mode
for the dynamic meta object. No need to guess which
interface to call.
* qt/qdbusabstractinterface_p.h:
* qt/qdbusconnection.cpp:
* qt/qdbusintegrator.cpp:
* qt/qdbusinterface.cpp:
* qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
Add a QDBusRef that looks and behaves like DCOPRef.
* dbus/dbus-connection.c: Interfaces are optional in method
calls, so don't give up if the interface parameter is NULL.
Patch reviewed by Havoc Pennington.
* qt/qdbusreply.h: Add default constructor and operator=
(r532625)
* qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
in public headers (r532952)
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
make it the default (r532951)
* qt/Makefile.am: fix the dependency for
qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
not in qdbusconnection.cpp.
Thanks to Jakub Stachowski <stachowski@hypair.net> for
spotting this.
Merge from Subversion:
* qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
something that exists (r526315)
* qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
slots/signals (r526316)
* qt/qdbusinternalfilters.cpp: Fix the setProperty call and
also return an unknown-method error if the parameters don't
match for org.freedesktop.DBus.Properties. (r526842)
* qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
* qt/qdbusintegrator.cpp: Restore the proper order of
delivery: don't make method returns be delivered on priority
(r528150)
Thiago Macieira [Tue, 28 Mar 2006 19:16:35 +0000 (19:16 +0000)]
* configure.in qt/Makefile.am: add qt/examples
* qt/examples: Add QtDBus example programs:
- hello: Hello, World
- ping: Simple method-calling program
- pong: Simple object-exporting program (not using adaptors)
- complexping: Interactive method-calling program
(also gets and sets properties).
- complexpong: Sample program exporting methods, signals and
properties, using adaptors.
- dbus: Simple implementation of a generic method-calling
program, similar to 'dbus-send', but with semantics
similar to 'dcop'.
- chat: Simplistic chat program, implemented using signals
and the system bus. Looks like IRC.
Thiago Macieira [Tue, 28 Mar 2006 18:58:58 +0000 (18:58 +0000)]
* test/qt/*: Sync with KDE Subversion revision 523647.
Update the testcases to the new API. Remove testcases for
classes that are no longer public or have been removed.
Thiago Macieira [Tue, 28 Mar 2006 18:56:08 +0000 (18:56 +0000)]
* qt/*:
* dbus/qdbus.h: Sync with KDE Subversion revision
523647. Hopefully, this will be the last of the
source-incompatible changes. Documentation has been improved;
support for QList<basic-types> has been added; QDBusObject is
gone; QDBus(Abstract)Interface is now a QObject with
auto-generated meta-object; QDBusIntrospection is marked
private, since QMetaObject can be used now; lots of bugfixes.
Sjoerd Simons [Mon, 6 Mar 2006 19:06:45 +0000 (19:06 +0000)]
* bus/bus.c: (bus_context_reload_config): Flush the user database cache on
config reload.
* bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
information caches
* dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
* dbus/dbus-hash.h: Add function to remove all entries from a hash table
* dbus/dbus-userdb.c: (_dbus_user_database_flush):
* dbus/dbus-userdb.h: Add function to flush all user/group information
caches.
* qt/dbusidl2cpp.cpp:
* qt/Makefile.am: add the dbusidl2cpp tool, the replacement
for dcopidl2cpp, found in the KDE installations (or the more
modern kalyptus): generate Qt4 C++ code for the input XML
introspection. Currently no IDL parsing.
* qt/*:
* dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
represents the first feature-complete version of the Qt4
bindings since I took ove maintainership.
* dbus/dbus-connection.c:
(_dbus_connection_block_pending_call):
Check to see if our data has already been read off the connection
by another blocking pending call before we block in poll.
(check_for_reply_and_update_dispatch_unlocked):
Code taken from _dbus_connection_block_pending_call - checks for
an already read reply and updates the dispatch if there is one.
* test/name-test/test-pending-call-dispatch.c:
New test for making sure we don't get stuck polling a
dbus connection which has no data on the socket when
blocking out of order on two or more pending calls.
* qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
make/automake don't detect that we're talking about the same
.lo file if I specify the full path to the source files.
Havoc Pennington [Sun, 26 Feb 2006 08:11:03 +0000 (08:11 +0000)]
2006-02-26 Havoc Pennington <hp@redhat.com>
* bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
* dbus/dbus-bus.c (internal_bus_get): in the error message if the
session bus variable is unset, suggest "man dbus-launch" and "man
dbus-daemon" to figure out how to fix the problem
* qt/qdbusinterface_p.h:
* qt/qdbusinterface.cpp: Use the standard
org.freedesktop.DBus.Method.NoReply annotation for the "async"
calls instead of creating one for us.
* qt/qdbusintegrator.cpp:
* qt/qdbusmessage.cpp:
* qt/qdbusmessage_p.h:
* qt/qdbusmessage.h: Change the behaviour of automatic
reply-sending: now a reply is always sent, unless the caller
didn't request one or if the user slot has already sent one.
Robert McQueen [Fri, 17 Feb 2006 00:04:38 +0000 (00:04 +0000)]
2006-02-16 Robert McQueen <robot101@debian.org>
* configure.in: Patch from Debian packages by Sjoerd Simons
<sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
arguments so it's possible to build both bindings in the
same tree.
* qt/Makefile.am: Fix truncated value so that make dist works.
Robert McQueen [Thu, 16 Feb 2006 01:13:04 +0000 (01:13 +0000)]
2006-02-16 Robert McQueen <robot101@debian.org>
* acinclude.m4, configure.in: Patch from Brad Hards
<bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
improving quoting, re-ordering a few checks, and a few other
aesthetic tidy-ups.
Robert McQueen [Thu, 16 Feb 2006 00:43:41 +0000 (00:43 +0000)]
2006-02-16 Robert McQueen <robot101@debian.org>
* dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
assertion that the next element to read from the iter is fixed in
size. This is not the case when you are at the end of the iter,
because the next element type is INVALID.
* dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
a bogus assert which means that you may not initialise a 0-length
string unless you provide a non-NULL pointer. This prevented
you from marshalling messages containing zero-length arrays in
some cases.
* glib/dbus-gvalue.c (demarshal_collection_array): Another patch
from Rob to correct bogus asserts when trying to demarshal an
array and get_fixed_array got you 0 elements. Append nothing to
the GArray in this case.
* test/glib/test-dbus-glib.c: Add a test case for round-tripping
an empty array via the glib bindings. Without all of the above
patches, this new test fails.
Robert McQueen [Wed, 15 Feb 2006 23:45:50 +0000 (23:45 +0000)]
2006-02-16 Robert McQueen <robot101@debian.org>
* glib/dbus-gmain.c: Make the previous commit compile.
* python/_dbus.py, python/matchrules.py: Patch from Ole Andre
Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
specify sender_keyword="foo", path_keyword="bar" when adding
a signal listener, so that you can bind to signals generically
but still do something useful in your callback.
* python/dbus_bindings.pyx: Demarshal the byte type as unsigned
chars so that they're not cast to chars and made negative. Thanks
to Jakub Stachowski for reporting this and testing the fix.
Robert McQueen [Mon, 13 Feb 2006 22:30:11 +0000 (22:30 +0000)]
2006-02-13 Robert McQueen <robot101@debian.org>
* glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
missing piece of the glib bindings jigsaw puzzle. This modifies
the existing specialised types to have N type parameters (rather
than the current 1 or 2 for arrays and dictionaries respectively).
You can then use this to get a glib type to represent any arbitrary
D-Bus struct type using dbus_g_type_get_struct. The only
implementation of these types is with GValueArrays as before,
but it's now possible to store these in arrays, emit them in
signals, etc.
* bus/connection.c (bus_connections_expect_reply): Make
pending reply limit not common to all connections (Bug #5416)
Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
Robert McQueen [Fri, 27 Jan 2006 16:40:54 +0000 (16:40 +0000)]
2006-01-27 Robert McQueen <robot101@debian.org>
* glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
when generating the client-side methods, instead of overloading
CSymbol which broke everything horribly. My apologies.
Robert McQueen [Fri, 27 Jan 2006 15:40:36 +0000 (15:40 +0000)]
2006-01-27 Robert McQueen <robot101@debian.org>
* glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
by me and Rob Taylor to add a simple_free function to D-Bus map
and collection types, which allows those types which can be freed
with a GDestroyNotify (such as GHashTables and GArrays, but not
GPtrArrays) to be stored as the values in hashtables.
* test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
Patch by Rob Taylor to add nested dicts to the glib tests to check
the above code works, and appears not to leak when called repeatedly.