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 <[email protected]> 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() ) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
