2017-04-26 Murray Cumming 2.53.1.1 2017-04-26 Murray Cumming tests/Makefile.am: Fix a typo to fix the build. 2017-04-23 Kjell Ahlstedt Glib::SignalProxy: Make a specialization for void signal handlers Make specializations of SignalProxy<> and SignalProxyDetailed<> for signal handlers that return void. The specializations have no connect_notify() method, and the 'after' parameter in the connect() method has a default value only in the specializations. Bug 126213 2017-04-20 Kjell Ahlstedt Glib::SignalProxy::connect(): Improve the documentation Mention that the 'after' parameter can be important. Bug 126213 2017-04-19 Murray Cumming Gio::DBus::InterfaceSkeleton: Change InterfaceSkeletonFlags to InterfaceSkeleton::Flags. 2017-04-19 Murray Cumming Gio::DBus::Server: Change ServerFlags to Server::Flags. 2017-04-18 Murray Cumming NodeTree: Move enums into class, and use C++11 enum classes. 2017-04-18 Murray Cumming Binding: Change BindingFlags to Binding::Flags. 2017-04-18 Murray Cumming Keyfile: Change KeyfileFlags to Keyfile::Flags. 2017-04-18 Murray Cumming Module: Change ModuleFlags to Module::Flags. 2017-04-18 Murray Cumming Checksum: Change ChecksumType to Checksum::Type. 2017-04-18 Murray Cumming Regex: Move enums inside class. 2017-04-18 Murray Cumming Gio::Drive: Move enums into class. 2017-04-18 Murray Cumming Gio::TlsDatabase: Move enums into class. 2017-04-18 Murray Cumming Resource: Move enums into class. 2017-04-18 Murray Cumming Gio::UnixSocketAddress: Change UnixSocketAddressType to UnixSocketAddress::Type. 2017-04-18 Murray Cumming Gio::Mount: Move enums into class. 2017-04-18 Murray Cumming Gio::TlsPassword: Change TlsPasswordFlags to TlsPassword::Flags. 2017-04-18 Murray Cumming Gio::IOStream: Change IOStreamSpliceFlags to IOStream::SpliceFlags. 2017-04-18 Murray Cumming Gio::Settings: Change SettingsBindFlags to Settings::BindFlags. 2017-04-18 Murray Cumming Gio::Resolver: Change ResolverRecordType to Resolver::RecordType. 2017-04-18 Murray Cumming Gio::Socket: Move enums into class. 2017-04-18 Murray Cumming Gio::File: Move some flags enums into the class. 2017-04-18 Murray Cumming Gio::OutputStream: Move OutputStreamSpliceFlags to SpliceFlags. 2017-04-18 Murray Cumming Gio::Credentials: Change CredentialsType to Credentials::Type. 2017-04-18 Murray Cumming convert_gio.m4: Remove duplicate conversion. 2017-04-18 Murray Cumming Gio::Notification: Change NotificationPriority to Priority. 2017-04-18 Murray Cumming Gio::FileMonitor: Change FileMonitorEvent to FileMonitor::Event. 2017-04-18 Murray Cumming Gio::FileAttributeInfo: Change FileAttributeInfoFlags to Flags. 2017-04-18 Murray Cumming Gio::Emblem: Change EmblemOrigin to Emblem::Origin. 2017-04-18 Murray Cumming Gio::Converter: Put enums inside class. Change ConverterFlags and ConverterResult to Converter::Flags and Covnerter::Result. 2017-04-18 Murray Cumming Gio::AppInfo: Change AppInfoCreateFlags to CreateFlags 2017-04-18 Murray Cumming Gio::Application: Change ApplicationFlags to Application::Flags. 2017-04-18 Kjell Ahlstedt gmmproc: New and improved _CONV_*_ENUM m4 macros * tools/m4/convert_base.m4: In _CONV_ENUM and _CONV_INCLASS_ENUM, add an optional argument, making it possible to define useful conversions when the C name of the enum is not the concatenation of C++ namespace + enum_name or namespace + class_name + enum_name. * tools/m4/convert_gio.m4: Add _CONV_GIO_ENUM, _CONV_GIO_DBUS_ENUM, _CONV_GIO_INCLASS_ENUM and _CONV_GIO_DBUS_INCLASS_ENUM. * tools/m4/convert_glib.m4: In _CONV_GLIB_ENUM and _CONV_GLIB_INCLASS_ENUM, add an optional argument like in convert_base.m4. 2017-04-18 Kjell Ahlstedt RefPtr: Minor documentation fix Gdk::Pixmap does not exist in gtkmm3 or gtkmm4. Don't mention it. 2017-04-18 Murray Cumming RefPtr: Improve the reference docs now that this is a std::shared_ptr. This should be simplified even more when we eventually remove, or at least stop using, the RefPtr alias, using std::shared_ptr<> in our API. 2017-04-17 Kjell Ahlstedt Glib, Gio: Remove obsolete substitutions in _WRAP_ENUM Some substitution arguments in _WRAP_ENUM (s#old#new#) have become unnecessary now that _WRAP_ENUM generates code with enum class. 2017-04-15 Murray Cumming Value: Only use RefPtr specialization for types that have get_base_type(). For instance, RefPtr to ObjectBase-derived types, or other types that try to have a similar API. Previously, this assumed that any Value> was for a T that had a get_base_type() (wrapping an underlying glib/gtk C type). 2017-04-15 Murray Cumming Variant: operator bool(): Simplify to avoid clang++ warnings. The odd code here was necessary when this returned void*, before C++11. 2017-04-14 Kjell Ahlstedt Gio: Remove enum ErrorEnum * gio/src/enums.hg: GIOErrorEnum was wrapped twice, with _WRAP_ENUM in gio/src/enums.hg, and with _WRAP_GERROR in gio/src/error.hg. Remove the wrapping with _WRAP_ENUM. Uses of Gio::ErrorEnum, if any, can be replaced by Gio::Error::Code. 2017-04-11 Kjell Ahlstedt Fix make check when _WRAP_ENUM generates enum class Bug 86864 2017-04-11 Kjell Ahlstedt Fix build when _WRAP_ENUM generates enum class Bug 86864 2017-04-11 Kjell Ahlstedt gmmproc, _WRAP_ENUM: Generate enum class; enums can be inside classes Two modifications of _WRAP_ENUM: 1. It is expanded to an enum class instead of a plain enum. It means that it can't be implicitly converted to an int, and that enumerator names are local to the enum. 2. It can be located in a class, with some restrictions. When located in a class, and a Value specialization shall be generated (NO_GTYPE is not specified) or it's a Flags type (i.e. bitwise operators shall be generated), then the following requirements must be met: 2.1. _WRAP_ENUM must be located in the public part of the class. 2.2. The class must contain a class macro (_CLASS_GENERIC, _CLASS_GOBJECT, _CLASS_GTKOBJECT, etc.) before _WRAP_ENUM. Two new elements can be included in docs_override.xml files: substitute_type_name and substitute_enumerator_name. They improve the translation of C names to C++ names in documentation. See examples in glibmm and in gtkmm. Bug 86864 2017-04-09 Murray Cumming value_custom: Replace a template parameter with C++11 type traits. 2017-04-09 Murray Cumming Value: Remove the CType alias. This should not be necessary. Anything that uses it could hopefully use auto instead. This avoids the problem of the Value specialization assuming that the RefPtr holds a Glib::ObjectBase-derived typed. 2017-04-09 Murray Cumming tests: glibmm_value: Test RefPtr-to-ObjectBase. 2017-04-09 Murray Cumming tests: Split object_move and objectbase_move tests. This allows further reuse of the DerivedObject and DerivedObjectBase test classes. 2017-04-07 Murray Cumming tests: glibmm_value: Actually test set/get(). 2017-04-07 Murray Cumming tests: glibmm_value: Actually call the test function. 2017-04-07 Murray Cumming tests: glibmm_value: Move code to main.cc Which was previously almost empty. 2017-04-07 Murray Cumming Remove Glib::WeakRef Now that RefPtr is really a std::shared_ptr<>, we should use std::weak_ref<> instead. Note that a std::weak_ptr<> tells you nothing about whether the underlying GObject is still alive, which Glib::RefPtr did. It just tells you whether our std::shared_ptr<> still holds a reference to it. That's why I removed one of the checks in tests/giomm_listmodel/main.cc. 2017-04-07 Murray Cumming Use std::dynamic_pointer_cast<>(). Instead of Glib::RefPtr<>::cast_dynamic(). 2017-04-07 Marcin Kolny glibmm_weakref: fix get() 2017-04-07 Murray Cumming glibmm_weakref: Don't try to use moved-from RefPtrs. 2017-04-07 Murray Cumming RefPtr: Make this an alias for shared_ptr<> instead. Specifying a Deleter in make_refptr_for_instance(). And changing RefPtr::cast_dynamic<>() to std::dynamic_pointer_cast<>(). The glibmm_refptr test then becomes rather silly, and should maybe just be removed. 2017-04-07 Chun-wei Fan Visual Studio builds: Update ABI version We are now using 2.54 as the ABI version, so update the Visual Studio projects to do likewise. 2017-04-06 Murray Cumming Add and use make_refptr_for_instance(). This will make it easier to change the underlying RefPtr type. 2017-04-06 Murray Cumming ConstructParams: Remove copy constructor. I doubt that this is really necessary with C++11. Please file a bug if this causes a real compilation problem. 2017-04-06 Murray Cumming C++11: ConstructParams: =delete the operator=, instead of making it private. 2017-04-05 Murray Cumming IOChannel: Avoid creating a RefPtr to this. By adding a private IOSource constructor (and create()), accessible via a friend declaration, that takes the raw GIOChannel. See https://bugzilla.gnome.org/show_bug.cgi?id=755037#c20 2017-04-05 Murray Cumming Socket: Avoid creating a RefPtr to this. By adding a private SocketSource constructor (and create()), accessible via a friend declaration, that takes the raw GSocket. See https://bugzilla.gnome.org/show_bug.cgi?id=755037#c20 2017-04-04 Murray Cumming C++11: Variant: Replace more throw(std::bad_cast) with noexcept(false). This is necessary for C++17 which completely removes dynamic exception specifications. See https://bugzilla.redhat.com/show_bug.cgi?id=1438766 2017-04-04 Murray Cumming Object: Use g_object_new_with_properties(). Instead of (deprecated) g_object_newv() and (deprecated) GParameter. This seems to work. It is meant to be the simplest possible change. I would like to translate this code properly to C++ now that I've noticed it. 2017-04-04 Murray Cumming C++11: Variant: Replace throw(std::bad_cast) with noexcept(false). This is necessary for C++17 which completely removes dynamic exception specifications. See https://bugzilla.redhat.com/show_bug.cgi?id=1438766 2017-03-30 Murray Cumming NEWS for 2.53.1 I forgot to update this before tagging the release.