You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2013/02/24 20:23:21 UTC

svn commit: r1449533 - in /openoffice/trunk/main/sfx2: inc/sfx2/event.hxx source/doc/printhelper.cxx source/view/viewprn.cxx

Author: arielch
Date: Sun Feb 24 19:23:21 2013
New Revision: 1449533

URL: http://svn.apache.org/r1449533
Log:
i121810 - Adapt SfxPrintingHint to work with the "new" XDocumentEventBroadcaster

Modified:
    openoffice/trunk/main/sfx2/inc/sfx2/event.hxx
    openoffice/trunk/main/sfx2/source/doc/printhelper.cxx
    openoffice/trunk/main/sfx2/source/view/viewprn.cxx

Modified: openoffice/trunk/main/sfx2/inc/sfx2/event.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/inc/sfx2/event.hxx?rev=1449533&r1=1449532&r2=1449533&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/inc/sfx2/event.hxx (original)
+++ openoffice/trunk/main/sfx2/inc/sfx2/event.hxx Sun Feb 24 19:23:21 2013
@@ -25,6 +25,7 @@
 
 #include "sal/config.h"
 #include "sfx2/dllapi.h"
+#include "sfx2/sfx.hrc"
 #include <tools/string.hxx>
 #include <svl/hint.hxx>
 #include <unotools/eventcfg.hxx>
@@ -33,6 +34,9 @@
 #include <com/sun/star/uno/Sequence.hxx>
 #include <com/sun/star/beans/PropertyValue.hpp>
 #include <com/sun/star/frame/XController2.hpp>
+#include <com/sun/star/view/PrintableState.hpp>
+
+namespace css = ::com::sun::star;
 
 class SfxObjectShell;
 
@@ -66,22 +70,22 @@ public:
 
 class SFX2_DLLPUBLIC SfxViewEventHint : public SfxEventHint
 {
-    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > xViewController;
+    ::com::sun::star::uno::Reference< css::frame::XController2 > xViewController;
 
 public:
 	TYPEINFO();
 
-	SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& xController )
+	SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const css::uno::Reference< css::frame::XController >& xController )
 						: SfxEventHint( nId, aName, pObj )
-                        , xViewController( xController, ::com::sun::star::uno::UNO_QUERY )  
+                        , xViewController( xController, css::uno::UNO_QUERY )
 						{}
 
-	SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& xController )
+	SfxViewEventHint( sal_uInt16 nId, const ::rtl::OUString& aName, SfxObjectShell *pObj, const css::uno::Reference< css::frame::XController2 >& xController )
 						: SfxEventHint( nId, aName, pObj )
                         , xViewController( xController )  
 						{}
 
-    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > GetController() const
+    css::uno::Reference< css::frame::XController2 > GetController() const
                         { return xViewController; }
 };
 
@@ -116,23 +120,35 @@ public:
 };
 
 class Printer;
-class SfxPrintingHint : public SfxHint
+
+class SfxPrintingHint : public SfxViewEventHint
 {
-	sal_Int32			nWhich;
-	com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aOpts;
+    sal_Int32 mnPrintableState;
+    com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aOpts;
 public:
-						TYPEINFO();
-						SfxPrintingHint( sal_Int32 nEvent, const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& rOpts )
-							: nWhich( nEvent )
-							, aOpts( rOpts )
-						{}
+        TYPEINFO();
 
-						SfxPrintingHint( sal_Int32 nEvent )
-							: nWhich( nEvent )
-						{}
+        SfxPrintingHint(
+                sal_Int32 nEvent,
+                const css::uno::Sequence < css::beans::PropertyValue >& rOpts,
+                SfxObjectShell *pObj,
+                const css::uno::Reference< css::frame::XController2 >& xController )
+        : SfxViewEventHint(
+            SFX_EVENT_PRINTDOC,
+            GlobalEventConfig::GetEventName( STR_EVENT_PRINTDOC ),
+            pObj,
+            xController )
+        , mnPrintableState( nEvent )
+        , aOpts( rOpts )
+        {}
+
+        SfxPrintingHint( sal_Int32 nEvent )
+        : SfxViewEventHint( SFX_EVENT_PRINTDOC, rtl::OUString(), 0, css::uno::Reference< css::frame::XController >() )
+        , mnPrintableState( nEvent )
+        {}
 
-	sal_Int32			GetWhich() const { return nWhich; }
-	const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& GetOptions() { return aOpts; }
+    sal_Int32 GetWhich() const { return mnPrintableState; }
+    const css::uno::Sequence < css::beans::PropertyValue >& GetOptions() { return aOpts; }
 };
 
 #endif

Modified: openoffice/trunk/main/sfx2/source/doc/printhelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/doc/printhelper.cxx?rev=1449533&r1=1449532&r2=1449533&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/doc/printhelper.cxx (original)
+++ openoffice/trunk/main/sfx2/source/doc/printhelper.cxx Sun Feb 24 19:23:21 2013
@@ -60,6 +60,8 @@
 #include <sfx2/objsh.hxx>
 #include <sfx2/event.hxx>
 
+#define SFX_PRINTABLESTATE_CANCELJOB    -2
+
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
@@ -143,7 +145,7 @@ void SAL_CALL SfxPrintJob_Impl::cancelJo
 {
 	// FIXME: how to cancel PrintJob via API?!
 	if( m_pData->m_pObjectShell.Is() )
-		m_pData->m_pObjectShell->Broadcast( SfxPrintingHint( -2 ) );
+		m_pData->m_pObjectShell->Broadcast( SfxPrintingHint( SFX_PRINTABLESTATE_CANCELJOB ) );
 }
 
 SfxPrintHelper::SfxPrintHelper()
@@ -788,7 +790,7 @@ void IMPL_PrintListener_DataContainer::N
     SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint );
     if ( &rBC != m_pObjectShell
         || !pPrintHint
-        || pPrintHint->GetWhich() == -2 ) // -2 : CancelPrintJob
+        || pPrintHint->GetWhich() == SFX_PRINTABLESTATE_CANCELJOB )
         return;
 
     if ( pPrintHint->GetWhich() == com::sun::star::view::PrintableState_JOB_STARTED )

Modified: openoffice/trunk/main/sfx2/source/view/viewprn.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/view/viewprn.cxx?rev=1449533&r1=1449532&r2=1449533&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/view/viewprn.cxx (original)
+++ openoffice/trunk/main/sfx2/source/view/viewprn.cxx Sun Feb 24 19:23:21 2013
@@ -25,7 +25,6 @@
 #include "precompiled_sfx2.hxx"
 
 #include <com/sun/star/document/XDocumentProperties.hpp>
-#include <com/sun/star/view/PrintableState.hpp>
 #include "com/sun/star/view/XRenderable.hpp"
 
 #include <svl/itempool.hxx>
@@ -61,7 +60,7 @@
 using namespace com::sun::star;
 using namespace com::sun::star::uno;
 
-TYPEINIT1(SfxPrintingHint, SfxHint);
+TYPEINIT1(SfxPrintingHint, SfxViewEventHint);
 
 // -----------------------------------------------------------------------
 class SfxPrinterController : public vcl::PrinterController, public SfxListener
@@ -305,9 +304,15 @@ void SfxPrinterController::jobStarted()
             now.Get100Sec(), now.GetSec(), now.GetMin(), now.GetHour(),
             now.GetDay(), now.GetMonth(), now.GetYear() ) );
 
-		// FIXME: how to get all print options incl. AdditionalOptions easily?
 		uno::Sequence < beans::PropertyValue > aOpts;
-		mpObjectShell->Broadcast( SfxPrintingHint( view::PrintableState_JOB_STARTED, aOpts ) );
+        aOpts = getJobProperties( aOpts );
+
+        uno::Reference< frame::XController2 > xController;
+        if ( mpViewShell )
+            xController.set( mpViewShell->GetController(), uno::UNO_QUERY );
+
+        mpObjectShell->Broadcast( SfxPrintingHint(
+            view::PrintableState_JOB_STARTED, aOpts, mpObjectShell, xController ) );
 	}
 }