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();
     }

Reply via email to