include/svx/gallery1.hxx | 2 svx/qa/unit/gallery/test_gallery.cxx | 4 + svx/source/gallery2/galbrws1.cxx | 77 ++++++++++++++++++----------------- svx/source/inc/galbrws1.hxx | 2 4 files changed, 46 insertions(+), 39 deletions(-)
New commits: commit 3843658c92dc5e66eaad3eae6ab5aa0bcd88bd1a Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Sat Sep 7 20:21:06 2024 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Sep 9 12:00:27 2024 +0200 enforce null checking of AcquireTheme return Change-Id: I184603be25be734ec377439622872406ef74898a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173026 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173065 diff --git a/include/svx/gallery1.hxx b/include/svx/gallery1.hxx index 97e5f4569a9a..c889435568a3 100644 --- a/include/svx/gallery1.hxx +++ b/include/svx/gallery1.hxx @@ -132,7 +132,7 @@ public: void RenameTheme( const OUString& rOldName, const OUString& rNewName ); bool RemoveTheme( const OUString& rThemeName ); - GalleryTheme* AcquireTheme( std::u16string_view rThemeName, SfxListener& rListener ); + SAL_RET_MAYBENULL GalleryTheme* AcquireTheme( std::u16string_view rThemeName, SfxListener& rListener ); void ReleaseTheme( GalleryTheme* pTheme, SfxListener& rListener ); public: diff --git a/svx/qa/unit/gallery/test_gallery.cxx b/svx/qa/unit/gallery/test_gallery.cxx index 7e2df25e14cb..79f0d85c08e8 100644 --- a/svx/qa/unit/gallery/test_gallery.cxx +++ b/svx/qa/unit/gallery/test_gallery.cxx @@ -306,6 +306,7 @@ void GalleryObjTest::TestInsertGalleryObject() // Insert Objects Into Theme GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener); + CPPUNIT_ASSERT(pGalleryTheme); CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0), pGalleryTheme->GetObjectCount()); @@ -352,6 +353,7 @@ void GalleryObjTest::TestRemoveGalleryObject() // Insert Objects Into Theme GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener); + CPPUNIT_ASSERT(pGalleryTheme); CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0), pGalleryTheme->GetObjectCount()); @@ -408,6 +410,7 @@ void GalleryObjTest::TestChangePositionGalleryObject() // Insert Objects Into Theme GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener); + CPPUNIT_ASSERT(pGalleryTheme); CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0), pGalleryTheme->GetObjectCount()); @@ -469,6 +472,7 @@ void GalleryObjTest::TestGetThemeNameFromGalleryTheme() SfxApplication::GetOrCreate(); GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener); + CPPUNIT_ASSERT(pGalleryTheme); CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0), pGalleryTheme->GetObjectCount()); diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx index 51dfd90d4a2c..f17bf7871917 100644 --- a/svx/source/gallery2/galbrws1.cxx +++ b/svx/source/gallery2/galbrws1.cxx @@ -359,13 +359,14 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) { if (rIdent == u"update") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); - - SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<VclAbstractDialog> aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), pTheme)); + if (GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener )) + { + SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); + ScopedVclPtr<VclAbstractDialog> aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), pTheme)); - aActualizeProgress->Execute(); - mpGallery->ReleaseTheme( pTheme, maLocalListener ); + aActualizeProgress->Execute(); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); + } } else if (rIdent == u"delete") { @@ -376,45 +377,47 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) } else if (rIdent == u"rename") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); - const OUString aOldName( pTheme->GetName() ); - - SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractTitleDialog> aDlg(pFact->CreateTitleDialog(mxThemes.get(), aOldName)); - - if( aDlg->Execute() == RET_OK ) + if (GalleryTheme* pTheme = mpGallery->AcquireTheme(GetSelectedTheme(), maLocalListener)) { - const OUString aNewName( aDlg->GetTitle() ); + const OUString aOldName( pTheme->GetName() ); + + SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); + ScopedVclPtr<AbstractTitleDialog> aDlg(pFact->CreateTitleDialog(mxThemes.get(), aOldName)); - if( !aNewName.isEmpty() && ( aNewName != aOldName ) ) + if( aDlg->Execute() == RET_OK ) { - OUString aName( aNewName ); - sal_uInt16 nCount = 0; + const OUString aNewName( aDlg->GetTitle() ); - while( mpGallery->HasTheme( aName ) && ( nCount++ < 16000 ) ) + if( !aNewName.isEmpty() && ( aNewName != aOldName ) ) { - aName = aNewName + " " + OUString::number( nCount ); - } + OUString aName( aNewName ); + sal_uInt16 nCount = 0; - mpGallery->RenameTheme( aOldName, aName ); + while( mpGallery->HasTheme( aName ) && ( nCount++ < 16000 ) ) + { + aName = aNewName + " " + OUString::number( nCount ); + } + + mpGallery->RenameTheme( aOldName, aName ); + } } + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } - mpGallery->ReleaseTheme( pTheme, maLocalListener ); } else if (rIdent == u"assign") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); - - if (pTheme && !pTheme->IsReadOnly()) + if (GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener )) { + if (!pTheme->IsReadOnly()) + { + SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); + ScopedVclPtr<AbstractGalleryIdDialog> aDlg(pFact->CreateGalleryIdDialog(mxThemes.get(), pTheme)); + if( aDlg->Execute() == RET_OK ) + pTheme->SetId( aDlg->GetId(), true ); + } - SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractGalleryIdDialog> aDlg(pFact->CreateGalleryIdDialog(mxThemes.get(), pTheme)); - if( aDlg->Execute() == RET_OK ) - pTheme->SetId( aDlg->GetId(), true ); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } - - mpGallery->ReleaseTheme( pTheme, maLocalListener ); } else if (rIdent == u"properties") { commit 60be4fb9a81a7d896e0b21b8b74944150b76918f Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Sat Sep 7 18:03:51 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Sep 9 12:00:17 2024 +0200 svx: maLocalListner -> maLocalListener Change-Id: Ie9ba310fcc57f27bcdbeb8dcb9ca1e0ecb35df0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172998 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173064 diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx index 4b961203e887..51dfd90d4a2c 100644 --- a/svx/source/gallery2/galbrws1.cxx +++ b/svx/source/gallery2/galbrws1.cxx @@ -248,7 +248,7 @@ void GalleryBrowser1::ImplFillExchangeData( const GalleryTheme* pThm, ExchangeDa void GalleryBrowser1::ImplGetExecuteVector(std::vector<OUString>& o_aExec) { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListner ); + GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); if( !pTheme ) return; @@ -280,14 +280,14 @@ void GalleryBrowser1::ImplGetExecuteVector(std::vector<OUString>& o_aExec) o_aExec.emplace_back("properties"); - mpGallery->ReleaseTheme( pTheme, maLocalListner ); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } void GalleryBrowser1::ImplGalleryThemeProperties( std::u16string_view rThemeName, bool bCreateNew ) { DBG_ASSERT(!mpThemePropsDlgItemSet, "mpThemePropsDlgItemSet already set!"); mpThemePropsDlgItemSet.reset(new SfxItemSet( SfxGetpApp()->GetPool() )); - GalleryTheme* pTheme = mpGallery->AcquireTheme( rThemeName, maLocalListner ); + GalleryTheme* pTheme = mpGallery->AcquireTheme( rThemeName, maLocalListener ); ImplFillExchangeData( pTheme, *mpExchangeData ); @@ -337,7 +337,7 @@ void GalleryBrowser1::ImplEndGalleryThemeProperties(bool bCreateNew, sal_Int32 n } OUString aThemeName( mpExchangeData->pTheme->GetName() ); - mpGallery->ReleaseTheme( mpExchangeData->pTheme, maLocalListner ); + mpGallery->ReleaseTheme( mpExchangeData->pTheme, maLocalListener ); if ( bCreateNew && ( nRet != RET_OK ) ) { @@ -359,13 +359,13 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) { if (rIdent == u"update") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListner ); + GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); ScopedVclPtr<VclAbstractDialog> aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), pTheme)); aActualizeProgress->Execute(); - mpGallery->ReleaseTheme( pTheme, maLocalListner ); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } else if (rIdent == u"delete") { @@ -376,7 +376,7 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) } else if (rIdent == u"rename") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListner ); + GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); const OUString aOldName( pTheme->GetName() ); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); @@ -399,11 +399,11 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) mpGallery->RenameTheme( aOldName, aName ); } } - mpGallery->ReleaseTheme( pTheme, maLocalListner ); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } else if (rIdent == u"assign") { - GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListner ); + GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), maLocalListener ); if (pTheme && !pTheme->IsReadOnly()) { @@ -414,7 +414,7 @@ void GalleryBrowser1::ImplExecute(std::u16string_view rIdent) pTheme->SetId( aDlg->GetId(), true ); } - mpGallery->ReleaseTheme( pTheme, maLocalListner ); + mpGallery->ReleaseTheme( pTheme, maLocalListener ); } else if (rIdent == u"properties") { @@ -1497,7 +1497,7 @@ void GalleryBrowser1::FillThemeEntries() const GalleryThemeEntry* pThemeInfo = mpGallery->GetThemeInfo( i ); OUString aThemeName = pThemeInfo->GetThemeName(); //sal_uInt32 nId = pThemeInfo->GetId(); - if (GalleryTheme* pTheme = mpGallery->AcquireTheme(aThemeName, maLocalListner)) + if (GalleryTheme* pTheme = mpGallery->AcquireTheme(aThemeName, maLocalListener)) { sal_uInt32 nObjectCount = pTheme->GetObjectCount(); for (size_t nObject = 0; nObject < nObjectCount; ++nObject) @@ -1508,7 +1508,7 @@ void GalleryBrowser1::FillThemeEntries() maAllThemeEntries.push_back(ThemeEntry(aThemeName, aTitle, nObject)); } } - mpGallery->ReleaseTheme(pTheme, maLocalListner); + mpGallery->ReleaseTheme(pTheme, maLocalListener); } } maFoundThemeEntries.assign(maAllThemeEntries.begin(), maAllThemeEntries.end()); diff --git a/svx/source/inc/galbrws1.hxx b/svx/source/inc/galbrws1.hxx index 50cffa1ddd7b..2796bbcc2e72 100644 --- a/svx/source/inc/galbrws1.hxx +++ b/svx/source/inc/galbrws1.hxx @@ -135,7 +135,7 @@ private: css::uno::Reference<css::util::XURLTransformer> m_xTransformer; CharClass m_aCharacterClassficator; - SfxListener maLocalListner; + SfxListener maLocalListener; void ImplInsertThemeEntry(const GalleryThemeEntry* pEntry); static void ImplFillExchangeData(const GalleryTheme* pThm, ExchangeData& rData);