vcl/inc/printdlg.hxx           |    7 ++
 vcl/source/window/printdlg.cxx |  120 ++++++++++++++++++++---------------------
 2 files changed, 65 insertions(+), 62 deletions(-)

New commits:
commit 1012fc824ede5f0ee6fd61434e1cfeef9f62252d
Author:     Mike Kaganski <[email protected]>
AuthorDate: Fri Feb 20 10:51:33 2026 +0500
Commit:     Mike Kaganski <[email protected]>
CommitDate: Fri Feb 20 07:52:41 2026 +0100

    Split toggle handler function per control
    
    Similar to commit 2f28a17f01526f748859ad76bf73cb41fdfa7d6d (Split handler
    function per control, 2025-11-14).
    
    Change-Id: I5f76b11d3e0c059fe0ebb024cd9d488ddf66f22a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199778
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/vcl/inc/printdlg.hxx b/vcl/inc/printdlg.hxx
index f2508e513542..2c352e1b992d 100644
--- a/vcl/inc/printdlg.hxx
+++ b/vcl/inc/printdlg.hxx
@@ -220,7 +220,12 @@ namespace vcl
         DECL_LINK( FocusOutHdl, weld::Widget&, void );
         DECL_LINK( SpinModifyHdl, weld::SpinButton&, void );
         DECL_LINK( MetricSpinModifyHdl, weld::MetricSpinButton&, void );
-        DECL_LINK( ToggleHdl, weld::Toggleable&, void );
+        DECL_LINK(TogglePreviewHdl, weld::Toggleable&, void);
+        DECL_LINK(ToggleBorderHdl, weld::Toggleable&, void);
+        DECL_LINK(ToggleSingleJobsHdl, weld::Toggleable&, void);
+        DECL_LINK(ToggleCollateHdl, weld::Toggleable&, void);
+        DECL_LINK(ToggleReverseOrderHdl, weld::Toggleable&, void);
+        DECL_LINK(ToggleBrochureHdl, weld::Toggleable&, void);
 
         DECL_LINK( UIOption_CheckHdl, weld::Toggleable&, void );
         DECL_LINK( UIOption_RadioHdl, weld::Toggleable&, void );
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index 90cc31070c94..69b83bed6a18 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -676,12 +676,12 @@ PrintDialog::PrintDialog(weld::Window* i_pWindow, 
std::shared_ptr<PrinterControl
     mxLastBtn->connect_clicked( LINK( this, PrintDialog, ClickHdl ) );
 
     // setup toggle hdl
-    mxReverseOrderBox->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
-    mxCollateBox->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
-    mxSingleJobsBox->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
-    mxBrochureBtn->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
-    mxPreviewBox->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
-    mxBorderCB->connect_toggled( LINK( this, PrintDialog, ToggleHdl ) );
+    mxReverseOrderBox->connect_toggled(LINK(this, PrintDialog, 
ToggleReverseOrderHdl));
+    mxCollateBox->connect_toggled(LINK(this, PrintDialog, ToggleCollateHdl));
+    mxSingleJobsBox->connect_toggled(LINK(this, PrintDialog, 
ToggleSingleJobsHdl));
+    mxBrochureBtn->connect_toggled(LINK(this, PrintDialog, ToggleBrochureHdl));
+    mxPreviewBox->connect_toggled(LINK(this, PrintDialog, TogglePreviewHdl));
+    mxBorderCB->connect_toggled(LINK(this, PrintDialog, ToggleBorderHdl));
 
     // setup select hdl
     mxPrinters->connect_changed(LINK(this, PrintDialog, SelectPrinterHdl));
@@ -1844,67 +1844,65 @@ PropertyValue* PrintDialog::getValueForWindow( 
weld::Widget* i_pWindow ) const
     return pVal;
 }
 
-IMPL_LINK(PrintDialog, ToggleHdl, weld::Toggleable&, rButton, void)
+IMPL_LINK_NOARG(PrintDialog, TogglePreviewHdl, weld::Toggleable&, void)
 {
-    if (&rButton == mxPreviewBox.get())
-    {
-        maUpdatePreviewIdle.Start();
-    }
-    else if( &rButton == mxBorderCB.get() )
-    {
-        updateNup();
-    }
-    else if (&rButton == mxSingleJobsBox.get())
-    {
-        maPController->setValue( u"SinglePrintJobs"_ustr,
-                                 Any( isSingleJobs() ) );
-        checkControlDependencies();
-    }
-    else if( &rButton == mxCollateBox.get() )
+    maUpdatePreviewIdle.Start();
+}
+
+IMPL_LINK_NOARG(PrintDialog, ToggleBorderHdl, weld::Toggleable&, void)
+{
+    updateNup();
+}
+
+IMPL_LINK_NOARG(PrintDialog, ToggleSingleJobsHdl, weld::Toggleable&, void)
+{
+    maPController->setValue(u"SinglePrintJobs"_ustr, Any(isSingleJobs()));
+    checkControlDependencies();
+}
+
+IMPL_LINK_NOARG(PrintDialog, ToggleCollateHdl, weld::Toggleable&, void)
+{
+    maPController->setValue(u"Collate"_ustr, Any(isCollate()));
+    checkControlDependencies();
+}
+
+IMPL_LINK_NOARG(PrintDialog, ToggleReverseOrderHdl, weld::Toggleable&, void)
+{
+    bool bChecked = mxReverseOrderBox->get_active();
+    maPController->setReversePrint(bChecked);
+    maPController->setValue(u"PrintReverse"_ustr, Any(bChecked));
+    maUpdatePreviewIdle.Start();
+}
+
+IMPL_LINK_NOARG(PrintDialog, ToggleBrochureHdl, weld::Toggleable&, void)
+{
+    PropertyValue* pVal = getValueForWindow(mxBrochureBtn.get());
+    if (pVal)
     {
-        maPController->setValue( u"Collate"_ustr,
-                                 Any( isCollate() ) );
-        checkControlDependencies();
+        bool bVal = mxBrochureBtn->get_active();
+        pVal->Value <<= bVal;
+
+        checkOptionalControlDependencies();
+
+        // update preview and page settings
+        maUpdatePreviewNoCacheIdle.Start();
     }
-    else if( &rButton == mxReverseOrderBox.get() )
+    if (mxBrochureBtn->get_active())
     {
-        bool bChecked = mxReverseOrderBox->get_active();
-        maPController->setReversePrint( bChecked );
-        maPController->setValue( u"PrintReverse"_ustr,
-                                 Any( bChecked ) );
-        maUpdatePreviewIdle.Start();
+        mxOrientationBox->set_sensitive(false);
+        mxOrientationBox->set_active(ORIENTATION_LANDSCAPE);
+        mxNupPagesBox->set_active(0);
+        updateNupFromPages();
+        showAdvancedControls(false);
+        enableNupControls(false);
     }
-    else if (&rButton == mxBrochureBtn.get())
+    else
     {
-        PropertyValue* pVal = getValueForWindow(mxBrochureBtn.get());
-        if( pVal )
-        {
-            bool bVal = mxBrochureBtn->get_active();
-            pVal->Value <<= bVal;
-
-            checkOptionalControlDependencies();
-
-            // update preview and page settings
-            maUpdatePreviewNoCacheIdle.Start();
-        }
-        if (mxBrochureBtn->get_active())
-        {
-            mxOrientationBox->set_sensitive( false );
-            mxOrientationBox->set_active( ORIENTATION_LANDSCAPE );
-            mxNupPagesBox->set_active( 0 );
-            updateNupFromPages();
-            showAdvancedControls( false );
-            enableNupControls( false );
-        }
-        else
-        {
-            mxOrientationBox->set_sensitive( true );
-            mxOrientationBox->set_active( ORIENTATION_AUTOMATIC );
-            updatePageSize(mxOrientationBox->get_active());
-            enableNupControls( true );
-            updateNupFromPages();
-        }
-
+        mxOrientationBox->set_sensitive(true);
+        mxOrientationBox->set_active(ORIENTATION_AUTOMATIC);
+        updatePageSize(mxOrientationBox->get_active());
+        enableNupControls(true);
+        updateNupFromPages();
     }
 }
 

Reply via email to