summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/oldprintadaptor.hxx2
-rw-r--r--include/vcl/print.hxx3
-rw-r--r--sfx2/source/view/viewprn.cxx2
-rw-r--r--sw/inc/viewsh.hxx1
-rw-r--r--toolkit/source/awt/vclxprinter.cxx3
-rw-r--r--vcl/source/gdi/oldprintadaptor.cxx6
-rw-r--r--vcl/source/gdi/print3.cxx13
7 files changed, 19 insertions, 11 deletions
diff --git a/include/vcl/oldprintadaptor.hxx b/include/vcl/oldprintadaptor.hxx
index 59f2379d7e91..53e0d3d7bbfb 100644
--- a/include/vcl/oldprintadaptor.hxx
+++ b/include/vcl/oldprintadaptor.hxx
@@ -30,7 +30,7 @@ namespace vcl
{
std::unique_ptr<ImplOldStyleAdaptorData> mpData;
public:
- OldStylePrintAdaptor( const VclPtr< Printer >& );
+ OldStylePrintAdaptor(const VclPtr<Printer>&, const VclPtr<vcl::Window>&);
virtual ~OldStylePrintAdaptor() override;
void StartPage();
diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx
index ac15f1de4d0b..ae40d76ce96f 100644
--- a/include/vcl/print.hxx
+++ b/include/vcl/print.hxx
@@ -398,7 +398,7 @@ class VCL_DLLPUBLIC PrinterController
std::unique_ptr<ImplPrinterControllerData>
mpImplData;
protected:
- PrinterController( const VclPtr<Printer>& );
+ PrinterController( const VclPtr<Printer>&, const VclPtr<vcl::Window>& );
public:
struct MultiPageSetup
{
@@ -440,6 +440,7 @@ public:
virtual ~PrinterController();
const VclPtr<Printer>& getPrinter() const;
+ const VclPtr<vcl::Window>& getWindow() const;
/** For implementations: get current job properties as changed by e.g. print dialog
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index 18557a41e1a1..a5be4fff8b7d 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -101,7 +101,7 @@ SfxPrinterController::SfxPrinterController( const VclPtr<Printer>& i_rPrinter,
SfxViewShell* pView,
const uno::Sequence< beans::PropertyValue >& rProps
)
- : PrinterController( i_rPrinter)
+ : PrinterController(i_rPrinter, pView ? pView->GetWindow() : nullptr)
, maCompleteSelection( i_rComplete )
, maSelection( i_rSelection )
, mxRenderable( i_xRender )
diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx
index e3329b4c931d..368f1849273e 100644
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@ -82,7 +82,6 @@ class SwAccessibleMap;
namespace vcl
{
typedef OutputDevice RenderContext;
- class OldStylePrintAdaptor;
}
// Define for flags needed in ctor or layers below.
diff --git a/toolkit/source/awt/vclxprinter.cxx b/toolkit/source/awt/vclxprinter.cxx
index 3c61ad7b5fbd..7afe226f98de 100644
--- a/toolkit/source/awt/vclxprinter.cxx
+++ b/toolkit/source/awt/vclxprinter.cxx
@@ -28,6 +28,7 @@
#include <vcl/print.hxx>
#include <vcl/jobset.hxx>
#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
#include <tools/debug.hxx>
#include <tools/stream.hxx>
@@ -283,7 +284,7 @@ sal_Bool VCLXPrinter::start( const OUString& /*rJobName*/, sal_Int16 /*nCopies*/
if (mxPrinter.get())
{
maInitJobSetup = mxPrinter->GetJobSetup();
- mxListener.reset(new vcl::OldStylePrintAdaptor(mxPrinter));
+ mxListener.reset(new vcl::OldStylePrintAdaptor(mxPrinter, nullptr));
}
return true;
diff --git a/vcl/source/gdi/oldprintadaptor.cxx b/vcl/source/gdi/oldprintadaptor.cxx
index a823a1be897c..8636034c6fbd 100644
--- a/vcl/source/gdi/oldprintadaptor.cxx
+++ b/vcl/source/gdi/oldprintadaptor.cxx
@@ -44,9 +44,9 @@ namespace vcl
};
}
-OldStylePrintAdaptor::OldStylePrintAdaptor( const VclPtr< Printer >& i_xPrinter )
- : PrinterController( i_xPrinter )
- , mpData( new ImplOldStyleAdaptorData )
+OldStylePrintAdaptor::OldStylePrintAdaptor(const VclPtr<Printer>& i_xPrinter, const VclPtr<vcl::Window>& i_xWindow)
+ : PrinterController(i_xPrinter, i_xWindow)
+ , mpData(new ImplOldStyleAdaptorData)
{
}
diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx
index 8659de290fb7..22edd1734de9 100644
--- a/vcl/source/gdi/print3.cxx
+++ b/vcl/source/gdi/print3.cxx
@@ -140,6 +140,7 @@ public:
typedef std::unordered_map< OUString, css::uno::Sequence< sal_Bool > > ChoiceDisableMap;
VclPtr< Printer > mxPrinter;
+ VclPtr<vcl::Window> mxWindow;
css::uno::Sequence< css::beans::PropertyValue > maUIOptions;
std::vector< css::beans::PropertyValue > maUIProperties;
std::vector< bool > maUIPropertyEnabled;
@@ -207,10 +208,11 @@ public:
void resetPaperToLastConfigured();
};
-PrinterController::PrinterController( const VclPtr<Printer>& i_xPrinter )
+PrinterController::PrinterController(const VclPtr<Printer>& i_xPrinter, const VclPtr<vcl::Window>& i_xWindow)
: mpImplData( new ImplPrinterControllerData )
{
mpImplData->mxPrinter = i_xPrinter;
+ mpImplData->mxWindow = i_xWindow;
}
static OUString queryFile( Printer const * pPrinter )
@@ -304,7 +306,7 @@ bool Printer::PreparePrintJob(std::shared_ptr<PrinterController> xController,
if (xController->isShowDialogs())
{
ScopedVclPtrInstance<MessageDialog> aBox(
- nullptr, "ErrorNoPrinterDialog",
+ xController->getWindow(), "ErrorNoPrinterDialog",
"vcl/ui/errornoprinterdialog.ui");
aBox->Execute();
}
@@ -455,7 +457,7 @@ bool Printer::PreparePrintJob(std::shared_ptr<PrinterController> xController,
if( xController->getFilteredPageCount() == 0 )
{
ScopedVclPtrInstance<MessageDialog> aBox(
- nullptr, "ErrorNoContentDialog",
+ xController->getWindow(), "ErrorNoContentDialog",
"vcl/ui/errornocontentdialog.ui");
aBox->Execute();
return false;
@@ -768,6 +770,11 @@ const VclPtr<Printer>& PrinterController::getPrinter() const
return mpImplData->mxPrinter;
}
+const VclPtr<vcl::Window>& PrinterController::getWindow() const
+{
+ return mpImplData->mxWindow;
+}
+
void PrinterController::setPrinter( const VclPtr<Printer>& i_rPrinter )
{
mpImplData->mxPrinter = i_rPrinter;