summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2023-02-11 11:24:05 +0900
committerTomaž Vajngerl <quikee@gmail.com>2023-03-01 12:57:21 +0000
commit855f7c08d1feab7669670bfbc4ed2b3b3225db16 (patch)
tree0d8f8cd014bb74cfd88aea2283e1d30ad7b2b547 /editeng
parent79434c321597790de6cb8db18f4b9fb6dc8c60bb (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.cxx33
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;