diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-02-19 16:33:35 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-02-20 00:19:35 +0100 |
commit | 60ae5f530c3123341a8c2d49793693c2cd4521c2 (patch) | |
tree | d8cba0d2489a3e6ebcdc4559c797405217d3c179 | |
parent | 26b51c9550ef300e7685fc41eb9cde4dbbc11265 (diff) |
make it possible to set parent window for printer error messages
Change-Id: I0effa3645454ef9d03393ae8b256cd624ca04f03
Reviewed-on: https://gerrit.libreoffice.org/50008
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | include/vcl/oldprintadaptor.hxx | 2 | ||||
-rw-r--r-- | include/vcl/print.hxx | 3 | ||||
-rw-r--r-- | sfx2/source/view/viewprn.cxx | 2 | ||||
-rw-r--r-- | sw/inc/viewsh.hxx | 1 | ||||
-rw-r--r-- | toolkit/source/awt/vclxprinter.cxx | 3 | ||||
-rw-r--r-- | vcl/source/gdi/oldprintadaptor.cxx | 6 | ||||
-rw-r--r-- | vcl/source/gdi/print3.cxx | 13 |
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; |