summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrijan Bhatia <srijanbhatiasun@gmail.com>2020-06-18 18:41:14 +0530
committerMike Kaganski <mike.kaganski@collabora.com>2020-07-02 12:12:02 +0200
commit14b8c176133979cd1c3163ef5fe3eed0e6479fea (patch)
treef4f269904c4187336ceb13113a71154d49988bb8
parent445537bbc2971b970bed244db40f35c9caf43ef4 (diff)
tdf#127680 Add the option to print even or odd values from a particular range
Added a box besides the pages option that lets the user choose between left and right pages/left pages/right pages. Change-Id: Iee0386f4f3cfd2dac3fcf898a3fefb5434cb27a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96612 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--basctl/source/basicide/basicrenderable.cxx27
-rw-r--r--sc/source/ui/unoobj/docuno.cxx58
-rw-r--r--sd/inc/DocumentRenderer.hrc4
-rw-r--r--sd/source/ui/view/DocumentRenderer.cxx26
-rw-r--r--sw/source/core/doc/doc.cxx11
-rw-r--r--sw/source/core/view/printdata.cxx50
-rw-r--r--vcl/uiconfig/ui/printdialog.ui43
7 files changed, 118 insertions, 101 deletions
diff --git a/basctl/source/basicide/basicrenderable.cxx b/basctl/source/basicide/basicrenderable.cxx
index eae8b5c81c93..8e4bab711ce8 100644
--- a/basctl/source/basicide/basicrenderable.cxx
+++ b/basctl/source/basicide/basicrenderable.cxx
@@ -37,7 +37,7 @@ Renderable::Renderable (BaseWindow* pWin)
: cppu::WeakComponentImplHelper< css::view::XRenderable >( maMutex )
, mpWindow( pWin )
{
- m_aUIProperties.resize( 3 );
+ m_aUIProperties.resize( 4 );
// show Subgroup for print range
vcl::PrinterOptionsHelper::UIControlOptions aPrintRangeOpt;
@@ -50,17 +50,11 @@ Renderable::Renderable (BaseWindow* pWin)
// create a choice for the range to print
OUString aPrintContentName( "PrintContent" );
const Sequence<OUString> aChoices{IDEResId(RID_STR_PRINTDLG_PRINTALLPAGES),
- IDEResId(RID_STR_PRINTDLG_PRINTPAGES),
- IDEResId(RID_STR_PRINTDLG_PRINTEVENPAGES),
- IDEResId(RID_STR_PRINTDLG_PRINTODDPAGES)};
+ IDEResId(RID_STR_PRINTDLG_PRINTPAGES)};
const Sequence<OUString> aHelpIds{".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0",
- ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1",
- ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2",
- ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:3"};
+ ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1"};
const Sequence<OUString> aWidgetIds{"rbAllPages",
- "rbRangePages",
- "rbEvenPages",
- "rbOddPages"};
+ "rbRangePages"};
m_aUIProperties[1].Value = setChoiceRadiosControlOpt(aWidgetIds, OUString(),
aHelpIds, aPrintContentName,
aChoices, 0);
@@ -70,6 +64,16 @@ Renderable::Renderable (BaseWindow* pWin)
m_aUIProperties[2].Value = setEditControlOpt("pagerange", OUString(),
OUString(), "PageRange",
OUString(), aPageRangeOpt);
+
+ vcl::PrinterOptionsHelper::UIControlOptions aEvenOddOpt(aPrintContentName, 0, true);
+ m_aUIProperties[3].Value = setChoiceListControlOpt("evenoddbox",
+ OUString(),
+ uno::Sequence<OUString>(),
+ "EvenOdd",
+ uno::Sequence<OUString>(),
+ 0,
+ uno::Sequence< sal_Bool >(),
+ aEvenOddOpt);
}
Renderable::~Renderable()
@@ -130,6 +134,7 @@ sal_Int32 SAL_CALL Renderable::getRendererCount (
}
sal_Int64 nContent = getIntValue( "PrintContent", -1 );
+ sal_Int64 nEOContent = getIntValue ("EvenOdd", -1);
if( nContent == 1 )
{
OUString aPageRange( getStringValue( "PageRange" ) );
@@ -141,7 +146,7 @@ sal_Int32 SAL_CALL Renderable::getRendererCount (
nCount = nSelCount;
}
}
- else if ( nContent == 2 || nContent == 3 ) // even/odd pages
+ else if ( nEOContent == 1 || nEOContent == 2 ) // even/odd pages
return static_cast<sal_Int32>( maValidPages.size() );
}
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index cce2b7816d94..68c48ac8e9de 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -250,7 +250,7 @@ ScPrintUIOptions::ScPrintUIOptions()
sal_Int32 nContent = rPrintOpt.GetAllSheets() ? 0 : 1;
bool bSuppress = rPrintOpt.GetSkipEmpty();
- sal_Int32 nNumProps= 9, nIdx = 0;
+ sal_Int32 nNumProps= 10, nIdx = 0;
m_aUIProperties.resize(nNumProps);
@@ -298,21 +298,15 @@ ScPrintUIOptions::ScPrintUIOptions()
// create a choice for the range to print
OUString aPrintRangeName( "PrintRange" );
- aChoices.realloc( 4 );
- aHelpIds.realloc( 4 );
- uno::Sequence< OUString > aWidgetIds( 4 );
+ aChoices.realloc( 2 );
+ aHelpIds.realloc( 2 );
+ uno::Sequence< OUString > aWidgetIds( 2 );
aChoices[0] = ScResId( SCSTR_PRINTOPT_PRINTALLPAGES );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintRange:RadioButton:0";
aWidgetIds[0] = "rbAllPages";
aChoices[1] = ScResId( SCSTR_PRINTOPT_PRINTPAGES );
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PrintRange:RadioButton:1";
aWidgetIds[1] = "rbRangePages";
- aChoices[2] = ScResId( SCSTR_PRINTOPT_PRINTEVENPAGES );
- aHelpIds[2] = ".HelpID:vcl:PrintDialog:PrintRange:RadioButton:2";
- aWidgetIds[2] = "rbEvenPages";
- aChoices[3] = ScResId( SCSTR_PRINTOPT_PRINTODDPAGES );
- aHelpIds[3] = ".HelpID:vcl:PrintDialog:PrintRange:RadioButton:3";
- aWidgetIds[3] = "rbOddPages";
m_aUIProperties[nIdx++].Value = setChoiceRadiosControlOpt(aWidgetIds, OUString(),
aHelpIds,
aPrintRangeName,
@@ -325,6 +319,16 @@ ScPrintUIOptions::ScPrintUIOptions()
".HelpID:vcl:PrintDialog:PageRange:Edit",
"PageRange", OUString(), aPageRangeOpt);
+ vcl::PrinterOptionsHelper::UIControlOptions aEvenOddOpt(aPrintRangeName, 0, true);
+ m_aUIProperties[ nIdx++ ].Value = setChoiceListControlOpt("evenoddbox",
+ OUString(),
+ uno::Sequence<OUString>(),
+ "EvenOdd",
+ uno::Sequence<OUString>(),
+ 0,
+ uno::Sequence< sal_Bool >(),
+ aEvenOddOpt);
+
assert(nIdx == nNumProps);
}
@@ -1409,7 +1413,8 @@ bool ScModelObj::FillRenderMarkData( const uno::Any& aSelection,
bool bHasPrintContent = false;
sal_Int32 nPrintContent = 0; // all sheets / selected sheets / selected cells
- sal_Int32 nPrintRange = 0; // all pages / pages / even pages / odd pages
+ sal_Int32 nPrintRange = 0; // all pages / pages
+ sal_Int32 nEOContent = 0; // even pages / odd pages
OUString aPageRange; // "pages" edit value
for( const auto& rOption : rOptions )
@@ -1430,6 +1435,10 @@ bool ScModelObj::FillRenderMarkData( const uno::Any& aSelection,
{
rOption.Value >>= nPrintRange;
}
+ else if ( rOption.Name == "EvenOdd" )
+ {
+ rOption.Value >>= nEOContent;
+ }
else if ( rOption.Name == "PrintContent" )
{
bHasPrintContent = true;
@@ -1593,6 +1602,7 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection,
maValidPages.clear();
sal_Int32 nContent = 0;
+ sal_Int32 nEOContent = 0;
bool bSinglePageSheets = false;
for ( const auto& rValue : rOptions)
{
@@ -1604,6 +1614,10 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection,
{
rValue.Value >>= bSinglePageSheets;
}
+ else if ( rValue.Name == "EvenOdd" )
+ {
+ rValue.Value >>= nEOContent;
+ }
}
if (bSinglePageSheets)
@@ -1611,8 +1625,8 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection,
return pDocShell->GetDocument().GetTableCount();
}
- bool bIsPrintEvenPages = nContent != 3;
- bool bIsPrintOddPages = nContent != 2;
+ bool bIsPrintEvenPages = (nEOContent != 2 && nContent == 0) || nContent != 0;
+ bool bIsPrintOddPages = (nEOContent != 1 && nContent == 0) || nContent != 0;
for ( sal_Int32 nPage = 1; nPage <= nPages; nPage++ )
{
@@ -1622,7 +1636,7 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection,
sal_Int32 nSelectCount = static_cast<sal_Int32>( maValidPages.size() );
- if ( nContent == 2 || nContent == 3 ) // even pages / odd pages
+ if ( nEOContent == 1 || nEOContent == 2 ) // even pages / odd pages
return nSelectCount;
if ( !aPagesStr.isEmpty() )
@@ -1824,19 +1838,23 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
pPrintFunc->SetRenderFlag( true );
sal_Int32 nContent = 0;
+ sal_Int32 nEOContent = 0;
for ( const auto& rValue : rOptions)
{
if ( rValue.Name == "PrintRange" )
{
rValue.Value >>= nContent;
- break;
+ }
+ else if ( rValue.Name == "EvenOdd" )
+ {
+ rValue.Value >>= nEOContent;
}
}
MultiSelection aPage;
aPage.SetTotalRange( Range(0,RANGE_MAX) );
- bool bOddOrEven = nContent == 2 || nContent == 3; // even pages or odd pages
+ bool bOddOrEven = (nContent == 0 && nEOContent == 1) || (nContent == 1 && nEOContent == 2); // even pages or odd pages
// tdf#127682 when odd/even allow nRenderer of 0 even when maValidPages is empty
// to allow PrinterController::abortJob to spool an empty page as part of
// its abort procedure
@@ -2054,19 +2072,23 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec
pPrintFunc->SetExclusivelyDrawOleAndDrawObjects();
sal_Int32 nContent = 0;
+ sal_Int32 nEOContent = 0;
for ( const auto& rValue : rOptions)
{
if ( rValue.Name == "PrintRange" )
{
rValue.Value >>= nContent;
- break;
+ }
+ else if ( rValue.Name == "EvenOdd" )
+ {
+ rValue.Value >>= nEOContent;
}
}
MultiSelection aPage;
aPage.SetTotalRange( Range(0,RANGE_MAX) );
- bool bOddOrEven = nContent == 2 || nContent == 3; // even pages or odd pages
+ bool bOddOrEven = (nContent == 0 && nEOContent == 1) || (nContent == 0 && nEOContent == 2); // even pages or odd pages
// tdf#127682 when odd/even allow nRenderer of 0 even when maValidPages is empty
// to allow PrinterController::abortJob to spool an empty page as part of
// its abort procedure
diff --git a/sd/inc/DocumentRenderer.hrc b/sd/inc/DocumentRenderer.hrc
index 1a86bfd31e7f..1b2cefe4732f 100644
--- a/sd/inc/DocumentRenderer.hrc
+++ b/sd/inc/DocumentRenderer.hrc
@@ -81,8 +81,6 @@ const char* STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE[] =
{
NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "All ~Slides"),
NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "S~lides:"),
- NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "~Even slides"),
- NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "~Odd slides"),
NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "~Selection")
};
@@ -90,8 +88,6 @@ const char* STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE[] =
{
NC_("STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE", "All ~Pages"),
NC_("STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE", "~Pages:"),
- NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "~Even pages"),
- NC_("STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE", "~Odd pages"),
NC_("STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE", "~Selection")
};
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 97672fba3932..8a9be771b149 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -186,14 +186,14 @@ namespace {
bool IsPrintFrontPage() const
{
- sal_Int32 nInclude = static_cast<sal_Int32>(mrProperties.getIntValue( "PrintContent", 0 ));
- return nInclude != 2;
+ sal_Int32 nInclude = static_cast<sal_Int32>(mrProperties.getIntValue( "EvenOdd", 0 ));
+ return nInclude != 1;
}
bool IsPrintBackPage() const
{
- sal_Int32 nInclude = static_cast<sal_Int32>(mrProperties.getIntValue( "PrintContent", 0 ));
- return nInclude != 3;
+ sal_Int32 nInclude = static_cast<sal_Int32>(mrProperties.getIntValue( "EvenOdd", 0 ));
+ return nInclude != 2;
}
bool IsPaperBin() const
@@ -211,7 +211,7 @@ namespace {
sal_Int32 nContent = static_cast<sal_Int32>(mrProperties.getIntValue( "PrintContent", 0 ));
OUString sFullRange = "1-" + OUString::number(nPageCount);
- if (nContent == 0 || nContent == 2 || nContent == 3 ) // all pages/slides || even pages/slides || odd pages/slides
+ if (nContent == 0) // all pages/slides
{
return sFullRange;
}
@@ -222,7 +222,7 @@ namespace {
return sValue.isEmpty() ? sFullRange : sValue;
}
- if (nContent == 4 && // selection
+ if (nContent == 2 && // selection
nCurrentPageIndex >= 0)
{
return OUString::number(nCurrentPageIndex + 1);
@@ -632,18 +632,14 @@ namespace {
nPrintRange ) );
*/
OUString aPrintRangeName( "PrintContent" );
- aHelpIds.realloc( 5 );
+ aHelpIds.realloc( 3 );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0" ;
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1" ;
aHelpIds[2] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2" ;
- aHelpIds[3] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:3" ;
- aHelpIds[4] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:4" ;
- aWidgetIds.realloc( 5 );
+ aWidgetIds.realloc( 3 );
aWidgetIds[0] = "rbAllPages";
aWidgetIds[1] = "rbRangePages";
- aWidgetIds[2] = "rbEvenPages";
- aWidgetIds[3] = "rbOddPages";
- aWidgetIds[4] = "rbRangeSelection";
+ aWidgetIds[2] = "rbRangeSelection";
AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(aWidgetIds, OUString(),
aHelpIds, aPrintRangeName,
@@ -656,6 +652,10 @@ namespace {
AddDialogControl(vcl::PrinterOptionsHelper::setEditControlOpt("pagerange", "",
".HelpID:vcl:PrintDialog:PageRange:Edit", "PageRange",
aPageRange, aPageRangeOpt));
+ vcl::PrinterOptionsHelper::UIControlOptions aEvenOddOpt(aPrintRangeName, -1, true);
+ AddDialogControl(vcl::PrinterOptionsHelper::setChoiceListControlOpt("evenoddbox", "",
+ uno::Sequence<OUString>(), "EvenOdd", uno::Sequence<OUString>(),
+ 0, uno::Sequence<sal_Bool>(), aEvenOddOpt));
}
void AddDialogControl( const Any& i_rCtrl )
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 4d0791481478..b51e957810b3 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -669,7 +669,7 @@ void SwDoc::CalculatePagesForPrinting(
sal_Int32 nDocPageCount )
{
const sal_Int64 nContent = rOptions.getIntValue( "PrintContent", 0 );
- const bool bPrintSelection = nContent == 4;
+ const bool bPrintSelection = nContent == 2;
// properties to take into account when calculating the set of pages
// (PDF export UI does not allow for selecting left or right pages only)
@@ -726,11 +726,12 @@ void SwDoc::CalculatePagesForPrinting(
// 4 -> print selection
if (1 == nContent)
aPageRange = rOptions.getStringValue( "PageRange" );
- if (4 == nContent)
+
+ if (2 == nContent)
{
// note that printing selections is actually implemented by copying
// the selection to a new temporary document and printing all of that one.
- // Thus for Writer "PrintContent" must never be 4.
+ // Thus for Writer "PrintContent" must never be 2.
// See SwXTextDocument::GetRenderDoc for evaluating if a selection is to be
// printed and for creating the temporary document.
}
@@ -913,9 +914,7 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
// PageContent :
// 0 -> print all pages (default if aPageRange is empty)
// 1 -> print range according to PageRange
- // 2 -> print even pages
- // 3 -> print odd pages
- // 4 -> print selection
+ // 2 -> print selection
const sal_Int64 nContent = rOptions.getIntValue( "PrintContent", 0 );
if (nContent == 1)
aPageRange = rOptions.getStringValue( "PageRange" );
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
index a27de833846c..5c24e1dd691d 100644
--- a/sw/source/core/view/printdata.cxx
+++ b/sw/source/core/view/printdata.cxx
@@ -176,8 +176,8 @@ SwPrintUIOptions::SwPrintUIOptions(
// create sequence of print UI options
// (5 options are not available for Writer-Web)
const int nRTLOpts = bRTL ? 1 : 0;
- const int nNumProps = nRTLOpts + (bWeb ? 14 : 18);
- m_aUIProperties.resize( nNumProps );
+ const int nNumProps = nRTLOpts + (bWeb ? 15 : 19);
+ m_aUIProperties.resize( nNumProps);
int nIdx = 0;
// load the writer PrinterOptions into the custom tab
@@ -274,10 +274,10 @@ SwPrintUIOptions::SwPrintUIOptions(
// create a choice for the content to create
const OUString aPrintRangeName( "PrintContent" );
- uno::Sequence< OUString > aChoices( 5 );
- uno::Sequence< sal_Bool > aChoicesDisabled( 5 );
- uno::Sequence< OUString > aHelpIds( 5 );
- uno::Sequence< OUString > aWidgetIds( 5 );
+ uno::Sequence< OUString > aChoices( 3 );
+ uno::Sequence< sal_Bool > aChoicesDisabled( 3 );
+ uno::Sequence< OUString > aHelpIds( 3 );
+ uno::Sequence< OUString > aWidgetIds( 3 );
aChoices[0] = SwResId( STR_PRINTOPTUI_PRINTALLPAGES );
aChoicesDisabled[0] = false;
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0";
@@ -286,22 +286,14 @@ SwPrintUIOptions::SwPrintUIOptions(
aChoicesDisabled[1] = false;
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1";
aWidgetIds[1] = "rbRangePages";
- aChoices[2] = SwResId( STR_PRINTOPTUI_PRINTEVENPAGES );
- aChoicesDisabled[2] = false; //better disable for 1 page only
+ aChoices[2] = SwResId( STR_PRINTOPTUI_PRINTSELECTION );
+ aChoicesDisabled[2] = !bHasSelection;
aHelpIds[2] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2";
- aWidgetIds[2] = "rbEvenPages";
- aChoices[3] = SwResId( STR_PRINTOPTUI_PRINTODDPAGES );
- aChoicesDisabled[3] = false; //better disable for 1 page only
- aHelpIds[3] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:3";
- aWidgetIds[3] = "rbOddPages";
- aChoices[4] = SwResId( STR_PRINTOPTUI_PRINTSELECTION );
- aChoicesDisabled[4] = !bHasSelection;
- aHelpIds[4] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:4";
- aWidgetIds[4] = "rbRangeSelection";
+ aWidgetIds[2] = "rbRangeSelection";
m_aUIProperties[nIdx++].Value = setChoiceRadiosControlOpt(aWidgetIds, OUString(),
aHelpIds, aPrintRangeName,
aChoices,
- bHasSelection ? 4 : 0,
+ bHasSelection ? 2 : 0,
aChoicesDisabled);
// show an Edit dependent on "Pages" selected
@@ -312,6 +304,16 @@ SwPrintUIOptions::SwPrintUIOptions(
OUString::number( nCurrentPage ) /* set text box to current page number */,
aPageRangeOpt);
+ vcl::PrinterOptionsHelper::UIControlOptions aEvenOddOpt(aPrintRangeName, -1, true);
+ m_aUIProperties[ nIdx++ ].Value = setChoiceListControlOpt("evenoddbox",
+ OUString(),
+ uno::Sequence<OUString>(),
+ "EvenOdd",
+ uno::Sequence<OUString>(),
+ 0,
+ uno::Sequence< sal_Bool >(),
+ aEvenOddOpt);
+
// create a list box for notes content
const SwPostItMode nPrintPostIts = rDefaultPrintData.GetPrintPostIts();
aChoices.realloc( 5 );
@@ -385,9 +387,9 @@ bool SwPrintUIOptions::IsPrintLeftPages() const
// 0: left and right pages
// 1: left pages only
// 2: right pages only
- sal_Int64 nLRPages = getIntValue( "PrintContent", 0 /* default: all */ );
- bool bRes = nLRPages != 3;
- bRes = getBoolValue( "PrintContent", bRes /* <- default value if property is not found */ );
+ sal_Int64 nEOPages = getIntValue( "EvenOdd", 0 /* default: all */ );
+ bool bRes = nEOPages != 2;
+ bRes = getBoolValue( "EvenOdd", bRes /* <- default value if property is not found */ );
return bRes;
}
@@ -396,9 +398,9 @@ bool SwPrintUIOptions::IsPrintRightPages() const
// take care of different property names for the option.
// for compatibility the old name should win (may still be used for PDF export or via Uno API)
- sal_Int64 nLRPages = getIntValue( "PrintContent", 0 /* default: all */ );
- bool bRes = nLRPages != 2;
- bRes = getBoolValue( "PrintContent", bRes /* <- default value if property is not found */ );
+ sal_Int64 nEOPages = getIntValue( "EvenOdd", 0 /* default: all */ );
+ bool bRes = nEOPages != 1;
+ bRes = getBoolValue( "EvenOdd", bRes /* <- default value if property is not found */ );
return bRes;
}
diff --git a/vcl/uiconfig/ui/printdialog.ui b/vcl/uiconfig/ui/printdialog.ui
index 94d1c64181ec..5cd2dfd4553b 100644
--- a/vcl/uiconfig/ui/printdialog.ui
+++ b/vcl/uiconfig/ui/printdialog.ui
@@ -540,14 +540,12 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="rbEvenPages">
- <property name="label" translatable="yes" context="printdialog|rmEvenPages">_Even pages</property>
- <property name="visible">True</property>
+ <object class="GtkRadioButton" id="rbRangeSelection">
+ <property name="label" translatable="yes" context="printdialog|rbRangeSelection">_Selection</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="margin_top">2</property>
- <property name="margin_bottom">2</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">rbAllPages</property>
@@ -559,39 +557,34 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="rbOddPages">
- <property name="label" translatable="yes" context="printdialog|rbOddPages">_Odd pages</property>
+ <object class="GtkLabel" id="includeevenodd">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can_focus">False</property>
<property name="halign">start</property>
- <property name="margin_top">2</property>
- <property name="margin_bottom">2</property>
+ <property name="label" translatable="yes" context="printdialog|includeevenodd">Include:</property>
<property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">rbAllPages</property>
+ <property name="mnemonic_widget">evenoddbox</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
- <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="rbRangeSelection">
- <property name="label" translatable="yes" context="printdialog|rbRangeSelection">_Selection</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="halign">start</property>
- <property name="margin_top">2</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">rbAllPages</property>
+ <object class="GtkComboBoxText" id="evenoddbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" context="printdialog|liststore3">Even and Odd Pages</item>
+ <item translatable="yes" context="printdialog|liststore3">Even Pages</item>
+ <item translatable="yes" context="printdialog|liststore3">Odd Pages</item>
+ </items>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- <property name="width">2</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
</packing>
</child>
</object>