2019-09-18 Kjell Ahlstedt 2.62.0 2019-09-18 Kjell Ahlstedt Fix comments in tools/test_scripts/testheaders.sh 2019-09-17 Kjell Ahlstedt Glib::Checksum, DateTime, TimeZone: Add Glib::Value<> specializations With Glib::Value<> specializations these classes can be used in Glib::Value<> and _WRAP_PROPERTY. See https://mail.gnome.org/archives/gtkmm-list/2019-April/msg00012.html 2019-09-17 Kjell Ahlstedt Deprecate Glib::TimeVal GTimeVal has been deprecated in glib. * examples/dbus/server_without_bus.cc: * examples/dbus/session_bus_service.cc: Replace TimeVal by DateTime. * gio/src/fileinfo.[ccg|hg]: Deprecate [set_]modification_time(). Add set/get_modification_date_time(). * glib/glibmm/timeval.[cc|h]: Deprecate most of TimeVal. * glib/src/date.[ccg|hg]: Deprecate set_time(const GTimeVal& timeval). * glib/src/datetime.[ccg|hg]: Deprecate create_now_local/utc(const TimeVal& tv) and to_timeval(). Add create_from_iso8601(), format_iso8601() and operator bool(). * tools/m4/convert_glib.m4: Add a conversion for DateTime. 2019-09-17 Kjell Ahlstedt Glib::Property: Update for compatibility with Gtk::Builder When an object is created by GtkBuilder, the GObject-derived C object is created and its properties set before there is a C++ wrapper to store the property values in. Glib::custom_set_property_callback() stores property values in a data structure reached via a GQuark in the object. PropertyBase::lookup_property() copies those property values to the PropertyBase objects when the C++ wrapper is created. 2019-09-16 Kjell Ahlstedt Gio::SocketControlMessage: Add add_deserialize_func() The deserialize vfunc in GLib is a class virtual function (not associated with an instance). Such functions don't exist in C++. But it must be wrapped in one way or another. g_socket_control_message_deserialize() assumes that all subclasses of GSocketControlMessage override this vfunc. A user-program can crash, if any subclass does not. This patch adds API by adding code from the master branch. Fixes #52 2019-09-16 Kjell Ahlstedt Gio::Application: Add add_option_group() Fixes #46 2019-09-16 Daniel Boles Property: Add const get_proxy() returning ReadOnly We could only get_proxy() if non-const and with a read/write Proxy. This resolves that so that we can get a read-only proxy from a const Property (without having to construct manually from the instance/name as before). Close https://gitlab.gnome.org/GNOME/glibmm/issues/44 2019-09-16 Kjell Ahlstedt Glib::Property_ReadOnly: get_proxy() can be const Compare commit bfe785f44dffd7fcd4457f96b7b927092d08ee55 by Daniel Boles. 2019-09-16 Kjell Ahlstedt Add Gio::DBus::ObjectManager* Add Gio::DBus::ObjectManager, Gio::DBus::ObjectManagerClient and Gio::DBus::ObjectManagerServer. Fixes #43 2019-09-16 Kjell Ahlstedt Add Gio::DBus::ObjectProxy and Gio::DBus::ObjectSkeleton In preparation for adding Gio::DBus::ObjectManager, ObjectManagerClient and ObjectManagerServer. See issue #43. 2019-09-15 Krzysztof Piecuch ustring: Add make_valid() make_valid() replaces all non-UTF8 characters with replacement character (U+FFFD). Allows manipulating with ustring after you find out by ustring::validate() that it's not an UTF-8 string and you need to rescue it somehow. This wraps g_utf8_make_valid(). https://bugzilla.gnome.org/show_bug.cgi?id=780075 See also issue #40 This commit includes part of MR !11 by Martin Ejdestig , fixing a memory leak in the original make_valid(). 2019-09-15 Daniel Boles ustring: Add sprintf(), wrapping g_strdup_printf() This is a manually squashed version of several commits in the master branch. Squashed by Kjell Ahlstedt. Fixes #21 2019-09-15 Kjell Ahlstedt Glib, Gio: Regenerate docs.xml and .defs files 2019-09-02 Kjell Ahlstedt Gio::SocketControlMessage: Add deserialize_vfunc_callback() The deserialize vfunc in GLib is a class virtual function (not associated with an instance). Such functions don't exist in C++. But it must be wrapped in one way or another. g_socket_control_message_deserialize() assumes that all subclasses of GSocketControlMessage override this vfunc. A user-program can crash, if any subclass does not. This patch that does not add API. A more complete fix can be committed, when API can be added. Fixes #52 2019-08-12 Kjell Ahlstedt Disable warnings from deprecated GTimeVal and GTime GTimeVal and GTime have been deprecated in glib. They can't be deprecated in the stable glibmm-2-60 branch now. This patch makes it possible to build glibmm-2.60.x against the newest glib. This affects Glib::TimeVal, Glib::Date, Glib::DateTime and Gio::FileInfo. 2019-07-22 Kjell Ahlstedt Revert "Glib, Gio: Regenerate docs.xml and .defs files" This reverts commit 3fcc2bdeb4a8df2172d6cc453b9d07c6cc9eda0d. Changes in glib 2.61 should not have been added to glibmm 2.60 2019-07-21 Kjell Ahlstedt Gio: Fix ownership of some lists and arrays * gio/src/drive.hg: get_volumes(): Glib::OWNERSHIP_SHALLOW -> DEEP * gio/src/mountoperation.hg: signal_ask_question(): DEEP -> NONE A signal handler shall not deallocate its input data. * gio/src/themedicon.hg: get_names(): DEEP -> NONE * gio/src/tlsdatabase.[ccg|hg]: lookup_certificates_issued_by[_finish]_vfunc(): g_list_copy() -> g_list_copy_deep() * gio/src/volumemonitor.hg: get_connected_drives(), get_volumes(), get_mounts(): SHALLOW -> DEEP 2019-07-21 Kjell Ahlstedt Glib, Gio: Regenerate docs.xml and .defs files 2019-07-17 Kjell Ahlstedt Gio::DBus::Object::get_interface_vfunc(): Don't add global symbol The previous fix of Gio::DBus::Object vfuncs added a Glib::unwrap_copy() overload, which became a global symbol in the load module. Replace it with a local name in an anonymous namespace. 2019-07-16 Kjell Ahlstedt Gio::DBus::Object: Fix refcounts in some vfuncs Gio::DBus::Object::get_interface_vfunc() and get_interfaces_vfunc() must add a reference to the returned DBus interfaces. The caller shall unref them. g_dbus_object_get_interface() and g_dbus_object_get_interfaces() are marked (transfer full). 2019-07-12 Kjell Ahlstedt Glib::ustring docs: ustring can't always replace std::string Fixes #47 2019-07-09 Kjell Ahlstedt Glib::init(), Gio::init(): Improve the documentation See issue #49 2019-07-08 Kjell Ahlstedt Glib::Variant>::create(): Fix memory leak Fixes #48 2019-07-08 Kjell Ahlstedt gmmproc: Update enum.pl and h2def.py for new glib deprecation macros * tools/enum.pl: Don't replace MY_ENUMERATOR = '}' with MY_ENUMERATOR = ']'. Remove *_DEPRECATED_TYPE_IN_* and *_DEPRECATED_ENUMERATOR_IN_* when enum definitions are parsed. * tools/defs_gen/h2def.py: When parsing function declarations: Remove G_GNUC_BEGIN_IGNORE_DEPRECATIONS, G_GNUC_END_IGNORE_DEPRECATIONS and G_DECLARE_INTERFACE(*). Update the removals of *_DEPRECATED* and *_AVAILABLE_IN* so the new *_DEPRECATED_TYPE* and friends won't affect the result. 2019-06-30 Kjell Ahlstedt Properties example: Print the property values 2019-06-30 Kjell Ahlstedt Glib::Object, Thread: Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS * glib/glibmm/object.[h|cc]: GParameter is really deprecated (not just mentioned in a comment). Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to avoid warnings. * glib/src/thread.hg: GLib ignores G_DISABLE_DEPRECATED. Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to avoid warnings. 2019-06-12 Daniel Boles Property: Clarify “manipulate” → read and/or write 2019-04-26 Kjell Ahlstedt Glib::Checksum, DateTime, TimeZone: Add TODO comments These classes shall have Glib::Value specializations, when we can add API. In the master branch, where API and ABI can be changed, they have been wrapped as _CLASS_BOXEDTYPE. 2019-04-18 Dainis Jonitis Fix callback races in glibmm when source is destructed It is normal situation when glib main loop iterates sources on one thread where it checks whether source is still active and its callback functions can be called and glibmm Source being destroyed on other thread. Glibmm should check once again that callback_data and callback_funcs fields are still valid and GSource was not marked as inactive while its callback handlers are called. Fixes #41 2019-04-18 Martin Ejdestig Use convert_return_gchar_ptr_to_*() in a couple of ustring methods First attempt at fixing memory leak in make_valid() (see previous commit) used make_unique_ptr_gfree() directly because of looking at these methods. Better to use the helper function. This actually fixes undefined behavior for normalize() since g_utf8_normalize() is documented to return NULL if string is not a valid UTF-8 string. The constructor for std::string, which ustring uses for storage, that takes a pointer is documented to have undefined behavior if pointer is NULL. The utility function checks for NULL and uses the default constructor in that case. (Have not looked at implementation of Glib functions, and it may be that all std::string implementations Glibmm is used with handles this case, but good to avoid undefined behavior regardless, I think.) 2019-03-19 Kjell Ahlstedt 2.60.0 2019-03-19 Kjell Ahlstedt giomm.h: Add missing #include directives 2019-03-19 Kjell Ahlstedt Gio::NetworkManager: Add class documentation 2019-03-18 Kjell Ahlstedt