|
 |
135360 |
From ba461282993202188ef16adb99220cf403356c57 Mon Sep 17 00:00:00 2001
|
|
 |
135360 |
From: Mihai Varga <mihai.varga@collabora.com>
|
|
 |
135360 |
Date: Thu, 10 Sep 2015 09:21:45 +0300
|
|
 |
135360 |
Subject: [PATCH 105/398] LOK: added a general getCommandValues method
|
|
 |
135360 |
|
|
 |
135360 |
This method returns a JSON mapping of the posible values for the given
|
|
 |
135360 |
command (e.g. .uno:StyleApply, etc).
|
|
 |
135360 |
|
|
 |
135360 |
returns:
|
|
 |
135360 |
{commandName: "cmdName", commandValues: {json_of_cmd_values}}
|
|
 |
135360 |
I've fixed the unit test this time
|
|
 |
135360 |
|
|
 |
135360 |
Change-Id: I30b0fba8ba1db33dd79f4b46026d293b9ea72402
|
|
 |
135360 |
(cherry picked from commit 39975c477a38be613e9e162acb6de241999f0ae1)
|
|
 |
135360 |
---
|
|
 |
135360 |
desktop/qa/desktop_lib/test_desktop_lib.cxx | 7 +++++--
|
|
 |
135360 |
desktop/source/lib/init.cxx | 24 ++++++++++++++++++++----
|
|
 |
135360 |
include/LibreOfficeKit/LibreOfficeKit.h | 2 +-
|
|
 |
135360 |
include/LibreOfficeKit/LibreOfficeKit.hxx | 9 ++++++---
|
|
 |
135360 |
4 files changed, 32 insertions(+), 10 deletions(-)
|
|
 |
135360 |
|
|
 |
135360 |
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
|
|
 |
135360 |
index c88a53f41edb..842d209f8fb3 100644
|
|
 |
135360 |
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
|
|
 |
135360 |
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
|
|
 |
135360 |
@@ -87,12 +87,15 @@ void DesktopLOKTest::testGetStyles()
|
|
 |
135360 |
{
|
|
 |
135360 |
LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
|
|
 |
135360 |
boost::property_tree::ptree aTree;
|
|
 |
135360 |
- char* pJSON = pDocument->m_pDocumentClass->getStyles(pDocument);
|
|
 |
135360 |
+ char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:StyleApply");
|
|
 |
135360 |
std::stringstream aStream(pJSON);
|
|
 |
135360 |
boost::property_tree::read_json(aStream, aTree);
|
|
 |
135360 |
CPPUNIT_ASSERT( aTree.size() > 0 );
|
|
 |
135360 |
+ CPPUNIT_ASSERT( aTree.get_child("commandName").get_value<std::string>() == ".uno:StyleApply" );
|
|
 |
135360 |
|
|
 |
135360 |
- for (const std::pair<std::string, boost::property_tree::ptree>& rPair : aTree)
|
|
 |
135360 |
+ boost::property_tree::ptree aValues = aTree.get_child("commandValues");
|
|
 |
135360 |
+ CPPUNIT_ASSERT( aValues.size() > 0 );
|
|
 |
135360 |
+ for (const std::pair<std::string, boost::property_tree::ptree>& rPair : aValues)
|
|
 |
135360 |
{
|
|
 |
135360 |
CPPUNIT_ASSERT( rPair.second.size() > 0);
|
|
 |
135360 |
if (rPair.first != "CharacterStyles" &&
|
|
 |
135360 |
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
|
|
 |
135360 |
index a20decd3afbe..7a020d142ddc 100644
|
|
 |
135360 |
--- a/desktop/source/lib/init.cxx
|
|
 |
135360 |
+++ b/desktop/source/lib/init.cxx
|
|
 |
135360 |
@@ -235,7 +235,7 @@ static void doc_setGraphicSelection (LibreOfficeKitDocument* pThis,
|
|
 |
135360 |
int nX,
|
|
 |
135360 |
int nY);
|
|
 |
135360 |
static void doc_resetSelection (LibreOfficeKitDocument* pThis);
|
|
 |
135360 |
-static char* doc_getStyles(LibreOfficeKitDocument* pThis);
|
|
 |
135360 |
+static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCommand);
|
|
 |
135360 |
|
|
 |
135360 |
|
|
 |
135360 |
LibLODocument_Impl::LibLODocument_Impl(const uno::Reference <css::lang::XComponent> &xComponent) :
|
|
 |
135360 |
@@ -266,7 +266,7 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference
|
|
 |
135360 |
m_pDocumentClass->getTextSelection = doc_getTextSelection;
|
|
 |
135360 |
m_pDocumentClass->setGraphicSelection = doc_setGraphicSelection;
|
|
 |
135360 |
m_pDocumentClass->resetSelection = doc_resetSelection;
|
|
 |
135360 |
- m_pDocumentClass->getStyles = doc_getStyles;
|
|
 |
135360 |
+ m_pDocumentClass->getCommandValues = doc_getCommandValues;
|
|
 |
135360 |
|
|
 |
135360 |
gDocumentClass = m_pDocumentClass;
|
|
 |
135360 |
}
|
|
 |
135360 |
@@ -865,15 +865,17 @@ static void doc_resetSelection(LibreOfficeKitDocument* pThis)
|
|
 |
135360 |
pDoc->resetSelection();
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
-static char* doc_getStyles(LibreOfficeKitDocument* pThis)
|
|
 |
135360 |
+static char* getStyles(LibreOfficeKitDocument* pThis, const char* pCommand)
|
|
 |
135360 |
{
|
|
 |
135360 |
LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis);
|
|
 |
135360 |
|
|
 |
135360 |
boost::property_tree::ptree aTree;
|
|
 |
135360 |
+ aTree.put("commandName", pCommand);
|
|
 |
135360 |
uno::Reference<css::style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(pDocument->mxComponent, uno::UNO_QUERY);
|
|
 |
135360 |
uno::Reference<container::XNameAccess> xStyleFamilies(xStyleFamiliesSupplier->getStyleFamilies(), uno::UNO_QUERY);
|
|
 |
135360 |
uno::Sequence<OUString> aStyleFamilies = xStyleFamilies->getElementNames();
|
|
 |
135360 |
|
|
 |
135360 |
+ boost::property_tree::ptree aValues;
|
|
 |
135360 |
for (sal_Int32 nStyleFam = 0; nStyleFam < aStyleFamilies.getLength(); ++nStyleFam)
|
|
 |
135360 |
{
|
|
 |
135360 |
boost::property_tree::ptree aChildren;
|
|
 |
135360 |
@@ -886,8 +888,9 @@ static char* doc_getStyles(LibreOfficeKitDocument* pThis)
|
|
 |
135360 |
aChild.put("", aStyles[nInd]);
|
|
 |
135360 |
aChildren.push_back(std::make_pair("", aChild));
|
|
 |
135360 |
}
|
|
 |
135360 |
- aTree.add_child(sStyleFam.toUtf8().getStr(), aChildren);
|
|
 |
135360 |
+ aValues.add_child(sStyleFam.toUtf8().getStr(), aChildren);
|
|
 |
135360 |
}
|
|
 |
135360 |
+ aTree.add_child("commandValues", aValues);
|
|
 |
135360 |
std::stringstream aStream;
|
|
 |
135360 |
boost::property_tree::write_json(aStream, aTree);
|
|
 |
135360 |
char* pJson = static_cast<char*>(malloc(aStream.str().size() + 1));
|
|
 |
135360 |
@@ -895,6 +898,19 @@ static char* doc_getStyles(LibreOfficeKitDocument* pThis)
|
|
 |
135360 |
pJson[aStream.str().size()] = '\0';
|
|
 |
135360 |
return pJson;
|
|
 |
135360 |
}
|
|
 |
135360 |
+
|
|
 |
135360 |
+static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCommand)
|
|
 |
135360 |
+{
|
|
 |
135360 |
+ if (!strcmp(pCommand, ".uno:StyleApply"))
|
|
 |
135360 |
+ {
|
|
 |
135360 |
+ return getStyles(pThis, pCommand);
|
|
 |
135360 |
+ }
|
|
 |
135360 |
+ else {
|
|
 |
135360 |
+ gImpl->maLastExceptionMsg = "Unknown command, no values returned";
|
|
 |
135360 |
+ return NULL;
|
|
 |
135360 |
+ }
|
|
 |
135360 |
+}
|
|
 |
135360 |
+
|
|
 |
135360 |
static char* lo_getError (LibreOfficeKit *pThis)
|
|
 |
135360 |
{
|
|
 |
135360 |
LibLibreOffice_Impl* pLib = static_cast<LibLibreOffice_Impl*>(pThis);
|
|
 |
135360 |
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
135360 |
index af7155c4db67..8060f0e6ec7c 100644
|
|
 |
135360 |
--- a/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
135360 |
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
135360 |
@@ -161,7 +161,7 @@ struct _LibreOfficeKitDocumentClass
|
|
 |
135360 |
void (*resetSelection) (LibreOfficeKitDocument* pThis);
|
|
 |
135360 |
|
|
 |
135360 |
/// @see lok::Document:getStyles
|
|
 |
135360 |
- char* (*getStyles) (LibreOfficeKitDocument* pThis);
|
|
 |
135360 |
+ char* (*getCommandValues) (LibreOfficeKitDocument* pThis, const char* pCommand);
|
|
 |
135360 |
#endif // LOK_USE_UNSTABLE_API
|
|
 |
135360 |
};
|
|
 |
135360 |
|
|
 |
135360 |
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
135360 |
index c526bda95593..44599948e659 100644
|
|
 |
135360 |
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
135360 |
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
135360 |
@@ -248,11 +248,14 @@ public:
|
|
 |
135360 |
}
|
|
 |
135360 |
|
|
 |
135360 |
/**
|
|
 |
135360 |
- * Returns a json map, {"familyName1" : ["list of style names in the family1"], etc.}
|
|
 |
135360 |
+ * Returns a json mapping of the possible values for the given command
|
|
 |
135360 |
+ * e.g. {commandName: ".uno:StyleApply", commandValues: {"familyName1" : ["list of style names in the family1"], etc.}}
|
|
 |
135360 |
+ * @param pCommand a uno command for which the possible values are requested
|
|
 |
135360 |
+ * @return {commandName: unoCmd, commandValues: {possible_values}}
|
|
 |
135360 |
*/
|
|
 |
135360 |
- inline char* getStyles()
|
|
 |
135360 |
+ inline char* getCommandValues(const char* pCommand)
|
|
 |
135360 |
{
|
|
 |
135360 |
- return mpDoc->pClass->getStyles(mpDoc);
|
|
 |
135360 |
+ return mpDoc->pClass->getCommandValues(mpDoc, pCommand);
|
|
 |
135360 |
}
|
|
 |
135360 |
#endif // LOK_USE_UNSTABLE_API
|
|
 |
135360 |
};
|
|
 |
135360 |
--
|
|
 |
135360 |
2.12.0
|
|
 |
135360 |
|