summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2024-05-31 12:31:47 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2024-06-03 13:23:22 +0200
commitd7311b4f1ff824c74e9cef6cf12454115e5ccc0b (patch)
tree84aa7b3e3b79ff3b84c39566fcf37ce75696fb1a /sd
parentc2f9689cd489f44122b50d7c0d7841c47381df99 (diff)
sd: use SAL_RET_MAYBENULL in GetViewFrame()
Change-Id: If895a550fb2404f1a7cfcc4fb427674a3f6e5fc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168287 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/app/sdmod1.cxx39
-rw-r--r--sd/source/ui/dlg/LayerTabBar.cxx53
-rw-r--r--sd/source/ui/dlg/sdtreelb.cxx9
-rw-r--r--sd/source/ui/func/fuinsert.cxx6
-rw-r--r--sd/source/ui/inc/ViewShell.hxx2
-rw-r--r--sd/source/ui/slideshow/slideshow.cxx8
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlotManager.cxx26
-rw-r--r--sd/source/ui/table/tablefunction.cxx15
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx4
-rw-r--r--sd/source/ui/view/ViewShellImplementation.cxx11
-rw-r--r--sd/source/ui/view/drviews5.cxx4
-rw-r--r--sd/source/ui/view/drviews7.cxx6
-rw-r--r--sd/source/ui/view/grviewsh.cxx4
13 files changed, 118 insertions, 69 deletions
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index 023e44a7c1e6..ea2b09e3f285 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -294,26 +294,27 @@ bool SdModule::OutlineToImpress(SfxRequest const & rRequest)
// AutoLayouts have to be finished
pDoc->StopWorkStartupDelay();
- SfxViewFrame* pViewFrame = pViewSh->GetViewFrame();
-
- // When the view frame has not been just created we have
- // to switch synchronously to the outline view.
- // (Otherwise the request will be ignored anyway.)
- ::sd::ViewShellBase* pBase
- = dynamic_cast< ::sd::ViewShellBase*>(pViewFrame->GetViewShell());
- if (pBase != nullptr)
+ if (SfxViewFrame* pViewFrame = pViewSh->GetViewFrame())
{
- std::shared_ptr<FrameworkHelper> pHelper (
- FrameworkHelper::Instance(*pBase));
- pHelper->RequestView(
- FrameworkHelper::msOutlineViewURL,
- FrameworkHelper::msCenterPaneURL);
-
- pHelper->RunOnResourceActivation(
- FrameworkHelper::CreateResourceId(
- FrameworkHelper::msOutlineViewURL,
- FrameworkHelper::msCenterPaneURL),
- OutlineToImpressFinalizer(*pBase, *pDoc, pBytes));
+ // When the view frame has not been just created we have
+ // to switch synchronously to the outline view.
+ // (Otherwise the request will be ignored anyway.)
+ ::sd::ViewShellBase* pBase
+ = dynamic_cast< ::sd::ViewShellBase*>(pViewFrame->GetViewShell());
+ if (pBase != nullptr)
+ {
+ std::shared_ptr<FrameworkHelper> pHelper (
+ FrameworkHelper::Instance(*pBase));
+ pHelper->RequestView(
+ FrameworkHelper::msOutlineViewURL,
+ FrameworkHelper::msCenterPaneURL);
+
+ pHelper->RunOnResourceActivation(
+ FrameworkHelper::CreateResourceId(
+ FrameworkHelper::msOutlineViewURL,
+ FrameworkHelper::msCenterPaneURL),
+ OutlineToImpressFinalizer(*pBase, *pDoc, pBytes));
+ }
}
}
}
diff --git a/sd/source/ui/dlg/LayerTabBar.cxx b/sd/source/ui/dlg/LayerTabBar.cxx
index 324a9bd36ad9..aba77bd9501c 100644
--- a/sd/source/ui/dlg/LayerTabBar.cxx
+++ b/sd/source/ui/dlg/LayerTabBar.cxx
@@ -144,8 +144,11 @@ bool LayerTabBar::IsRealNameOfStandardLayer(std::u16string_view rName)
void LayerTabBar::Select()
{
- SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
- pDispatcher->Execute(SID_SWITCHLAYER, SfxCallMode::SYNCHRON);
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+ pDispatcher->Execute(SID_SWITCHLAYER, SfxCallMode::SYNCHRON);
+ }
}
void LayerTabBar::MouseMove(const MouseEvent &rMEvt)
@@ -244,10 +247,13 @@ void LayerTabBar::MouseButtonDown(const MouseEvent& rMEvt)
sal_uInt16 aTabId = GetPageId( PixelToLogic(aPosPixel) );
if (aTabId == 0)
{
- SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
- pDispatcher->Execute(SID_INSERTLAYER, SfxCallMode::SYNCHRON);
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+ pDispatcher->Execute(SID_INSERTLAYER, SfxCallMode::SYNCHRON);
- bSetPageID=true;
+ bSetPageID=true;
+ }
}
else if (rMEvt.IsMod2())
{
@@ -348,8 +354,11 @@ void LayerTabBar::DoubleClick()
{
if (GetCurPageId() != 0)
{
- SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
- pDispatcher->Execute( SID_MODIFYLAYER, SfxCallMode::SYNCHRON );
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+ pDispatcher->Execute( SID_MODIFYLAYER, SfxCallMode::SYNCHRON );
+ }
}
}
@@ -400,8 +409,11 @@ void LayerTabBar::Command(const CommandEvent& rCEvt)
if ( rCEvt.GetCommand() == CommandEventId::ContextMenu )
{
BringLayerObjectsToAttention();
- SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
- pDispatcher->ExecutePopup(u"layertab"_ustr);
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+ pDispatcher->ExecutePopup(u"layertab"_ustr);
+ }
}
}
@@ -442,12 +454,15 @@ TabBarAllowRenamingReturnCode LayerTabBar::AllowRenaming()
if (aNewName.isEmpty() ||
(rLayerAdmin.GetLayer( aNewName ) && aLayerName != aNewName) )
{
- // Name already exists.
- std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(pDrViewSh->GetViewFrame()->GetFrameWeld(),
- VclMessageType::Warning, VclButtonsType::Ok,
- SdResId(STR_WARN_NAME_DUPLICATE)));
- xWarn->run();
- bOK = false;
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ // Name already exists.
+ std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(pFrame->GetFrameWeld(),
+ VclMessageType::Warning, VclButtonsType::Ok,
+ SdResId(STR_WARN_NAME_DUPLICATE)));
+ xWarn->run();
+ bOK = false;
+ }
}
if (bOK)
@@ -513,9 +528,11 @@ void LayerTabBar::ActivatePage()
{
if (pDrViewSh!=nullptr)
{
-
- SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
- pDispatcher->Execute(SID_SWITCHLAYER, SfxCallMode::ASYNCHRON);
+ if (SfxViewFrame* pFrame = pDrViewSh->GetViewFrame())
+ {
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+ pDispatcher->Execute(SID_SWITCHLAYER, SfxCallMode::ASYNCHRON);
+ }
}
}
diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx
index f569febe0a2f..7eb476cfb48b 100644
--- a/sd/source/ui/dlg/sdtreelb.cxx
+++ b/sd/source/ui/dlg/sdtreelb.cxx
@@ -1122,9 +1122,12 @@ void SdPageObjsTLV::SetViewFrame(const SfxViewFrame* pViewFrame)
{
if (sd::ViewShellBase* pBase = sd::ViewShellBase::GetViewShellBase(pViewFrame))
{
- std::shared_ptr<sd::ViewShell> xViewShell = pBase->GetMainViewShell();
- SAL_WARN_IF(!xViewShell, "sd", "null pBaseViewFrame");
- const css::uno::Reference< css::frame::XFrame > xFrame = xViewShell ? xViewShell->GetViewFrame()->GetFrame().GetFrameInterface() : nullptr;
+ css::uno::Reference< css::frame::XFrame > xFrame;
+ if (std::shared_ptr<sd::ViewShell> xViewShell = pBase->GetMainViewShell())
+ {
+ if (SfxViewFrame* pFrame = xViewShell->GetViewFrame())
+ xFrame = pFrame->GetFrame().GetFrameInterface();
+ }
m_xAccel->init(::comphelper::getProcessComponentContext(), xFrame);
}
}
diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index 55dfa5cf105d..693ae65f14c4 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -725,7 +725,11 @@ void FuInsertAVMedia::DoExecute( SfxRequest& rReq )
if( mpWindow )
mpWindow->EnterWait();
- css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(mpViewShell->GetViewFrame()->GetFrame().GetFrameInterface(), css::uno::UNO_QUERY);
+ SfxViewFrame* pFrame = mpViewShell->GetViewFrame();
+ if (!pFrame)
+ return;
+
+ css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(pFrame->GetFrame().GetFrameInterface(), css::uno::UNO_QUERY);
rtl::Reference<avmedia::PlayerListener> xPlayerListener(new avmedia::PlayerListener(
[xDispatchProvider, aURL, bLink](const css::uno::Reference<css::media::XPlayer>& rPlayer){
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
index 9e5e8e068160..b848593458a6 100644
--- a/sd/source/ui/inc/ViewShell.hxx
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -148,7 +148,7 @@ public:
SdDrawDocument* GetDoc() const;
- SD_DLLPUBLIC SfxViewFrame* GetViewFrame() const;
+ SAL_RET_MAYBENULL SD_DLLPUBLIC SfxViewFrame* GetViewFrame() const;
/** The active window is usually the mpContentWindow. When there is a
show running then the active window is a ShowWindow.
diff --git a/sd/source/ui/slideshow/slideshow.cxx b/sd/source/ui/slideshow/slideshow.cxx
index f7c6cd0f0915..047fa95c27f9 100644
--- a/sd/source/ui/slideshow/slideshow.cxx
+++ b/sd/source/ui/slideshow/slideshow.cxx
@@ -638,10 +638,14 @@ WorkWindow *SlideShow::GetWorkWindow()
PresentationViewShell* pShell = dynamic_cast<PresentationViewShell*>(mpFullScreenViewShellBase->GetMainViewShell().get());
- if( !pShell || !pShell->GetViewFrame() )
+ if( !pShell)
return nullptr;
- return dynamic_cast<WorkWindow*>(pShell->GetViewFrame()->GetFrame().GetWindow().GetParent());
+ SfxViewFrame* pFrame = pShell->GetViewFrame();
+ if (!pFrame)
+ return nullptr;
+
+ return dynamic_cast<WorkWindow*>(pFrame->GetFrame().GetWindow().GetParent());
}
bool SlideShow::IsExitAfterPresenting() const
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index f71244c1baef..de8f18c8aac2 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -174,22 +174,28 @@ void SlotManager::FuTemporary (SfxRequest& rRequest)
case SID_SLIDE_TRANSITIONS_PANEL:
{
// First make sure that the sidebar is visible
- pShell->GetViewFrame()->ShowChildWindow(SID_SIDEBAR);
- ::sfx2::sidebar::Sidebar::ShowPanel(
- u"SdSlideTransitionPanel",
- pShell->GetViewFrame()->GetFrame().GetFrameInterface());
- rRequest.Ignore ();
+ if (SfxViewFrame* pFrame = pShell->GetViewFrame())
+ {
+ pFrame->ShowChildWindow(SID_SIDEBAR);
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ u"SdSlideTransitionPanel",
+ pFrame->GetFrame().GetFrameInterface());
+ rRequest.Ignore ();
+ }
break;
}
case SID_MASTER_SLIDES_PANEL:
{
// First make sure that the sidebar is visible
- pShell->GetViewFrame()->ShowChildWindow(SID_SIDEBAR);
- ::sfx2::sidebar::Sidebar::ShowPanel(
- u"SdAllMasterPagesPanel",
- pShell->GetViewFrame()->GetFrame().GetFrameInterface());
- rRequest.Ignore ();
+ if (SfxViewFrame* pFrame = pShell->GetViewFrame())
+ {
+ pFrame->ShowChildWindow(SID_SIDEBAR);
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ u"SdAllMasterPagesPanel",
+ pFrame->GetFrame().GetFrameInterface());
+ rRequest.Ignore ();
+ }
break;
}
diff --git a/sd/source/ui/table/tablefunction.cxx b/sd/source/ui/table/tablefunction.cxx
index 9c2a0db99f51..6f886c1becec 100644
--- a/sd/source/ui/table/tablefunction.cxx
+++ b/sd/source/ui/table/tablefunction.cxx
@@ -229,13 +229,16 @@ void DrawViewShell::FuTable(SfxRequest& rReq)
case SID_TABLEDESIGN:
{
// First make sure that the sidebar is visible
- GetViewFrame()->ShowChildWindow(SID_SIDEBAR);
- ::sfx2::sidebar::Sidebar::TogglePanel(
- u"SdTableDesignPanel",
- GetViewFrame()->GetFrame().GetFrameInterface());
+ if (SfxViewFrame* pViewFrame = GetViewFrame())
+ {
+ pViewFrame->ShowChildWindow(SID_SIDEBAR);
+ ::sfx2::sidebar::Sidebar::TogglePanel(
+ u"SdTableDesignPanel",
+ pViewFrame->GetFrame().GetFrameInterface());
- Cancel();
- rReq.Done ();
+ Cancel();
+ rReq.Done ();
+ }
break;
}
default:
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index 3672f5655bf6..efefb6287288 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -974,7 +974,9 @@ vcl::Window* ViewShellBase::GetViewWindow()
OUString ViewShellBase::RetrieveLabelFromCommand( const OUString& aCmdURL ) const
{
- OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(GetMainViewShell()->GetViewFrame()->GetFrame().GetFrameInterface()));
+ OUString aModuleName;
+ if (SfxViewFrame* pViewFrame = GetMainViewShell()->GetViewFrame())
+ aModuleName = vcl::CommandInfoProvider::GetModuleIdentifier(pViewFrame->GetFrame().GetFrameInterface());
auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(aCmdURL, aModuleName);
return vcl::CommandInfoProvider::GetLabelForCommand(aProperties);
}
diff --git a/sd/source/ui/view/ViewShellImplementation.cxx b/sd/source/ui/view/ViewShellImplementation.cxx
index b894d4e48ee8..b84ff8643ffc 100644
--- a/sd/source/ui/view/ViewShellImplementation.cxx
+++ b/sd/source/ui/view/ViewShellImplementation.cxx
@@ -107,10 +107,13 @@ void ViewShell::Implementation::ProcessModifyPageSlot (
// First make sure that the sidebar is visible
mrViewShell.GetDrawView()->SdrEndTextEdit();
mrViewShell.GetDrawView()->UnmarkAll();
- mrViewShell.GetViewFrame()->ShowChildWindow(SID_SIDEBAR);
- sfx2::sidebar::Sidebar::TogglePanel(
- u"SdLayoutsPanel",
- mrViewShell.GetViewFrame()->GetFrame().GetFrameInterface());
+ if (SfxViewFrame* pViewFrame = mrViewShell.GetViewFrame())
+ {
+ pViewFrame->ShowChildWindow(SID_SIDEBAR);
+ sfx2::sidebar::Sidebar::TogglePanel(
+ u"SdLayoutsPanel",
+ pViewFrame->GetFrame().GetFrameInterface());
+ }
break;
}
else if (pArgs->Count() == 4)
diff --git a/sd/source/ui/view/drviews5.cxx b/sd/source/ui/view/drviews5.cxx
index d1d9db893dc3..3488bc9bc6ff 100644
--- a/sd/source/ui/view/drviews5.cxx
+++ b/sd/source/ui/view/drviews5.cxx
@@ -114,7 +114,9 @@ void DrawViewShell::ArrangeGUIElements()
if ( pIPClient && pIPClient->IsObjectInPlaceActive() )
bClientActive = true;
- bool bInPlaceActive = GetViewFrame()->GetFrame().IsInPlace();
+ bool bInPlaceActive = false;
+ if (SfxViewFrame* pViewFrame = GetViewFrame())
+ bInPlaceActive = pViewFrame->GetFrame().IsInPlace();
if ( mbZoomOnPage && !bInPlaceActive && !bClientActive )
{
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index 2abe7214a794..9e1e676427a5 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -1648,9 +1648,11 @@ void DrawViewShell::GetModeSwitchingMenuState (SfxItemSet &rSet)
const bool bIsRunning = SlideShow::IsRunning(GetViewShellBase())
&& !SlideShow::IsInteractiveSlideshow(&GetViewShellBase()); // IASS
- if (GetViewFrame()->GetFrame().IsInPlace() || bIsRunning)
+ SfxViewFrame* pViewFrame = GetViewFrame();
+ const bool bIsInPlace = pViewFrame && pViewFrame->GetFrame().IsInPlace() ? true : false;
+ if (bIsInPlace || bIsRunning)
{
- if ( !GetViewFrame()->GetFrame().IsInPlace() )
+ if (!bIsInPlace)
{
rSet.ClearItem( SID_DRAWINGMODE );
rSet.DisableItem( SID_DRAWINGMODE );
diff --git a/sd/source/ui/view/grviewsh.cxx b/sd/source/ui/view/grviewsh.cxx
index b914b2da8cbd..92794299238c 100644
--- a/sd/source/ui/view/grviewsh.cxx
+++ b/sd/source/ui/view/grviewsh.cxx
@@ -70,7 +70,9 @@ void GraphicViewShell::ArrangeGUIElements()
if (mpLayerTabBar && mpLayerTabBar->IsVisible())
{
Size aSize = mpLayerTabBar->GetSizePixel();
- const Size aFrameSize (GetViewFrame()->GetWindow().GetOutputSizePixel());
+ Size aFrameSize;
+ if (SfxViewFrame* pViewFrame = GetViewFrame())
+ aFrameSize = pViewFrame->GetWindow().GetOutputSizePixel();
aSize.setHeight(GetParentWindow()->GetFont().GetFontHeight() + TAB_HEIGHT_MARGIN);
aSize.setWidth( aFrameSize.Width() );