desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx | 81 +++++-------- desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx | 5 desktop/source/deployment/gui/dp_gui_theextmgr.cxx | 4 3 files changed, 37 insertions(+), 53 deletions(-)
New commits: commit d176319c9aed7dd649fb3eb99ca77979375f06b3 Author: Michael Weghorn <[email protected]> AuthorDate: Thu Oct 16 13:10:34 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Oct 17 12:13:22 2025 +0200 extension mgr: Switch TheExtensionManager params/member to ref This makes clearer that they're always non-null. Change-Id: Ia41630f5c8851c5785e01d835b2f73309ae787b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192496 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx index b650f69c792d..9ed8e93db9a6 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx @@ -199,7 +199,7 @@ typedef std::shared_ptr< ExtensionCmd > TExtensionCmd; class ExtensionCmdQueue::Thread: public salhelper::Thread { public: - Thread(DialogHelper& rDialogHelper, TheExtensionManager* pManager, + Thread(DialogHelper& rDialogHelper, TheExtensionManager& rManager, uno::Reference<uno::XComponentContext> xContext); void addExtension( const OUString &rExtensionURL, @@ -240,7 +240,7 @@ private: std::queue< TExtensionCmd > m_queue; DialogHelper& m_rDialogHelper; - TheExtensionManager *m_pManager; + TheExtensionManager& m_rManager; const OUString m_sEnablingPackages; const OUString m_sDisablingPackages; @@ -574,14 +574,12 @@ void ProgressCmdEnv::pop() update_( uno::Any() ); // no message } - -ExtensionCmdQueue::Thread::Thread( DialogHelper& rDialogHelper, - TheExtensionManager *pManager, - uno::Reference< uno::XComponentContext > xContext ) : +ExtensionCmdQueue::Thread::Thread(DialogHelper& rDialogHelper, TheExtensionManager& rManager, + uno::Reference<uno::XComponentContext> xContext) : salhelper::Thread( "dp_gui_extensioncmdqueue" ), m_xContext(std::move( xContext )), m_rDialogHelper(rDialogHelper), - m_pManager( pManager ), + m_rManager(rManager), m_sEnablingPackages( DpResId( RID_STR_ENABLING_PACKAGES ) ), m_sDisablingPackages( DpResId( RID_STR_DISABLING_PACKAGES ) ), m_sAddingPackages( DpResId( RID_STR_ADDING_PACKAGES ) ), @@ -847,7 +845,7 @@ void ExtensionCmdQueue::Thread::_addExtension( ::rtl::Reference< ProgressCmdEnv } rCmdEnv->setWarnUser( bWarnUser ); - uno::Reference< deployment::XExtensionManager > xExtMgr = m_pManager->getExtensionManager(); + uno::Reference<deployment::XExtensionManager> xExtMgr = m_rManager.getExtensionManager(); uno::Reference< task::XAbortChannel > xAbortChannel( xExtMgr->createAbortChannel() ); OUString sTitle( m_sAddingPackages.replaceAll("%EXTENSION_NAME", sName)); @@ -875,7 +873,7 @@ void ExtensionCmdQueue::Thread::_addExtension( ::rtl::Reference< ProgressCmdEnv void ExtensionCmdQueue::Thread::_removeExtension( ::rtl::Reference< ProgressCmdEnv > const &rCmdEnv, const uno::Reference< deployment::XPackage > &xPackage ) { - uno::Reference< deployment::XExtensionManager > xExtMgr = m_pManager->getExtensionManager(); + uno::Reference<deployment::XExtensionManager> xExtMgr = m_rManager.getExtensionManager(); uno::Reference< task::XAbortChannel > xAbortChannel( xExtMgr->createAbortChannel() ); OUString sTitle( m_sRemovingPackages.replaceAll("%EXTENSION_NAME", @@ -962,7 +960,7 @@ void ExtensionCmdQueue::Thread::_enableExtension( ::rtl::Reference< ProgressCmdE if ( !xPackage.is() ) return; - uno::Reference< deployment::XExtensionManager > xExtMgr = m_pManager->getExtensionManager(); + uno::Reference<deployment::XExtensionManager> xExtMgr = m_rManager.getExtensionManager(); uno::Reference< task::XAbortChannel > xAbortChannel( xExtMgr->createAbortChannel() ); OUString sTitle( m_sEnablingPackages.replaceAll("%EXTENSION_NAME", @@ -985,7 +983,7 @@ void ExtensionCmdQueue::Thread::_disableExtension( ::rtl::Reference< ProgressCmd if ( !xPackage.is() ) return; - uno::Reference< deployment::XExtensionManager > xExtMgr = m_pManager->getExtensionManager(); + uno::Reference<deployment::XExtensionManager> xExtMgr = m_rManager.getExtensionManager(); uno::Reference< task::XAbortChannel > xAbortChannel( xExtMgr->createAbortChannel() ); OUString sTitle( m_sDisablingPackages.replaceAll("%EXTENSION_NAME", @@ -1008,7 +1006,7 @@ void ExtensionCmdQueue::Thread::_acceptLicense( ::rtl::Reference< ProgressCmdEnv if ( !xPackage.is() ) return; - uno::Reference< deployment::XExtensionManager > xExtMgr = m_pManager->getExtensionManager(); + uno::Reference<deployment::XExtensionManager> xExtMgr = m_rManager.getExtensionManager(); uno::Reference< task::XAbortChannel > xAbortChannel( xExtMgr->createAbortChannel() ); OUString sTitle( m_sAcceptLicense.replaceAll("%EXTENSION_NAME", @@ -1037,9 +1035,9 @@ void ExtensionCmdQueue::Thread::_insert(const TExtensionCmd& rExtCmd) m_wakeup.notify_all(); } -ExtensionCmdQueue::ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager* pManager, +ExtensionCmdQueue::ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager& rManager, const uno::Reference<uno::XComponentContext>& rContext) - : m_thread(new Thread(rDialogHelper, pManager, rContext)) + : m_thread(new Thread(rDialogHelper, rManager, rContext)) { m_thread->launch(); } diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx index 77e4af134f49..87a39c9ef646 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx @@ -60,7 +60,7 @@ public: /** Create an instance. */ - ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager* pManager, + ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager& rManager, const css::uno::Reference<css::uno::XComponentContext>& rContext); ~ExtensionCmdQueue(); diff --git a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx index 03552e8cc4b9..f2f5dd9c27f8 100644 --- a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx +++ b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx @@ -127,14 +127,14 @@ void TheExtensionManager::createDialog( const bool bCreateUpdDlg ) if ( !m_xUpdReqDialog ) { m_xUpdReqDialog.reset(new UpdateRequiredDialog(Application::GetFrameWeld(m_xParent), this)); - m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xUpdReqDialog, this, m_xContext)); + m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xUpdReqDialog, *this, m_xContext)); createPackageList(); } } else if ( !m_xExtMgrDialog ) { m_xExtMgrDialog = std::make_shared<ExtMgrDialog>(Application::GetFrameWeld(m_xParent), this); - m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xExtMgrDialog, this, m_xContext)); + m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xExtMgrDialog, *this, m_xContext)); m_xExtMgrDialog->setGetExtensionsURL( m_sGetExtensionsURL ); createPackageList(); } commit 3c20c8ed01bde299d3e40186edcd3a6021baeee3 Author: Michael Weghorn <[email protected]> AuthorDate: Thu Oct 16 12:51:25 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Oct 17 12:13:14 2025 +0200 extension mgr: Switch Thread::m_pDialogHelper to reference ... and rename to Thread::m_rDialogHelper accordingly. This makes clearer it's always non-null and allows to drop various superfluous null checks. Change-Id: I719e7a3761b1b751255077904265092c1d00e47b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192494 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx index bc414f8da4c4..b650f69c792d 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx @@ -199,9 +199,8 @@ typedef std::shared_ptr< ExtensionCmd > TExtensionCmd; class ExtensionCmdQueue::Thread: public salhelper::Thread { public: - Thread( DialogHelper *pDialogHelper, - TheExtensionManager *pManager, - uno::Reference< uno::XComponentContext > xContext ); + Thread(DialogHelper& rDialogHelper, TheExtensionManager* pManager, + uno::Reference<uno::XComponentContext> xContext); void addExtension( const OUString &rExtensionURL, const OUString &rRepository, @@ -240,7 +239,7 @@ private: uno::Reference< uno::XComponentContext > m_xContext; std::queue< TExtensionCmd > m_queue; - DialogHelper *m_pDialogHelper; + DialogHelper& m_rDialogHelper; TheExtensionManager *m_pManager; const OUString m_sEnablingPackages; @@ -576,12 +575,12 @@ void ProgressCmdEnv::pop() } -ExtensionCmdQueue::Thread::Thread( DialogHelper *pDialogHelper, +ExtensionCmdQueue::Thread::Thread( DialogHelper& rDialogHelper, TheExtensionManager *pManager, uno::Reference< uno::XComponentContext > xContext ) : salhelper::Thread( "dp_gui_extensioncmdqueue" ), m_xContext(std::move( xContext )), - m_pDialogHelper( pDialogHelper ), + m_rDialogHelper(rDialogHelper), m_pManager( pManager ), m_sEnablingPackages( DpResId( RID_STR_ENABLING_PACKAGES ) ), m_sDisablingPackages( DpResId( RID_STR_DISABLING_PACKAGES ) ), @@ -593,10 +592,8 @@ ExtensionCmdQueue::Thread::Thread( DialogHelper *pDialogHelper, m_bStopped( false ), m_bWorking( false ) { - OSL_ASSERT( pDialogHelper ); } - void ExtensionCmdQueue::Thread::addExtension( const OUString &rExtensionURL, const OUString &rRepository, const bool bWarnUser ) @@ -704,7 +701,7 @@ void ExtensionCmdQueue::Thread::execute() if ( nSize == 0 ) continue; - ::rtl::Reference< ProgressCmdEnv > currentCmdEnv( new ProgressCmdEnv( m_xContext, m_pDialogHelper, m_sDefaultCmd ) ); + ::rtl::Reference< ProgressCmdEnv > currentCmdEnv( new ProgressCmdEnv( m_xContext, &m_rDialogHelper, m_sDefaultCmd ) ); // Do not lock the following part with addExtension. addExtension may be called in the main thread. // If the message box "Do you want to install the extension (or similar)" is shown and then @@ -794,16 +791,13 @@ void ExtensionCmdQueue::Thread::execute() msg = ::comphelper::anyToString(exc); const SolarMutexGuard guard; - if (m_pDialogHelper) - m_pDialogHelper->incBusy(); + m_rDialogHelper.incBusy(); std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(currentCmdEnv->activeDialog(), VclMessageType::Warning, VclButtonsType::Ok, msg)); - if (m_pDialogHelper) - xBox->set_title(m_pDialogHelper->getFrameWeld()->get_title()); + xBox->set_title(m_rDialogHelper.getFrameWeld()->get_title()); xBox->run(); - if (m_pDialogHelper) - m_pDialogHelper->decBusy(); + m_rDialogHelper.decBusy(); //Continue with installation of the remaining extensions } { @@ -911,17 +905,16 @@ void ExtensionCmdQueue::Thread::_checkForUpdates( { const SolarMutexGuard guard; - if (m_pDialogHelper) - m_pDialogHelper->incBusy(); + m_rDialogHelper.incBusy(); std::vector< UpdateData > vData; - UpdateDialog aUpdateDialog(m_xContext, m_pDialogHelper ? m_pDialogHelper->getFrameWeld() : nullptr, std::move(vExtensionList), &vData); + UpdateDialog aUpdateDialog(m_xContext, m_rDialogHelper.getFrameWeld(), + std::move(vExtensionList), &vData); aUpdateDialog.notifyMenubar( true, false ); // prepare the checking, if there updates to be notified via menu bar icon bool bOk = aUpdateDialog.run() == RET_OK; - if (m_pDialogHelper) - m_pDialogHelper->decBusy(); + m_rDialogHelper.decBusy(); if (bOk && !vData.empty()) { @@ -938,12 +931,10 @@ void ExtensionCmdQueue::Thread::_checkForUpdates( short nDialogResult = RET_OK; if ( !dataDownload.empty() ) { - if (m_pDialogHelper) - m_pDialogHelper->incBusy(); - UpdateInstallDialog aDlg(m_pDialogHelper ? m_pDialogHelper->getFrameWeld() : nullptr, dataDownload, m_xContext); + m_rDialogHelper.incBusy(); + UpdateInstallDialog aDlg(m_rDialogHelper.getFrameWeld(), dataDownload, m_xContext); nDialogResult = aDlg.run(); - if (m_pDialogHelper) - m_pDialogHelper->decBusy(); + m_rDialogHelper.decBusy(); aUpdateDialog.notifyMenubar( false, true ); // Check, if there are still pending updates to be notified via menu bar icon } else @@ -954,8 +945,9 @@ void ExtensionCmdQueue::Thread::_checkForUpdates( { for (auto const& data : vData) { - if ( m_pDialogHelper && ( !data.sWebsiteURL.isEmpty() ) ) - m_pDialogHelper->openWebBrowser( data.sWebsiteURL, m_pDialogHelper->getFrameWeld()->get_title() ); + if (!data.sWebsiteURL.isEmpty()) + m_rDialogHelper.openWebBrowser(data.sWebsiteURL, + m_rDialogHelper.getFrameWeld()->get_title()); } } } @@ -980,8 +972,7 @@ void ExtensionCmdQueue::Thread::_enableExtension( ::rtl::Reference< ProgressCmdE try { xExtMgr->enableExtension( xPackage, xAbortChannel, rCmdEnv ); - if ( m_pDialogHelper ) - m_pDialogHelper->updatePackageInfo( xPackage ); + m_rDialogHelper.updatePackageInfo(xPackage); } catch ( const ::ucb::CommandAbortedException & ) {} @@ -1004,8 +995,7 @@ void ExtensionCmdQueue::Thread::_disableExtension( ::rtl::Reference< ProgressCmd try { xExtMgr->disableExtension( xPackage, xAbortChannel, rCmdEnv ); - if ( m_pDialogHelper ) - m_pDialogHelper->updatePackageInfo( xPackage ); + m_rDialogHelper.updatePackageInfo(xPackage); } catch ( const ::ucb::CommandAbortedException & ) {} @@ -1028,8 +1018,7 @@ void ExtensionCmdQueue::Thread::_acceptLicense( ::rtl::Reference< ProgressCmdEnv try { xExtMgr->checkPrerequisitesAndEnable( xPackage, xAbortChannel, rCmdEnv ); - if ( m_pDialogHelper ) - m_pDialogHelper->updatePackageInfo( xPackage ); + m_rDialogHelper.updatePackageInfo(xPackage); } catch ( const ::ucb::CommandAbortedException & ) {} @@ -1050,7 +1039,7 @@ void ExtensionCmdQueue::Thread::_insert(const TExtensionCmd& rExtCmd) ExtensionCmdQueue::ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager* pManager, const uno::Reference<uno::XComponentContext>& rContext) - : m_thread(new Thread(&rDialogHelper, pManager, rContext)) + : m_thread(new Thread(rDialogHelper, pManager, rContext)) { m_thread->launch(); } commit 21e26482a52122a9d03795ce1568cc2f82d88f6a Author: Michael Weghorn <[email protected]> AuthorDate: Thu Oct 16 12:43:40 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Oct 17 12:13:08 2025 +0200 extension mgr: Pass ExtensionCmdQueue ctor param by ref ... instead of pointer. The DialogHelper is always non-null. This will allow further simplification in upcoming commits. Change-Id: I1e12332ac0654e84ef9ce45cff40908f2a45f0ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192493 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx index fefc789ce611..bc414f8da4c4 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx @@ -1048,11 +1048,9 @@ void ExtensionCmdQueue::Thread::_insert(const TExtensionCmd& rExtCmd) m_wakeup.notify_all(); } - -ExtensionCmdQueue::ExtensionCmdQueue( DialogHelper * pDialogHelper, - TheExtensionManager *pManager, - const uno::Reference< uno::XComponentContext > &rContext ) - : m_thread( new Thread( pDialogHelper, pManager, rContext ) ) +ExtensionCmdQueue::ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager* pManager, + const uno::Reference<uno::XComponentContext>& rContext) + : m_thread(new Thread(&rDialogHelper, pManager, rContext)) { m_thread->launch(); } diff --git a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx index 3703d1e8c52c..77e4af134f49 100644 --- a/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx +++ b/desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx @@ -60,9 +60,8 @@ public: /** Create an instance. */ - ExtensionCmdQueue( DialogHelper * pDialogHelper, - TheExtensionManager *pManager, - const css::uno::Reference< css::uno::XComponentContext > & rContext); + ExtensionCmdQueue(DialogHelper& rDialogHelper, TheExtensionManager* pManager, + const css::uno::Reference<css::uno::XComponentContext>& rContext); ~ExtensionCmdQueue(); diff --git a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx index f942ee349c4b..03552e8cc4b9 100644 --- a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx +++ b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx @@ -127,14 +127,14 @@ void TheExtensionManager::createDialog( const bool bCreateUpdDlg ) if ( !m_xUpdReqDialog ) { m_xUpdReqDialog.reset(new UpdateRequiredDialog(Application::GetFrameWeld(m_xParent), this)); - m_xExecuteCmdQueue.reset( new ExtensionCmdQueue( m_xUpdReqDialog.get(), this, m_xContext ) ); + m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xUpdReqDialog, this, m_xContext)); createPackageList(); } } else if ( !m_xExtMgrDialog ) { m_xExtMgrDialog = std::make_shared<ExtMgrDialog>(Application::GetFrameWeld(m_xParent), this); - m_xExecuteCmdQueue.reset( new ExtensionCmdQueue( m_xExtMgrDialog.get(), this, m_xContext ) ); + m_xExecuteCmdQueue.reset(new ExtensionCmdQueue(*m_xExtMgrDialog, this, m_xContext)); m_xExtMgrDialog->setGetExtensionsURL( m_sGetExtensionsURL ); createPackageList(); }
