Commit Graph

91 Commits

Author SHA1 Message Date
Ryan Lortie
fe6dad271b GSettings: remove key length restrictions
The key length now stands effectively unlimited at 1024 characters.

https://bugzilla.gnome.org/show_bug.cgi?id=654536
2011-07-19 16:12:30 +02:00
Ryan Lortie
58c247e51b GVariant: add g_variant_take_ref()
This function implements the following logic:

  if (g_variant_is_floating (value))
    g_variant_ref_sink (value);

which is used for consuming the return value of callbacks that may or
may not return floating references.

This patch also replaces a few instances of the above code with the new
function (GSettings, GDBus) and lifts a long-standing restriction on the
use of floating values as the return value for signal handlers by
improving g_value_take_variant().

https://bugzilla.gnome.org/show_bug.cgi?id=627974
2011-07-12 19:44:21 +02:00
Colin Walters
b74e2a720a Stop using glib-genmarshal at build time
To help cross compilation, don't use glib-genmarshal in our
build.  This is easy now that we have g_cclosure_marshal_generic().

In gobject/, add gmarshal.[ch] to git (making the existing entry
points stubs).

In gio/, simply switch to using g_cclosure_marshal_generic().

https://bugzilla.gnome.org/show_bug.cgi?id=652168
2011-06-20 17:24:07 -04:00
Ryan Lortie
c2a2350cc1 GSettings: fix example in the docs 2011-05-10 15:25:54 +02:00
Dan Winship
e56498ee0b Fix usage of _GNU_SOURCE
_GNU_SOURCE must be defined before including any other (system)
header, so defining it in glib-unix.h (and hoping no one has included
anything else before that) is wrong. And the "#define _USE_GNU"
workaround for this problem in gnetworkingprivate.h is even wronger
(and still prone to failure anyway due to single-include guards).

Fix this by defining _GNU_SOURCE in config.h when building against
glibc. In theory this is bad because new releases of glibc may include
symbols that conflict with glib symbols, which could then cause
compile failures. However, most people only see new releases of glibc
when they upgrade their distro, at which point they also generally get
new releases of gcc, which have new warnings/errors to clean up
anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=649201
2011-05-03 07:07:41 -04:00
Matthias Clasen
a3722d0408 Slight docs rewording
Proposed by Thomas Andersen,
https://bugzilla.gnome.org/show_bug.cgi?id=647700
2011-04-14 20:41:54 -04:00
Matthias Clasen
c1a7599568 Fix a typo in the GSettings docs
Pointed out by Thomas Andersen
https://bugzilla.gnome.org/show_bug.cgi?id=647600
2011-04-13 00:39:01 -04:00
Ryan Lortie
23818d1e61 GSettings: remove more asserts
Same logic as the last commit on this topic, applied to the other
functions too.
2011-04-08 09:15:19 -04:00
Ryan Lortie
4ece333afe Don't assert on backend == settings->priv->backend
They could be different if a notification is queued for delivery and
someone calls g_settings_delay().

Bug #646843.
2011-04-07 21:25:01 -04:00
Ryan Lortie
49fa69e05e Add 'uint' convenience functions for GSettings
Without getting into a debate about the reasons why you may or may not
want to use unsigned integers, it's sufficient to note that people have
been using them and requesting this functionality.

Bug #641755.
2011-03-31 12:47:03 +05:30
Matthias Clasen
098aa5639c Document which files glib-compile-schemas looks at
Otherwise, your vendor override files are silently ignored...
2011-03-15 11:30:38 -04:00
Colin Walters
4196dfbc4a gsettings: Minor typo in previous commit 2011-02-10 23:42:34 -05:00
Ryan Lortie
0f8d1933ad GSettings: add paragraph with performance notes
summary: reads are very fast.  writes are fast for you, but expensive
for the system, so don't do them except in response to explicit user
action.
2011-02-09 11:55:35 -05:00
Ray Strode
dc8b03027d gsettings: Update documentation on schema naming convention
The existing docs are a bit inconsistent in that they say to follow
the dbus convention, but then give an example that doesn't.

This commit changes things to be how Ryan says they should be.
2011-01-17 17:31:14 -05:00
Matthias Clasen
a57c4c9066 GSettings: Fix a copy-paste error
https://bugzilla.gnome.org/show_bug.cgi?id=639084
2011-01-09 16:43:28 -05:00
Pavel Holejsovsky
f85909fb65 Add and update GI annotations in 'Settings'
'Settings' GIO group contains GSettings and GSettingsBackend.
2011-01-07 15:05:55 +01:00
Matthias Clasen
bc4e1fc622 Add a delay-apply property to GSettings
Bug 637147, patch by Matt Barnes.
2010-12-20 09:16:05 -05:00
Pavel Holejsovsky
f33ccd4b41 [gi] Fix GObject.Object annotations. 2010-12-16 21:06:51 +01:00
John (J5) Palmieri
6f215e477d [gi] add annotations for methods which take a gpointer which are really GObjects
* bindings need to know how to marshal the pointer otherwise they send in
  the raw wrapped pointer causing crashes
2010-12-16 13:48:31 -05:00
Matthew Barnes
9fe7fd9120 Bug 636100 - Can't read GSettings:backend property
The PROP_BACKEND case was missing from the switch statement in
g_settings_get_property().
2010-11-30 18:21:10 -06:00
Matthias Clasen
eed36d38d1 Various doc tweaks 2010-11-28 23:55:43 -05:00
Christian Persch
1797970720 Typo fix 2010-11-27 13:10:48 +01:00
Dan Winship
791d91a957 fix make check 2010-11-07 12:56:08 -05:00
Matthias Clasen
57b4b7099f Fix markup 2010-11-05 14:50:01 -04:00
Matthias Clasen
67c03fee2a Describe enum and flags types a bit 2010-11-05 14:28:44 -04:00
Matthias Clasen
bc793255bc Report more useful errors from g_settings_set_value 2010-11-05 09:31:36 -04:00
Ryan Lortie
e81d856159 GSettings: add g_settings_range_check() API
Checks if a given value is within the correct range for a key.
2010-10-04 03:33:06 -04:00
Ryan Lortie
d6d76783ae Bug 631263 - GSettings needs range/choice APIs
Add g_settings_get_range() to describe the possible values that may be
provided to g_settings_set_value() without causing an error.

Add a test case.
2010-10-04 02:58:46 -04:00
Ryan Lortie
c84441fbb3 GSettings big endian tweaks
GSettings relies on parts of the schema infromation remaining
unbyteswapped (the strinfo database, for example) while requiring other
parts to be in native order (the default value, constraints, etc.).

Lift the byteswapping into a place where we can do it selectively.
2010-10-03 23:04:00 -04:00
Ryan Lortie
ed9db23f9a GSettings: implement .property_get('path')
This was unimplemented in g_settings_get_property(), leading to a failed
'g_assert_not_reached()'.
2010-10-03 01:53:09 -04:00
Colin Walters
755c2dad72 introspection: Fix one annotation syntax 2010-09-29 10:38:59 -04:00
Johan Dahlin
30132c44c1 Add a lot of missing annotations 2010-09-24 18:24:41 -03:00
Johan Dahlin
835f9cb310 [introspection] Move over annotations
Move all the annotations over from gobject-introspection.

They will not be used directly by the introspection scanner for now,
instead they will be extracted by a script and updated manually
until introspection is properly integrated into the glib build
2010-09-24 15:52:38 -03:00
Ryan Lortie
681a72ea99 GSettings: no writability->value change assumption
GSettings internally assumed that a change in key writability implied a
change in value.  That may be true for some backends.  Let those
backends deal with the situation for themselves.
2010-09-12 13:37:04 -04:00
Ryan Lortie
77e3badcf3 split GSettings.list_items => list_{children,keys}
This is an incompatible public API/ABI change.
2010-09-09 16:42:55 -04:00
Ryan Lortie
7b4cbbb7b2 Create GSettingsListenerVTable
...instead of passing a whole whack of function pointers around

This is an internal API.
2010-09-09 16:42:55 -04:00
Matthias Clasen
ea8a963936 Document vendor override files
Features without documentation, tsk tsk.
2010-08-13 21:23:22 -04:00
Ryan Lortie
ca3b7b75bf GSettings: add G_SETTINGS_BIND_INVERT_BOOLEAN flag
When binding a boolean setting to a boolean property, invert the values.
This avoids the requirement for writing a pair of mapping functions for
this extremely common case.

Add a test.

https://bugzilla.gnome.org/show_bug.cgi?id=625833
2010-08-03 02:09:10 -04:00
Ryan Lortie
aed440815e GSettings: add g_settings_reset()
Resets a key to its default value.
2010-07-22 17:50:05 -04:00
Ryan Lortie
5344c22810 gio/ docs fixup 2010-07-12 18:30:14 -04:00
Matthias Clasen
41f4aba2d2 Chain up in g_settings_finalize
Requested in bug 623954
2010-07-10 17:12:31 -04:00
Matthias Clasen
607fec50e6 xinclude the dtd
Keeping two copies in sync manually gets tiresome.
2010-07-08 14:38:55 -04:00
Ryan Lortie
5b946e0504 gio/: fully remove gioalias hacks 2010-07-07 19:53:22 -04:00
Ryan Lortie
6ae4d31e75 trivial GSettings docs fix 2010-07-07 10:46:13 -04:00
Matthias Clasen
05a865344b Fix the get_property implementation for GSettings::schema 2010-07-05 23:13:17 -04:00
Ryan Lortie
5383c7110f Bug 622124 - implement flags for GSettings
Add a <flags> tag to the schema file format and a flags='' attribute to
go along with.  Add some extra test cases for those.

Add new g_settings_{get,set}_flags() calls and support binding to
GParamSpecFlags properties.  Add test cases.
2010-07-01 19:06:02 -04:00
Ryan Lortie
137ae2413c g_settings_list_keys() -> _list_items()
This function returns children as well.
2010-06-30 10:02:45 -04:00
Ryan Lortie
168cfc5922 Bug 622127 - GSettings extended key validation
First shot at attempting to implement this in a reasonable way.  See
the bug for more information about why this is needed.
2010-06-28 10:20:50 -04:00
Ryan Lortie
7cdc592ae4 Bug 622128 - retry with default for failed mapping
Hold the GSettingsKeyInfo as part of the binding structure to save work
on each get/set.  Use our copy of this structure to call the internal
get/set APIs.  Give more descriptive error messages in the case of
invalid data on sets and retry using the translated default then schema
default value in case of failure to map on reads.
2010-06-25 10:56:41 -04:00
Ryan Lortie
de0464cf89 Tweak GSettings key/schema listing APIs 2010-06-24 12:25:48 -04:00