summaryrefslogtreecommitdiff
path: root/sfx2/source
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2013-02-24 18:23:09 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-06-19 15:38:38 +0100
commitbf4ecd6138f07ca6207eeec306517eff4aff220e (patch)
tree43ba16732a7f1b8bc87d4520d46f323a555a8f93 /sfx2/source
parentaaf3ff8adf0821090ba4cc9043e7f3a1ce1f6033 (diff)
Resolves: fdo#65908 #i114817# missing PrintableState_JOB_STARTED notification
(cherry picked from commit 914cb68eed75ee8aa38fbf48d029057a66a21f30) Change-Id: Icb7c304b856cfca7f80090c2d193a0b92a27bb30
Diffstat (limited to 'sfx2/source')
-rw-r--r--sfx2/source/doc/printhelper.cxx47
1 files changed, 23 insertions, 24 deletions
diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx
index e55276bb44c3..1b00652fde04 100644
--- a/sfx2/source/doc/printhelper.cxx
+++ b/sfx2/source/doc/printhelper.cxx
@@ -789,32 +789,31 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >&
void IMPL_PrintListener_DataContainer::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
{
- if ( &rBC == m_pObjectShell )
+ SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint );
+ if ( &rBC != m_pObjectShell
+ || !pPrintHint
+ || pPrintHint->GetWhich() == -2 ) // -2 : CancelPrintJob
+ return;
+
+ if ( pPrintHint->GetWhich() == com::sun::star::view::PrintableState_JOB_STARTED )
{
- SfxPrintingHint* pPrintHint = PTR_CAST( SfxPrintingHint, &rHint );
- if ( pPrintHint )
- {
- if ( pPrintHint->GetWhich() == com::sun::star::view::PrintableState_JOB_STARTED )
- {
- if ( !m_xPrintJob.is() )
- m_xPrintJob = new SfxPrintJob_Impl( this );
- m_aPrintOptions = pPrintHint->GetOptions();
- }
- else if ( pPrintHint->GetWhich() != -2 ) // -2 : CancelPrintJob
- {
- view::PrintJobEvent aEvent;
- aEvent.Source = m_xPrintJob;
- aEvent.State = (com::sun::star::view::PrintableState) pPrintHint->GetWhich();
- ::cppu::OInterfaceContainerHelper* pContainer = m_aInterfaceContainer.getContainer( ::getCppuType( ( const uno::Reference< view::XPrintJobListener >*) NULL ) );
- if ( pContainer!=NULL )
- {
- ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
- while (pIterator.hasMoreElements())
- ((view::XPrintJobListener*)pIterator.next())->printJobEvent( aEvent );
- }
- }
- }
+ if ( !m_xPrintJob.is() )
+ m_xPrintJob = new SfxPrintJob_Impl( this );
+ m_aPrintOptions = pPrintHint->GetOptions();
}
+
+ ::cppu::OInterfaceContainerHelper* pContainer = m_aInterfaceContainer.getContainer(
+ ::getCppuType( ( const uno::Reference< view::XPrintJobListener >*) NULL ) );
+ if ( !pContainer )
+ return;
+
+ view::PrintJobEvent aEvent;
+ aEvent.Source = m_xPrintJob;
+ aEvent.State = (com::sun::star::view::PrintableState) pPrintHint->GetWhich();
+
+ ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ while (pIterator.hasMoreElements())
+ ((view::XPrintJobListener*)pIterator.next())->printJobEvent( aEvent );
}
void SAL_CALL SfxPrintHelper::addPrintJobListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XPrintJobListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)