[ooo-build-commit] .: 8 commits - sd/inc sd/source

Jan Holesovsky kendy at kemper.freedesktop.org
Wed Oct 6 07:09:57 PDT 2010


 sd/inc/FactoryIds.hxx                              |    3 
 sd/source/ui/app/strings.src                       |    4 
 sd/source/ui/dlg/PaneChildWindows.cxx              |   26 +++++
 sd/source/ui/inc/strings.hrc                       |    1 
 sd/source/ui/toolpanel/controls/DocumentHelper.cxx |   93 ++++++++++++++-------
 sd/source/ui/view/GraphicViewShellBase.cxx         |    2 
 sd/source/ui/view/ImpressViewShellBase.cxx         |    2 
 sd/source/ui/view/OutlineViewShellBase.cxx         |    2 
 sd/source/ui/view/PresentationViewShellBase.cxx    |    2 
 sd/source/ui/view/SlideSorterViewShellBase.cxx     |    2 
 sd/source/ui/view/ViewShellBase.cxx                |    2 
 11 files changed, 96 insertions(+), 43 deletions(-)

New commits:
commit 6cc67925d4212314b1bad84a874d32ff31129be4
Merge: b74214b... cf66dfd...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Oct 6 14:41:19 2010 +0200

    Merge branch 'master' of ssh://git.freedesktop.org/git/libreoffice/impress

commit b74214b6960cb1d42c4707b22580fc156427570d
Merge: 9e1376d... fb08d0f...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Oct 6 13:36:08 2010 +0200

    Merge commit 'ooo/OOO330_m9'

diff --cc sd/source/ui/dlg/PaneChildWindows.cxx
index 83c8178,3811532..3811532
mode 100644,100755..100644
--- a/sd/source/ui/dlg/PaneChildWindows.cxx
+++ b/sd/source/ui/dlg/PaneChildWindows.cxx
diff --cc sd/source/ui/toolpanel/controls/DocumentHelper.cxx
index 7267c97,2c29399..2c29399
mode 100644,100755..100644
--- a/sd/source/ui/toolpanel/controls/DocumentHelper.cxx
+++ b/sd/source/ui/toolpanel/controls/DocumentHelper.cxx
diff --cc sd/source/ui/view/GraphicViewShellBase.cxx
index 8026c94,88e7d42..88e7d42
mode 100644,100755..100644
--- a/sd/source/ui/view/GraphicViewShellBase.cxx
+++ b/sd/source/ui/view/GraphicViewShellBase.cxx
commit fb08d0fcf8c246885b98635081328a5ee02d5ba1
Merge: fa38c08... 081b8ba...
Author: obo <obo at openoffice.org>
Date:   Tue Sep 14 09:05:18 2010 +0200

    CWS-TOOLING: integrate CWS dba33i

commit fa38c086958435b8f645f672eb15f3c2bf929397
Merge: 29a7259... abae0df...
Author: obo <obo at openoffice.org>
Date:   Tue Sep 14 07:53:51 2010 +0200

    CWS-TOOLING: integrate CWS impress200

commit 081b8ba40497dca9d0d04f25829dcece4fc4c0af
Author: Frank Schoenheit [fs] <frank.schoenheit at oracle.com>
Date:   Fri Sep 3 13:48:56 2010 +0200

    dba33i: #i113788# ensure the resource framework activates the TaskPane when the respective window is activated (might happen when triggered by SFX, bypassing the resource framework)

diff --git a/sd/source/ui/dlg/PaneChildWindows.cxx b/sd/source/ui/dlg/PaneChildWindows.cxx
index 83c8178..3811532 100755
--- a/sd/source/ui/dlg/PaneChildWindows.cxx
+++ b/sd/source/ui/dlg/PaneChildWindows.cxx
@@ -37,6 +37,9 @@
 #include "strings.hrc"
 #include "sdresid.hxx"
 
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/drawing/framework/ResourceActivationMode.hpp>
+
 #include <sfx2/app.hxx>
 #include <sfx2/dockwin.hxx>
 #include <sfx2/bindings.hxx>
@@ -47,6 +50,9 @@ namespace sd {
 
 using ::com::sun::star::uno::Reference;
 using ::com::sun::star::drawing::framework::XResourceId;
+using ::com::sun::star::drawing::framework::XConfigurationController;
+using ::com::sun::star::drawing::framework::ResourceActivationMode_ADD;
+using ::com::sun::star::drawing::framework::ResourceActivationMode_REPLACE;
 
 SFX_IMPL_DOCKINGWINDOW(LeftPaneImpressChildWindow, SID_LEFT_PANE_IMPRESS)
 SFX_IMPL_DOCKINGWINDOW(LeftPaneDrawChildWindow, SID_LEFT_PANE_DRAW)
@@ -151,6 +157,26 @@ ToolPanelChildWindow::ToolPanelChildWindow( ::Window* i_pParentWindow, USHORT i_
     :PaneChildWindow( i_pParentWindow, i_nId, i_pBindings, i_pChildWindowInfo,
         FLT_TOOL_PANEL_DOCKING_WINDOW, STR_RIGHT_PANE_TITLE, SFX_ALIGN_RIGHT )
 {
+    // just in case this window has been created by SFX, instead our resource framework: Ensure that the resource framework
+    // activates the task pane, so it is really filled with content (in opposite to the other SFX applications, the
+    // child window registered for SID_TASKPANE is not responsible for its content, but here in SD, it's the ToolPanelViewShell
+    // which has this responsibility. And this view shell is created implicitly via the resource framework.)
+    // #i113788# / 2010-09-03 / frank.schoenheit at oracle.com
+    SfxDockingWindow* pDockingWindow = dynamic_cast< SfxDockingWindow* >( GetWindow() );
+    ViewShellBase* pViewShellBase = ViewShellBase::GetViewShellBase( pDockingWindow->GetBindings().GetDispatcher()->GetFrame() );
+    ENSURE_OR_RETURN_VOID( pViewShellBase != NULL, "ToolPanelChildWindow::ToolPanelChildWindow: no view shell access!" );
+
+    const ::boost::shared_ptr< framework::FrameworkHelper > pFrameworkHelper( framework::FrameworkHelper::Instance( *pViewShellBase ) );
+    ENSURE_OR_RETURN_VOID( pFrameworkHelper.get(), "ToolPanelChildWindow::ToolPanelChildWindow: no framework helper for the view shell!" );
+    Reference<XConfigurationController> xConfigController( pFrameworkHelper->GetConfigurationController() );
+    ENSURE_OR_RETURN_VOID( xConfigController.is(), "ToolPanelChildWindow::ToolPanelChildWindow: no config controller!" );
+    xConfigController->requestResourceActivation(
+        framework::FrameworkHelper::CreateResourceId( framework::FrameworkHelper::msRightPaneURL ),
+        ResourceActivationMode_ADD );
+    xConfigController->requestResourceActivation(
+        framework::FrameworkHelper::CreateResourceId( framework::FrameworkHelper::msTaskPaneURL, framework::FrameworkHelper::msRightPaneURL ),
+        ResourceActivationMode_REPLACE
+    );
 }
 
 //----------------------------------------------------------------------------------------------------------------------
commit f41d675110bd76907bc950706df07b8da4a59bdd
Author: Frank Schoenheit [fs] <frank.schoenheit at sun.com>
Date:   Wed Sep 1 14:59:07 2010 +0200

    dba33i: #i111146# migrated all SFX-based applications to use named views

diff --git a/sd/inc/FactoryIds.hxx b/sd/inc/FactoryIds.hxx
old mode 100644
new mode 100755
index d3e38e3..65ff1c9
--- a/sd/inc/FactoryIds.hxx
+++ b/sd/inc/FactoryIds.hxx
@@ -42,8 +42,7 @@ enum ViewShellFactoryIds
     DRAW_FACTORY_ID = 1,
     SLIDE_SORTER_FACTORY_ID = 2,
     OUTLINE_FACTORY_ID = 3,
-    PRESENTATION_FACTORY_ID = 4,
-    PREVIEW_FACTORY_ID = 5
+    PRESENTATION_FACTORY_ID = 4
 };
 
 } // end of namespace sd
diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src
index 969a673..1ba0df6 100755
--- a/sd/source/ui/app/strings.src
+++ b/sd/source/ui/app/strings.src
@@ -86,10 +86,6 @@ String RID_APPTITLE
 {
     Text = "StarImpress 4.0" ;
 };
-String STR_DEFAULTVIEW
-{
-    Text [ en-US ] = "Default" ;
-};
 String STR_NULL
 {
     Text [ en-US ] = "None" ;
diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc
index 41b27b4..f46f85f 100755
--- a/sd/source/ui/inc/strings.hrc
+++ b/sd/source/ui/inc/strings.hrc
@@ -28,7 +28,6 @@
 #ifndef _SD_CFGID_HXX
 #include "cfgids.hxx"
 #endif
-#define STR_DEFAULTVIEW 		(RID_APP_START)
 #define STR_NULL				(RID_APP_START+3)
 #define STR_INSERTPAGE			(RID_APP_START+35)
 #define STR_INSERTLAYER 		(RID_APP_START+37)
diff --git a/sd/source/ui/view/GraphicViewShellBase.cxx b/sd/source/ui/view/GraphicViewShellBase.cxx
index 8026c94..88e7d42 100755
--- a/sd/source/ui/view/GraphicViewShellBase.cxx
+++ b/sd/source/ui/view/GraphicViewShellBase.cxx
@@ -62,7 +62,7 @@ SfxViewShell* __EXPORT GraphicViewShellBase::CreateInstance (
 void GraphicViewShellBase::RegisterFactory( USHORT nPrio )
 {
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"Default");
     InitFactory();
 }
 void GraphicViewShellBase::InitFactory()
diff --git a/sd/source/ui/view/ImpressViewShellBase.cxx b/sd/source/ui/view/ImpressViewShellBase.cxx
old mode 100644
new mode 100755
index c7742e5..50b8145
--- a/sd/source/ui/view/ImpressViewShellBase.cxx
+++ b/sd/source/ui/view/ImpressViewShellBase.cxx
@@ -62,7 +62,7 @@ SfxViewShell* __EXPORT ImpressViewShellBase::CreateInstance (
 void ImpressViewShellBase::RegisterFactory( USHORT nPrio )
 {
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"Default");
     InitFactory();
 }
 void ImpressViewShellBase::InitFactory()
diff --git a/sd/source/ui/view/OutlineViewShellBase.cxx b/sd/source/ui/view/OutlineViewShellBase.cxx
old mode 100644
new mode 100755
index 178661f..b0699d7
--- a/sd/source/ui/view/OutlineViewShellBase.cxx
+++ b/sd/source/ui/view/OutlineViewShellBase.cxx
@@ -60,7 +60,7 @@ SfxViewShell* __EXPORT OutlineViewShellBase::CreateInstance (
 void OutlineViewShellBase::RegisterFactory( USHORT nPrio )
 { 
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"Outline");
     InitFactory();
 }
 void OutlineViewShellBase::InitFactory()
diff --git a/sd/source/ui/view/PresentationViewShellBase.cxx b/sd/source/ui/view/PresentationViewShellBase.cxx
old mode 100644
new mode 100755
index 96ffefd..603510d
--- a/sd/source/ui/view/PresentationViewShellBase.cxx
+++ b/sd/source/ui/view/PresentationViewShellBase.cxx
@@ -70,7 +70,7 @@ SfxViewShell* __EXPORT PresentationViewShellBase::CreateInstance (
 void PresentationViewShellBase::RegisterFactory( USHORT nPrio )
 { 
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"FullScreenPresentation");
     InitFactory();
 }
 void PresentationViewShellBase::InitFactory()
diff --git a/sd/source/ui/view/SlideSorterViewShellBase.cxx b/sd/source/ui/view/SlideSorterViewShellBase.cxx
old mode 100644
new mode 100755
index 5be1a91..15405d2
--- a/sd/source/ui/view/SlideSorterViewShellBase.cxx
+++ b/sd/source/ui/view/SlideSorterViewShellBase.cxx
@@ -64,7 +64,7 @@ SfxViewShell* __EXPORT SlideSorterViewShellBase::CreateInstance (
 void SlideSorterViewShellBase::RegisterFactory( USHORT nPrio )
 { 
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"SlideSorter");
     InitFactory();
 }
 
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index 15f7b26..130ca8d 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -258,7 +258,7 @@ SfxViewShell* __EXPORT ViewShellBase::CreateInstance (
 void ViewShellBase::RegisterFactory( USHORT nPrio )
 {
     pFactory = new SfxViewFactory(
-        &CreateInstance,&InitFactory,nPrio,SdResId(STR_DEFAULTVIEW));
+        &CreateInstance,&InitFactory,nPrio,"Default");
     InitFactory();
 }
 void ViewShellBase::InitFactory()
commit abae0dfceff9815d8058390e28f1e84e875d6cea
Merge: 10146e0... eb13a72...
Author: Christian Lippka <christian.lippka at oracle.com>
Date:   Thu Aug 26 21:56:23 2010 +0200

    impress200: merge

commit eb13a724777c90652a7167ef6a200051020ec0d5
Author: Andre Fischer<andre.f.fischer <Andre Fischer<andre.f.fischer at oracle.com>
Date:   Thu Jan 1 00:00:00 1970 +0000

    impress200: #i101006# Prevent multiple master pages with identical names.

diff --git a/sd/source/ui/toolpanel/controls/DocumentHelper.cxx b/sd/source/ui/toolpanel/controls/DocumentHelper.cxx
index 7267c97..2c29399 100755
--- a/sd/source/ui/toolpanel/controls/DocumentHelper.cxx
+++ b/sd/source/ui/toolpanel/controls/DocumentHelper.cxx
@@ -503,45 +503,78 @@ SdPage* DocumentHelper::ProvideMasterPage (
     SdPage* pMasterPage,
     const ::boost::shared_ptr<std::vector<SdPage*> >& rpPageList)
 {
-    SdPage* pMasterPageInDocument = NULL;
-
-    // Get notes master page.
+    // Make sure that both the master page and its notes master exist
+    // in the source document.  If one is missing then return without
+    // making any changes.
+    if (pMasterPage == NULL)
+    {
+        // The caller should make sure that the master page is valid.
+        OSL_ASSERT(pMasterPage != NULL);
+        return NULL;
+    }
     SdDrawDocument* pSourceDocument = static_cast<SdDrawDocument*>(pMasterPage->GetModel());
+    if (pSourceDocument == NULL)
+        return NULL;
     SdPage* pNotesMasterPage = static_cast<SdPage*>(
-        pSourceDocument->GetMasterPage (pMasterPage->GetPageNum()+1));
-    if (pNotesMasterPage != NULL)
+        pSourceDocument->GetMasterPage(pMasterPage->GetPageNum()+1));
+    if (pNotesMasterPage == NULL)
+    {
+        // The model is not in a valid state.  Maybe a new master page
+        // is being (not finished yet) created?  Return without making
+        // any changes.
+        return NULL;
+    }
+
+    SdPage* pMasterPageInDocument = NULL;
+    // Search for a master page with the same name as the given one in
+    // the target document.
+    const XubString sMasterPageLayoutName (pMasterPage->GetLayoutName());
+    for (USHORT nIndex=0,nCount=rTargetDocument.GetMasterPageCount(); nIndex<nCount; ++nIndex)
     {
-        // When the given master page or its associated notes master page do
-        // not already belong to the document we have to create copies of
-        // them and insert them into the document. 
-
-        // Determine the position where the new master pages are inserted.
-        // By default they are inserted at the end.  When we assign to a
-        // master page then insert after the last of the (selected) pages.
-        USHORT nInsertionIndex = rTargetDocument.GetMasterPageCount();
-        if (rpPageList->front()->IsMasterPage())
+        SdPage* pCandidate = static_cast<SdPage*>(rTargetDocument.GetMasterPage(nIndex));
+        if (pCandidate!=NULL 
+            && sMasterPageLayoutName==pCandidate->GetLayoutName())
         {
-            nInsertionIndex = rpPageList->back()->GetPageNum();
+            // The requested master page does already exist in the
+            // target document, return it.
+            return pCandidate;
         }
+    }
+    
+    // The given master page does not already belong to the target
+    // document so we have to create copies and insert them into the
+    // targer document.
+
+    // Determine the position where the new master pages are inserted.
+    // By default they are inserted at the end.  When we assign to a
+    // master page then insert after the last of the (selected) pages.
+    USHORT nInsertionIndex = rTargetDocument.GetMasterPageCount();
+    if (rpPageList->front()->IsMasterPage())
+    {
+        nInsertionIndex = rpPageList->back()->GetPageNum();
+    }
 
-        if (pMasterPage->GetModel() != &rTargetDocument)
-        {
-            pMasterPageInDocument = AddMasterPage (rTargetDocument, pMasterPage, nInsertionIndex);
-            if( rTargetDocument.IsUndoEnabled() )
+    // Clone the master page.
+    if (pMasterPage->GetModel() != &rTargetDocument)
+    {
+        pMasterPageInDocument = AddMasterPage (rTargetDocument, pMasterPage, nInsertionIndex);
+        if( rTargetDocument.IsUndoEnabled() )
                 rTargetDocument.AddUndo(
                     rTargetDocument.GetSdrUndoFactory().CreateUndoNewPage(*pMasterPageInDocument));
-        }
-        else
-            pMasterPageInDocument = pMasterPage;
-        if (pNotesMasterPage->GetModel() != &rTargetDocument)
-        {
-            SdPage* pClonedNotesMasterPage 
-                = AddMasterPage (rTargetDocument, pNotesMasterPage, nInsertionIndex+1);
-            if( rTargetDocument.IsUndoEnabled() )
-                rTargetDocument.AddUndo(
-                    rTargetDocument.GetSdrUndoFactory().CreateUndoNewPage(*pClonedNotesMasterPage));
-        }
     }
+    else
+        pMasterPageInDocument = pMasterPage;
+
+    // Clone the notes master.
+    if (pNotesMasterPage->GetModel() != &rTargetDocument)
+    {
+        SdPage* pClonedNotesMasterPage 
+            = AddMasterPage (rTargetDocument, pNotesMasterPage, nInsertionIndex+1);
+        if( rTargetDocument.IsUndoEnabled() )
+            rTargetDocument.AddUndo(
+                rTargetDocument.GetSdrUndoFactory().CreateUndoNewPage(*pClonedNotesMasterPage));
+    }
+
     return pMasterPageInDocument;
 }
 


More information about the ooo-build-commit mailing list