|
 |
a9add1 |
From 6184f8debb94571c11ab085ccbc5f431459fe1d5 Mon Sep 17 00:00:00 2001
|
|
 |
a9add1 |
From: David Tardon <dtardon@redhat.com>
|
|
 |
a9add1 |
Date: Wed, 20 Jan 2016 18:40:06 +0100
|
|
 |
a9add1 |
Subject: [PATCH] rhbz#1168757 propagate selected slides to print dialog
|
|
 |
a9add1 |
|
|
 |
a9add1 |
(cherry picked from commit f90f8329fe5e95f25ba449e307fd40d56d68d3bb)
|
|
 |
a9add1 |
|
|
 |
a9add1 |
Change-Id: Icef119baffb8985ea0cb94d7e59f0daae88023ac
|
|
 |
a9add1 |
---
|
|
 |
a9add1 |
sd/source/ui/view/DocumentRenderer.cxx | 41 ++++++++++++++++++++++++++++++----
|
|
 |
a9add1 |
1 file changed, 37 insertions(+), 4 deletions(-)
|
|
 |
a9add1 |
|
|
 |
a9add1 |
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
|
|
 |
a9add1 |
index 734c61a..8924468 100644
|
|
 |
a9add1 |
--- a/sd/source/ui/view/DocumentRenderer.cxx
|
|
 |
a9add1 |
+++ b/sd/source/ui/view/DocumentRenderer.cxx
|
|
 |
a9add1 |
@@ -33,10 +33,12 @@
|
|
 |
a9add1 |
#include "FrameView.hxx"
|
|
 |
a9add1 |
#include "Outliner.hxx"
|
|
 |
a9add1 |
#include "OutlineViewShell.hxx"
|
|
 |
a9add1 |
+#include "SlideSorterViewShell.hxx"
|
|
 |
a9add1 |
|
|
 |
a9add1 |
#include <basegfx/polygon/b2dpolygon.hxx>
|
|
 |
a9add1 |
#include <basegfx/polygon/b2dpolypolygon.hxx>
|
|
 |
a9add1 |
#include <basegfx/matrix/b2dhommatrix.hxx>
|
|
 |
a9add1 |
+#include <rtl/ustrbuf.hxx>
|
|
 |
a9add1 |
#include <sfx2/printer.hxx>
|
|
 |
a9add1 |
#include <editeng/editstat.hxx>
|
|
 |
a9add1 |
#include <editeng/outlobj.hxx>
|
|
 |
a9add1 |
@@ -333,8 +335,9 @@ namespace {
|
|
 |
a9add1 |
class DialogCreator : Resource
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
public:
|
|
 |
a9add1 |
- DialogCreator (bool bImpress, sal_Int32 nCurPage)
|
|
 |
a9add1 |
+ DialogCreator (ViewShellBase &rBase, bool bImpress, sal_Int32 nCurPage)
|
|
 |
a9add1 |
: Resource(SdResId(_STR_IMPRESS_PRINT_UI_OPTIONS))
|
|
 |
a9add1 |
+ , mrBase(rBase)
|
|
 |
a9add1 |
, mbImpress(bImpress)
|
|
 |
a9add1 |
, mnCurPage(nCurPage)
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
@@ -359,6 +362,7 @@ namespace {
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
|
|
 |
a9add1 |
private:
|
|
 |
a9add1 |
+ ViewShellBase &mrBase;
|
|
 |
a9add1 |
::std::vector<beans::PropertyValue> maProperties;
|
|
 |
a9add1 |
::std::vector<sal_Int32> maSlidesPerPage;
|
|
 |
a9add1 |
bool mbImpress;
|
|
 |
a9add1 |
@@ -584,19 +588,48 @@ namespace {
|
|
 |
a9add1 |
aWidgetIds[0] = "printallpages";
|
|
 |
a9add1 |
aWidgetIds[1] = "printpages";
|
|
 |
a9add1 |
aWidgetIds[2] = "printselection";
|
|
 |
a9add1 |
+
|
|
 |
a9add1 |
+ // check if there is a selection of slides
|
|
 |
a9add1 |
+ OUString aPageRange(OUString::number(mnCurPage + 1));
|
|
 |
a9add1 |
+ int nPrintRange(0);
|
|
 |
a9add1 |
+ using sd::slidesorter::SlideSorterViewShell;
|
|
 |
a9add1 |
+ SlideSorterViewShell* const pSSViewSh(SlideSorterViewShell::GetSlideSorter(mrBase));
|
|
 |
a9add1 |
+ if (pSSViewSh)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ const boost::shared_ptr<SlideSorterViewShell::PageSelection> pPageSelection(pSSViewSh->GetPageSelection());
|
|
 |
a9add1 |
+ if (bool(pPageSelection) && pPageSelection->size() > 1)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ OUStringBuffer aBuf;
|
|
 |
a9add1 |
+ // TODO: this could be improved by writing ranges instead of consecutive page
|
|
 |
a9add1 |
+ // numbers if appropriate. Do we have a helper function for that somewhere?
|
|
 |
a9add1 |
+ bool bFirst(true);
|
|
 |
a9add1 |
+ for (auto pPage: *pPageSelection)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ if (!bFirst)
|
|
 |
a9add1 |
+ {
|
|
 |
a9add1 |
+ aBuf.append(',');
|
|
 |
a9add1 |
+ bFirst = false;
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+ aBuf.append(OUString::number(pPage->GetPageNum() / 2 + 1));
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+ aPageRange = aBuf.getStr();
|
|
 |
a9add1 |
+ nPrintRange = 1;
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+ }
|
|
 |
a9add1 |
+
|
|
 |
a9add1 |
AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(aWidgetIds, "",
|
|
 |
a9add1 |
aHelpIds,
|
|
 |
a9add1 |
aPrintRangeName,
|
|
 |
a9add1 |
CreateChoice(mbImpress
|
|
 |
a9add1 |
? _STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE
|
|
 |
a9add1 |
: _STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE),
|
|
 |
a9add1 |
- 0 )
|
|
 |
a9add1 |
+ nPrintRange )
|
|
 |
a9add1 |
);
|
|
 |
a9add1 |
// create a an Edit dependent on "Pages" selected
|
|
 |
a9add1 |
vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt( aPrintRangeName, 1, true );
|
|
 |
a9add1 |
AddDialogControl(vcl::PrinterOptionsHelper::setEditControlOpt("pagerange", "",
|
|
 |
a9add1 |
".HelpID:vcl:PrintDialog:PageRange:Edit", "PageRange",
|
|
 |
a9add1 |
- OUString::number(mnCurPage + 1), aPageRangeOpt));
|
|
 |
a9add1 |
+ aPageRange, aPageRangeOpt));
|
|
 |
a9add1 |
|
|
 |
a9add1 |
FreeResource();
|
|
 |
a9add1 |
}
|
|
 |
a9add1 |
@@ -1140,7 +1173,7 @@ public:
|
|
 |
a9add1 |
, mpPrintView()
|
|
 |
a9add1 |
, mbHasOrientationWarningBeenShown(false)
|
|
 |
a9add1 |
{
|
|
 |
a9add1 |
- DialogCreator aCreator( mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS, GetCurrentPageIndex() );
|
|
 |
a9add1 |
+ DialogCreator aCreator( mrBase, mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS, GetCurrentPageIndex() );
|
|
 |
a9add1 |
m_aUIProperties = aCreator.GetDialogControls();
|
|
 |
a9add1 |
maSlidesPerPage = aCreator.GetSlidesPerPage();
|
|
 |
a9add1 |
|
|
 |
a9add1 |
--
|
|
 |
a9add1 |
2.5.0
|
|
 |
a9add1 |
|