|
 |
f325b2 |
From 406b705cba1093c06770a2f09da6dd95a0c2bf3c Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
f325b2 |
Date: Fri, 30 Oct 2015 11:18:19 +0100
|
|
 |
f325b2 |
Subject: [PATCH 243/398] LOK: initial Document::getCommandValues() for
|
|
 |
f325b2 |
RowColumnHeaders
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Only the row info and for the entire tiled rendering area as a start.
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: Idbccd805b355e8d151ab7025ac1cf0c686cb237b
|
|
 |
f325b2 |
(cherry picked from commit a7ce5f83343f8f6ba8a59b05820b3a2066c0ce9a)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
desktop/source/lib/init.cxx | 18 +++++++++++++++++-
|
|
 |
f325b2 |
include/vcl/ITiledRenderable.hxx | 8 ++++++++
|
|
 |
f325b2 |
sc/inc/docuno.hxx | 3 +++
|
|
 |
f325b2 |
sc/source/ui/inc/tabview.hxx | 2 ++
|
|
 |
f325b2 |
sc/source/ui/unoobj/docuno.cxx | 13 +++++++++++++
|
|
 |
f325b2 |
sc/source/ui/view/tabview.cxx | 29 +++++++++++++++++++++++++++++
|
|
 |
f325b2 |
6 files changed, 72 insertions(+), 1 deletion(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
index 9dacde8b0287..6785ae2328d4 100644
|
|
 |
f325b2 |
--- a/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
+++ b/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
@@ -1134,7 +1134,23 @@ static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCo
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
return getStyles(pThis, pCommand);
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
- else {
|
|
 |
f325b2 |
+ else if (OString(pCommand) == ".uno:ViewRowColumnHeaders")
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ ITiledRenderable* pDoc = getTiledRenderable(pThis);
|
|
 |
f325b2 |
+ if (!pDoc)
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ gImpl->maLastExceptionMsg = "Document doesn't support tiled rendering";
|
|
 |
f325b2 |
+ return 0;
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ OUString aHeaders = pDoc->getRowColumnHeaders();
|
|
 |
f325b2 |
+ OString aString = OUStringToOString(aHeaders, RTL_TEXTENCODING_UTF8);
|
|
 |
f325b2 |
+ char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
|
|
 |
f325b2 |
+ strcpy(pMemory, aString.getStr());
|
|
 |
f325b2 |
+ return pMemory;
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+ else
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
gImpl->maLastExceptionMsg = "Unknown command, no values returned";
|
|
 |
f325b2 |
return NULL;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
diff --git a/include/vcl/ITiledRenderable.hxx b/include/vcl/ITiledRenderable.hxx
|
|
 |
f325b2 |
index 8ae719edf752..48a13ffc1275 100644
|
|
 |
f325b2 |
--- a/include/vcl/ITiledRenderable.hxx
|
|
 |
f325b2 |
+++ b/include/vcl/ITiledRenderable.hxx
|
|
 |
f325b2 |
@@ -148,6 +148,14 @@ public:
|
|
 |
f325b2 |
return OUString();
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+ /**
|
|
 |
f325b2 |
+ * Get position and content of row/column headers of Calc documents.
|
|
 |
f325b2 |
+ */
|
|
 |
f325b2 |
+ virtual OUString getRowColumnHeaders()
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ return OUString();
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
/// Sets the clipboard of the component.
|
|
 |
f325b2 |
virtual void setClipboard(const css::uno::Reference<css::datatransfer::clipboard::XClipboard>& xClipboard) = 0;
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/sc/inc/docuno.hxx b/sc/inc/docuno.hxx
|
|
 |
f325b2 |
index a8595b00c36e..b4711c54c883 100644
|
|
 |
f325b2 |
--- a/sc/inc/docuno.hxx
|
|
 |
f325b2 |
+++ b/sc/inc/docuno.hxx
|
|
 |
f325b2 |
@@ -421,6 +421,9 @@ public:
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/// @see vcl::ITiledRenderable::isMimeTypeSupported().
|
|
 |
f325b2 |
virtual bool isMimeTypeSupported() override;
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ /// @see vcl::ITiledRenderable::getRowColumnHeaders().
|
|
 |
f325b2 |
+ virtual OUString getRowColumnHeaders() override;
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
class ScDrawPagesObj : public cppu::WeakImplHelper2<
|
|
 |
f325b2 |
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
|
|
 |
f325b2 |
index d7e2a2dbf12e..5b0852041108 100644
|
|
 |
f325b2 |
--- a/sc/source/ui/inc/tabview.hxx
|
|
 |
f325b2 |
+++ b/sc/source/ui/inc/tabview.hxx
|
|
 |
f325b2 |
@@ -520,6 +520,8 @@ public:
|
|
 |
f325b2 |
void EnableAutoSpell( bool bEnable );
|
|
 |
f325b2 |
void ResetAutoSpell();
|
|
 |
f325b2 |
void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
|
|
 |
f325b2 |
+ /// @see ScModelObj::getRowColumnHeaders().
|
|
 |
f325b2 |
+ OUString getRowColumnHeaders();
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
#endif
|
|
 |
f325b2 |
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
|
|
 |
f325b2 |
index d58d6a900856..f9a9e03f2839 100644
|
|
 |
f325b2 |
--- a/sc/source/ui/unoobj/docuno.cxx
|
|
 |
f325b2 |
+++ b/sc/source/ui/unoobj/docuno.cxx
|
|
 |
f325b2 |
@@ -870,6 +870,19 @@ bool ScModelObj::isMimeTypeSupported()
|
|
 |
f325b2 |
return EditEngine::HasValidData(aDataHelper.GetTransferable());
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+OUString ScModelObj::getRowColumnHeaders()
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ ScViewData* pViewData = ScDocShell::GetViewData();
|
|
 |
f325b2 |
+ if (!pViewData)
|
|
 |
f325b2 |
+ return OUString();
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ ScTabView* pTabView = pViewData->GetView();
|
|
 |
f325b2 |
+ if (!pTabView)
|
|
 |
f325b2 |
+ return OUString();
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ return pTabView->getRowColumnHeaders();
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
void ScModelObj::initializeForTiledRendering()
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
SolarMutexGuard aGuard;
|
|
 |
f325b2 |
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
|
|
 |
f325b2 |
index b5d308be1aab..f177bbe704f1 100644
|
|
 |
f325b2 |
--- a/sc/source/ui/view/tabview.cxx
|
|
 |
f325b2 |
+++ b/sc/source/ui/view/tabview.cxx
|
|
 |
f325b2 |
@@ -50,6 +50,7 @@
|
|
 |
f325b2 |
|
|
 |
f325b2 |
#include <string>
|
|
 |
f325b2 |
#include <algorithm>
|
|
 |
f325b2 |
+#include <boost/property_tree/json_parser.hpp>
|
|
 |
f325b2 |
|
|
 |
f325b2 |
#include <basegfx/tools/zoomtools.hxx>
|
|
 |
f325b2 |
|
|
 |
f325b2 |
@@ -2302,4 +2303,32 @@ void ScTabView::SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+OUString ScTabView::getRowColumnHeaders()
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ ScDocument* pDoc = aViewData.GetDocument();
|
|
 |
f325b2 |
+ if (!pDoc)
|
|
 |
f325b2 |
+ return OUString();
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ SCCOL nEndCol = 0;
|
|
 |
f325b2 |
+ SCROW nEndRow = 0;
|
|
 |
f325b2 |
+ pDoc->GetTiledRenderingArea(aViewData.GetTabNo(), nEndCol, nEndRow);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ boost::property_tree::ptree aRows;
|
|
 |
f325b2 |
+ for (SCROW nRow = 0; nRow < nEndRow; ++nRow)
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ boost::property_tree::ptree aRow;
|
|
 |
f325b2 |
+ sal_uInt16 nSize = pRowBar[SC_SPLIT_BOTTOM]->GetEntrySize(nRow);
|
|
 |
f325b2 |
+ aRow.put("size", OString::number(nSize).getStr());
|
|
 |
f325b2 |
+ OUString aText = pRowBar[SC_SPLIT_BOTTOM]->GetEntryText(nRow);
|
|
 |
f325b2 |
+ aRow.put("text", aText.toUtf8().getStr());
|
|
 |
f325b2 |
+ aRows.push_back(std::make_pair("", aRow));
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ boost::property_tree::ptree aTree;
|
|
 |
f325b2 |
+ aTree.add_child("rows", aRows);
|
|
 |
f325b2 |
+ std::stringstream aStream;
|
|
 |
f325b2 |
+ boost::property_tree::write_json(aStream, aTree);
|
|
 |
f325b2 |
+ return OUString::fromUtf8(aStream.str().c_str());
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|