2017-04-26 Murray Cumming <murrayc@murrayc.com> 2.53.1.1 2017-04-26 Murray Cumming <murrayc@murrayc.com> tests/Makefile.am: Fix a typo to fix the build. 2017-04-23 Kjell Ahlstedt <kjellahlstedt@gmail.com> 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 <kjellahlstedt@gmail.com> Glib::SignalProxy::connect(): Improve the documentation Mention that the 'after' parameter can be important. Bug 126213 2017-04-19 Murray Cumming <murrayc@murrayc.com> Gio::DBus::InterfaceSkeleton: Change InterfaceSkeletonFlags to InterfaceSkeleton::Flags. 2017-04-19 Murray Cumming <murrayc@murrayc.com> Gio::DBus::Server: Change ServerFlags to Server::Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> NodeTree: Move enums into class, and use C++11 enum classes. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Binding: Change BindingFlags to Binding::Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Keyfile: Change KeyfileFlags to Keyfile::Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Module: Change ModuleFlags to Module::Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Checksum: Change ChecksumType to Checksum::Type. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Regex: Move enums inside class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Drive: Move enums into class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::TlsDatabase: Move enums into class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Resource: Move enums into class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::UnixSocketAddress: Change UnixSocketAddressType to UnixSocketAddress::Type. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Mount: Move enums into class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::TlsPassword: Change TlsPasswordFlags to TlsPassword::Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::IOStream: Change IOStreamSpliceFlags to IOStream::SpliceFlags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Settings: Change SettingsBindFlags to Settings::BindFlags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Resolver: Change ResolverRecordType to Resolver::RecordType. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Socket: Move enums into class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::File: Move some flags enums into the class. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::OutputStream: Move OutputStreamSpliceFlags to SpliceFlags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Credentials: Change CredentialsType to Credentials::Type. 2017-04-18 Murray Cumming <murrayc@murrayc.com> convert_gio.m4: Remove duplicate conversion. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Notification: Change NotificationPriority to Priority. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::FileMonitor: Change FileMonitorEvent to FileMonitor::Event. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::FileAttributeInfo: Change FileAttributeInfoFlags to Flags. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Emblem: Change EmblemOrigin to Emblem::Origin. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Converter: Put enums inside class. Change ConverterFlags and ConverterResult to Converter::Flags and Covnerter::Result. 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::AppInfo: Change AppInfoCreateFlags to CreateFlags 2017-04-18 Murray Cumming <murrayc@murrayc.com> Gio::Application: Change ApplicationFlags to Application::Flags. 2017-04-18 Kjell Ahlstedt <kjellahlstedt@gmail.com> 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 <kjellahlstedt@gmail.com> RefPtr: Minor documentation fix Gdk::Pixmap does not exist in gtkmm3 or gtkmm4. Don't mention it. 2017-04-18 Murray Cumming <murrayc@murrayc.com> 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 <kjellahlstedt@gmail.com> 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 <murrayc@murrayc.com> 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<RefPtr<T>> was for a T that had a get_base_type() (wrapping an underlying glib/gtk C type). 2017-04-15 Murray Cumming <murrayc@murrayc.com> 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 <kjellahlstedt@gmail.com> 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 <kjellahlstedt@gmail.com> Fix make check when _WRAP_ENUM generates enum class Bug 86864 2017-04-11 Kjell Ahlstedt <kjellahlstedt@gmail.com> Fix build when _WRAP_ENUM generates enum class Bug 86864 2017-04-11 Kjell Ahlstedt <kjellahlstedt@gmail.com> 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 <murrayc@murrayc.com> value_custom: Replace a template parameter with C++11 type traits. 2017-04-09 Murray Cumming <murrayc@murrayc.com> 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<RefPtr> specialization assuming that the RefPtr holds a Glib::ObjectBase-derived typed. 2017-04-09 Murray Cumming <murrayc@murrayc.com> tests: glibmm_value: Test RefPtr-to-ObjectBase. 2017-04-09 Murray Cumming <murrayc@murrayc.com> tests: Split object_move and objectbase_move tests. This allows further reuse of the DerivedObject and DerivedObjectBase test classes. 2017-04-07 Murray Cumming <murrayc@murrayc.com> tests: glibmm_value: Actually test set/get(). 2017-04-07 Murray Cumming <murrayc@murrayc.com> tests: glibmm_value: Actually call the test function. 2017-04-07 Murray Cumming <murrayc@murrayc.com> tests: glibmm_value: Move code to main.cc Which was previously almost empty. 2017-04-07 Murray Cumming <murrayc@murrayc.com> 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 <murrayc@murrayc.com> Use std::dynamic_pointer_cast<>(). Instead of Glib::RefPtr<>::cast_dynamic(). 2017-04-07 Marcin Kolny <marcin.kolny@gmail.com> glibmm_weakref: fix get() 2017-04-07 Murray Cumming <murrayc@murrayc.com> glibmm_weakref: Don't try to use moved-from RefPtrs. 2017-04-07 Murray Cumming <murrayc@murrayc.com> 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 <fanchunwei@src.gnome.org> 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 <murrayc@murrayc.com> Add and use make_refptr_for_instance(). This will make it easier to change the underlying RefPtr type. 2017-04-06 Murray Cumming <murrayc@murrayc.com> 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 <murrayc@murrayc.com> C++11: ConstructParams: =delete the operator=, instead of making it private. 2017-04-05 Murray Cumming <murrayc@murrayc.com> 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 <murrayc@murrayc.com> 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 <murrayc@murrayc.com> 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 <murrayc@murrayc.com> 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 <murrayc@murrayc.com> 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 <murrayc@murrayc.com> NEWS for 2.53.1 I forgot to update this before tagging the release.