2018-10-31 Kjell Ahlstedt 2.59.1 2018-10-31 Kjell Ahlstedt Change the ABI to glibmm-2.60 So we can use the 2.58 version numbers for stable releases in the glibmm-2.4 ABI series. We don't need to release a stable ABI-parallel glibmm until we need to release gtkmm 4.0, and that won't happen until GTK+ 4.0.0 happens, and we don't know when that might be. We've done similar ABI name changes several times before. 2018-10-31 Kjell Ahlstedt Glib, Gio: Regenerate .defs and docs.xml files and update gio_docs_override.xml. 2018-10-31 Kjell Ahlstedt Add tools/gen_scripts/generate_all.sh 2018-10-26 Kjell Ahlstedt tools/test_scripts/testheaders.sh: Require C++17 and fix a directory test. 2018-10-24 Kjell Ahlstedt tests/glibmm_ustring_format: Fix non-English langs >>> when I tested it, the glibmm_ustring_format test failed. It failed because my chosen language in Ubuntu is Swedish. The expected "42.00" became "42,00". The decimal delimiter is a comma in most European languages. English is an exception. >>> https://gitlab.gnome.org/GNOME/glibmm/merge_requests/4#note_352960 2018-10-14 Daniel Boles ustring: Remove useless alternative Stringify ctor This can never be called, because we explicitly specialise Stringify for const char*, so that specialisation will always be used instead of this. 2018-10-14 Daniel Boles ustring: Avoid un(necessary|clear) ptr @ Stringify Rather than storing a pointer in the temporary Stringify objects, we can instead store a reference, which is clearer about it being non-optional and makes for nicer syntax. Then we return that and use operator& when forwarding it to compose_private() in the std::initializer_list, since containers can't hold references, so we do need a pointer there. Unless: We could perhaps go a step further and make that an initializer_list of std::reference_wrapper, avoiding pointers altogether while probably not incurring overhead as it is a simple wrapper, but that's one for later. 2018-10-14 Daniel Boles ustring: Make 1 Stringify member const like others This was the only specialisation of Stringify in which the member string_ was not already const. Make it so. 2018-10-14 Daniel Boles tests/glibmm_ustring_format: Test output, iomanips We only tested here whether single arguments got formatted without throwing exceptions, but not whether they got formatted into the expected output or combinations of multiple types and I/O manipulators. This adds a test for that, so we at least have something to ensure that things are working correctly, e.g. if refactoring format() as I just did 2018-10-14 Daniel Boles ustring: Use C++17 fold expr. instead of recursion Instead of having to manually recurse in order to stream every element in the parameter pack, use the new fold expressions, by streaming a binary left fold of operator, - to do the same thing in far fewer lines. 2018-10-07 Daniel Boles AsyncResult: Fix grammar error, ify enumerator This was not a grammar error before C++ification! But let’s fix it anyway, and give the enumeration name some nice formatting as well. 2018-09-10 Kjell Ahlstedt Update .gitignore 2018-09-10 Chun-wei Fan Fix reference documentation generation * docs/Makefile.am: Include the filelist.gmake.am files if applicable * glib/glibmm/filelist.gmake.am: * gio/src/filelist.gmake.am: * gio/giomm/filelist.gmake.am: Include filelist.am relative from $(top_srcdir) as we are including the filelist.gmake.am's from docs/ as well. 2018-09-07 Chun-wei Fan build: Remove Visual Studio 2017 projects This removes the Visual Studio projects as they have been replaced with the NMake Makefiles. 2018-09-07 Chun-wei Fan build: Add NMake Makefiles This adds a set of NMake Makefiles which can be used to build glibmm with Visual Studio 2017 and later. This will supersede the Visual Studio 2017 project files, as this approach will reduce the likelihood of the Visual Studio build files becoming out-of-date as this also reads from the various filelist.am's under glib/ and gio/. The existing gendef, and generated [glib|gio]mmconfig.h and generated [glib|gio]mm.rc will continue to be used. The NMake Makefiles will now be distributed instead of the Visual Studio project files from this point on. The Visual Studio project files will be removed in the next commit 2018-09-07 Chun-wei Fan glibmm, giomm: Split out GNU automake items from filelist.am This enables the filelist.am files to be shared with the NMake Makefiles, so that any addition/removal to the sources can be reflected in the Visual Studio build files as well. 2018-09-07 Chun-wei Fan build: Rename MSVC_Net2017 to MSVC_NMake This prepares for the transition to using NMake Makefiles for building glibmm, rather than the Visual Studio project files, to ease future maintenance. 2018-08-31 Kjell Ahlstedt Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when a single reinterpret_cast is used for conversion between different types of function pointers. The previous fix with a union in Glib::bitwise_equivalent_cast<>() is not standard C++. Rename the function to Glib::function_pointer_cast<>(), and use two reinterpret_casts as recommended in gcc's documentation. * glib/src/optiongroup.ccg: Use a reinterpret_cast to convert from a function pointer to void*. That's possible now. It's "conditionally supported", starting with C++11. See https://github.com/libsigcplusplus/libsigcplusplus/issues/8 2018-07-18 Kjell Ahlstedt configure.ac: Require glib-2.0 >= 2.55.1 and update the bug report address in AC_INIT. Fixes #29 2018-07-17 Kjell Ahlstedt Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion between different types of function pointers. Avoid that by adding Glib::bitwise_equivalent_cast<>() with a union with members of the two types of function pointers. * glib/src/optiongroup.ccg: Use Glib::bitwise_equivalent_cast<>() to convert from a function pointer to void*. See https://github.com/libsigcplusplus/libsigcplusplus/issues/1 2018-07-17 Kjell Ahlstedt Revert "Avoid compiler warnings from function pointer conversions" This reverts commit fa85bd1161d5d914095d1a3f9b620da294c9af79. This can be done in a better way by keeping the union in a template function. 2018-07-13 Kjell Ahlstedt Avoid compiler warnings from function pointer conversions gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion between different types of function pointers. Avoid that by instead using a union with members of the two types of function pointers. See https://github.com/libsigcplusplus/libsigcplusplus/issues/1 2018-07-02 Kjell Ahlstedt Install giomm/slot_async.h Gio::SignalProxy_async_callback() is required in gtkmm. 2018-07-02 Kjell Ahlstedt convert_gio.m4: Add a conversion of GInputStream useful in other modules, e.g. gtkmm. 2018-07-02 Kjell Ahlstedt gmmproc, _WRAP_METHOD: Accept ":" in slot_callback parameter such as slot_callback Gio::SignalProxy_async_callback, useful in gtkmm. 2018-07-01 Daniel Boles SocketClient: Take copy in RefPtrs for signal args Without doing so, the C++ arguments take ownership of the C GObjects passed to the handler, so both go out of scope on exiting the handler. https://gitlab.gnome.org/GNOME/glibmm/issues/28 2018-05-24 Kjell Ahlstedt Glib::ExtraClassInit docs: Don't mention Gtk::WidgetCustomDraw Gtk::WidgetCustomDraw has been removed. Don't mention it in the class documentation of Glib::ExtraClassInit. 2018-05-20 Daniel Boles AsyncResult: Bin obsolete docs re: initing GThread As the GLib Threads documentation states: “Since version 2.32, the GLib threading system is automatically initialized at the start of your program, and all thread-creation functions and synchronization primitives are available right away.” 2018-04-26 Kjell Ahlstedt Use libsigc++-3.0.tag for libsigc++ documentation 2018-04-26 Clemens Lang ustring: Fix wchar conversion on macOS with libc++ libc++ internally represents std::wstrings in UCS-4 just like libstdc++, but does not set the __STDC_ISO_10646__ define. This caused the code to fall back to calling iconv with the WCHAR_T source character set, which does not correctly convert these strings and leads to errors, for example in inkscape on startup. See https://trac.macports.org/ticket/56214 for an instance of such a problem. Re-use the UCS4 to UTF8 conversion code when libc++ is detected, which solves this. Bug 795338 2018-04-26 Kjell Ahlstedt Update some @newin commands API which is new in the future ABI-breaking release is newin{2,58}, but this might change again in the future. glibmm-2.58 is still just a preliminary name of this ABI. Bug 789330 2018-04-22 Murray Cumming Revert "Try to disable -Wunused-function for the glibmm_interface_move test." This reverts commit 732df7d9cb709f6fd96099654fb83a00d99f26cf. This doesn't seem to be a problem any more. 2018-04-08 Murray Cumming Require C++17. Because libsigc++-3.0 now requires C++17. 2018-03-31 Kjell Ahlstedt Gio::DesktopAppInfo: Add get_locale_string() 2018-03-31 Kjell Ahlstedt Gio::Application: Add set_option_context_*() Add set_option_context_parameter_string(), set_option_context_summary(), set_option_context_description().