summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silva <danielfaleirosilva@gmail.com>2018-06-18 14:52:16 -0300
committerDaniel Silva <danielfaleirosilva@gmail.com>2018-11-29 13:02:16 -0200
commit226ede405ed4549b7652c9a8421af37511e0046a (patch)
tree3b124c4b813a5413a2d9d24e2f1e6e53675d63aa
parent76e22667625ce8d16dfaa8617a199b774e987a70 (diff)
Sets pages per sheet and brochure in print dialog
Change-Id: Iee6fea72cee02d9ffd00b81511382992aad72e61 Reviewed-on: https://gerrit.libreoffice.org/56057 Tested-by: Jenkins Reviewed-by: Daniel Silva <danielfaleirosilva@gmail.com>
-rw-r--r--vcl/inc/printdlg.hxx1
-rw-r--r--vcl/source/window/printdlg.cxx31
-rw-r--r--vcl/uiconfig/ui/printdialog.ui182
3 files changed, 159 insertions, 55 deletions
diff --git a/vcl/inc/printdlg.hxx b/vcl/inc/printdlg.hxx
index b09a0922a13b..468ea03a11ac 100644
--- a/vcl/inc/printdlg.hxx
+++ b/vcl/inc/printdlg.hxx
@@ -164,6 +164,7 @@ namespace vcl
VclPtr<ListBox> mpNupOrientationBox;
// page order ("left to right, then down")
+ VclPtr<FixedText> mpNupOrderTxt;
VclPtr<ListBox> mpNupOrderBox;
VclPtr<ShowNupOrderWindow> mpNupOrderWin;
/// border around each page
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index 61f63293b4fd..9ace0dd8ef7a 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -520,6 +520,7 @@ PrintDialog::PrintDialog(vcl::Window* i_pWindow, const std::shared_ptr<PrinterCo
get(mpNupOrderWin, "orderpreview");
get(mpNupPagesBox, "pagespersheetbox");
get(mpNupOrientationBox, "pageorientationbox");
+ get(mpNupOrderTxt, "labelorder");
get(mpNupOrderBox, "orderbox");
get(mpPagesBtn, "pagespersheetbtn");
get(mpBrochureBtn, "brochure");
@@ -640,6 +641,8 @@ PrintDialog::PrintDialog(vcl::Window* i_pWindow, const std::shared_ptr<PrinterCo
mpCopyCountField->SetModifyHdl( LINK( this, PrintDialog, ModifyHdl ) );
mpNupColEdt->SetModifyHdl( LINK( this, PrintDialog, ModifyHdl ) );
mpNupRowsEdt->SetModifyHdl( LINK( this, PrintDialog, ModifyHdl ) );
+ mpPageMarginEdt->SetModifyHdl( LINK( this, PrintDialog, ModifyHdl ) );
+ mpSheetMarginEdt->SetModifyHdl( LINK( this, PrintDialog, ModifyHdl ) );
preparePreview( true, true );
}
@@ -691,6 +694,7 @@ void PrintDialog::dispose()
mpNupOrientationBox.clear();
mpNupOrderBox.clear();
mpNupOrderWin.clear();
+ mpNupOrderTxt.clear();
mpBorderCB.clear();
ModalDialog::dispose();
}
@@ -1025,10 +1029,28 @@ void PrintDialog::updateNupFromPages()
mpSheetMarginEdt->SetValue( mpSheetMarginEdt->Normalize( nSheetMargin ), FUNIT_100TH_MM );
showAdvancedControls( bCustom );
-
updateNup();
}
+void PrintDialog::enableNupControls( bool bEnable )
+{
+ mpNupPagesBox->Enable( bEnable );
+ mpNupNumPagesTxt->Enable( bEnable );
+ mpNupColEdt->Enable( bEnable );
+ mpNupTimesTxt->Enable( bEnable );
+ mpNupRowsEdt->Enable( bEnable );
+ mpPageMarginTxt1->Enable( bEnable );
+ mpPageMarginEdt->Enable( bEnable );
+ mpPageMarginTxt2->Enable( bEnable );
+ mpSheetMarginTxt1->Enable( bEnable );
+ mpSheetMarginEdt->Enable( bEnable );
+ mpSheetMarginTxt2->Enable( bEnable );
+ mpNupOrderTxt->Enable( bEnable );
+ mpNupOrderBox->Enable( bEnable );
+ mpNupOrderWin->Enable( bEnable );
+ mpBorderCB->Enable( bEnable );
+}
+
void PrintDialog::showAdvancedControls( bool i_bShow )
{
mpNupNumPagesTxt->Show( i_bShow );
@@ -1233,8 +1255,7 @@ void PrintDialog::setupOptionalUI()
else if( aCtrlType == "Bool" && aGroupingHint == "LayoutPage" && aPropertyName == "PrintProspect" )
{
mpBrochureBtn->SetText( aText );
- // FIXME: Brochure button is still not working, so it is hidden for now
- // mpBrochureBtn->Show();
+ mpBrochureBtn->Show();
bool bVal = false;
PropertyValue* pVal = maPController->getValue( aPropertyName );
@@ -1583,12 +1604,12 @@ IMPL_LINK ( PrintDialog, ClickHdl, Button*, pButton, void )
mpNupPagesBox->SelectEntryPos( 0 );
updateNupFromPages();
showAdvancedControls( false );
- //enableNupControls( false );
+ enableNupControls( false );
}
}
else if( pButton == mpPagesBtn )
{
- //enableNupControls( true );
+ enableNupControls( true );
updateNupFromPages();
}
else if( pButton == mpCollateBox )
diff --git a/vcl/uiconfig/ui/printdialog.ui b/vcl/uiconfig/ui/printdialog.ui
index f7b7de2db876..4775d131fab5 100644
--- a/vcl/uiconfig/ui/printdialog.ui
+++ b/vcl/uiconfig/ui/printdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.20.4 -->
<interface domain="vcl">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
@@ -29,6 +29,64 @@
<property name="stock">gtk-media-next</property>
<property name="icon_size">1</property>
</object>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ <!-- column-name gint -->
+ <column type="gint"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" context="printdialog|liststore1">1</col>
+ <col id="1">1</col>
+ </row>
+ <row>
+ <col id="0" context="printdialog|liststore1">2</col>
+ <col id="1">2</col>
+ </row>
+ <row>
+ <col id="0" context="printdialog|liststore1">4</col>
+ <col id="1">4</col>
+ </row>
+ <row>
+ <col id="0" context="printdialog|liststore1">6</col>
+ <col id="1">6</col>
+ </row>
+ <row>
+ <col id="0" context="printdialog|liststore1">9</col>
+ <col id="1">9</col>
+ </row>
+ <row>
+ <col id="0" context="printdialog|liststore1">16</col>
+ <col id="1">16</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="printdialog|liststore1">Custom</col>
+ <col id="1">65535</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="liststore2">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes" context="printdialog|liststore2">left to right, then down</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="printdialog|liststore2">top to bottom, then right</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="printdialog|liststore2">top to bottom, then left</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes" context="printdialog|liststore2">right to left, then down</col>
+ </row>
+ </data>
+ </object>
<object class="GtkDialog" id="PrintDialog">
<property name="can_focus">False</property>
<property name="type_hint">dialog</property>
@@ -125,14 +183,14 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkBox">
+ <object class="GtkBox" id="box13">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="vcllo-PrintPreviewWindow" id="preview">
- <property name="width_request">427</property>
- <property name="height_request">600</property>
+ <property name="width_request">463</property>
+ <property name="height_request">650</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -144,7 +202,7 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
@@ -354,13 +412,12 @@
<object class="GtkNotebook" id="tabcontrol">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="vexpand">True</property>
<child>
<object class="GtkBox" id="box11">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="spacing">10</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
@@ -573,7 +630,6 @@
</child>
<child>
<object class="GtkComboBox" id="printpagesbox">
- <property name="visible">False</property>
<property name="can_focus">False</property>
</object>
<packing>
@@ -592,7 +648,6 @@
<property name="column_spacing">3</property>
<child>
<object class="GtkLabel" id="printrange">
- <property name="visible">False</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="label" translatable="yes" context="printdialog|labelpages">Pages:</property>
@@ -604,7 +659,6 @@
</child>
<child>
<object class="GtkEntry" id="pagerange">
- <property name="visible">False</property>
<property name="can_focus">True</property>
<property name="placeholder_text" translatable="yes" context="printdialog|pagerange">e.g.: 1, 3-5, 7, 9</property>
</object>
@@ -774,6 +828,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
+ <property name="model">liststore2</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -782,23 +837,11 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="pagespersheetbox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">3</property>
- </packing>
- </child>
- <child>
<object class="vcllo-ShowNupOrderWindow" id="orderpreview">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="stock">gtk-missing-image</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
</object>
<packing>
<property name="left_attach">4</property>
@@ -891,32 +934,6 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="pagespersheetbtn">
- <property name="label" translatable="yes" context="printdialog|pagespersheetbtn">Pages per sheet</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">brochure</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="pagespersheettxt">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="printdialog|pagespersheettxt">Pages</property>
- <property name="mnemonic_widget">pagerows</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
<object class="GtkRadioButton" id="brochure">
<property name="label" translatable="yes" context="printdialog|brochure">Brochure</property>
<property name="visible">True</property>
@@ -977,6 +994,68 @@
<property name="width">4</property>
</packing>
</child>
+ <child>
+ <object class="GtkBox" id="box12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkRadioButton" id="pagespersheetbtn">
+ <property name="label" translatable="yes" context="printdialog|pagespersheetbtn">Pages per sheet</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">brochure</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="pagespersheettxt">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="pagestxt">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="printdialog|pagespersheettxt">Pages</property>
+ <property name="mnemonic_widget">pagerows</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="pagespersheetbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="model">liststore1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
@@ -1066,5 +1145,8 @@
</child>
</object>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</interface>