git: 6880d50e132d - main - editors/calligra: switch to C++17 for upcoming poppler

From: Adriaan de Groot <adridg_at_FreeBSD.org>
Date: Fri, 21 Jan 2022 21:41:55 UTC
The branch main has been updated by adridg:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6880d50e132d02fea3d8272a7109ae85ae5a2419

commit 6880d50e132d02fea3d8272a7109ae85ae5a2419
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2022-01-17 18:33:00 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2022-01-21 21:41:06 +0000

    editors/calligra: switch to C++17 for upcoming poppler
    
    This is a fix-it-before-it-breaks commit. Upcoming poppler update
    requires C++17 in consumers, while Calligra was fixed on C++14.
    There is no upstream release for this.
    
    This is a mess: the upstream repo contains fixes, but they're
    mostly committed as "fix warnings" and many commits combine C++17-
    related fixes with other bits and pieces. As a result, there's
    some direct upstream patches now in files/ and a big glommed-
    together one put together from parts of other commits.
    
    PR:     260956
---
 editors/calligra/Makefile                          |    2 +-
 ...h-068cd9aec11052733e393976142516d2190e4564.diff |   46 +
 ...h-5e47d9cd114db9d97e28e31869919bba545a979d.diff |  127 ++
 editors/calligra/files/patch-CMakeLists.txt        |   26 +-
 editors/calligra/files/patch-cxx17.diff            | 1421 ++++++++++++++++++++
 5 files changed, 1616 insertions(+), 6 deletions(-)

diff --git a/editors/calligra/Makefile b/editors/calligra/Makefile
index 77b6f28e0be6..fa62d665b78a 100644
--- a/editors/calligra/Makefile
+++ b/editors/calligra/Makefile
@@ -36,7 +36,7 @@ LIB_DEPENDS=	libImath.so:math/Imath \
 BUILD_DEPENDS=	pstoedit:graphics/pstoedit
 RUN_DEPENDS=	pstoedit:graphics/pstoedit
 
-USES=		cmake cpe compiler:c++11-lib desktop-file-utils eigen:3 \
+USES=		cmake cpe compiler:c++17-lang desktop-file-utils eigen:3 \
 		gettext iconv:translit jpeg kde:5 localbase:ldflags perl5 \
 		pkgconfig qca qt:5 shared-mime-info sqlite tar:xz xorg
 USE_KDE=	akonadicontacts activities archive auth bookmarks codecs completion \
diff --git a/editors/calligra/files/patch-068cd9aec11052733e393976142516d2190e4564.diff b/editors/calligra/files/patch-068cd9aec11052733e393976142516d2190e4564.diff
new file mode 100644
index 000000000000..ae8cc3f89eb0
--- /dev/null
+++ b/editors/calligra/files/patch-068cd9aec11052733e393976142516d2190e4564.diff
@@ -0,0 +1,46 @@
+Part of this commit, which fixes build in C++17
+
+commit 068cd9aec11052733e393976142516d2190e4564
+Author: Pierre Ducroquet <pinaraf@pinaraf.info>
+Date:   Sun Feb 28 23:23:02 2021 +0100
+
+    Fix some more warnings
+
+diff --git filters/words/msword-odf/wv2/src/styles.h filters/words/msword-odf/wv2/src/styles.h
+index ba02def6845..41c8278dd21 100644
+--- filters/words/msword-odf/wv2/src/styles.h
++++ filters/words/msword-odf/wv2/src/styles.h
+@@ -58,8 +58,9 @@ struct STD
+     STD();
+     /**
+      * Simply calls read(...)
++     * @throw InvalidFormatException
+      */
+-    STD( U16 stdfSize, U16 totalSize, OLEStreamReader* stream, bool preservePos = false ) throw(InvalidFormatException);
++    STD( U16 stdfSize, U16 totalSize, OLEStreamReader* stream, bool preservePos = false );
+     /**
+      * Attention: This struct allocates memory on the heap
+      */
+@@ -74,8 +75,9 @@ struct STD
+      * false the state of stream will be changed!
+      *
+      * @return true - success, false - failed
++     * @throw InvalidFormatException
+      */
+-    bool read( const U16 cbStd, const U16 stdfSize, OLEStreamReader* stream, bool preservePos = false ) throw(InvalidFormatException);
++    bool read( const U16 cbStd, const U16 stdfSize, OLEStreamReader* stream, bool preservePos = false );
+ 
+     /**
+      * Same as reading :)
+@@ -365,7 +367,10 @@ private:
+ class WV2_EXPORT StyleSheet
+ {
+ public:
+-    StyleSheet( OLEStreamReader* tableStream, U32 fcStshf, U32 lcbStshf ) throw(InvalidFormatException);
++    /**
++     * @throw InvalidFormatException
++     */
++    StyleSheet( OLEStreamReader* tableStream, U32 fcStshf, U32 lcbStshf );
+     ~StyleSheet();
+ 
+     /**
diff --git a/editors/calligra/files/patch-5e47d9cd114db9d97e28e31869919bba545a979d.diff b/editors/calligra/files/patch-5e47d9cd114db9d97e28e31869919bba545a979d.diff
new file mode 100644
index 000000000000..4cc5b1e4be04
--- /dev/null
+++ b/editors/calligra/files/patch-5e47d9cd114db9d97e28e31869919bba545a979d.diff
@@ -0,0 +1,127 @@
+diff --git filters/libmsooxml/CMakeLists.txt filters/libmsooxml/CMakeLists.txt
+index cd5b597d319..b243cf875eb 100644
+--- filters/libmsooxml/CMakeLists.txt
++++ filters/libmsooxml/CMakeLists.txt
+@@ -2,11 +2,6 @@ if(Qca-qt5_FOUND)
+     add_definitions( -DHAVE_QCA2 )
+ endif()
+ 
+-# TEMPORARY: for std::auto_ptr deprecation warnings are only annoying noise
+-if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC)
+-    add_definitions(-Wno-deprecated-declarations)
+-endif ()
+-
+ include_directories(
+     ${KOMAIN_INCLUDES}
+     ${KOODF2_INCLUDES} # For charts
+diff --git filters/libmsooxml/MsooXmlImport.cpp filters/libmsooxml/MsooXmlImport.cpp
+index 8876988220f..c873a998413 100644
+--- filters/libmsooxml/MsooXmlImport.cpp
++++ filters/libmsooxml/MsooXmlImport.cpp
+@@ -594,8 +594,8 @@ KoFilter::ConversionStatus MsooXmlImport::imageFromFile(const QString& sourceNam
+     QString errorMessage;
+     KoFilter::ConversionStatus status = KoFilter::OK;
+ 
+-    std::auto_ptr<QIODevice> inputDevice(Utils::openDeviceForFile(m_zip, errorMessage, sourceName, status));
+-    if (!inputDevice.get()) {
++    std::unique_ptr<QIODevice> inputDevice(Utils::openDeviceForFile(m_zip, errorMessage, sourceName, status));
++    if (!inputDevice) {
+         return status;
+     }
+     QImageReader r(inputDevice.get(), QFileInfo(sourceName).suffix().toLatin1());
+diff --git filters/libmsooxml/MsooXmlThemesReader.cpp filters/libmsooxml/MsooXmlThemesReader.cpp
+index 5818a5caf03..9919d7f1ffb 100644
+--- filters/libmsooxml/MsooXmlThemesReader.cpp
++++ filters/libmsooxml/MsooXmlThemesReader.cpp
+@@ -736,14 +736,14 @@ KoFilter::ConversionStatus MsooXmlThemesReader::read_color()
+ */
+ KoFilter::ConversionStatus MsooXmlThemesReader::read_srgbClr_local()
+ {
+-    std::auto_ptr<DrawingMLColorSchemeItem> color(new DrawingMLColorSchemeItem);
++    std::unique_ptr<DrawingMLColorSchemeItem> color(new DrawingMLColorSchemeItem);
+     m_currentColor_local = 0;
+     READ_PROLOGUE
+     const QXmlStreamAttributes attrs(attributes());
+ 
+     READ_ATTR_WITHOUT_NS(val)
+-    color.get()->color = Utils::ST_HexColorRGB_to_QColor(val);
+-    //debugMsooXml << color.get()->color;
++    color->color = Utils::ST_HexColorRGB_to_QColor(val);
++    //debugMsooXml << color->color;
+ 
+     readNext();
+     READ_EPILOGUE_WITHOUT_RETURN
+@@ -841,19 +841,19 @@ KoFilter::ConversionStatus MsooXmlThemesReader::read_srgbClr_local()
+ */
+ KoFilter::ConversionStatus MsooXmlThemesReader::read_sysClr_local()
+ {
+-    std::auto_ptr<DrawingMLColorSchemeSystemItem> color(new DrawingMLColorSchemeSystemItem);
++    std::unique_ptr<DrawingMLColorSchemeSystemItem> color(new DrawingMLColorSchemeSystemItem);
+     m_currentColor_local = 0;
+     READ_PROLOGUE
+     const QXmlStreamAttributes attrs(attributes());
+ 
+     READ_ATTR_WITHOUT_NS(lastClr)
+-    color.get()->lastColor = Utils::ST_HexColorRGB_to_QColor(lastClr);
+-//     debugMsooXml << "lastClr:" << color.get()->lastColor.name();
++    color->lastColor = Utils::ST_HexColorRGB_to_QColor(lastClr);
++//     debugMsooXml << "lastClr:" << color->lastColor.name();
+ 
+     // System color value. This color is based upon the value that this color
+     // currently has within the system on which the document is being viewed.
+-    READ_ATTR_WITHOUT_NS_INTO(val, color.get()->systemColor)
+-//     debugMsooXml << "val:" << color.get()->systemColor;
++    READ_ATTR_WITHOUT_NS_INTO(val, color->systemColor)
++//     debugMsooXml << "val:" << color->systemColor;
+ 
+     readNext();
+     READ_EPILOGUE_WITHOUT_RETURN
+diff --git filters/libmsooxml/MsooXmlUtils.cpp filters/libmsooxml/MsooXmlUtils.cpp
+index 49f8faea449..99460c28df9 100644
+--- filters/libmsooxml/MsooXmlUtils.cpp
++++ filters/libmsooxml/MsooXmlUtils.cpp
+@@ -189,8 +189,8 @@ KoFilter::ConversionStatus Utils::loadAndParse(KoXmlDocument& doc, const KZip* z
+ {
+     errorMessage.clear();
+     KoFilter::ConversionStatus status;
+-    std::auto_ptr<QIODevice> device(openDeviceForFile(zip, errorMessage, fileName, status));
+-    if (!device.get())
++    std::unique_ptr<QIODevice> device(openDeviceForFile(zip, errorMessage, fileName, status));
++    if (!device)
+         return status;
+     return loadAndParse(device.get(), doc, errorMessage, fileName);
+ }
+@@ -205,8 +205,8 @@ KoFilter::ConversionStatus Utils::loadAndParseDocument(MsooXmlReader* reader,
+     Q_UNUSED(writers)
+     errorMessage.clear();
+     KoFilter::ConversionStatus status;
+-    std::auto_ptr<QIODevice> device(openDeviceForFile(zip, errorMessage, fileName, status));
+-    if (!device.get())
++    std::unique_ptr<QIODevice> device(openDeviceForFile(zip, errorMessage, fileName, status));
++    if (!device)
+         return status;
+     reader->setDevice(device.get());
+     reader->setFileName(fileName); // for error reporting
+@@ -389,9 +389,9 @@ KoFilter::ConversionStatus Utils::copyFile(const KZip* zip, QString& errorMessag
+         return status;
+     }
+ 
+-    std::auto_ptr<QIODevice> inputDevice = std::auto_ptr<QIODevice>(Utils::openDeviceForFile(zip, errorMessage, sourceName, status));
++    std::unique_ptr<QIODevice> inputDevice(Utils::openDeviceForFile(zip, errorMessage, sourceName, status));
+ 
+-    if (!inputDevice.get()) {
++    if (!inputDevice) {
+         return status;
+     }
+ 
+@@ -423,8 +423,8 @@ KoFilter::ConversionStatus Utils::imageSize(const KZip* zip, QString& errorMessa
+ {
+     Q_ASSERT(size);
+     KoFilter::ConversionStatus status;
+-    std::auto_ptr<QIODevice> inputDevice(Utils::openDeviceForFile(zip, errorMessage, sourceName, status));
+-    if (!inputDevice.get()) {
++    std::unique_ptr<QIODevice> inputDevice(Utils::openDeviceForFile(zip, errorMessage, sourceName, status));
++    if (!inputDevice) {
+         return status;
+     }
+     QImageReader r(inputDevice.get(), QFileInfo(sourceName).suffix().toLatin1());
diff --git a/editors/calligra/files/patch-CMakeLists.txt b/editors/calligra/files/patch-CMakeLists.txt
index d9be84715185..7eeb9939dcdf 100644
--- a/editors/calligra/files/patch-CMakeLists.txt
+++ b/editors/calligra/files/patch-CMakeLists.txt
@@ -1,10 +1,26 @@
-Fix build against KDE Frameworks 5.83
-(no longer ships find module, and the
-cmake default one is used).
+- Use the C++ setting from "outside"; ECM uses modern C++ by default now
+- Fix build against KDE Frameworks 5.83
+  (no longer ships find module, and the
+  cmake default one is used).
 
---- CMakeLists.txt.orig	2021-07-09 21:31:30 UTC
+--- CMakeLists.txt.orig	2020-05-14 06:53:49 UTC
 +++ CMakeLists.txt
-@@ -641,8 +641,8 @@ if(NOT WIN32 AND NOT APPLE)
+@@ -104,13 +104,7 @@ if(NOT DEFINED RELEASE_BUILD)
+ endif()
+ message(STATUS "Release build: ${RELEASE_BUILD}")
+ 
+-# use CPP-11
+-if (CMAKE_VERSION VERSION_LESS "3.1")
+-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+-else ()
+-    set (CMAKE_CXX_STANDARD 11)
+-endif ()
+-
++    set (CMAKE_CXX_STANDARD 17)
+ ############
+ #############
+ ## Options ##
+@@ -641,8 +634,8 @@ if(NOT WIN32 AND NOT APPLE)
  	)
  endif()
  
diff --git a/editors/calligra/files/patch-cxx17.diff b/editors/calligra/files/patch-cxx17.diff
new file mode 100644
index 000000000000..abd5819f2c0e
--- /dev/null
+++ b/editors/calligra/files/patch-cxx17.diff
@@ -0,0 +1,1421 @@
+diff --git filters/words/msword-odf/wv2/src/word97_helper.cpp filters/words/msword-odf/wv2/src/word97_helper.cpp
+index a02cbda0077..759d18e2206 100644
+--- filters/words/msword-odf/wv2/src/word97_helper.cpp
++++ filters/words/msword-odf/wv2/src/word97_helper.cpp
+@@ -30,7 +30,7 @@
+ 
+ #include <string.h> // memcpy
+ #include <algorithm>
+-#include <functional> // std::bind2nd for gcc 2.9x
++#include <functional>
+ #include <cstdlib>
+ 
+ #include "wvlog.h"
+@@ -921,7 +921,8 @@ S16 PAP::applyPAPSPRM( const U8* ptr, const Style* style, const StyleSheet* styl
+             std::vector<TabDescriptor>::iterator newEnd = rgdxaTab.end();
+             for ( U8 i = 0; i < itbdDelMax; ++i ) {
+                 newEnd = std::remove_if ( rgdxaTab.begin(), newEnd,
+-                                          std::bind2nd( InZone(), Zone( myPtr, i, itbdDelMax ) ) );
++                                          [z=Zone(myPtr, i, itbdDelMax ), f=InZone()](const TabDescriptor& t){ return f(t, z); }
++                                         );
+             }
+             rgdxaTab.erase( newEnd, rgdxaTab.end() ); // really get rid of them
+             myPtr += itbdDelMax * 4;
+@@ -2343,7 +2344,8 @@ S16 TAP::applyTAPSPRM( const U8* ptr, const Style* style, const StyleSheet* styl
+             // Adjust all successive items (+= ctc * dxaCol)
+             std::transform( rgdxaCenter.begin() + itcFirst + ctc, rgdxaCenter.end(),
+                             rgdxaCenter.begin() + itcFirst + ctc, 
+-                            std::bind1st( std::plus<S16>(), ctc * dxaCol ) );
++                            [x = ctc * dxaCol, f=std::plus<S16>()](S16 y){ return f(x, y); }
++                          );
+         }
+         break;
+     }
+@@ -2382,7 +2384,8 @@ S16 TAP::applyTAPSPRM( const U8* ptr, const Style* style, const StyleSheet* styl
+         ++itcFirst;
+         std::transform( rgdxaCenter.begin() + itcFirst, rgdxaCenter.end(),
+                         rgdxaCenter.begin() + itcFirst, 
+-                        std::bind2nd( std::minus<S16>(), shift ) );
++                        [y=shift, f=std::minus<S16>()](S16 x){ return f(x, y); }
++                       );
+         break;
+     }
+     case SPRM::sprmTMerge:
+diff --git sheets/part/Digest.cpp sheets/part/Digest.cpp
+index 5d25c852ae3..8cd972db989 100644
+--- sheets/part/Digest.cpp
++++ sheets/part/Digest.cpp
+@@ -250,8 +250,8 @@ typedef struct digest_impl_st {
+  */
+ static void __rtl_digest_swapLong(sal_uInt32 *pData, sal_uInt32 nDatLen)
+ {
+-    register sal_uInt32 *X;
+-    register int         i, n;
++     sal_uInt32 *X;
++     int         i, n;
+ 
+     X = pData;
+     n = nDatLen;
+@@ -465,10 +465,10 @@ static void __rtl_digest_initSHA(
+  */
+ static void __rtl_digest_updateSHA(DigestContextSHA *ctx)
+ {
+-    register sal_uInt32  A, B, C, D, E, T;
+-    register sal_uInt32 *X;
++     sal_uInt32  A, B, C, D, E, T;
++     sal_uInt32 *X;
+ 
+-    register DigestSHA_update_t *U;
++     DigestSHA_update_t *U;
+     U = ctx->m_update;
+ 
+     A = ctx->m_nA;
+@@ -577,10 +577,10 @@ static void __rtl_digest_endSHA(DigestContextSHA *ctx)
+     static const sal_uInt8 end[4] = {
+         0x80, 0x00, 0x00, 0x00
+     };
+-    register const sal_uInt8 *p = end;
++     const sal_uInt8 *p = end;
+ 
+-    register sal_uInt32 *X;
+-    register int         i;
++     sal_uInt32 *X;
++     int         i;
+ 
+     X = ctx->m_pData;
+     i = (ctx->m_nDatLen >> 2);
+diff --git filters/words/msword-odf/wv2/src/word_helper.h filters/words/msword-odf/wv2/src/word_helper.h
+index e561083d556..d153ceb7593 100644
+--- filters/words/msword-odf/wv2/src/word_helper.h
++++ filters/words/msword-odf/wv2/src/word_helper.h
+@@ -322,6 +322,11 @@ namespace wvWare
+     {
+         friend PLCFIterator<T> PLCF<T>::at( unsigned int ) const;
+     public:
++        PLCFIterator(PLCFIterator &&other)
++            : m_plcf(std::move(other.m_plcf)),
++              m_itemIt(std::move(other.m_itemIt)),
++              m_indexIt(std::move(other.m_indexIt)) {}
++
+         PLCFIterator( const PLCF<T>& plcf ) : m_plcf( plcf )
+         {
+             m_itemIt = m_plcf.m_items.begin();
+@@ -345,7 +350,8 @@ namespace wvWare
+ 
+     private:
+         // don't assign it
+-        PLCFIterator<T>& operator=( const PLCFIterator<T>& rhs );
++        PLCFIterator( const PLCFIterator<T> &other) = delete;
++        PLCFIterator<T>& operator=( const PLCFIterator<T>& rhs ) = delete;
+ 
+         const PLCF<T>& m_plcf;
+         typename std::vector<T*>::const_iterator m_itemIt;
+diff --git sheets/part/CanvasBase.cpp sheets/part/CanvasBase.cpp
+index adbd42606d7..e52906c9408 100644
+--- sheets/part/CanvasBase.cpp
++++ sheets/part/CanvasBase.cpp
+@@ -230,7 +230,7 @@ bool CanvasBase::eventFilter(QObject *o, QEvent *e)
+ 
+ void CanvasBase::validateSelection()
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet)
+         return;
+ #if 0
+@@ -443,7 +443,7 @@ void CanvasBase::paint(QPainter* painter, const QRectF& painterRect)
+     if (doc()->map()->isLoading() || isViewLoading())
+         return;
+ 
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -513,7 +513,7 @@ bool CanvasBase::dragEnter(const QMimeData* mimeData)
+ 
+ bool CanvasBase::dragMove(const QMimeData* mimeData, const QPointF& eventPos, const QObject *source)
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet) {
+         return false;
+     }
+@@ -596,7 +596,7 @@ void CanvasBase::dragLeave()
+ 
+ bool CanvasBase::drop(const QMimeData* mimeData, const QPointF& eventPos, const QObject *source)
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     // FIXME Sheet protection: Not all cells have to be protected.
+     if (!sheet || sheet->isProtected()) {
+         return false;
+@@ -656,7 +656,7 @@ bool CanvasBase::drop(const QMimeData* mimeData, const QPointF& eventPos, const
+ 
+ QRect CanvasBase::viewToCellCoordinates(const QRectF& viewRect) const
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet)
+         return QRect();
+ 
+@@ -685,7 +685,7 @@ QRect CanvasBase::visibleCells() const
+ 
+ QRectF CanvasBase::cellCoordinatesToView(const QRect& cellRange) const
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet)
+         return QRectF();
+ 
+@@ -706,7 +706,7 @@ QRectF CanvasBase::cellCoordinatesToView(const QRect& cellRange) const
+ 
+ void CanvasBase::showToolTip(const QPoint& p)
+ {
+-    register Sheet * const sheet = activeSheet();
++     Sheet * const sheet = activeSheet();
+     if (!sheet)
+         return;
+     SheetView * const sheetView = this->sheetView(sheet);
+diff --git sheets/part/Headers.cpp sheets/part/Headers.cpp
+index fbc49c3f5bc..bde3704a96e 100644
+--- sheets/part/Headers.cpp
++++ sheets/part/Headers.cpp
+@@ -102,7 +102,7 @@ void RowHeader::mousePress(KoPointerEvent * _ev)
+     if (!m_cellToolIsActive)
+         return;
+ 
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -192,7 +192,7 @@ void RowHeader::mouseRelease(KoPointerEvent * _ev)
+ 
+     m_bMousePressed = false;
+ 
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -295,7 +295,7 @@ void RowHeader::mouseDoubleClick(KoPointerEvent*)
+ {
+     if (!m_cellToolIsActive)
+         return;
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -317,7 +317,7 @@ void RowHeader::mouseMove(KoPointerEvent* _ev)
+         return;
+     }
+ 
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -379,7 +379,7 @@ void RowHeader::mouseMove(KoPointerEvent* _ev)
+ 
+ void RowHeader::paint(QPainter* painter, const QRectF& painterRect)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -545,7 +545,7 @@ void ColumnHeader::mousePress(KoPointerEvent * _ev)
+         m_pCanvas->enableAutoScroll();
+     }
+ 
+-    const register Sheet * const sheet = m_pCanvas->activeSheet();
++    const  Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -682,7 +682,7 @@ void ColumnHeader::mouseRelease(KoPointerEvent * _ev)
+ 
+     m_bMousePressed = false;
+ 
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -794,7 +794,7 @@ void ColumnHeader::mouseDoubleClick(KoPointerEvent*)
+ {
+     if (!m_cellToolIsActive)
+         return;
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -813,7 +813,7 @@ void ColumnHeader::mouseMove(KoPointerEvent* _ev)
+     if (!m_cellToolIsActive)
+         return;
+ 
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+ 
+     if (!sheet)
+         return;
+@@ -911,7 +911,7 @@ void ColumnHeader::mouseMove(KoPointerEvent* _ev)
+ 
+ void ColumnHeader::resize(const QSizeF& size, const QSizeF& oldSize)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -929,7 +929,7 @@ void ColumnHeader::resize(const QSizeF& size, const QSizeF& oldSize)
+ 
+ void ColumnHeader::paint(QPainter* painter, const QRectF& painterRect)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+diff --git sheets/part/HeaderWidgets.cpp sheets/part/HeaderWidgets.cpp
+index e42d2dbe7e9..00f4036917f 100644
+--- sheets/part/HeaderWidgets.cpp
++++ sheets/part/HeaderWidgets.cpp
+@@ -93,10 +93,10 @@ RowHeaderWidget::RowHeaderWidget(QWidget *_parent, Canvas *_canvas, View *_view)
+     setAttribute(Qt::WA_StaticContents);
+     setMouseTracking(true);
+ 
+-    connect(_view, SIGNAL(autoScroll(QPoint)),
+-            this, SLOT(slotAutoScroll(QPoint)));
+-    connect(m_pCanvas->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(_view, &View::autoScroll,
++            this, &RowHeaderWidget::slotAutoScroll);
++    connect(m_pCanvas->toolProxy(), &KoToolProxy::toolChanged,
++            this, &RowHeaderWidget::toolChanged);
+ }
+ 
+ 
+@@ -155,7 +155,7 @@ void RowHeaderWidget::wheelEvent(QWheelEvent* _ev)
+ 
+ void RowHeaderWidget::paintSizeIndicator(int mouseY)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -209,7 +209,7 @@ void RowHeaderWidget::removeSizeIndicator()
+ 
+ void RowHeaderWidget::updateRows(int from, int to)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -247,10 +247,10 @@ ColumnHeaderWidget::ColumnHeaderWidget(QWidget *_parent, Canvas *_canvas, View *
+     setAttribute(Qt::WA_StaticContents);
+     setMouseTracking(true);
+ 
+-    connect(_view, SIGNAL(autoScroll(QPoint)),
+-            this, SLOT(slotAutoScroll(QPoint)));
+-    connect(m_pCanvas->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(_view, &View::autoScroll,
++            this, &ColumnHeaderWidget::slotAutoScroll);
++    connect(m_pCanvas->toolProxy(), &KoToolProxy::toolChanged,
++            this, &ColumnHeaderWidget::toolChanged);
+ }
+ 
+ 
+@@ -314,7 +314,7 @@ void ColumnHeaderWidget::resizeEvent(QResizeEvent* _ev)
+ 
+ void ColumnHeaderWidget::paintSizeIndicator(int mouseX)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -379,7 +379,7 @@ void ColumnHeaderWidget::removeSizeIndicator()
+ 
+ void ColumnHeaderWidget::updateColumns(int from, int to)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -416,8 +416,8 @@ SelectAllButtonWidget::SelectAllButtonWidget(CanvasBase* canvasBase)
+         : QWidget(canvasBase->canvasWidget())
+         , SelectAllButton(canvasBase)
+ {
+-    connect(canvasBase->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(canvasBase->toolProxy(), &KoToolProxy::toolChanged,
++            this, &SelectAllButtonWidget::toolChanged);
+ }
+ 
+ SelectAllButtonWidget::~SelectAllButtonWidget()
+diff --git filters/words/msword-odf/wv2/src/styles.cpp filters/words/msword-odf/wv2/src/styles.cpp
+index f47c3dd8d51..d2c96e3d92b 100644
+--- filters/words/msword-odf/wv2/src/styles.cpp
++++ filters/words/msword-odf/wv2/src/styles.cpp
+@@ -42,7 +42,6 @@ STD::STD()
+ }
+ 
+ STD::STD( U16 baseSize, U16 totalSize, OLEStreamReader* stream, bool preservePos )
+-throw(InvalidFormatException)
+ {
+     clearInternal();
+     if (!read( baseSize, totalSize, stream, preservePos )) {
+@@ -112,7 +111,6 @@ STD& STD::operator=( const STD& rhs )
+ }
+ 
+ bool STD::read( const U16 cbStd, const U16 stdfSize, OLEStreamReader* stream, bool preservePos )
+-throw(InvalidFormatException)
+ {
+     U16 shifterU16;
+     S32 startOffset=stream->tell();  // address where the STD starts
+@@ -938,7 +936,7 @@ void Style::mergeUpechpx( const Style* parentStyle, WordVersion version )
+ }
+ 
+ 
+-StyleSheet::StyleSheet( OLEStreamReader* tableStream, U32 fcStshf, U32 lcbStshf ) throw(InvalidFormatException)
++StyleSheet::StyleSheet( OLEStreamReader* tableStream, U32 fcStshf, U32 lcbStshf )
+     : m_udsNum(0)
+ {
+     WordVersion version = Word8;
+diff --git sheets/part/HeaderItems.cpp sheets/part/HeaderItems.cpp
+index 6b0bc3865b5..f517d4f9d1c 100644
+--- sheets/part/HeaderItems.cpp
++++ sheets/part/HeaderItems.cpp
+@@ -96,8 +96,8 @@ RowHeaderItem::RowHeaderItem(QGraphicsItem *_parent, CanvasItem *_canvas)
+ 
+     //connect(m_pView, SIGNAL(autoScroll(QPoint)),
+             //this, SLOT(slotAutoScroll(QPoint)));
+-    connect(m_pCanvas->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(m_pCanvas->toolProxy(), &KoToolProxy::toolChanged,
++            this, &RowHeaderItem::toolChanged);
+ 
+     setFlag(ItemClipsToShape, true);
+ }
+@@ -161,7 +161,7 @@ void RowHeaderItem::wheelEvent(QGraphicsSceneWheelEvent* _ev)
+ 
+ void RowHeaderItem::paintSizeIndicator(int mouseY)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -216,7 +216,7 @@ void RowHeaderItem::removeSizeIndicator()
+ 
+ void RowHeaderItem::updateRows(int from, int to)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -256,8 +256,8 @@ ColumnHeaderItem::ColumnHeaderItem(QGraphicsItem *_parent, CanvasItem *_canvas)
+ 
+     //connect(_view, SIGNAL(autoScroll(QPoint)),
+             //this, SLOT(slotAutoScroll(QPoint)));
+-    connect(_canvas->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(_canvas->toolProxy(), &KoToolProxy::toolChanged,
++            this, &ColumnHeaderItem::toolChanged);
+ 
+     setFlag(ItemClipsToShape, true);
+ }
+@@ -324,7 +324,7 @@ void ColumnHeaderItem::resizeEvent(QGraphicsSceneResizeEvent* _ev)
+ 
+ void ColumnHeaderItem::paintSizeIndicator(int mouseX)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -389,7 +389,7 @@ void ColumnHeaderItem::removeSizeIndicator()
+ 
+ void ColumnHeaderItem::updateColumns(int from, int to)
+ {
+-    register Sheet * const sheet = m_pCanvas->activeSheet();
++     Sheet * const sheet = m_pCanvas->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -434,8 +434,8 @@ SelectAllButtonItem::SelectAllButtonItem(QGraphicsItem *_parent, CanvasBase* can
+         : QGraphicsWidget(_parent)
+         , SelectAllButton(canvasBase)
+ {
+-    connect(canvasBase->toolProxy(), SIGNAL(toolChanged(QString)),
+-            this, SLOT(toolChanged(QString)));
++    connect(canvasBase->toolProxy(), &KoToolProxy::toolChanged,
++            this, &SelectAllButtonItem::toolChanged);
+ }
+ 
+ SelectAllButtonItem::~SelectAllButtonItem()
+diff --git sheets/ui/CellToolBase_p.cpp sheets/ui/CellToolBase_p.cpp
+index 8b988f4a0f7..6f408b63ecb 100644
+--- sheets/ui/CellToolBase_p.cpp
++++ sheets/ui/CellToolBase_p.cpp
+@@ -246,7 +246,7 @@ void CellToolBase::Private::processArrowKey(QKeyEvent *event)
+     /* NOTE:  hitting the tab key also calls this function.  Don't forget
+         to account for it
+     */
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+     if (!sheet)
+         return;
+ 
+@@ -301,7 +301,7 @@ void CellToolBase::Private::processEscapeKey(QKeyEvent * event)
+ 
+ bool CellToolBase::Private::processHomeKey(QKeyEvent* event)
+ {
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+     if (!sheet)
+         return false;
+ 
+@@ -356,7 +356,7 @@ bool CellToolBase::Private::processHomeKey(QKeyEvent* event)
+ 
+ bool CellToolBase::Private::processEndKey(QKeyEvent *event)
+ {
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+     if (!sheet)
+         return false;
+ 
+@@ -439,7 +439,7 @@ bool CellToolBase::Private::processNextKey(QKeyEvent *event)
+ 
+ void CellToolBase::Private::processOtherKey(QKeyEvent *event)
+ {
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+ 
+     // No null character ...
+     if (event->text().isEmpty() || !q->selection()->activeSheet()->map()->isReadWrite() ||
+@@ -457,7 +457,7 @@ void CellToolBase::Private::processOtherKey(QKeyEvent *event)
+ 
+ bool CellToolBase::Private::processControlArrowKey(QKeyEvent *event)
+ {
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+     if (!sheet)
+         return false;
+ 
+@@ -802,7 +802,7 @@ QRect CellToolBase::Private::moveDirection(Calligra::Sheets::MoveTo direction, b
+ {
+     debugSheetsUI << "Canvas::moveDirection";
+ 
+-    register Sheet * const sheet = q->selection()->activeSheet();
++     Sheet * const sheet = q->selection()->activeSheet();
+     if (!sheet)
+         return QRect();
+ 
+@@ -1261,47 +1261,47 @@ void CellToolBase::Private::createPopupMenuActions()
+     }
+ 
+     action = new QAction(koIcon("insertcell"), i18n("Insert Cells..."), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(insertCells()));
++    connect(action, &QAction::triggered, q, &CellToolBase::insertCells);
+     popupMenuActions.insert("insertCell", action);
+ 
+     action = new QAction(koIcon("removecell"), i18n("Delete Cells..."), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(deleteCells()));
++    connect(action, &QAction::triggered, q, &CellToolBase::deleteCells);
+     popupMenuActions.insert("deleteCell", action);
+ 
+     action = new QAction(koIcon("adjustcol"), i18n("Adjust Column"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(adjustColumn()));
++    connect(action, &QAction::triggered, q, &CellToolBase::adjustColumn);
+     popupMenuActions.insert("adjustColumn", action);
+ 
+     action = new QAction(koIcon("edit-table-insert-column-left"), i18n("Insert Columns"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(insertColumn()));
++    connect(action, &QAction::triggered, q, &CellToolBase::insertColumn);
+     popupMenuActions.insert("insertColumn", action);
+ 
+     action = new QAction(koIcon("edit-table-delete-column"), i18n("Delete Columns"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(deleteColumn()));
++    connect(action, &QAction::triggered, q, &CellToolBase::deleteColumn);
+     popupMenuActions.insert("deleteColumn", action);
+ 
+     action = new QAction(koIcon("adjustrow"), i18n("Adjust Row"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(adjustRow()));
++    connect(action, &QAction::triggered, q, &CellToolBase::adjustRow);
+     popupMenuActions.insert("adjustRow", action);
+ 
+     action = new QAction(koIcon("edit-table-insert-row-above"), i18n("Insert Rows"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(insertRow()));
++    connect(action, &QAction::triggered, q, &CellToolBase::insertRow);
+     popupMenuActions.insert("insertRow", action);
+ 
+     action = new QAction(koIcon("edit-table-delete-row"), i18n("Delete Rows"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(deleteRow()));
++    connect(action, &QAction::triggered, q, &CellToolBase::deleteRow);
+     popupMenuActions.insert("deleteRow", action);
+ 
+     action = new QAction(i18n("Selection List..."), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(listChoosePopupMenu()));
++    connect(action, &QAction::triggered, q, &CellToolBase::listChoosePopupMenu);
+     popupMenuActions.insert("listChoose", action);
+ 
+     action = new QAction(koIcon("edit-comment"), i18n("Comment"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(comment()));
++    connect(action, &QAction::triggered, q, &CellToolBase::comment);
+     popupMenuActions.insert("comment", action);
+ 
+     action = new QAction(koIcon("delete-comment"),i18n("Clear Comment"), q);
+-    connect(action, SIGNAL(triggered(bool)), q, SLOT(clearComment()));
++    connect(action, &QAction::triggered, q, &CellToolBase::clearComment);
+     popupMenuActions.insert("clearComment", action);
+ 
+ }
+diff --git sheets/ui/CellToolBase.cpp sheets/ui/CellToolBase.cpp
+index 9a5cb545817..4847082ead2 100644
+--- sheets/ui/CellToolBase.cpp
++++ sheets/ui/CellToolBase.cpp
+@@ -185,17 +185,17 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action->setIconText(i18n("Format"));
+     addAction("cellStyle", action);
+     action->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_F));
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(cellStyle()));
++    connect(action, &QAction::triggered, this, &CellToolBase::cellStyle);
+     action->setToolTip(i18n("Set the cell formatting"));
+ 
+     action = new QAction(i18n("Default"), this);
+     addAction("setDefaultStyle", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(setDefaultStyle()));
++    connect(action, &QAction::triggered, this, &CellToolBase::setDefaultStyle);
+     action->setToolTip(i18n("Resets to the default format"));
+ 
+     action = new QAction(i18n("Style Manager..."), this);
+     addAction("styleDialog", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(styleDialog()));
++    connect(action, &QAction::triggered, this, &CellToolBase::styleDialog);
+     action->setToolTip(i18n("Edit and organize cell styles"));
+ 
+     action = new KSelectAction(i18n("Style"), this);
+@@ -206,7 +206,7 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action = new QAction(i18n("Create Style From Cell..."), this);
+     action->setIconText(i18n("Style From Cell"));
+     addAction("createStyleFromCell", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(createStyleFromCell()));
++    connect(action, &QAction::triggered, this, &CellToolBase::createStyleFromCell);
+     action->setToolTip(i18n("Create a new style based on the currently selected cell"));
+ 
+     // -- font actions --
+@@ -214,21 +214,21 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action = new KToggleAction(koIcon("format-text-bold"), i18n("Bold"), this);
+     addAction("bold", action);
+     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_B));
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(bold(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::bold);
+ 
+     action = new KToggleAction(koIcon("format-text-italic"), i18n("Italic"), this);
+     addAction("italic", action);
+     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_I));
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(italic(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::italic);
+ 
+     action = new KToggleAction(koIcon("format-text-underline"), i18n("Underline"), this);
+     addAction("underline", action);
+     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_U));
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(underline(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::underline);
+ 
+     action = new KToggleAction(koIcon("format-text-strikethrough"), i18n("Strike Out"), this);
+     addAction("strikeOut", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(strikeOut(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::strikeOut);
+ 
+     action = new KFontAction(i18n("Select Font..."), this);
+     action->setIconText(i18n("Font"));
+@@ -242,11 +242,11 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+ 
+     action = new QAction(koIcon("format-font-size-more"), i18n("Increase Font Size"), this);
+     addAction("increaseFontSize", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(increaseFontSize()));
++    connect(action, &QAction::triggered, this, &CellToolBase::increaseFontSize);
+ 
+     action = new QAction(koIcon("format-font-size-less"), i18n("Decrease Font Size"), this);
+     addAction("decreaseFontSize", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(decreaseFontSize()));
++    connect(action, &QAction::triggered, this, &CellToolBase::decreaseFontSize);
+ 
+     action = new KoColorPopupAction(this);
+     action->setIcon(koIcon("format-text-color"));
+@@ -261,21 +261,21 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action = new KToggleAction(koIcon("format-justify-left"), i18n("Align Left"), this);
+     action->setIconText(i18n("Left"));
+     addAction("alignLeft", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignLeft(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignLeft);
+     action->setToolTip(i18n("Left justify the cell contents"));
+     action->setActionGroup(groupAlign);
+ 
+     action = new KToggleAction(koIcon("format-justify-center"), i18n("Align Center"), this);
+     action->setIconText(i18n("Center"));
+     addAction("alignCenter", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignCenter(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignCenter);
+     action->setToolTip(i18n("Center the cell contents"));
+     action->setActionGroup(groupAlign);
+ 
+     action = new KToggleAction(koIcon("format-justify-right"), i18n("Align Right"), this);
+     action->setIconText(i18n("Right"));
+     addAction("alignRight", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignRight(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignRight);
+     action->setToolTip(i18n("Right justify the cell contents"));
+     action->setActionGroup(groupAlign);
+ 
+@@ -285,21 +285,21 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action = new KToggleAction(koIcon("format-align-vertical-top"), i18n("Align Top"), this);
+     action->setIconText(i18n("Top"));
+     addAction("alignTop", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignTop(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignTop);
+     action->setToolTip(i18n("Align cell contents along the top of the cell"));
+     action->setActionGroup(groupPos);
+ 
+     action = new KToggleAction(koIcon("format-align-vertical-center"), i18n("Align Middle"), this);
+     action->setIconText(i18n("Middle"));
+     addAction("alignMiddle", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignMiddle(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignMiddle);
+     action->setToolTip(i18n("Align cell contents centered in the cell"));
+     action->setActionGroup(groupPos);
+ 
+     action = new KToggleAction(koIcon("format-align-vertical-bottom"), i18n("Align Bottom"), this);
+     action->setIconText(i18n("Bottom"));
+     addAction("alignBottom", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(alignBottom(bool)));
++    connect(action, &QAction::triggered, this, &CellToolBase::alignBottom);
+     action->setToolTip(i18n("Align cell contents along the bottom of the cell"));
+     action->setActionGroup(groupPos);
+ 
+@@ -308,43 +308,43 @@ CellToolBase::CellToolBase(KoCanvasBase* canvas)
+     action = new QAction(koIcon("format-border-set-left"), i18n("Border Left"), this);
+     action->setIconText(i18n("Left"));
+     addAction("borderLeft", action);
+-    connect(action, SIGNAL(triggered(bool)), this, SLOT(borderLeft()));
++    connect(action, &QAction::triggered, this, &CellToolBase::borderLeft);
+     action->setToolTip(i18n("Set a left border to the selected area"));
+ 
+     action = new QAction(koIcon("format-border-set-right"), i18n("Border Right"), this);
+     action->setIconText(i18n("Right"));
*** 705 LINES SKIPPED ***