cui/uiconfig/ui/optgeneralpage.ui | 4 - cui/uiconfig/ui/optmemorypage.ui | 2 cui/uiconfig/ui/select_persona_dialog.ui | 2 extras/source/glade/libreoffice-catalog.xml.in | 3 include/vcl/print.hxx | 2 vcl/inc/printdlg.hxx | 1 vcl/source/gdi/print3.cxx | 83 ++++++++++++++++++------- vcl/source/window/printdlg.cxx | 12 +++ vcl/uiconfig/ui/printdialog.ui | 20 +++++- 9 files changed, 100 insertions(+), 29 deletions(-)
New commits: commit 235941bcd0e59c2831d5bc28683119eb6a2fd982 Author: Caolán McNamara <[email protected]> Date: Mon May 20 11:25:41 2013 +0100 accidental hardcoding of %PRODUCTNAME as LibreOffice in some .ui files Change-Id: I1e6c2c1b64d8566b29c1a1510040aadbca2d977e diff --git a/cui/uiconfig/ui/optgeneralpage.ui b/cui/uiconfig/ui/optgeneralpage.ui index 0db876a..7958965 100644 --- a/cui/uiconfig/ui/optgeneralpage.ui +++ b/cui/uiconfig/ui/optgeneralpage.ui @@ -140,7 +140,7 @@ <property name="column_spacing">6</property> <child> <object class="GtkCheckButton" id="filedlg"> - <property name="label" translatable="yes">_Use LibreOffice dialogs</property> + <property name="label" translatable="yes">_Use %PRODUCTNAME dialogs</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -205,7 +205,7 @@ <property name="left_padding">12</property> <child> <object class="GtkCheckButton" id="printdlg"> - <property name="label" translatable="yes">Use LibreOffice _dialogs</property> + <property name="label" translatable="yes">Use %PRODUCTNAME _dialogs</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> diff --git a/cui/uiconfig/ui/optmemorypage.ui b/cui/uiconfig/ui/optmemorypage.ui index 3675e6c..d8c91b7 100644 --- a/cui/uiconfig/ui/optmemorypage.ui +++ b/cui/uiconfig/ui/optmemorypage.ui @@ -124,7 +124,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">_Use for LibreOffice</property> + <property name="label" translatable="yes">_Use for %PRODUCTNAME</property> <property name="use_underline">True</property> <property name="mnemonic_widget">graphiccache</property> </object> diff --git a/cui/uiconfig/ui/select_persona_dialog.ui b/cui/uiconfig/ui/select_persona_dialog.ui index 7db2004..84b1201 100644 --- a/cui/uiconfig/ui/select_persona_dialog.ui +++ b/cui/uiconfig/ui/select_persona_dialog.ui @@ -79,7 +79,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">First visit Firefox Themes (https://addons.mozilla.org/firefox/themes). Find the Theme you like, and want to choose for LibreOffice.</property> + <property name="label" translatable="yes">First visit Firefox Themes (https://addons.mozilla.org/firefox/themes). Find the Theme you like, and want to choose for %PRODUCTNAME.</property> <property name="wrap">True</property> <property name="max_width_chars">54</property> </object> commit f937ef20f57b306191f7583c2d47b5ad3f2a73ee Author: Caolán McNamara <[email protected]> Date: Mon May 20 11:00:19 2013 +0100 Related: fdo#61186 add a toggle to override the paper format We now need a mechanism to instruct the print dialog that we want to force printing to use the printer settings configured paper. Particularly useful for nup printing and brochures scenario 3: forcing printing to use the printer settings paper a file->printer settings->properties->paper set a paper size, ideally something not used in the test doc, e.g. Executive b file->print->page layout and set pages per sheet to 4 the auto selection for paper will be the first paper size in use, i.e. legal c flip to options and toggle "use only paper size from printer preferences" preview should reconfigure as "Executive" Change-Id: Ie224c252c2cb6c9ee21be5c54e470bca1c7eb0bb diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx index f40801e..40997dd 100644 --- a/include/vcl/print.hxx +++ b/include/vcl/print.hxx @@ -521,6 +521,8 @@ public: VCL_PLUGIN_PUBLIC void setLastPage( sal_Bool i_bLastPage ); SAL_DLLPRIVATE void setReversePrint( sal_Bool i_bReverse ); SAL_DLLPRIVATE bool getReversePrint() const; + SAL_DLLPRIVATE void setPapersizeFromSetup( sal_Bool i_bPapersizeFromSetup ); + SAL_DLLPRIVATE bool getPapersizeFromSetup() const; SAL_DLLPRIVATE void pushPropertiesToPrinter(); SAL_DLLPRIVATE void resetPaperToLastConfigured(); VCL_PLUGIN_PUBLIC void setJobState( com::sun::star::view::PrintableState ); diff --git a/vcl/inc/printdlg.hxx b/vcl/inc/printdlg.hxx index 30e5fe8..f879a63 100644 --- a/vcl/inc/printdlg.hxx +++ b/vcl/inc/printdlg.hxx @@ -175,6 +175,7 @@ namespace vcl public: CheckBox* mpToFileBox; CheckBox* mpCollateSingleJobsBox; + CheckBox* mpPapersizeFromSetup; OutputOptPage( VclBuilder* ); diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx index cea6bc3..7ea71cc 100644 --- a/vcl/source/gdi/print3.cxx +++ b/vcl/source/gdi/print3.cxx @@ -151,6 +151,7 @@ public: sal_Bool mbFirstPage; sal_Bool mbLastPage; sal_Bool mbReversePageOrder; + sal_Bool mbPapersizeFromSetup; view::PrintableState meJobState; vcl::PrinterController::MultiPageSetup maMultiPage; @@ -161,9 +162,6 @@ public: // set by user through printer properties subdialog of printer settings dialog Size maDefaultPageSize; - // Set by user through printer properties subdialog of print dialog. - // if set, pages are centered and trimmed onto the fixed page - Size maFixedPageSize; // set by user through printer properties subdialog of printer settings dialog sal_Int32 mnDefaultPaperBin; // Set by user through printer properties subdialog of print dialog. @@ -187,6 +185,7 @@ public: mbFirstPage( sal_True ), mbLastPage( sal_False ), mbReversePageOrder( sal_False ), + mbPapersizeFromSetup( sal_False ), meJobState( view::PrintableState_JOB_STARTED ), mpProgress( NULL ), mnDefaultPaperBin( -1 ), @@ -196,14 +195,14 @@ public: Size getRealPaperSize( const Size& i_rPageSize, bool bNoNUP ) const { - if( maFixedPageSize.Width() > 0 && maFixedPageSize.Height() > 0 ) - return maFixedPageSize; + if( mbPapersizeFromSetup ) + return maDefaultPageSize; if( maMultiPage.nRows * maMultiPage.nColumns > 1 && ! bNoNUP ) return maMultiPage.aPaperSize; return i_rPageSize; } bool isFixedPageSize() const - { return maFixedPageSize.Width() != 0 && maFixedPageSize.Height() != 0; } + { return mbPapersizeFromSetup; } PrinterController::PageSize modifyJobSetup( const Sequence< PropertyValue >& i_rProps, bool bNoNUP ); void resetPaperToLastConfigured(); }; @@ -407,6 +406,14 @@ void Printer::ImplPrintJob( const boost::shared_ptr<PrinterController>& i_pContr pController->setReversePrint( bReverse ); } + beans::PropertyValue* pPapersizeFromSetupVal = i_pController->getValue( OUString( "PapersizeFromSetup" ) ); + if( pPapersizeFromSetupVal ) + { + sal_Bool bPapersizeFromSetup = sal_False; + pPapersizeFromSetupVal->Value >>= bPapersizeFromSetup; + pController->setPapersizeFromSetup( bPapersizeFromSetup ); + } + // setup NUp printing from properties sal_Int32 nRows = i_pController->getIntProperty( OUString( "NUpRows" ), 1 ); sal_Int32 nCols = i_pController->getIntProperty( OUString( "NUpColumns" ), 1 ); @@ -766,7 +773,6 @@ void PrinterController::setPrinter( const boost::shared_ptr<Printer>& i_rPrinter mpImplData->maDefaultPageSize = mpImplData->mpPrinter->GetPaperSize(); mpImplData->mpPrinter->Pop(); mpImplData->mnFixedPaperBin = -1; - mpImplData->maFixedPageSize = Size(); } void PrinterController::resetPrinterOptions( bool i_bFileOutput ) @@ -797,19 +803,25 @@ bool PrinterController::setupPrinter( Window* i_pParent ) Size aNewPaperSize(mpImplData->mpPrinter->GetPaperSize()); if (bRet) { - // was papersize or bin overridden ? if so we need to take action - if( aNewPaperSize != aPaperSize ) + bool bInvalidateCache = false; + + // was papersize overridden ? if so we need to take action if we're + // configured to use the driver papersize + if (aNewPaperSize != mpImplData->maDefaultPageSize) { - mpImplData->maFixedPageSize = aNewPaperSize; + mpImplData->maDefaultPageSize = aNewPaperSize; + bInvalidateCache = getPapersizeFromSetup(); } + // was bin overridden ? if so we need to take action sal_uInt16 nNewPaperBin = mpImplData->mpPrinter->GetPaperBin(); - if( nNewPaperBin != nPaperBin ) + if (nNewPaperBin != nPaperBin) { mpImplData->mnFixedPaperBin = nNewPaperBin; + bInvalidateCache = true; } - if( aNewPaperSize != aPaperSize || nNewPaperBin != nPaperBin ) + if (bInvalidateCache) { mpImplData->maPageCache.invalidate(); } @@ -897,14 +909,11 @@ PrinterController::PageSize vcl::ImplPrinterControllerData::modifyJobSetup( cons //print dialog void vcl::ImplPrinterControllerData::resetPaperToLastConfigured() { - Size aPaperSize(maDefaultPageSize); - if (maFixedPageSize.Width() > 0 && maFixedPageSize.Height() > 0) - aPaperSize = maFixedPageSize; mpPrinter->Push(); mpPrinter->SetMapMode(MapMode(MAP_100TH_MM)); Size aCurSize(mpPrinter->GetPaperSize()); - if (aPaperSize != aCurSize) - mpPrinter->SetPaperSizeUser(aPaperSize, !isFixedPageSize()); + if (aCurSize != maDefaultPageSize) + mpPrinter->SetPaperSizeUser(maDefaultPageSize, !isFixedPageSize()); mpPrinter->Pop(); } @@ -1331,6 +1340,16 @@ bool PrinterController::getReversePrint() const return mpImplData->mbReversePageOrder; } +void PrinterController::setPapersizeFromSetup( sal_Bool i_bPapersizeFromSetup ) +{ + mpImplData->mbPapersizeFromSetup = i_bPapersizeFromSetup; +} + +bool PrinterController::getPapersizeFromSetup() const +{ + return mpImplData->mbPapersizeFromSetup; +} + Sequence< PropertyValue > PrinterController::getJobProperties( const Sequence< PropertyValue >& i_rMergeList ) const { boost::unordered_set< OUString, OUStringHash > aMergeSet; diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx index 97804a9..f11044c 100644 --- a/vcl/source/window/printdlg.cxx +++ b/vcl/source/window/printdlg.cxx @@ -534,6 +534,7 @@ PrintDialog::OutputOptPage::OutputOptPage( VclBuilder *pUIBuilder ) { pUIBuilder->get(mpToFileBox, "printtofile"); pUIBuilder->get(mpCollateSingleJobsBox, "singleprintjob"); + pUIBuilder->get(mpPapersizeFromSetup, "papersizefromsetup"); } void PrintDialog::OutputOptPage::readFromSettings() @@ -671,6 +672,7 @@ PrintDialog::PrintDialog( Window* i_pParent, const boost::shared_ptr<PrinterCont maJobPage.mpSetupButton->SetClickHdl( LINK( this, PrintDialog, ClickHdl ) ); maNUpPage.mpBorderCB->SetClickHdl( LINK( this, PrintDialog, ClickHdl ) ); maOptionsPage.mpToFileBox->SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) ); + maOptionsPage.mpPapersizeFromSetup->SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) ); maJobPage.mpReverseOrderBox->SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) ); maOptionsPage.mpCollateSingleJobsBox->SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) ); maNUpPage.mpPagesBtn->SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) ); @@ -723,7 +725,7 @@ void PrintDialog::readFromSettings() maNUpPage.readFromSettings(); maOptionsPage.readFromSettings(); - // read last selected tab page; if it exists, actiavte it + // read last selected tab page; if it exists, activate it SettingsConfigItem* pItem = SettingsConfigItem::get(); OUString aValue = pItem->getValue( OUString( "PrintDialog" ), OUString( "LastPage" ) ); @@ -1534,6 +1536,14 @@ IMPL_LINK( PrintDialog, ClickHdl, Button*, pButton ) maPController->resetPrinterOptions( maOptionsPage.mpToFileBox->IsChecked() ); preparePreview( true, true ); } + else if( pButton == maOptionsPage.mpPapersizeFromSetup ) + { + sal_Bool bChecked = maOptionsPage.mpPapersizeFromSetup->IsChecked(); + maPController->setPapersizeFromSetup( bChecked ); + maPController->setValue( OUString( "PapersizeFromSetup" ), + makeAny( bChecked ) ); + preparePreview( true, true ); + } else if( pButton == maNUpPage.mpBrochureBtn ) { PropertyValue* pVal = getValueForWindow( pButton ); diff --git a/vcl/uiconfig/ui/printdialog.ui b/vcl/uiconfig/ui/printdialog.ui index a0d9453..2aa464b 100644 --- a/vcl/uiconfig/ui/printdialog.ui +++ b/vcl/uiconfig/ui/printdialog.ui @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.0 --> + <!-- interface-requires LibreOffice 1.0 --> <object class="GtkAdjustment" id="adjustment1"> <property name="lower">1</property> <property name="upper">16384</property> @@ -1128,8 +1129,6 @@ <object class="vcllo-ShowNupOrderWindow" id="orderpreview"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">False</property> - <property name="vexpand">False</property> <property name="halign">center</property> <property name="valign">start</property> </object> @@ -1464,6 +1463,23 @@ <property name="height">1</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="papersizefromsetup"> + <property name="label" translatable="yes">Use only paper size from printer preferences</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="no_show_all">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> </object> </child> </object> commit 62a68bbbe0acea471a04a702ca1372495fc7a2fb Author: Caolán McNamara <[email protected]> Date: Mon May 20 10:20:14 2013 +0100 add NUP preview stub to glade catalog Change-Id: Ic269107fd842950f881adc5a62783e55889cf742 diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in index c369903..58b99ac 100644 --- a/extras/source/glade/libreoffice-catalog.xml.in +++ b/extras/source/glade/libreoffice-catalog.xml.in @@ -117,6 +117,9 @@ <glade-widget-class title="Print Preview" name="vcllo-PrintPreviewWindow" generic-name="Print Preview" parent="GtkDrawingArea" icon-name="widget-gtk-drawingarea"/> + <glade-widget-class title="NUP Preview" name="vcllo-ShowNupOrderWindow" + generic-name="NUP Preview" parent="GtkDrawingArea" + icon-name="widget-gtk-drawingarea"/> <glade-widget-class title="Rectangle Control" name="svxlo-SvxRectCtl" generic-name="Rectangle Control" parent="GtkDrawingArea" icon-name="widget-gtk-drawingarea"/> commit 71ebe4404b6e7c78a7d2e352f6af88d57209680a Author: Caolán McNamara <[email protected]> Date: Mon May 20 10:11:46 2013 +0100 Related: fdo#61186 always operate on printer settings paper format scenario 2: with attached test document a file->printer settings->properties->paper set a paper size, ideally something not used in the test doc, e.g. Executive b file->print->properties the paper size here should now still be what was selected in a and *not* what happened to be the current page format shown in the preview which is legal Change-Id: Ie2f440621201d309eb20a650122f9ff7bff441da diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx index f230214..cea6bc3 100644 --- a/vcl/source/gdi/print3.cxx +++ b/vcl/source/gdi/print3.cxx @@ -781,26 +781,46 @@ bool PrinterController::setupPrinter( Window* i_pParent ) bool bRet = false; if( mpImplData->mpPrinter.get() ) { - // get old data - Size aPaperSize( mpImplData->mpPrinter->PixelToLogic( - mpImplData->mpPrinter->GetPaperSizePixel(), MapMode( MAP_100TH_MM ) ) ); + mpImplData->mpPrinter->Push(); + mpImplData->mpPrinter->SetMapMode(MapMode(MAP_100TH_MM)); + + // get current data + Size aPaperSize(mpImplData->mpPrinter->GetPaperSize()); sal_uInt16 nPaperBin = mpImplData->mpPrinter->GetPaperBin(); + // reset paper size back to last configured size, not + // whatever happens to be the current page + resetPaperToLastConfigured(); + // call driver setup bRet = mpImplData->mpPrinter->Setup( i_pParent ); - if( bRet ) + Size aNewPaperSize(mpImplData->mpPrinter->GetPaperSize()); + if (bRet) { - // was papersize or bin overridden ? if so we need to take action - Size aNewPaperSize( mpImplData->mpPrinter->PixelToLogic( - mpImplData->mpPrinter->GetPaperSizePixel(), MapMode( MAP_100TH_MM ) ) ); + // was papersize or bin overridden ? if so we need to take action + if( aNewPaperSize != aPaperSize ) + { + mpImplData->maFixedPageSize = aNewPaperSize; + } + sal_uInt16 nNewPaperBin = mpImplData->mpPrinter->GetPaperBin(); + if( nNewPaperBin != nPaperBin ) + { + mpImplData->mnFixedPaperBin = nNewPaperBin; + } + if( aNewPaperSize != aPaperSize || nNewPaperBin != nPaperBin ) { - mpImplData->maFixedPageSize = aNewPaperSize; mpImplData->maPageCache.invalidate(); - mpImplData->mnFixedPaperBin = nNewPaperBin; } } + else + { + //restore to whatever it was before we entered this method + if (aPaperSize != aNewPaperSize) + mpImplData->mpPrinter->SetPaperSizeUser(aPaperSize, !mpImplData->isFixedPageSize()); + } + mpImplData->mpPrinter->Pop(); } return bRet; }
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
