[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - 7 commits - desktop/source include/svx libreofficekit/qa sc/source sd/source sfx2/source svx/source sw/source

Marco Cecchetti marco.cecchetti at collabora.com
Sun Jun 12 12:06:58 UTC 2016


 desktop/source/lib/init.cxx                           |   29 ++--
 include/svx/svdpntv.hxx                               |    5 
 libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx   |   22 ++-
 sc/source/ui/view/tabvwshf.cxx                        |    2 
 sd/source/ui/func/fuinsert.cxx                        |  129 +++++++++++-------
 sd/source/ui/unoidl/unomodel.cxx                      |   11 +
 sd/source/ui/view/Outliner.cxx                        |   19 +-
 sfx2/source/control/unoctitm.cxx                      |   21 +-
 svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx |    5 
 svx/source/svdraw/svdpntv.cxx                         |    1 
 sw/source/uibase/uno/unotxdoc.cxx                     |    2 
 11 files changed, 164 insertions(+), 82 deletions(-)

New commits:
commit 8b3ffe0035527dda56c702930e17e5dcaeb1075b
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date:   Thu Jan 7 15:57:21 2016 +0100

    lool - page border shadow can be disabled
    
    Support for text documents and presentations.
    
    Added a command line option for gtktiledviewer:
    --hide-page-shadow.
    
    Reviewed on:
    	https://gerrit.libreoffice.org/21210
    
    (cherry picked from commit 6b7d41094d06bbb4c248927d02318cf1b5faba0a)
    
    Change-Id: I1e427693d7af40cb5731d1730ac5b7c486d45c29

diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx
index 366ead6..a5cd4f1 100644
--- a/include/svx/svdpntv.hxx
+++ b/include/svx/svdpntv.hxx
@@ -163,6 +163,7 @@ protected:
     SvtOptionsDrawinglayer      maDrawinglayerOpt;
 
     bool                        mbPageVisible : 1;
+    bool                        mbPageShadowVisible : 1;
     bool                        mbPageBorderVisible : 1;
     bool                        mbBordVisible : 1;
     bool                        mbGridVisible : 1;
@@ -373,6 +374,9 @@ public:
     /// Draw Page as a white area or not
     bool IsPageVisible() const { return mbPageVisible; }
 
+    /// Draw Page shadow or not
+    bool IsPageShadowVisible() const { return mbPageShadowVisible; }
+
     /// Draw Page as a white area or not
     bool IsPageBorderVisible() const { return mbPageBorderVisible; }
 
@@ -393,6 +397,7 @@ public:
 
     Color GetGridColor() const { return maGridColor;}
     void SetPageVisible(bool bOn = true) { mbPageVisible=bOn; InvalidateAllWin(); }
+    void SetPageShadowVisible(bool bOn = true) { mbPageShadowVisible=bOn; InvalidateAllWin(); }
     void SetPageBorderVisible(bool bOn = true) { mbPageBorderVisible=bOn; InvalidateAllWin(); }
     void SetBordVisible(bool bOn = true) { mbBordVisible=bOn; InvalidateAllWin(); }
     void SetGridVisible(bool bOn = true) { mbGridVisible=bOn; InvalidateAllWin(); }
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index d1befb8a..e0b06b7 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -34,8 +34,10 @@ static int help()
 {
     fprintf(stderr, "Usage: gtktiledviewer <absolute-path-to-libreoffice-install's-program-directory> <path-to-document> [<options> ... ]\n\n");
     fprintf(stderr, "Options:\n\n");
-    fprintf(stderr, "--hide-whitespace: Hide whitespace between pages in text documents.\n");
     fprintf(stderr, "--user-profile: Path to a custom user profile.\n");
+    fprintf(stderr, "--background-color <color>: Set custom background color, e.g. 'yellow'.\n");
+    fprintf(stderr, "--hide-page-shadow: Hide page/slide shadow.\n");
+    fprintf(stderr, "--hide-whitespace: Hide whitespace between pages in text documents.\n");
     return 1;
 }
 
@@ -513,12 +515,7 @@ static void createModelAndView(const char* pLOPath, const char* pDocPath, const
     for (size_t i = 0; i < rArguments.size(); ++i)
     {
         const std::string& rArgument = rArguments[i];
-        if (rArgument == "--hide-whitespace")
-        {
-            aTree.put(boost::property_tree::ptree::path_type(".uno:HideWhitespace/type", '/'), "boolean");
-            aTree.put(boost::property_tree::ptree::path_type(".uno:HideWhitespace/value", '/'), true);
-        }
-        else if (rArgument == "--background-color" && i + 1 < rArguments.size())
+        if (rArgument == "--background-color" && i + 1 < rArguments.size())
         {
             GdkRGBA color;
             gdk_rgba_parse(&color, rArguments[i + 1].c_str());
@@ -526,7 +523,18 @@ static void createModelAndView(const char* pLOPath, const char* pDocPath, const
             gtk_widget_override_background_color(gtk_widget_get_toplevel(pDocView), GTK_STATE_FLAG_NORMAL, &color);
             SAL_WNODEPRECATED_DECLARATIONS_POP
         }
+        else if (rArgument == "--hide-page-shadow")
+        {
+            aTree.put(boost::property_tree::ptree::path_type(".uno:ShowBorderShadow/type", '/'), "boolean");
+            aTree.put(boost::property_tree::ptree::path_type(".uno:ShowBorderShadow/value", '/'), false);
+        }
+        else if (rArgument == "--hide-whitespace")
+        {
+            aTree.put(boost::property_tree::ptree::path_type(".uno:HideWhitespace/type", '/'), "boolean");
+            aTree.put(boost::property_tree::ptree::path_type(".uno:HideWhitespace/value", '/'), true);
+        }
     }
+
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
     std::string aArguments = aStream.str();
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index 30dfd28..4b31e96 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -2359,7 +2359,7 @@ Size SdXImpressDocument::getDocumentSize()
     return Size(convertMm100ToTwip(aSize.getWidth()), convertMm100ToTwip(aSize.getHeight()));
 }
 
-void SdXImpressDocument::initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& /*rArguments*/)
+void SdXImpressDocument::initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& rArguments)
 {
     SolarMutexGuard aGuard;
 
@@ -2371,6 +2371,13 @@ void SdXImpressDocument::initializeForTiledRendering(const css::uno::Sequence<cs
 
     if (DrawViewShell* pViewShell = GetViewShell())
     {
+        DrawView* pDrawView = pViewShell->GetDrawView();
+        for (sal_Int32 i = 0; i < rArguments.getLength(); ++i)
+        {
+            const beans::PropertyValue& rValue = rArguments[i];
+            if (rValue.Name == ".uno:ShowBorderShadow" && rValue.Value.has<bool>())
+                pDrawView->SetPageShadowVisible(rValue.Value.get<bool>());
+        }
         // Disable map mode, so that it's possible to send mouse event coordinates
         // in logic units.
         if (sd::Window* pWindow = pViewShell->GetActiveWindow())
@@ -2383,7 +2390,7 @@ void SdXImpressDocument::initializeForTiledRendering(const css::uno::Sequence<cs
         // (whereas with async loading images start being loaded after
         //  we have painted the tile, resulting in an invalidate, followed
         //  by the tile being rerendered - which is wasteful and ugly).
-        pViewShell->GetDrawView()->SetSwapAsynchron(false);
+        pDrawView->SetSwapAsynchron(false);
     }
 }
 
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
index dcb8325..162a537 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
@@ -266,6 +266,11 @@ bool ViewObjectContactOfPageShadow::isPrimitiveVisible(const DisplayInfo& rDispl
         return false;
     }
 
+    if(!pSdrPageView->GetView().IsPageShadowVisible())
+    {
+        return false;
+    }
+
     // no page shadow for preview renderers
     if(GetObjectContact().IsPreviewRenderer())
     {
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 35f1211..34cc2e0 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -163,6 +163,7 @@ void SdrPaintView::ImpClearVars()
     mpItemBrowser=nullptr;
 #endif
     mbPageVisible=true;
+    mbPageShadowVisible=true;
     mbPageBorderVisible=true;
     mbBordVisible=true;
     mbGridVisible=true;
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index d08766a..3d3f224 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -3240,6 +3240,8 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css::
         const beans::PropertyValue& rValue = rArguments[i];
         if (rValue.Name == ".uno:HideWhitespace" && rValue.Value.has<bool>())
             aViewOption.SetHideWhitespaceMode(rValue.Value.get<bool>());
+        else if (rValue.Name == ".uno:ShowBorderShadow" && rValue.Value.has<bool>())
+            SwViewOption::SetAppearanceFlag(VIEWOPT_SHADOW , rValue.Value.get<bool>());
     }
     pViewShell->ApplyViewOptions(aViewOption);
 
commit 31d56845a084e151364e69b6f71b4880470938a6
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date:   Wed Jan 6 17:00:09 2016 +0100

    lool - search all - 2nd search does not work - fixed
    
    warning: now table are skipped because current implementation is not
    able to iterate through table cells and when a match occurs on the first
    cell the text object iterator stops working;
    
    Change-Id: I36ca4dabe88b0eb8fd89d3fe3dcc6951e5c03d0e
    Reviewed-on: https://gerrit.libreoffice.org/21166
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>
    (cherry picked from commit f4bf83f6670999b4ef2406fd6fc5fd4e78b3e1ed)
    
    lool - search all - unit test failure - solved
    
    Change-Id: I5a74dd60f61fc0fdb88f08383d579b14222aa55d
    Reviewed-on: https://gerrit.libreoffice.org/21366
    Reviewed-by: Marco Cecchetti <mrcekets at gmail.com>
    Tested-by: Marco Cecchetti <mrcekets at gmail.com>
    (cherry picked from commit 714bfcebd471b2dd67bca76fccbeddec762af0ec)

diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index a38bf68..ddf899e 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -35,6 +35,7 @@
 #include <sfx2/printer.hxx>
 #include <svx/svxerr.hxx>
 #include <svx/svdotext.hxx>
+#include <svx/svdotable.hxx>
 #include <editeng/unolingu.hxx>
 #include <svx/svditer.hxx>
 #include <comphelper/extract.hxx>
@@ -590,6 +591,8 @@ void Outliner::Initialize (bool bDirectionIsForward)
 
 bool Outliner::SearchAndReplaceAll()
 {
+    DetectChange();
+
     bool bRet = true;
     // Save the current position to be restored after having replaced all
     // matches.
@@ -615,12 +618,13 @@ bool Outliner::SearchAndReplaceAll()
     {
         // Go to beginning/end of document.
         maObjectIterator = ::sd::outliner::OutlinerContainer(this).begin();
-        // Switch to the current object only if it is a valid text object.
-        ::sd::outliner::IteratorPosition aNewPosition (*maObjectIterator);
-        if (IsValidTextObject (aNewPosition))
+        // Switch to the first object which contains the search string.
+        ProvideNextTextObject();
+        if( !mbStringFound  )
         {
-            maCurrentPosition = aNewPosition;
-            SetObject (maCurrentPosition);
+            RestoreStartPosition ();
+            mnStartPageIndex = (sal_uInt16)-1;
+            return true;
         }
 
         // Search/replace until the end of the document is reached.
@@ -1219,6 +1223,11 @@ bool Outliner::ShowWrapArroundDialog()
 
 bool Outliner::IsValidTextObject (const ::sd::outliner::IteratorPosition& rPosition)
 {
+    // TODO implement iteration through table cells and remove this workaround
+    ::sdr::table::SdrTableObj* pTableObject = dynamic_cast< ::sdr::table::SdrTableObj* >( rPosition.mxObject.get() );
+    if( pTableObject != nullptr )
+        return false;
+
     SdrTextObj* pObject = dynamic_cast< SdrTextObj* >( rPosition.mxObject.get() );
     return (pObject != nullptr) && pObject->HasText() && ! pObject->IsEmptyPresObj();
 }
commit 45cfdbddfc9e6358f11f309eecdbdf717dc2e410
Author: Henry Castro <hcastro at collabora.com>
Date:   Wed Dec 23 09:42:14 2015 -0400

    sd tiled rendering: enable map mode to center images
    
    In the tiled rendering case the map mode is disabled,
    and conversion pixel to logical is not computed.
    
    Change-Id: I0d54aaa897f0fe0df6e8b55334053dc66b6ea925
    Reviewed-on: https://gerrit.libreoffice.org/20912
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    (cherry picked from commit 2ae1ea973f98199a43e7495ebc4c5ea24e013ba9)

diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index 3de1594..cb4a899 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -169,7 +169,11 @@ void FuInsertGraphic::DoExecute( SfxRequest& rReq )
             Point aPos;
             Rectangle aRect(aPos, mpWindow->GetOutputSizePixel() );
             aPos = aRect.Center();
+            bool bMapModeWasEnabled(mpWindow->IsMapModeEnabled());
+            mpWindow->EnableMapMode(true);
             aPos = mpWindow->PixelToLogic(aPos);
+            mpWindow->EnableMapMode(bMapModeWasEnabled);
+
             SdrGrafObj* pGrafObj = mpView->InsertGraphic(aGraphic, nAction, aPos, pPickObj, nullptr);
 
             if(pGrafObj && bAsLink )
commit 4a386ec19e108c5dd94192f1d7ccbec16d8768ee
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Mon Dec 21 16:45:41 2015 +0200

    The sheet no. from .uno:Insert can also equal the current no. of tabs
    
    Change-Id: Ifd8655932670fca081af740899441857256ee029
    (cherry picked from commit c77928755af2ac86477eb069d48e081429193503)

diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index cc64215..6c8d7de 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -187,7 +187,7 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
 
                         aName = static_cast<const SfxStringItem*>(pNameItem)->GetValue();
                         nTabNr = static_cast<const SfxUInt16Item*>(pTabItem)->GetValue() - 1;
-                        if ( nTabNr < nTabCount )
+                        if ( nTabNr <= nTabCount )
                             bOk = InsertTable( aName, nTabNr );
                     }
 
commit fa47144e6f7714fe52efc2a435a952e7886a53bd
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Fri Dec 18 16:55:25 2015 +0200

    LOK: get feedback for all of the font/back color commands
    
    Change-Id: Id4aac707666420752b985bcfd03b5b9bb99f79f1
    (cherry picked from commit 3efce450f669417f14cee5610f1e9614f1315d0f)

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 4540b4d..05d49b0 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -688,9 +688,12 @@ static void doc_iniUnoCommands ()
     OUString sUnoCommands[] =
     {
         OUString(".uno:BackColor"),
+        OUString(".uno:BackgroundColor"),
         OUString(".uno:Bold"),
         OUString(".uno:CenterPara"),
+        OUString(".uno:CharBackColor"),
         OUString(".uno:CharFontName"),
+        OUString(".uno:Color"),
         OUString(".uno:DecrementIndent"),
         OUString(".uno:DefaultBullet"),
         OUString(".uno:DefaultNumbering"),
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index efb7026..c092067 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1101,8 +1101,11 @@ void SfxDispatchController_Impl::InterceptLOKStateChangeEvent(const SfxObjectShe
         aEvent.State >>= aTemplate;
         aBuffer.append(aTemplate.StyleName);
     }
-    else if (aEvent.FeatureURL.Path == "FontColor" ||
-             aEvent.FeatureURL.Path == "BackColor")
+    else if (aEvent.FeatureURL.Path == "BackColor" ||
+             aEvent.FeatureURL.Path == "BackgroundColor" ||
+             aEvent.FeatureURL.Path == "CharBackColor" ||
+             aEvent.FeatureURL.Path == "Color" ||
+             aEvent.FeatureURL.Path == "FontColor")
     {
         sal_Int32 nColor = -1;
         aEvent.State >>= nColor;
commit eeddaa8909db83a4f5a82ee006d5e3912dcb676e
Author: Henry Castro <hcastro at collabora.com>
Date:   Wed Dec 16 17:13:06 2015 -0400

    sd: enable insert graphic when UNO command has URL file argument
    
    When LOOL requires to insert a graphic, it uses UNO command ".uno:InsertGraphic",
    and the corresponding URL file image argument.
    
    However Impress, ignores URL file image argument, and by default
    pop up a dialog, so no image is inserted in LOOL.
    
    Change-Id: If1939247f5df0bb4e7daf8816a2306e34419ae2f
    Reviewed-on: https://gerrit.libreoffice.org/20747
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    (cherry picked from commit 348d7f6170d6ab83c8086f097aed7bdb1b64930a)

diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index 86634c8..3de1594 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -109,69 +109,96 @@ rtl::Reference<FuPoor> FuInsertGraphic::Create( ViewShell* pViewSh, ::sd::Window
     return xFunc;
 }
 
-void FuInsertGraphic::DoExecute( SfxRequest&  )
+void FuInsertGraphic::DoExecute( SfxRequest& rReq )
 {
-    SvxOpenGraphicDialog    aDlg(SdResId(STR_INSERTGRAPHIC));
+    OUString aFileName;
+    OUString aFilterName;
+    Graphic aGraphic;
 
-    if( aDlg.Execute() == GRFILTER_OK )
+    bool bAsLink = false;
+    int nError = GRFILTER_OPENERROR;
+
+    const SfxItemSet* pArgs = rReq.GetArgs();
+    const SfxPoolItem* pItem;
+
+    if ( pArgs &&
+         pArgs->GetItemState( SID_INSERT_GRAPHIC, true, &pItem ) == SfxItemState::SET )
     {
-        Graphic     aGraphic;
-        int nError = aDlg.GetGraphic(aGraphic);
-        if( nError == GRFILTER_OK )
+        aFileName = static_cast<const SfxStringItem*>(pItem)->GetValue();
+
+        if ( pArgs->GetItemState( FN_PARAM_FILTER, true, &pItem ) == SfxItemState::SET )
+            aFilterName = static_cast<const SfxStringItem*>(pItem)->GetValue();
+
+        if ( pArgs->GetItemState( FN_PARAM_1, true, &pItem ) == SfxItemState::SET )
+            bAsLink = static_cast<const SfxBoolItem*>(pItem)->GetValue();
+
+        nError = GraphicFilter::LoadGraphic( aFileName, aFilterName, aGraphic, &GraphicFilter::GetGraphicFilter() );
+    }
+    else
+    {
+        SvxOpenGraphicDialog    aDlg(SdResId(STR_INSERTGRAPHIC));
+
+        if( aDlg.Execute() == GRFILTER_OK )
         {
-            if( mpViewShell && dynamic_cast< DrawViewShell *>( mpViewShell ) !=  nullptr)
-            {
-                sal_Int8    nAction = DND_ACTION_COPY;
-                SdrObject* pPickObj;
-                bool bSelectionReplaced(false);
+            nError = aDlg.GetGraphic(aGraphic);
+            bAsLink = aDlg.IsAsLink();
+            aFileName = aDlg.GetPath();
+            aFilterName = aDlg.GetCurrentFilter();
+        }
+    }
 
-                if( ( pPickObj = mpView->GetSelectedSingleObject( mpView->GetPage() ) ) || ( pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ) ) )
-                {
-                    nAction = DND_ACTION_LINK;
-                }
-                else if(1 == mpView->GetMarkedObjectCount())
-                {
-                    pPickObj = mpView->GetMarkedObjectByIndex(0);
-                    nAction = DND_ACTION_MOVE;
-                    bSelectionReplaced = true;
-                }
+    if( nError == GRFILTER_OK )
+    {
+        if( mpViewShell && dynamic_cast< DrawViewShell *>( mpViewShell ) !=  nullptr)
+        {
+            sal_Int8    nAction = DND_ACTION_COPY;
+            SdrObject* pPickObj;
+            bool bSelectionReplaced(false);
 
-                Point aPos;
-                Rectangle aRect(aPos, mpWindow->GetOutputSizePixel() );
-                aPos = aRect.Center();
-                aPos = mpWindow->PixelToLogic(aPos);
-                SdrGrafObj* pGrafObj = mpView->InsertGraphic(aGraphic, nAction, aPos, pPickObj, nullptr);
+            if( ( pPickObj = mpView->GetSelectedSingleObject( mpView->GetPage() ) ) || ( pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ) ) )
+            {
+                nAction = DND_ACTION_LINK;
+            }
+            else if(1 == mpView->GetMarkedObjectCount())
+            {
+                pPickObj = mpView->GetMarkedObjectByIndex(0);
+                nAction = DND_ACTION_MOVE;
+                bSelectionReplaced = true;
+            }
 
-                if(pGrafObj && aDlg.IsAsLink())
-                {
-                    // really store as link only?
-                    if( SvtMiscOptions().ShowLinkWarningDialog() )
-                    {
-                        ScopedVclPtrInstance< SvxLinkWarningDialog > aWarnDlg(mpWindow,aDlg.GetPath());
-                        if( aWarnDlg->Execute() != RET_OK )
-                            return; // don't store as link
-                    }
+            Point aPos;
+            Rectangle aRect(aPos, mpWindow->GetOutputSizePixel() );
+            aPos = aRect.Center();
+            aPos = mpWindow->PixelToLogic(aPos);
+            SdrGrafObj* pGrafObj = mpView->InsertGraphic(aGraphic, nAction, aPos, pPickObj, nullptr);
 
-                    // store as link
-                    OUString aFltName(aDlg.GetCurrentFilter());
-                    OUString aPath(aDlg.GetPath());
-                    OUString aReferer;
-                    if (mpDocSh->HasName()) {
-                        aReferer = mpDocSh->GetMedium()->GetName();
-                    }
-                    pGrafObj->SetGraphicLink(aPath, aReferer, aFltName);
+            if(pGrafObj && bAsLink )
+            {
+                // really store as link only?
+                if( SvtMiscOptions().ShowLinkWarningDialog() )
+                {
+                    ScopedVclPtrInstance< SvxLinkWarningDialog > aWarnDlg(mpWindow, aFileName);
+                    if( aWarnDlg->Execute() != RET_OK )
+                        return; // don't store as link
                 }
 
-                if(bSelectionReplaced && pGrafObj)
-                {
-                    mpView->MarkObj(pGrafObj, mpView->GetSdrPageView());
+                // store as link
+                OUString aReferer;
+                if (mpDocSh->HasName()) {
+                    aReferer = mpDocSh->GetMedium()->GetName();
                 }
+                pGrafObj->SetGraphicLink(aFileName, aReferer, aFilterName);
+            }
+
+            if(bSelectionReplaced && pGrafObj)
+            {
+                mpView->MarkObj(pGrafObj, mpView->GetSdrPageView());
             }
         }
-        else
-        {
-            SdGRFFilter::HandleGraphicFilterError( (sal_uInt16)nError, GraphicFilter::GetGraphicFilter().GetLastError().nStreamError );
-        }
+    }
+    else
+    {
+        SdGRFFilter::HandleGraphicFilterError( (sal_uInt16)nError, GraphicFilter::GetGraphicFilter().GetLastError().nStreamError );
     }
 }
 
commit e7fa84567815fd6854e6dd12e34b06188ff61930
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Mon Nov 30 14:45:27 2015 +0200

    LOK: get state change feedback for more uno commands
    
    I've also ordered them alphabetically so we can read them easier.
    
    Change-Id: Ia332f1662a91de4a4068f0056a3d969fe978a744
    (cherry picked from commit d7676d40872ff3db5c6443983a3edad30e1a20d1)

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 7d0cbe9..4540b4d 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -687,23 +687,27 @@ static void doc_iniUnoCommands ()
 {
     OUString sUnoCommands[] =
     {
+        OUString(".uno:BackColor"),
         OUString(".uno:Bold"),
-        OUString(".uno:Italic"),
-        OUString(".uno:Underline"),
-        OUString(".uno:Strikeout"),
+        OUString(".uno:CenterPara"),
+        OUString(".uno:CharFontName"),
+        OUString(".uno:DecrementIndent"),
         OUString(".uno:DefaultBullet"),
         OUString(".uno:DefaultNumbering"),
+        OUString(".uno:FontColor"),
+        OUString(".uno:FontHeight"),
+        OUString(".uno:IncrementIndent"),
+        OUString(".uno:Italic"),
+        OUString(".uno:JustifyPara"),
+        OUString(".uno:OutlineFont"),
         OUString(".uno:LeftPara"),
-        OUString(".uno:CenterPara"),
         OUString(".uno:RightPara"),
-        OUString(".uno:JustifyPara"),
-        OUString(".uno:IncrementIndent"),
-        OUString(".uno:DecrementIndent"),
-        OUString(".uno:CharFontName"),
-        OUString(".uno:FontHeight"),
+        OUString(".uno:Shadowed"),
+        OUString(".uno:SubScript"),
+        OUString(".uno:SuperScript"),
+        OUString(".uno:Strikeout"),
         OUString(".uno:StyleApply"),
-        OUString(".uno:FontColor"),
-        OUString(".uno:BackColor")
+        OUString(".uno:Underline")
     };
 
     util::URL aCommandURL;
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index cb3050a..efb7026 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1064,15 +1064,19 @@ void SfxDispatchController_Impl::InterceptLOKStateChangeEvent(const SfxObjectShe
     aBuffer.append("=");
 
     if (aEvent.FeatureURL.Path == "Bold" ||
-        aEvent.FeatureURL.Path == "Italic" ||
-        aEvent.FeatureURL.Path == "Underline" ||
-        aEvent.FeatureURL.Path == "Strikeout" ||
+        aEvent.FeatureURL.Path == "CenterPara" ||
         aEvent.FeatureURL.Path == "DefaultBullet" ||
         aEvent.FeatureURL.Path == "DefaultNumbering" ||
+        aEvent.FeatureURL.Path == "Italic" ||
+        aEvent.FeatureURL.Path == "JustifyPara" ||
         aEvent.FeatureURL.Path == "LeftPara" ||
-        aEvent.FeatureURL.Path == "CenterPara" ||
+        aEvent.FeatureURL.Path == "OutlineFont" ||
         aEvent.FeatureURL.Path == "RightPara" ||
-        aEvent.FeatureURL.Path == "JustifyPara")
+        aEvent.FeatureURL.Path == "Shadowed" ||
+        aEvent.FeatureURL.Path == "SubScript" ||
+        aEvent.FeatureURL.Path == "SuperScript" ||
+        aEvent.FeatureURL.Path == "Strikeout" ||
+        aEvent.FeatureURL.Path == "Underline")
     {
         bool bTemp = false;
         aEvent.State >>= bTemp;


More information about the Libreoffice-commits mailing list