[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - include/svx sd/source svx/source
Miklos Vajna
vmiklos at collabora.co.uk
Fri Feb 20 06:08:30 PST 2015
include/svx/svdmodel.hxx | 7 +++++++
sd/source/ui/inc/ViewShell.hxx | 9 ---------
sd/source/ui/unoidl/unomodel.cxx | 2 +-
sd/source/ui/view/sdwindow.cxx | 2 +-
sd/source/ui/view/viewshel.cxx | 14 --------------
svx/source/svdraw/svdmodel.cxx | 14 ++++++++++++++
6 files changed, 23 insertions(+), 25 deletions(-)
New commits:
commit 2cf3cb5905cc3458bcba1fe2718a94053dd9b06c
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Fri Feb 20 14:51:06 2015 +0100
sd::ViewShell -> SdrModel for LOK callback
One one hand, this fixes missing invalidations after typing characters
in editeng on Android. Previously it was assumed that there is only one
sd::ViewShell for one Impress document, but that's obviously not true.
On the other hand, this will be handy when later svx code wants to
invoke the LOK callback as well, when it was stored in sd, that wasn't
possible.
Change-Id: Id467be01ad008aecaaabdd85b2a6b29a14f1eb86
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index cdad8a1..e5f1ffb 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -37,6 +37,7 @@
#include <svx/xtable.hxx>
#include <svx/pageitem.hxx>
#include <vcl/field.hxx>
+#include <vcl/ITiledRenderable.hxx>
#include <boost/shared_ptr.hpp>
@@ -173,6 +174,8 @@ protected:
OutputDevice* pRefOutDev; // ReferenceDevice for the EditEngine
/// Set if we are doing tiled rendering.
bool mbTiledRendering;
+ LibreOfficeKitCallback mpLibreOfficeKitCallback;
+ void* mpLibreOfficeKitData;
sal_uIntPtr nProgressAkt; // for the
sal_uIntPtr nProgressMax; // ProgressBar-
sal_uIntPtr nProgressOfs; // -Handler
@@ -340,6 +343,10 @@ public:
void setTiledRendering(bool bTiledRendering);
/// Are we doing tiled rendering?
bool isTiledRendering() const;
+ /// The actual implementation of the vcl::ITiledRenderable::registerCallback() API.
+ void registerLibreOfficeKitCallback(LibreOfficeKitCallback pCallback, void* pLibreOfficeKitData);
+ /// Invokes the registered callback, if there are any.
+ void libreOfficeKitCallback(int nType, const char* pPayload) const;
// If a new MapMode is set on the RefDevice (or similar)
void RefDeviceChanged(); // not yet implemented
// default font heigth in logical units
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
index e5f082c..b4bd333 100644
--- a/sd/source/ui/inc/ViewShell.hxx
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -23,7 +23,6 @@
#include <rtl/ref.hxx>
#include <vcl/field.hxx>
-#include <vcl/ITiledRenderable.hxx>
#include <sfx2/viewsh.hxx>
#include <vcl/prntypes.hxx>
#include <svtools/transfer.hxx>
@@ -444,11 +443,6 @@ public:
SdPage* pPage,
const sal_Int32 nInsertPosition = -1);
- /// The actual implementation of the vcl::ITiledRenderable::registerCallback() API for Impress.
- void registerLibreOfficeKitCallback(LibreOfficeKitCallback pCallback, void* pLibreOfficeKitData);
- /// Invokes the registered callback, if there are any.
- void libreOfficeKitCallback(int nType, const char* pPayload) const;
-
class Implementation;
protected:
@@ -582,9 +576,6 @@ private:
/** Create the rulers.
*/
void SetupRulers (void);
-
- LibreOfficeKitCallback mpLibreOfficeKitCallback;
- void* mpLibreOfficeKitData;
};
SdrView* ViewShell::GetDrawView (void) const
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index e939d3b..7193fbc 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -2358,7 +2358,7 @@ void SdXImpressDocument::initializeForTiledRendering()
void SdXImpressDocument::registerCallback(LibreOfficeKitCallback pCallback, void* pData)
{
SolarMutexGuard aGuard;
- mpDocShell->GetViewShell()->registerLibreOfficeKitCallback(pCallback, pData);
+ mpDoc->registerLibreOfficeKitCallback(pCallback, pData);
}
uno::Reference< i18n::XForbiddenCharacters > SdXImpressDocument::getForbiddenCharsTable()
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
index 8222f38..076cba5 100644
--- a/sd/source/ui/view/sdwindow.cxx
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -992,7 +992,7 @@ void Window::LogicInvalidate(const ::vcl::Region* pRegion)
sRectangle = "EMPTY";
else
sRectangle = pRegion->GetBoundRect().toString();
- mpViewShell->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, sRectangle.getStr());
+ mpViewShell->GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, sRectangle.getStr());
}
} // end of namespace sd
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index f728131..83dc9ca 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -137,8 +137,6 @@ ViewShell::ViewShell( SfxViewFrame*, vcl::Window* pParentWindow, ViewShellBase&
: SfxShell(&rViewShellBase)
, mbCenterAllowed(bAllowCenter)
, mpParentWindow(pParentWindow)
-, mpLibreOfficeKitCallback(0)
-, mpLibreOfficeKitData(0)
{
construct();
}
@@ -1450,18 +1448,6 @@ void ViewShell::NotifyAccUpdate( )
GetViewShellBase().GetDrawController().NotifyAccUpdate();
}
-void ViewShell::registerLibreOfficeKitCallback(LibreOfficeKitCallback pCallback, void* pData)
-{
- mpLibreOfficeKitCallback = pCallback;
- mpLibreOfficeKitData = pData;
-}
-
-void ViewShell::libreOfficeKitCallback(int nType, const char* pPayload) const
-{
- if (mpLibreOfficeKitCallback)
- mpLibreOfficeKitCallback(nType, pPayload, mpLibreOfficeKitData);
-}
-
} // end of namespace sd
//===== ViewShellObjectBarFactory =============================================
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx
index c444fa5..66f004e 100644
--- a/svx/source/svdraw/svdmodel.cxx
+++ b/svx/source/svdraw/svdmodel.cxx
@@ -125,6 +125,8 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe
pHitTestOutliner=NULL;
pRefOutDev=NULL;
mbTiledRendering = false;
+ mpLibreOfficeKitCallback = 0;
+ mpLibreOfficeKitData = 0;
nProgressAkt=0;
nProgressMax=0;
nProgressOfs=0;
@@ -806,6 +808,18 @@ bool SdrModel::isTiledRendering() const
return mbTiledRendering;
}
+void SdrModel::registerLibreOfficeKitCallback(LibreOfficeKitCallback pCallback, void* pData)
+{
+ mpLibreOfficeKitCallback = pCallback;
+ mpLibreOfficeKitData = pData;
+}
+
+void SdrModel::libreOfficeKitCallback(int nType, const char* pPayload) const
+{
+ if (mpLibreOfficeKitCallback)
+ mpLibreOfficeKitCallback(nType, pPayload, mpLibreOfficeKitData);
+}
+
void SdrModel::ImpReformatAllTextObjects()
{
if( isLocked() )
More information about the Libreoffice-commits
mailing list