[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