diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2023-02-11 11:24:05 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2023-03-01 12:57:21 +0000 |
commit | 855f7c08d1feab7669670bfbc4ed2b3b3225db16 (patch) | |
tree | 0d8f8cd014bb74cfd88aea2283e1d30ad7b2b547 /editeng | |
parent | 79434c321597790de6cb8db18f4b9fb6dc8c60bb (diff) |
send theme info when changing color (in the picker) via UNO command
Change-Id: I288f8fb3375e152b5ee746fab2c05d08150d6c99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146817
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/items/textitem.cxx | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx index 5a53d6a8e14c..ece9a4a35237 100644 --- a/editeng/source/items/textitem.cxx +++ b/editeng/source/items/textitem.cxx @@ -78,6 +78,7 @@ #include <editeng/itemtype.hxx> #include <editeng/eerdll.hxx> #include <docmodel/uno/UnoThemeColor.hxx> +#include <docmodel/theme/ThemeColorJSON.hxx> #include <libxml/xmlwriter.h> using namespace ::com::sun::star; @@ -1367,6 +1368,13 @@ SvxColorItem::SvxColorItem( const Color& rCol, const sal_uInt16 nId ) : { } +SvxColorItem::SvxColorItem(Color const& rColor, model::ThemeColor const& rThemeColor, const sal_uInt16 nId) + : SfxPoolItem(nId) + , mColor(rColor) + , maThemeColor(rThemeColor) +{ +} + SvxColorItem::~SvxColorItem() { } @@ -1436,12 +1444,18 @@ bool SvxColorItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const rVal <<= nValue; break; } - case MID_COLOR_THEME_REFERENCE: + case MID_COLOR_THEME_REFERENCE: { auto xThemeColor = model::theme::createXThemeColor(maThemeColor); rVal <<= xThemeColor; break; } + case MID_COLOR_THEME_REFERENCE_JSON: + { + rVal <<= OStringToOUString(model::theme::convertToJSON(maThemeColor), RTL_TEXTENCODING_UTF8); + break; + } + case MID_COLOR_RGB: default: { rVal <<= mColor; @@ -1528,6 +1542,23 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) } } break; + + case MID_COLOR_THEME_REFERENCE_JSON: + { + OUString sThemeJson; + if (!(rVal >>= sThemeJson)) + return false; + + if (sThemeJson.isEmpty()) + { + return false; + } + OString aJSON = OUStringToOString(sThemeJson, RTL_TEXTENCODING_ASCII_US); + model::theme::convertFromJSON(aJSON, maThemeColor); + } + break; + + case MID_COLOR_RGB: default: { return rVal >>= mColor; |