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