2022-02-11 Kjell Ahlstedt 3.2.0 2022-02-11 Kjell Ahlstedt meson.build: Specify 'check' option in run_command() The default value will be changed in future Meson releases. Don't use deprecated python3.path() and execute(..., gui_app: ...). 2022-02-11 Kjell Ahlstedt docs/docs/reference/Doxyfile.in: Remove obsolete entry 2022-01-31 Kjell Ahlstedt tools/tutorial-custom-cmd.py: Add comment about used stylesheet 2022-01-09 Kjell Ahlstedt CI: Install docbook-xsl where documentation is built If docbook-xsl is installed, the xsltproc command reads stylesheets from local files instead of from http://docbook.sourceforge.net. Faster and safer. Reading from docbook.sourceforge.net sometimes fails. Remove test with g++-7. 2021-12-29 Kjell Ahlstedt docs: Fix links to sigc::slot and sigc::signal Doxygen creates links to sigc::slot and sigc::signal only if template parameters are included in the documentation. sigc::slot, sigc::signal. 2021-12-26 Kjell Ahlstedt ptr_fun(), mem_fun() docs: Remove left-overs from sigc++-2.0 Some documentation of template parameters described sigc++-2.0 rather than sigc++-3.0. 2021-12-26 Kjell Ahlstedt Reformat to suit clang-format-12 2021-12-26 Kjell Ahlstedt CI: Use clang-format-12 and call clang-format directly without using autogen.sh + make. 2021-12-23 Kjell Ahlstedt Second attempt to suit clang-format 10 Irritating that different versions of clang-format don't agree on what's an acceptable format, and that clang-format 10 is not easily installable on Ubuntu 21.10. 2021-12-23 Kjell Ahlstedt Format source code to suit clang-format * sigc++/functors/mem_fun.h: * sigc++/functors/ptr_fun.h: * tests/test_rvalue_ref.cc: Reformated with clang-format 13, but CI uses clang-format 10. Also add #include where std::forward was added. Doesn't seem to be necessary with g++ or clang++. Mostly a precaution. 2021-12-23 Slava Andrejev Add missing perfect forwarding in mem_functor and pointer_functor This is a missed addition to the commit that allowed rvalue references in slot parameters. 2021-12-23 Slava Andrejev Add missing perfect forwarding in bound_mem_functor::operator() This is a missed addition to the commit that allowed rvalue references in slot parameters. 2021-12-19 Kjell Ahlstedt CMakeLists.txt: Update sigc++ version to 3.0.7 Should have been done when configure.ac and meson.build were updated. 2021-11-09 Chun-wei Fan NMake Makefiles: Support building with VS2022 Make the VS2019 builds distinct from VS2022 builds. 2021-09-27 Kjell Ahlstedt docs/docs/manual, Meson config: Check if xmllint can be used 2021-09-24 Kjell Ahlstedt CI, Meson build: Install packages for validating XML file libxml2-utils and docbook5-xml are necessary in order to validate the XML file in docs/docs/manual/. 2021-09-19 Kjell Ahlstedt docs/docs/manual: Upgrade from DocBook 4.1 to DocBook 5.0 2021-08-22 Kjell Ahlstedt Require meson >= 0.54.0 2021-08-17 Kjell Ahlstedt meson.build: Check if Perl is required for building documentation New versions of mm-common use the Python scripts doc_postprocess.py and doc_install.py instead of the Perl scripts doc-postprocess.pl and doc-install.pl when documentation is built. 2021-07-04 Kjell Ahlstedt docs: Remove some obsolete files Remove docs/docs/manual/README, docs/docs/reference/README and docs/Makefile. 2021-07-04 Kjell Ahlstedt docs/docs/manual: Add some formatting when html files are generated making it slightly more similar to gtkmm-documentation and libxml++. In Autotools builds, don't distribute the empty manual/README file. 2021-07-04 Kjell Ahlstedt docs/docs/manual/libsigc_manual.xml: Add id on elements 2021-06-02 Kjell Ahlstedt test_rvalue_ref: Small fixes * tests/.gitignore: * tests/CMakeLists.txt: * tests/Makefile.am: Add test_rvalue_ref. * tests/test_rvalue_ref.cc: Avoid [-Werror=unused-parameter] when building with warnings=fatal. Some files have been reformated with clang-format in order to make the CI tests happy. Reformated with clang-format 12, but CI uses clang-format 10. 2021-06-02 Kjell Ahlstedt Revert "test_rvalue_ref: Small fixes" This reverts commit 01652fdbc9f6fc2e72b217c9de8c89c93f95ba7c. 2021-06-02 Kjell Ahlstedt test_rvalue_ref: Small fixes * tests/.gitignore: * tests/CMakeLists.txt: * tests/Makefile.am: Add test_rvalue_ref. * tests/test_rvalue_ref.cc: Avoid [-Werror=unused-parameter] when building with warnings=fatal. Some files have also been reformated with clang-format in order to make the CI tests happy. Reformated with clang-format 12, but CI uses clang-format 10. 2021-06-02 Slava Andrejev Allow slots with rvalue reference parameters In code based on Glibmm it's quite common to convert a Glib C structure to a Glib::Object's descendant before passing it as a parameter to a slot. If the slot is not supposed to modify the object, then everything is fine, we can declare the parameter as a const reference and the temporary object will be accurately dealt with by the compiler. However, if the Glib based object is getting modified, the only way to pass it to the slot is to declare it a Glib::RefPtr shared pointer. This creates a lot of unnecessary churn of memory allocations for a simple deal of calling a signal. However, C++ has a specific mean for this particular semantic of passing a temporary object: rvalue reference. For example, somewhere inside Gtkmm might be a declaration: _WRAP_SIGNAL(void sun_rose(const Glib::RefPtr &new_sun), "sun-rose") Instead its more semantically correct to write: _WRAP_SIGNAL(void sun_rose(Gtk::Sun &&new_sun), "sun-rose") And later somewhere in your code: world->signal_sun_rose().connect([&](auto &&new_sun) { new_sun.shine(); }); This commit makes a couple of simple modifications that allow declaring signals and slots with rvalue reference parameter.