tdf#124247: Fix tooltip message when color added to recent colors

Presently, the tool tip text in recent colors is shown in its
 hexadecimal representation when the split color button is clicked.
 Change the hexadecimal representation of the colors in 'recent
 colors' to its actual color name.

Change-Id: I59636eb124b75a9397337c9560bfff72804424ae
Reviewed-on: https://gerrit.libreoffice.org/70337
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
diff --git a/include/svx/tbxcolorupdate.hxx b/include/svx/tbxcolorupdate.hxx
index 03b6a09..ec7639b 100644
--- a/include/svx/tbxcolorupdate.hxx
+++ b/include/svx/tbxcolorupdate.hxx
@@ -52,6 +52,7 @@ namespace svx
        void        Update( const NamedColor& rNamedColor );
        void        Update( const Color& rColor, bool bForceUpdate = false );
        Color const & GetCurrentColor() const { return maCurColor; }
        OUString    GetCurrentColorName();

    private:
        ToolboxButtonColorUpdater(ToolboxButtonColorUpdater const &) = delete;
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 1843e04..0208ae8 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -3507,7 +3507,7 @@ void SvxColorToolBoxControl::execute(sal_Int16 /*nSelectModifier*/)
    dispatchCommand( aCommand, aArgs );

    EnsurePaletteManager();
    OUString sColorName = "#" + aColor.AsRGBHexString().toAsciiUpperCase();
    OUString sColorName = m_xBtnUpdater->GetCurrentColorName();
    m_xPaletteManager->AddRecentColor(aColor, sColorName);
}

diff --git a/svx/source/tbxctrls/tbxcolorupdate.cxx b/svx/source/tbxctrls/tbxcolorupdate.cxx
index 378f487..f7524c0 100644
--- a/svx/source/tbxctrls/tbxcolorupdate.cxx
+++ b/svx/source/tbxctrls/tbxcolorupdate.cxx
@@ -142,6 +142,19 @@ namespace svx

        mpTbx->SetItemOverlayImage(mnBtnId, Image(pVirDev->GetBitmapEx(Point(0,0), aItemSize)));
    }

    OUString ToolboxButtonColorUpdater::GetCurrentColorName()
    {
        OUString sColorName = mpTbx->GetQuickHelpText(mnBtnId);
        // The obtained string is of format: color context (color name)
        // Generate a substring which contains only the color name
        sal_Int32 nStart = sColorName.indexOf('(');
        sColorName = sColorName.copy( nStart + 1 );
        sal_Int32 nLength = sColorName.getLength();
        if(nLength > 0)
            sColorName = sColorName.copy( 0, nLength - 1);
        return sColorName;
    }
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */