diff options
Diffstat (limited to 'svx/source/form')
-rw-r--r-- | svx/source/form/datanavi.cxx | 2 | ||||
-rw-r--r-- | svx/source/form/fmshimp.cxx | 121 | ||||
-rw-r--r-- | svx/source/form/fmsrcimp.cxx | 22 | ||||
-rw-r--r-- | svx/source/form/fmvwimp.cxx | 244 | ||||
-rw-r--r-- | svx/source/form/formcontroller.cxx | 107 |
5 files changed, 196 insertions, 300 deletions
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx index 8ce3d6e7ba7cc..9412c715b2b51 100644 --- a/svx/source/form/datanavi.cxx +++ b/svx/source/form/datanavi.cxx @@ -352,7 +352,7 @@ namespace svxform WinBits nBits = WB_BORDER | WB_TABSTOP | WB_HIDESELECTION | WB_NOINITIALSELECTION; if ( DGTInstance == m_eGroup || DGTSubmission == m_eGroup ) nBits |= WB_HASBUTTONS | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONSATROOT; - m_aItemList.SetWindowBits( m_aItemList.GetStyle() | nBits ); + m_aItemList.SetStyle( m_aItemList.GetStyle() | nBits ); m_aItemList.Show(); ItemSelectHdl( &m_aItemList ); } diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx index 52ad139543c5c..e627624d81023 100644 --- a/svx/source/form/fmshimp.cxx +++ b/svx/source/form/fmshimp.cxx @@ -538,7 +538,6 @@ sal_Bool IsSearchableControl( const ::com::sun::star::uno::Reference< ::com::sun //------------------------------------------------------------------------------ sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>& _rContainer) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldStepInto" ); if (_rContainer == m_xStartingPoint) // would be quite stupid to step over the root .... return sal_True; @@ -549,7 +548,6 @@ sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>& //------------------------------------------------------------------------------ sal_Bool FmXBoundFormFieldIterator::ShouldHandleElement(const Reference< XInterface>& _rElement) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldHandleElement" ); if (!_rElement.is()) // NULL element return sal_False; @@ -675,7 +673,6 @@ FmXFormShell::FmXFormShell( FmFormShell& _rShell, SfxViewFrame* _pViewFrame ) ,m_bPreparedClose( sal_False ) ,m_bFirstActivation( sal_True ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::FmXFormShell" ); DBG_CTOR(FmXFormShell,NULL); m_aMarkTimer.SetTimeout(100); m_aMarkTimer.SetTimeoutHdl(LINK(this,FmXFormShell,OnTimeOut)); @@ -707,7 +704,6 @@ FmXFormShell::~FmXFormShell() //------------------------------------------------------------------ Reference< XModel > FmXFormShell::getContextDocument() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getContextDocument" ); Reference< XModel > xModel; // determine the type of document we live in @@ -729,14 +725,12 @@ Reference< XModel > FmXFormShell::getContextDocument() const //------------------------------------------------------------------ bool FmXFormShell::isEnhancedForm() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isEnhancedForm" ); return getDocumentType() == eEnhancedForm; } //------------------------------------------------------------------ bool FmXFormShell::impl_checkDisposed() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_checkDisposed" ); if ( !m_pShell ) { OSL_ENSURE( false, "FmXFormShell::impl_checkDisposed: already disposed!" ); @@ -748,7 +742,6 @@ bool FmXFormShell::impl_checkDisposed() const //------------------------------------------------------------------ ::svxform::DocumentType FmXFormShell::getDocumentType() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getDocumentType" ); if ( m_eDocumentType != eUnknownDocumentType ) return m_eDocumentType; @@ -769,7 +762,6 @@ bool FmXFormShell::impl_checkDisposed() const //------------------------------------------------------------------ bool FmXFormShell::IsReadonlyDoc() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsReadonlyDoc" ); if ( impl_checkDisposed() ) return true; @@ -782,19 +774,16 @@ bool FmXFormShell::IsReadonlyDoc() const //------------------------------------------------------------------ Any SAL_CALL FmXFormShell::queryInterface( const Type& type) throw ( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::queryInterface" ); return FmXFormShell_BASE::queryInterface(type); } //------------------------------------------------------------------------------ Sequence< Type > SAL_CALL FmXFormShell::getTypes( ) throw(RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getTypes" ); return FmXFormShell_BASE::getTypes(); } //------------------------------------------------------------------------------ Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getImplementationId" ); static ::cppu::OImplementationId* pId = 0; if (! pId) { @@ -811,7 +800,6 @@ Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeE //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" ); impl_checkDisposed(); if (m_xActiveController == e.Source) @@ -851,7 +839,6 @@ void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeExcept //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::propertyChange" ); if ( impl_checkDisposed() ) return; @@ -888,7 +875,6 @@ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw //------------------------------------------------------------------------------ void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatures ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::invalidateFeatures" ); if ( impl_checkDisposed() ) return; @@ -918,7 +904,6 @@ void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatu //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formActivated" ); if ( impl_checkDisposed() ) return; @@ -930,7 +915,6 @@ void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( Runt //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formDeactivated" ); if ( impl_checkDisposed() ) return; @@ -941,7 +925,6 @@ void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( Ru //------------------------------------------------------------------------------ void FmXFormShell::disposing() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" ); impl_checkDisposed(); FmXFormShell_BASE::disposing(); @@ -1019,7 +1002,6 @@ void FmXFormShell::disposing() //------------------------------------------------------------------------------ void FmXFormShell::UpdateSlot( sal_Int16 _nId ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateSlot" ); if ( impl_checkDisposed() ) return; @@ -1041,7 +1023,6 @@ void FmXFormShell::UpdateSlot( sal_Int16 _nId ) //------------------------------------------------------------------------------ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::InvalidateSlot" ); if ( impl_checkDisposed() ) return; @@ -1050,7 +1031,7 @@ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId ) { m_arrInvalidSlots.Insert(nId, m_arrInvalidSlots.Count()); BYTE nFlags = ( bWithId ? 0x01 : 0 ); - m_arrInvalidSlots_Flags.Insert(nFlags, m_arrInvalidSlots_Flags.Count()); + m_arrInvalidSlots_Flags.push_back(nFlags); } else if (nId) @@ -1062,7 +1043,6 @@ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId ) //------------------------------------------------------------------------------ void FmXFormShell::LockSlotInvalidation(sal_Bool bLock) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LockSlotInvalidation" ); if ( impl_checkDisposed() ) return; @@ -1088,7 +1068,7 @@ IMPL_LINK(FmXFormShell, OnInvalidateSlots, void*, EMPTYARG) ::osl::MutexGuard aGuard(m_aInvalidationSafety); m_nInvalidationEvent = 0; - DBG_ASSERT(m_arrInvalidSlots.Count() == m_arrInvalidSlots_Flags.Count(), + DBG_ASSERT(m_arrInvalidSlots.Count() == m_arrInvalidSlots_Flags.size(), "FmXFormShell::OnInvalidateSlots : inconsistent slot arrays !"); BYTE nFlags; for (sal_Int16 i=0; i<m_arrInvalidSlots.Count(); ++i) @@ -1102,14 +1082,13 @@ IMPL_LINK(FmXFormShell, OnInvalidateSlots, void*, EMPTYARG) } m_arrInvalidSlots.Remove(0, m_arrInvalidSlots.Count()); - m_arrInvalidSlots_Flags.Remove(0, m_arrInvalidSlots_Flags.Count()); + m_arrInvalidSlots_Flags.clear(); return 0L; } //------------------------------------------------------------------------------ void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForceUpdateSelection" ); if ( impl_checkDisposed() ) return; @@ -1131,7 +1110,6 @@ void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation) //------------------------------------------------------------------------------ PopupMenu* FmXFormShell::GetConversionMenu() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetConversionMenu" ); const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); BOOL bIsHiContrastMode = rSettings.GetHighContrastMode(); @@ -1150,7 +1128,6 @@ PopupMenu* FmXFormShell::GetConversionMenu() //------------------------------------------------------------------------------ bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isControlConversionSlot" ); for ( size_t i = 0; i < sizeof( nConvertSlots ) / sizeof( nConvertSlots[0] ); ++i ) if (nConvertSlots[i] == nSlotId) return true; @@ -1160,7 +1137,6 @@ bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId ) //------------------------------------------------------------------------------ bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" ); OSL_PRECOND( canConvertCurrentSelectionToControl( _nSlotId ), "FmXFormShell::executeControlConversionSlot: illegal call!" ); InterfaceBag::const_iterator aSelectedElement = m_aCurrentSelection.begin(); if ( aSelectedElement == m_aCurrentSelection.end() ) @@ -1172,7 +1148,6 @@ bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId ) //------------------------------------------------------------------------------ bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent >& _rxObject, sal_uInt16 _nSlotId ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" ); if ( impl_checkDisposed() ) return false; @@ -1379,7 +1354,6 @@ bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent //------------------------------------------------------------------------------ bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlot ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::canConvertCurrentSelectionToControl" ); if ( m_aCurrentSelection.empty() ) return false; @@ -1418,7 +1392,6 @@ bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlo //------------------------------------------------------------------------------ void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::checkControlConversionSlotsForCurrentSelection" ); for (sal_Int16 i=0; i<rMenu.GetItemCount(); ++i) // der Context ist schon von einem Typ, der dem Eitnrag entspricht -> disable rMenu.EnableItem( rMenu.GetItemId(i), canConvertCurrentSelectionToControl( rMenu.GetItemId( i ) ) ); @@ -1427,7 +1400,6 @@ void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu ) //------------------------------------------------------------------------------ void FmXFormShell::LoopGrids(sal_Int16 nWhat) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LoopGrids" ); if ( impl_checkDisposed() ) return; @@ -1497,7 +1469,6 @@ void FmXFormShell::LoopGrids(sal_Int16 nWhat) //------------------------------------------------------------------------------ Reference< XControlContainer > FmXFormShell::getControlContainerForView() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getControlContainerForView" ); if ( impl_checkDisposed() ) return NULL; @@ -1515,7 +1486,6 @@ Reference< XControlContainer > FmXFormShell::getControlContainerForView() //------------------------------------------------------------------------------ void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel >& _rxForForm ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTabOrderDialog" ); if ( impl_checkDisposed() ) return; @@ -1564,7 +1534,6 @@ void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel > //------------------------------------------------------------------------------ void FmXFormShell::ExecuteSearch() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteSearch" ); if ( impl_checkDisposed() ) return; @@ -1711,7 +1680,6 @@ void FmXFormShell::ExecuteSearch() //------------------------------------------------------------------------------ sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetY2KState" ); if ( impl_checkDisposed() ) return sal_False; @@ -1751,7 +1719,6 @@ sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n) //------------------------------------------------------------------------------ void FmXFormShell::SetY2KState(sal_uInt16 n) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetY2KState" ); if ( impl_checkDisposed() ) return; @@ -1826,7 +1793,6 @@ void FmXFormShell::SetY2KState(sal_uInt16 n) //------------------------------------------------------------------------------ void FmXFormShell::CloseExternalFormViewer() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CloseExternalFormViewer" ); if ( impl_checkDisposed() ) return; @@ -1848,7 +1814,6 @@ void FmXFormShell::CloseExternalFormViewer() //------------------------------------------------------------------------------ Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet>& _xForm) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" ); if ( impl_checkDisposed() ) return NULL; @@ -1864,7 +1829,6 @@ Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet //------------------------------------------------------------------------------ Reference< XForm> FmXFormShell::getInternalForm(const Reference< XForm>& _xForm) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" ); if ( impl_checkDisposed() ) return NULL; @@ -1893,7 +1857,6 @@ namespace //------------------------------------------------------------------------------ bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pCompleteState ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsFormSlotEnabled" ); const ::svx::ControllerFeatures& rController = lcl_isNavigationRelevant( _nSlot ) ? getNavControllerFeatures() @@ -1909,7 +1872,6 @@ bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pComplete //------------------------------------------------------------------------------ void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteFormSlot" ); const ::svx::ControllerFeatures& rController = lcl_isNavigationRelevant( _nSlot ) ? getNavControllerFeatures() @@ -1945,7 +1907,6 @@ void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot ) //------------------------------------------------------------------------------ void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_switchActiveControllerListening" ); Reference< XComponent> xComp( m_xActiveController, UNO_QUERY ); if ( !xComp.is() ) return; @@ -1959,7 +1920,6 @@ void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen ) //------------------------------------------------------------------------------ void FmXFormShell::setActiveController( const Reference< runtime::XFormController >& xController, sal_Bool _bNoSaveOldContent ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setActiveController" ); if ( impl_checkDisposed() ) return; @@ -2068,14 +2028,12 @@ void FmXFormShell::setActiveController( const Reference< runtime::XFormControlle //------------------------------------------------------------------------------ void FmXFormShell::getCurrentSelection( InterfaceBag& /* [out] */ _rSelection ) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getCurrentSelection" ); _rSelection = m_aCurrentSelection; } //------------------------------------------------------------------------------ bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelectionFromMark" ); m_aLastKnownMarkedControls.clear(); if ( ( _rMarkList.GetMarkCount() > 0 ) && isControlList( _rMarkList ) ) @@ -2087,14 +2045,12 @@ bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList ) //------------------------------------------------------------------------------ bool FmXFormShell::selectLastMarkedControls() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectLastMarkedControls" ); return setCurrentSelection( m_aLastKnownMarkedControls ); } //------------------------------------------------------------------------------ bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelection" ); if ( impl_checkDisposed() ) return false; @@ -2176,14 +2132,12 @@ bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection ) //------------------------------------------------------------------------------ bool FmXFormShell::isSolelySelected( const Reference< XInterface >& _rxObject ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isSolelySelected" ); return ( m_aCurrentSelection.size() == 1 ) && ( *m_aCurrentSelection.begin() == _rxObject ); } //------------------------------------------------------------------------------ void FmXFormShell::forgetCurrentForm() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::forgetCurrentForm" ); if ( !m_xCurrentForm.is() ) return; @@ -2198,7 +2152,6 @@ void FmXFormShell::forgetCurrentForm() //------------------------------------------------------------------------------ void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurForm ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_updateCurrentForm" ); if ( impl_checkDisposed() ) return; @@ -2217,7 +2170,6 @@ void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurFo //------------------------------------------------------------------------------ void FmXFormShell::startListening() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startListening" ); if ( impl_checkDisposed() ) return; @@ -2297,7 +2249,6 @@ void FmXFormShell::startListening() //------------------------------------------------------------------------------ void FmXFormShell::stopListening() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopListening" ); if ( impl_checkDisposed() ) return; @@ -2321,7 +2272,6 @@ void FmXFormShell::stopListening() //------------------------------------------------------------------------------ void FmXFormShell::ShowSelectionProperties( sal_Bool bShow ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ShowSelectionProperties" ); if ( impl_checkDisposed() ) return; @@ -2652,7 +2602,6 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn //------------------------------------------------------------------------------ void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementInserted" ); if ( impl_checkDisposed() ) return; @@ -2666,7 +2615,6 @@ void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun:: //------------------------------------------------------------------------------ void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementReplaced" ); if ( impl_checkDisposed() ) return; @@ -2680,7 +2628,6 @@ void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun:: //------------------------------------------------------------------------------ void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementRemoved" ); if ( impl_checkDisposed() ) return; @@ -2693,7 +2640,6 @@ void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::s //------------------------------------------------------------------------------ void FmXFormShell::UpdateForms( sal_Bool _bInvalidate ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateForms" ); if ( impl_checkDisposed() ) return; @@ -2719,7 +2665,6 @@ void FmXFormShell::UpdateForms( sal_Bool _bInvalidate ) //------------------------------------------------------------------------------ void FmXFormShell::AddElement(const Reference< XInterface>& _xElement) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::AddElement" ); if ( impl_checkDisposed() ) return; impl_AddElement_nothrow(_xElement); @@ -2752,7 +2697,6 @@ void FmXFormShell::impl_AddElement_nothrow(const Reference< XInterface>& Element //------------------------------------------------------------------------------ void FmXFormShell::RemoveElement(const Reference< XInterface>& Element) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::RemoveElement" ); if ( impl_checkDisposed() ) return; impl_RemoveElement_nothrow(Element); @@ -2789,7 +2733,6 @@ void FmXFormShell::impl_RemoveElement_nothrow(const Reference< XInterface>& Elem //------------------------------------------------------------------------------ void FmXFormShell::selectionChanged(const EventObject& rEvent) throw(::com::sun::star::uno::RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectionChanged" ); if ( impl_checkDisposed() ) return; @@ -2831,7 +2774,6 @@ IMPL_LINK(FmXFormShell, OnTimeOut, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------ void FmXFormShell::SetSelectionDelayed() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelectionDelayed" ); if ( impl_checkDisposed() ) return; @@ -2842,7 +2784,6 @@ void FmXFormShell::SetSelectionDelayed() //------------------------------------------------------------------------ void FmXFormShell::SetSelection(const SdrMarkList& rMarkList) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelection" ); if ( impl_checkDisposed() ) return; @@ -2853,7 +2794,6 @@ void FmXFormShell::SetSelection(const SdrMarkList& rMarkList) //------------------------------------------------------------------------ void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::DetermineSelection" ); if ( setCurrentSelectionFromMark( rMarkList ) && IsPropBrwOpen() ) ShowSelectionProperties( sal_True ); } @@ -2861,7 +2801,6 @@ void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList) //------------------------------------------------------------------------------ sal_Bool FmXFormShell::IsPropBrwOpen() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsPropBrwOpen" ); if ( impl_checkDisposed() ) return sal_False; @@ -2898,7 +2837,6 @@ public: //------------------------------------------------------------------------------ void FmXFormShell::SetDesignMode(sal_Bool bDesign) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetDesignMode" ); if ( impl_checkDisposed() ) return; @@ -3031,7 +2969,6 @@ Reference< XControl> FmXFormShell::impl_getControl( const Reference< XControlMod void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInterface>& _rxStartingPoint, const ::rtl::OUString& _rCurrentLevelPrefix, FmFormArray& _out_rForms, ::std::vector< String >& _out_rNames ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_collectFormSearchContexts_nothrow" ); try { Reference< XIndexAccess> xContainer( _rxStartingPoint, UNO_QUERY ); @@ -3086,7 +3023,6 @@ void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInt //------------------------------------------------------------------------------ void FmXFormShell::startFiltering() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startFiltering" ); if ( impl_checkDisposed() ) return; @@ -3103,12 +3039,14 @@ void FmXFormShell::startFiltering() else xContainer = getActiveController()->getContainer(); - FmWinRecList::iterator i = pXView->findWindow(xContainer); - if (i != pXView->getWindowList().end()) + PFormViewPageWindowAdapter pAdapter = pXView->findWindow( xContainer ); + if ( pAdapter.is() ) { - const ::std::vector< Reference< runtime::XFormController> >& rControllerList = (*i)->GetList(); - for (::std::vector< Reference< runtime::XFormController> >::const_iterator j = rControllerList.begin(); - j != rControllerList.end(); ++j) + const ::std::vector< Reference< runtime::XFormController> >& rControllerList = pAdapter->GetList(); + for ( ::std::vector< Reference< runtime::XFormController> >::const_iterator j = rControllerList.begin(); + j != rControllerList.end(); + ++j + ) { Reference< XModeSelector> xModeSelector(*j, UNO_QUERY); if (xModeSelector.is()) @@ -3161,7 +3099,6 @@ void saveFilter(const Reference< runtime::XFormController >& _rxController) //------------------------------------------------------------------------------ void FmXFormShell::stopFiltering(sal_Bool bSave) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopFiltering" ); if ( impl_checkDisposed() ) return; @@ -3179,10 +3116,10 @@ void FmXFormShell::stopFiltering(sal_Bool bSave) else xContainer = getActiveController()->getContainer(); - FmWinRecList::iterator i = pXView->findWindow(xContainer); - if (i != pXView->getWindowList().end()) + PFormViewPageWindowAdapter pAdapter = pXView->findWindow(xContainer); + if ( pAdapter.is() ) { - const ::std::vector< Reference< runtime::XFormController > >& rControllerList = (*i)->GetList(); + const ::std::vector< Reference< runtime::XFormController > >& rControllerList = pAdapter->GetList(); ::std::vector < ::rtl::OUString > aOriginalFilters; ::std::vector < sal_Bool > aOriginalApplyFlags; @@ -3223,7 +3160,7 @@ void FmXFormShell::stopFiltering(sal_Bool bSave) } if (bSave) // execute the filter { - const ::std::vector< Reference< runtime::XFormController > > & rControllers = (*i)->GetList(); + const ::std::vector< Reference< runtime::XFormController > > & rControllers = pAdapter->GetList(); for (::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllers.begin(); j != rControllers.end(); ++j) { @@ -3300,7 +3237,6 @@ void clearFilter(const Reference< runtime::XFormController >& _rxController) //------------------------------------------------------------------------------ void FmXFormShell::clearFilter() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::clearFilter" ); if ( impl_checkDisposed() ) return; @@ -3316,12 +3252,14 @@ void FmXFormShell::clearFilter() else xContainer = getActiveController()->getContainer(); - FmWinRecList::iterator i = pXView->findWindow(xContainer); - if (i != pXView->getWindowList().end()) + PFormViewPageWindowAdapter pAdapter = pXView->findWindow(xContainer); + if ( pAdapter.is() ) { - const ::std::vector< Reference< runtime::XFormController > > & rControllerList = (*i)->GetList(); - for (::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllerList.begin(); - j != rControllerList.end(); ++j) + const ::std::vector< Reference< runtime::XFormController > > & rControllerList = pAdapter->GetList(); + for ( ::std::vector< Reference< runtime::XFormController > > ::const_iterator j = rControllerList.begin(); + j != rControllerList.end(); + ++j + ) { ::clearFilter(*j); } @@ -3331,7 +3269,6 @@ void FmXFormShell::clearFilter() //------------------------------------------------------------------------------ void FmXFormShell::CreateExternalView() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CreateExternalView" ); if ( impl_checkDisposed() ) return; @@ -3746,7 +3683,6 @@ void FmXFormShell::CreateExternalView() //------------------------------------------------------------------------ void FmXFormShell::implAdjustConfigCache() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::implAdjustConfigCache" ); // get (cache) the wizard usage flag Sequence< ::rtl::OUString > aNames(1); aNames[0] = ::rtl::OUString::createFromAscii("FormControlPilotsEnabled"); @@ -3758,7 +3694,6 @@ void FmXFormShell::implAdjustConfigCache() //------------------------------------------------------------------------ void FmXFormShell::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::Notify" ); if ( impl_checkDisposed() ) return; @@ -3779,7 +3714,6 @@ void FmXFormShell::Commit() //------------------------------------------------------------------------ void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetWizardUsing" ); m_bUseWizards = _bUseThem; Sequence< ::rtl::OUString > aNames(1); @@ -3792,7 +3726,6 @@ void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem) //------------------------------------------------------------------------ void FmXFormShell::viewDeactivated( FmFormView& _rCurrentView, sal_Bool _bDeactivateController /* = sal_True */ ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewDeactivated" ); if ( _rCurrentView.GetImpl() && !_rCurrentView.IsDesignMode() ) { @@ -3864,7 +3797,6 @@ IMPL_LINK( FmXFormShell, OnFormsCreated, FmFormPage*, /*_pPage*/ ) //------------------------------------------------------------------------ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncAction /* = sal_False */ ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewActivated" ); FmFormPage* pPage = _rCurrentView.GetCurPage(); @@ -3913,7 +3845,6 @@ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncActi //------------------------------------------------------------------------------ void FmXFormShell::impl_defaultCurrentForm_nothrow() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_defaultCurrentForm_nothrow" ); if ( impl_checkDisposed() ) return; @@ -3944,7 +3875,6 @@ void FmXFormShell::impl_defaultCurrentForm_nothrow() //------------------------------------------------------------------------------ void FmXFormShell::smartControlReset( const Reference< XIndexAccess >& _rxModels ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::smartControlReset" ); if (!_rxModels.is()) { DBG_ERROR("FmXFormShell::smartControlReset: invalid container!"); @@ -4052,7 +3982,6 @@ namespace //------------------------------------------------------------------------ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour /* FORMS_LOAD | FORMS_SYNC */ ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::loadForms" ); DBG_ASSERT( ( _nBehaviour & ( FORMS_ASYNC | FORMS_UNLOAD ) ) != ( FORMS_ASYNC | FORMS_UNLOAD ), "FmXFormShell::loadForms: async loading not supported - this will heavily fail!" ); @@ -4130,41 +4059,35 @@ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour / //------------------------------------------------------------------------ void FmXFormShell::ExecuteTextAttribute( SfxRequest& _rReq ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTextAttribute" ); m_pTextShell->ExecuteTextAttribute( _rReq ); } //------------------------------------------------------------------------ void FmXFormShell::GetTextAttributeState( SfxItemSet& _rSet ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetTextAttributeState" ); m_pTextShell->GetTextAttributeState( _rSet ); } //------------------------------------------------------------------------ bool FmXFormShell::IsActiveControl( bool _bCountRichTextOnly ) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsActiveControl" ); return m_pTextShell->IsActiveControl( _bCountRichTextOnly ); } //------------------------------------------------------------------------ void FmXFormShell::ForgetActiveControl() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForgetActiveControl" ); m_pTextShell->ForgetActiveControl(); } //------------------------------------------------------------------------ void FmXFormShell::SetControlActivationHandler( const Link& _rHdl ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetControlActivationHandler" ); m_pTextShell->SetControlActivationHandler( _rHdl ); } //------------------------------------------------------------------------ void FmXFormShell::handleShowPropertiesRequest() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleShowPropertiesRequest" ); if ( onlyControlsAreMarked() ) ShowSelectionProperties( sal_True ); } @@ -4172,7 +4095,6 @@ void FmXFormShell::handleShowPropertiesRequest() //------------------------------------------------------------------------ void FmXFormShell::handleMouseButtonDown( const SdrViewEvent& _rViewEvent ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleMouseButtonDown" ); // catch simple double clicks if ( ( _rViewEvent.nMouseClicks == 2 ) && ( _rViewEvent.nMouseCode == MOUSE_LEFT ) ) { @@ -4284,7 +4206,6 @@ ControlConversionMenuController::ControlConversionMenuController( sal_uInt16 _nI //------------------------------------------------------------------------------ ControlConversionMenuController::~ControlConversionMenuController() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ControlConversionMenuController::~ControlConversionMenuController" ); m_pMainMenu->SetPopupMenu(SID_FM_CHANGECONTROLTYPE, NULL); delete m_pConversionMenu; } diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx index a4bb5753e8bb7..ee870f0c29b00 100644 --- a/svx/source/form/fmsrcimp.cxx +++ b/svx/source/form/fmsrcimp.cxx @@ -82,11 +82,6 @@ using namespace ::com::sun::star::i18n; using namespace ::com::sun::star::beans; using namespace ::svxform; -// *************************************************************************************************** - -// *************************************************************************************************** - -SV_IMPL_OBJARR(SvInt32Array, sal_Int32); //======================================================================== // = FmSearchThread @@ -848,7 +843,7 @@ void FmSearchEngine::Init(const ::rtl::OUString& sVisibleFields) // analyze the fields // additionally, create the mapping: because the list of used columns can be shorter than the list // of columns of the cursor, we need a mapping: "used column numer n" -> "cursor column m" - m_arrFieldMapping.Remove(0, m_arrFieldMapping.Count()); + m_arrFieldMapping.clear(); // important: The case of the columns does not need to be exact - for instance: // - a user created a form which works on a table, for which the driver returns a column name "COLUMN" @@ -911,8 +906,8 @@ void FmSearchEngine::Init(const ::rtl::OUString& sVisibleFields) } // set the field selection back to the first pFieldNames = seqFieldNames.getArray();; - DBG_ASSERT(nFoundIndex != -1, "FmSearchEngine::Init : Es wurden ungueltige Feldnamen angegeben !"); - m_arrFieldMapping.Insert(nFoundIndex, m_arrFieldMapping.Count()); + DBG_ASSERT(nFoundIndex != -1, "FmSearchEngine::Init : Invalid field name were given !"); + m_arrFieldMapping.push_back(nFoundIndex); } } catch(Exception&) @@ -1273,18 +1268,21 @@ void FmSearchEngine::RebuildUsedFields(sal_Int32 nFieldIndex, sal_Bool bForce) return; // (da ich keinen Wechsel des Iterators von aussen zulasse, heisst selber ::com::sun::star::sdbcx::Index auch immer selbe Spalte, also habe ich nix zu tun) - DBG_ASSERT((nFieldIndex >= -1) && (nFieldIndex<m_arrFieldMapping.Count()), "FmSearchEngine::RebuildUsedFields : nFieldIndex ist ungueltig !"); + DBG_ASSERT((nFieldIndex == -1) || + ((nFieldIndex >= 0) && + (static_cast<size_t>(nFieldIndex) < m_arrFieldMapping.size())), + "FmSearchEngine::RebuildUsedFields : nFieldIndex is invalid!"); // alle Felder, die ich durchsuchen muss, einsammeln m_arrUsedFields.clear(); if (nFieldIndex == -1) { Reference< ::com::sun::star::container::XIndexAccess > xFields; - for (sal_uInt16 i=0; i<m_arrFieldMapping.Count(); ++i) + for (size_t i=0; i<m_arrFieldMapping.size(); ++i) { Reference< ::com::sun::star::sdbcx::XColumnsSupplier > xSupplyCols(IFACECAST(m_xSearchCursor), UNO_QUERY); DBG_ASSERT(xSupplyCols.is(), "FmSearchEngine::RebuildUsedFields : invalid cursor (no columns supplier) !"); xFields = Reference< ::com::sun::star::container::XIndexAccess > (xSupplyCols->getColumns(), UNO_QUERY); - BuildAndInsertFieldInfo(xFields, m_arrFieldMapping.GetObject(i)); + BuildAndInsertFieldInfo(xFields, m_arrFieldMapping[i]); } } else @@ -1293,7 +1291,7 @@ void FmSearchEngine::RebuildUsedFields(sal_Int32 nFieldIndex, sal_Bool bForce) Reference< ::com::sun::star::sdbcx::XColumnsSupplier > xSupplyCols(IFACECAST(m_xSearchCursor), UNO_QUERY); DBG_ASSERT(xSupplyCols.is(), "FmSearchEngine::RebuildUsedFields : invalid cursor (no columns supplier) !"); xFields = Reference< ::com::sun::star::container::XIndexAccess > (xSupplyCols->getColumns(), UNO_QUERY); - BuildAndInsertFieldInfo(xFields, m_arrFieldMapping.GetObject((sal_uInt16)nFieldIndex)); + BuildAndInsertFieldInfo(xFields, m_arrFieldMapping[static_cast< size_t >(nFieldIndex)]); } m_nCurrentFieldIndex = nFieldIndex; diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx index 0bf6a35abd980..2bf00300a5a56 100644 --- a/svx/source/form/fmvwimp.cxx +++ b/svx/source/form/fmvwimp.cxx @@ -173,20 +173,19 @@ public: }; //======================================================================== -DBG_NAME(FmXPageViewWinRec) +DBG_NAME(FormViewPageWindowAdapter) //------------------------------------------------------------------------ -FmXPageViewWinRec::FmXPageViewWinRec( const ::comphelper::ComponentContext& _rContext, const SdrPageWindow& _rWindow, FmXFormView* _pViewImpl ) +FormViewPageWindowAdapter::FormViewPageWindowAdapter( const ::comphelper::ComponentContext& _rContext, const SdrPageWindow& _rWindow, FmXFormView* _pViewImpl ) : m_xControlContainer( _rWindow.GetControlContainer() ), m_aContext( _rContext ), m_pViewImpl( _pViewImpl ), m_pWindow( dynamic_cast< Window* >( &_rWindow.GetPaintWindow().GetOutputDevice() ) ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::FmXPageViewWinRec" ); - DBG_CTOR(FmXPageViewWinRec,NULL); + DBG_CTOR(FormViewPageWindowAdapter,NULL); // create an XFormController for every form FmFormPage* pFormPage = dynamic_cast< FmFormPage* >( _rWindow.GetPageView().GetPage() ); - DBG_ASSERT( pFormPage, "FmXPageViewWinRec::FmXPageViewWinRec: no FmFormPage found!" ); + DBG_ASSERT( pFormPage, "FormViewPageWindowAdapter::FormViewPageWindowAdapter: no FmFormPage found!" ); if ( pFormPage ) { try @@ -207,15 +206,14 @@ FmXPageViewWinRec::FmXPageViewWinRec( const ::comphelper::ComponentContext& _rCo } } // ----------------------------------------------------------------------------- -FmXPageViewWinRec::~FmXPageViewWinRec() +FormViewPageWindowAdapter::~FormViewPageWindowAdapter() { - DBG_DTOR(FmXPageViewWinRec,NULL); + DBG_DTOR(FormViewPageWindowAdapter,NULL); } //------------------------------------------------------------------ -void FmXPageViewWinRec::dispose() +void FormViewPageWindowAdapter::dispose() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::dispose" ); for ( ::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin(); i != m_aControllerList.end(); ++i @@ -249,39 +247,34 @@ void FmXPageViewWinRec::dispose() //------------------------------------------------------------------------------ -sal_Bool SAL_CALL FmXPageViewWinRec::hasElements(void) throw( RuntimeException ) +sal_Bool SAL_CALL FormViewPageWindowAdapter::hasElements(void) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::hasElements" ); return getCount() != 0; } //------------------------------------------------------------------------------ -Type SAL_CALL FmXPageViewWinRec::getElementType(void) throw( RuntimeException ) +Type SAL_CALL FormViewPageWindowAdapter::getElementType(void) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getElementType" ); return ::getCppuType((const Reference< XFormController>*)0); } // XEnumerationAccess //------------------------------------------------------------------------------ -Reference< XEnumeration > SAL_CALL FmXPageViewWinRec::createEnumeration(void) throw( RuntimeException ) +Reference< XEnumeration > SAL_CALL FormViewPageWindowAdapter::createEnumeration(void) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::createEnumeration" ); return new ::comphelper::OEnumerationByIndex(this); } // XIndexAccess //------------------------------------------------------------------------------ -sal_Int32 SAL_CALL FmXPageViewWinRec::getCount(void) throw( RuntimeException ) +sal_Int32 SAL_CALL FormViewPageWindowAdapter::getCount(void) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getCount" ); return m_aControllerList.size(); } //------------------------------------------------------------------------------ -Any SAL_CALL FmXPageViewWinRec::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException ) +Any SAL_CALL FormViewPageWindowAdapter::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getByIndex" ); if (nIndex < 0 || nIndex >= getCount()) throw IndexOutOfBoundsException(); @@ -292,7 +285,7 @@ Any SAL_CALL FmXPageViewWinRec::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBo } //------------------------------------------------------------------------ -void SAL_CALL FmXPageViewWinRec::makeVisible( const Reference< XControl >& _Control ) throw (RuntimeException) +void SAL_CALL FormViewPageWindowAdapter::makeVisible( const Reference< XControl >& _Control ) throw (RuntimeException) { ::vos::OGuard aSolarGuard(Application::GetSolarMutex()); @@ -331,9 +324,8 @@ Reference< XFormController > getControllerSearchChilds( const Reference< XIndex // Search the according controller //------------------------------------------------------------------------ -Reference< XFormController > FmXPageViewWinRec::getController( const Reference< XForm > & xForm ) const +Reference< XFormController > FormViewPageWindowAdapter::getController( const Reference< XForm > & xForm ) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getController" ); Reference< XTabControllerModel > xModel(xForm, UNO_QUERY); for (::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin(); i != m_aControllerList.end(); i++) @@ -350,9 +342,9 @@ Reference< XFormController > FmXPageViewWinRec::getController( const Reference< } //------------------------------------------------------------------------ -void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, const Reference< XFormController >& _rxParentController ) +void FormViewPageWindowAdapter::setController(const Reference< XForm > & xForm, const Reference< XFormController >& _rxParentController ) { - DBG_ASSERT( xForm.is(), "FmXPageViewWinRec::setController: there should be a form!" ); + DBG_ASSERT( xForm.is(), "FormViewPageWindowAdapter::setController: there should be a form!" ); Reference< XIndexAccess > xFormCps(xForm, UNO_QUERY); if (!xFormCps.is()) return; @@ -410,10 +402,9 @@ void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, const Re } //------------------------------------------------------------------------ -void FmXPageViewWinRec::updateTabOrder( const Reference< XForm >& _rxForm ) +void FormViewPageWindowAdapter::updateTabOrder( const Reference< XForm >& _rxForm ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::updateTabOrder" ); - OSL_PRECOND( _rxForm.is(), "FmXPageViewWinRec::updateTabOrder: illegal argument!" ); + OSL_PRECOND( _rxForm.is(), "FormViewPageWindowAdapter::updateTabOrder: illegal argument!" ); if ( !_rxForm.is() ) return; @@ -457,13 +448,11 @@ FmXFormView::FmXFormView(const ::comphelper::ComponentContext& _rContext, FmForm ,m_bFirstActivation( true ) ,m_isTabOrderUpdateSuspended( false ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::FmXFormView" ); } //------------------------------------------------------------------------ void FmXFormView::cancelEvents() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::cancelEvents" ); if ( m_nActivationEvent ) { Application::RemoveUserEvent( m_nActivationEvent ); @@ -492,7 +481,6 @@ void FmXFormView::cancelEvents() //------------------------------------------------------------------------ void FmXFormView::notifyViewDying( ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::notifyViewDying" ); DBG_ASSERT( m_pView, "FmXFormView::notifyViewDying: my view already died!" ); m_pView = NULL; cancelEvents(); @@ -501,7 +489,17 @@ void FmXFormView::notifyViewDying( ) //------------------------------------------------------------------------ FmXFormView::~FmXFormView() { - DBG_ASSERT(m_aWinList.size() == 0, "FmXFormView::~FmXFormView: Window list not empty!"); + DBG_ASSERT( m_aPageWindowAdapters.empty(), "FmXFormView::~FmXFormView: Window list not empty!" ); + if ( !m_aPageWindowAdapters.empty() ) + { + for ( PageWindowAdapterList::const_iterator loop = m_aPageWindowAdapters.begin(); + loop != m_aPageWindowAdapters.end(); + ++loop + ) + { + (*loop)->dispose(); + } + } cancelEvents(); @@ -513,7 +511,6 @@ FmXFormView::~FmXFormView() //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::disposing" ); if ( m_xWindow.is() && Source.Source == m_xWindow ) removeGridWindowListening(); } @@ -522,7 +519,6 @@ void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeEx //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formActivated" ); if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() ) m_pView->GetFormShell()->GetImpl()->formActivated( rEvent ); } @@ -530,7 +526,6 @@ void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( Runti //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formDeactivated" ); if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() ) m_pView->GetFormShell()->GetImpl()->formDeactivated( rEvent ); } @@ -539,7 +534,6 @@ void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( Run //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementInserted" ); try { Reference< XControlContainer > xControlContainer( evt.Source, UNO_QUERY_THROW ); @@ -554,11 +548,9 @@ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( Run } else { - FmWinRecList::iterator pos = findWindow( xControlContainer ); - if ( pos != m_aWinList.end() ) - { - (*pos)->updateTabOrder( xForm ); - } + PFormViewPageWindowAdapter pAdapter = findWindow( xControlContainer ); + if ( pAdapter.is() ) + pAdapter->updateTabOrder( xForm ); } } catch( const Exception& ) @@ -570,92 +562,80 @@ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( Run //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementReplaced(const ContainerEvent& evt) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementReplaced" ); elementInserted(evt); } //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementRemoved(const ContainerEvent& /*evt*/) throw( RuntimeException ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementRemoved" ); } //------------------------------------------------------------------------------ -FmWinRecList::const_iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) const +PFormViewPageWindowAdapter FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" ); - for (FmWinRecList::const_iterator i = m_aWinList.begin(); - i != m_aWinList.end(); i++) - { - if ( _rxCC == (*i)->getControlContainer() ) - return i; - } - return m_aWinList.end(); -} - -//------------------------------------------------------------------------------ -FmWinRecList::iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) -{ - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" ); - for (FmWinRecList::iterator i = m_aWinList.begin(); - i != m_aWinList.end(); i++) + for ( PageWindowAdapterList::const_iterator i = m_aPageWindowAdapters.begin(); + i != m_aPageWindowAdapters.end(); + ++i + ) { if ( _rxCC == (*i)->getControlContainer() ) - return i; + return *i; } - return m_aWinList.end(); + return NULL; } //------------------------------------------------------------------------------ void FmXFormView::addWindow(const SdrPageWindow& rWindow) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::addWindow" ); FmFormPage* pFormPage = PTR_CAST( FmFormPage, rWindow.GetPageView().GetPage() ); if ( !pFormPage ) return; Reference< XControlContainer > xCC = rWindow.GetControlContainer(); - if ( xCC.is() && findWindow( xCC ) == m_aWinList.end()) + if ( xCC.is() + && ( !findWindow( xCC ).is() ) + ) { - FmXPageViewWinRec *pFmRec = new FmXPageViewWinRec( m_aContext, rWindow, this ); - pFmRec->acquire(); - - m_aWinList.push_back(pFmRec); + PFormViewPageWindowAdapter pAdapter = new FormViewPageWindowAdapter( m_aContext, rWindow, this ); + m_aPageWindowAdapters.push_back( pAdapter ); // Am ControlContainer horchen um Aenderungen mitzbekommen Reference< XContainer > xContainer( xCC, UNO_QUERY ); - if (xContainer.is()) - xContainer->addContainerListener(this); + if ( xContainer.is() ) + xContainer->addContainerListener( this ); } } //------------------------------------------------------------------------------ void FmXFormView::removeWindow( const Reference< XControlContainer >& _rxCC ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeWindow" ); // Wird gerufen, wenn // - in den Design-Modus geschaltet wird // - ein Window geloescht wird, waehrend man im Design-Modus ist // - der Control-Container fuer ein Window entfernt wird, waehrend // der aktive Modus eingeschaltet ist. - FmWinRecList::iterator i = findWindow( _rxCC ); - if (i != m_aWinList.end()) + + for ( PageWindowAdapterList::iterator i = m_aPageWindowAdapters.begin(); + i != m_aPageWindowAdapters.end(); + ++i + ) { - // Am ControlContainer horchen um Aenderungen mitzbekommen + if ( _rxCC != (*i)->getControlContainer() ) + continue; + Reference< XContainer > xContainer( _rxCC, UNO_QUERY ); - if (xContainer.is()) - xContainer->removeContainerListener(this); + if ( xContainer.is() ) + xContainer->removeContainerListener( this ); (*i)->dispose(); - (*i)->release(); - m_aWinList.erase(i); + m_aPageWindowAdapters.erase( i ); + break; } } //------------------------------------------------------------------------------ void FmXFormView::displayAsyncErrorMessage( const SQLErrorEvent& _rEvent ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::displayAsyncErrorMessage" ); DBG_ASSERT( 0 == m_nErrorMessageEvent, "FmXFormView::displayAsyncErrorMessage: not too fast, please!" ); // This should not happen - usually, the PostUserEvent is faster than any possible user // interaction which could trigger a new error. If it happens, we need a queue for the events. @@ -674,7 +654,6 @@ IMPL_LINK(FmXFormView, OnDelayedErrorMessage, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------------ void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onFirstViewActivation" ); if ( _pDocModel && _pDocModel->GetAutoControlFocus() ) m_nAutoFocusEvent = Application::PostUserEvent( LINK( this, FmXFormView, OnAutoFocus ) ); } @@ -682,7 +661,6 @@ void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel ) //------------------------------------------------------------------------------ void FmXFormView::suspendTabOrderUpdate() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::suspendTabOrderUpdate" ); OSL_ENSURE( !m_isTabOrderUpdateSuspended, "FmXFormView::suspendTabOrderUpdate: nesting not allowed!" ); m_isTabOrderUpdateSuspended = true; } @@ -690,7 +668,6 @@ void FmXFormView::suspendTabOrderUpdate() //------------------------------------------------------------------------------ void FmXFormView::resumeTabOrderUpdate() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::resumeTabOrderUpdate" ); OSL_ENSURE( m_isTabOrderUpdateSuspended, "FmXFormView::resumeTabOrderUpdate: not suspended!" ); m_isTabOrderUpdateSuspended = false; @@ -700,8 +677,8 @@ void FmXFormView::resumeTabOrderUpdate() ++container ) { - FmWinRecList::iterator pos = findWindow( container->first ); - if ( pos == m_aWinList.end() ) + PFormViewPageWindowAdapter pAdapter = findWindow( container->first ); + if ( !pAdapter.is() ) continue; for ( SetOfForms::const_iterator form = container->second.begin(); @@ -709,7 +686,7 @@ void FmXFormView::resumeTabOrderUpdate() ++form ) { - (*pos)->updateTabOrder( *form ); + pAdapter->updateTabOrder( *form ); } } m_aNeedTabOrderUpdate.clear(); @@ -730,41 +707,42 @@ IMPL_LINK(FmXFormView, OnActivate, void*, /*EMPTYTAG*/) if (m_pView->GetFormShell() && m_pView->GetActualOutDev() && m_pView->GetActualOutDev()->GetOutDevType() == OUTDEV_WINDOW) { Window* pWindow = const_cast<Window*>(static_cast<const Window*>(m_pView->GetActualOutDev())); - FmXPageViewWinRec* pFmRec = m_aWinList.size() ? m_aWinList[0] : NULL; - for (FmWinRecList::const_iterator i = m_aWinList.begin(); - i != m_aWinList.end(); i++) + PFormViewPageWindowAdapter pAdapter = m_aPageWindowAdapters.empty() ? NULL : m_aPageWindowAdapters[0]; + for ( PageWindowAdapterList::const_iterator i = m_aPageWindowAdapters.begin(); + i != m_aPageWindowAdapters.end(); + ++i + ) { - if (pWindow == (*i)->getWindow()) - pFmRec =*i; + if ( pWindow == (*i)->getWindow() ) + pAdapter =*i; } - if (pFmRec) + if ( pAdapter.get() ) { - for (::std::vector< Reference< XFormController > >::const_iterator i = pFmRec->GetList().begin(); - i != pFmRec->GetList().end(); i++) + for ( ::std::vector< Reference< XFormController > >::const_iterator i = pAdapter->GetList().begin(); + i != pAdapter->GetList().end(); + ++i + ) { const Reference< XFormController > & xController = *i; - if (xController.is()) + if ( !xController.is() ) + continue; + + // only database forms are to be activated + Reference< XRowSet > xForm(xController->getModel(), UNO_QUERY); + if ( !xForm.is() || !OStaticDataAccessTools().getRowSetConnection( xForm ).is() ) + continue; + + Reference< XPropertySet > xFormSet( xForm, UNO_QUERY ); + ENSURE_OR_CONTINUE( xFormSet.is(), "FmXFormView::OnActivate: a form which does not have properties?" ); + + const ::rtl::OUString aSource = ::comphelper::getString( xFormSet->getPropertyValue( FM_PROP_COMMAND ) ); + if ( aSource.getLength() ) { - // Nur bei Datenbankformularen erfolgt eine aktivierung - Reference< XRowSet > xForm(xController->getModel(), UNO_QUERY); - if (xForm.is() && OStaticDataAccessTools().getRowSetConnection(xForm).is()) - { - Reference< XPropertySet > xFormSet(xForm, UNO_QUERY); - if (xFormSet.is()) - { - // wenn es eine Datenquelle gibt, dann als aktive ::com::sun::star::form setzen - ::rtl::OUString aSource = ::comphelper::getString(xFormSet->getPropertyValue(FM_PROP_COMMAND)); - if (aSource.getLength()) - { - // benachrichtigung der Shell - FmXFormShell* pShImpl = m_pView->GetFormShell()->GetImpl(); - if (pShImpl) - pShImpl->setActiveController(xController); - break; - } - } - } + FmXFormShell* pShImpl = m_pView->GetFormShell()->GetImpl(); + if ( pShImpl ) + pShImpl->setActiveController( xController ); + break; } } } @@ -775,7 +753,6 @@ IMPL_LINK(FmXFormView, OnActivate, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------------ void FmXFormView::Activate(sal_Bool bSync) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Activate" ); if (m_nActivationEvent) { Application::RemoveUserEvent(m_nActivationEvent); @@ -793,7 +770,6 @@ void FmXFormView::Activate(sal_Bool bSync) //------------------------------------------------------------------------------ void FmXFormView::Deactivate(BOOL bDeactivateController) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Deactivate" ); if (m_nActivationEvent) { Application::RemoveUserEvent(m_nActivationEvent); @@ -808,13 +784,11 @@ void FmXFormView::Deactivate(BOOL bDeactivateController) //------------------------------------------------------------------------------ FmFormShell* FmXFormView::GetFormShell() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::GetFormShell" ); return m_pView ? m_pView->GetFormShell() : NULL; } // ----------------------------------------------------------------------------- void FmXFormView::AutoFocus( sal_Bool _bSync ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::AutoFocus" ); if (m_nAutoFocusEvent) Application::RemoveUserEvent(m_nAutoFocusEvent); @@ -927,18 +901,20 @@ namespace // ----------------------------------------------------------------------------- Reference< XFormController > FmXFormView::getFormController( const Reference< XForm >& _rxForm, const OutputDevice& _rDevice ) const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::getFormController" ); Reference< XFormController > xController; - for ( FmWinRecList::const_iterator rec = m_aWinList.begin(); rec != m_aWinList.end(); ++rec ) + for ( PageWindowAdapterList::const_iterator pos = m_aPageWindowAdapters.begin(); + pos != m_aPageWindowAdapters.end(); + ++pos + ) { - const FmXPageViewWinRec* pViewWinRec( *rec ); - OSL_ENSURE( pViewWinRec, "FmXFormView::getFormController: invalid PageViewWinRec!" ); - if ( !pViewWinRec || ( pViewWinRec->getWindow() != &_rDevice ) ) + const PFormViewPageWindowAdapter pAdapter( *pos ); + ENSURE_OR_CONTINUE( pAdapter.get(), "FmXFormView::getFormController: invalid page window adapter!" ); + if ( pAdapter->getWindow() != &_rDevice ) // wrong device continue; - xController = pViewWinRec->getController( _rxForm ); + xController = pAdapter->getController( _rxForm ); if ( xController.is() ) break; } @@ -960,12 +936,10 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/) FmFormPage* pPage = m_pView ? PTR_CAST( FmFormPage, m_pView->GetSdrPageView()->GetPage() ) : NULL; Reference< XIndexAccess > xForms( pPage ? Reference< XIndexAccess >( pPage->GetForms(), UNO_QUERY ) : Reference< XIndexAccess >() ); - const FmXPageViewWinRec* pViewWinRec = m_aWinList.size() ? m_aWinList[0] : NULL; - const Window* pWindow = pViewWinRec ? pViewWinRec->getWindow() : NULL; + const PFormViewPageWindowAdapter pAdapter = m_aPageWindowAdapters.empty() ? NULL : m_aPageWindowAdapters[0]; + const Window* pWindow = pAdapter.get() ? pAdapter->getWindow() : NULL; - OSL_ENSURE( xForms.is() && pWindow, "FmXFormView::OnAutoFocus: could not collect all essentials!" ); - if ( !xForms.is() || !pWindow ) - return 0L; + ENSURE_OR_RETURN( xForms.is() && pWindow, "FmXFormView::OnAutoFocus: could not collect all essentials!", 0L ); try { @@ -973,7 +947,7 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/) if ( !xForms->getCount() ) break; Reference< XForm > xForm( xForms->getByIndex( 0 ), UNO_QUERY_THROW ); - Reference< XTabController > xTabController( pViewWinRec->getController( xForm ), UNO_QUERY_THROW ); + Reference< XTabController > xTabController( pAdapter->getController( xForm ), UNO_QUERY_THROW ); // go for the first control of the controller Sequence< Reference< XControl > > aControls( xTabController->getControls() ); @@ -1024,7 +998,6 @@ IMPL_LINK(FmXFormView, OnAutoFocus, void*, /*EMPTYTAG*/) // ----------------------------------------------------------------------------- void FmXFormView::onCreatedFormObject( FmFormObj& _rFormObject ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onCreatedFormObject" ); FmFormShell* pShell = m_pView ? m_pView->GetFormShell() : NULL; FmXFormShell* pShellImpl = pShell ? pShell->GetImpl() : NULL; OSL_ENSURE( pShellImpl, "FmXFormView::onCreatedFormObject: no form shell!" ); @@ -1155,7 +1128,6 @@ namespace // ----------------------------------------------------------------------------- SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateFieldControl" ); // not if we're in design mode if ( !m_pView->IsDesignMode() ) return NULL; @@ -1387,7 +1359,6 @@ SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescript // ----------------------------------------------------------------------------- SdrObject* FmXFormView::implCreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateXFormsControl" ); // not if we're in design mode if ( !m_pView->IsDesignMode() ) return NULL; @@ -1523,7 +1494,6 @@ bool FmXFormView::createControlLabelPair( OutputDevice& _rOutDev, sal_Int32 _nXO const Reference< XDataSource >& _rxDataSource, const ::rtl::OUString& _rDataSourceName, const ::rtl::OUString& _rCommand, const sal_Int32 _nCommandType ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" ); if ( !createControlLabelPair( m_aContext, _rOutDev, _nXOffsetMM, _nYOffsetMM, _rxField, _rxNumberFormats, _nControlObjectID, _rFieldPostfix, FmFormInventor, OBJ_FM_FIXEDTEXT, NULL, NULL, NULL, _rpLabel, _rpControl ) @@ -1551,7 +1521,6 @@ bool FmXFormView::createControlLabelPair( const ::comphelper::ComponentContext& const ::rtl::OUString& _rFieldPostfix, UINT32 _nInventor, UINT16 _nLabelObjectID, SdrPage* _pLabelPage, SdrPage* _pControlPage, SdrModel* _pModel, SdrUnoObj*& _rpLabel, SdrUnoObj*& _rpControl) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" ); sal_Int32 nDataType = 0; ::rtl::OUString sFieldName; Any aFieldName; @@ -1717,7 +1686,6 @@ void FmXFormView::ObjectRemoveListener::Notify( SfxBroadcaster& /*rBC*/, const S //------------------------------------------------------------------------------ void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::ObjectRemovedInAliveMode" ); // wenn das entfernte Objekt in meiner MarkList, die ich mir beim Umschalten in den Alive-Mode gemerkt habe, steht, // muss ich es jetzt da rausnehmen, da ich sonst beim Zurueckschalten versuche, die Markierung wieder zu setzen // (interesanterweise geht das nur bei gruppierten Objekten schief (beim Zugriff auf deren ObjList GPF), nicht bei einzelnen) @@ -1740,7 +1708,6 @@ void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject ) //------------------------------------------------------------------------------ void FmXFormView::stopMarkListWatching() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::stopMarkListWatching" ); if ( m_pWatchStoredList ) { m_pWatchStoredList->EndListeningAll(); @@ -1752,7 +1719,6 @@ void FmXFormView::stopMarkListWatching() //------------------------------------------------------------------------------ void FmXFormView::startMarkListWatching() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::startMarkListWatching" ); if ( !m_pWatchStoredList ) { m_pWatchStoredList = new ObjectRemoveListener( this ); @@ -1769,7 +1735,6 @@ void FmXFormView::startMarkListWatching() //------------------------------------------------------------------------------ void FmXFormView::saveMarkList( sal_Bool _bSmartUnmark ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::saveMarkList" ); if ( m_pView ) { m_aMark = m_pView->GetMarkedObjectList(); @@ -1828,7 +1793,6 @@ static sal_Bool lcl_hasObject( SdrObjListIter& rIter, SdrObject* pObj ) //------------------------------------------------------------------------------ void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList ) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::restoreMarkList" ); if ( !m_pView ) return; @@ -1916,7 +1880,6 @@ void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList ) // ----------------------------------------------------------------------------- void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusGained" ); if ( m_xWindow.is() && m_pView ) { m_pView->SetMoveOutside( TRUE, FmFormView::ImplAccess() ); @@ -1925,7 +1888,6 @@ void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (Runtime // ----------------------------------------------------------------------------- void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusLost" ); // when switch the focus outside the office the mark didn't change // so we can not remove us as focus listener if ( m_xWindow.is() && m_pView ) @@ -1936,7 +1898,6 @@ void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeEx // ----------------------------------------------------------------------------- void FmXFormView::removeGridWindowListening() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeGridWindowListening" ); if ( m_xWindow.is() ) { m_xWindow->removeFocusListener(this); @@ -1951,7 +1912,6 @@ void FmXFormView::removeGridWindowListening() // ----------------------------------------------------------------------------- DocumentType FmXFormView::impl_getDocumentType() const { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::impl_getDocumentType" ); if ( GetFormShell() && GetFormShell()->GetImpl() ) return GetFormShell()->GetImpl()->getDocumentType(); return eUnknownDocumentType; diff --git a/svx/source/form/formcontroller.cxx b/svx/source/form/formcontroller.cxx index b8292785b4579..f43233ae08ba1 100644 --- a/svx/source/form/formcontroller.cxx +++ b/svx/source/form/formcontroller.cxx @@ -62,6 +62,7 @@ #include <com/sun/star/sdb/RowChangeAction.hpp> #include <com/sun/star/sdb/XInteractionSupplyParameters.hpp> #include <com/sun/star/sdbc/ColumnValue.hpp> +#include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/util/XURLTransformer.hpp> #include <com/sun/star/form/runtime/FormOperations.hpp> #include <com/sun/star/form/runtime/FormFeature.hpp> @@ -80,6 +81,7 @@ #include <comphelper/property.hxx> #include <comphelper/sequence.hxx> #include <comphelper/uno3.hxx> +#include <comphelper/scopeguard.hxx> #include <cppuhelper/queryinterface.hxx> #include <cppuhelper/typeprovider.hxx> #include <toolkit/controls/unocontrol.hxx> @@ -208,6 +210,7 @@ namespace svxform namespace FocusChangeReason = ::com::sun::star::awt::FocusChangeReason; namespace RowChangeAction = ::com::sun::star::sdb::RowChangeAction; namespace FormFeature = ::com::sun::star::form::runtime::FormFeature; + namespace DataType = ::com::sun::star::sdbc::DataType; //============================================================================== // ColumnInfo @@ -583,6 +586,7 @@ FormController::FormController(const Reference< XMultiServiceFactory > & _rxORB ,m_bAttachEvents(sal_True) ,m_bDetachEvents(sal_True) ,m_bAttemptedHandlerCreation( false ) + ,m_bSuspendFilterTextListening( false ) { DBG_CTOR( FormController, NULL ); @@ -782,6 +786,9 @@ namespace // ----------------------------------------------------------------------------- void FormController::impl_setTextOnAllFilter_throw() { + m_bSuspendFilterTextListening = true; + ::comphelper::FlagGuard aResetFlag( m_bSuspendFilterTextListening ); + // reset the text for all controls ::std::for_each( m_aFilterComponents.begin(), m_aFilterComponents.end(), ResetComponentText() ); @@ -855,32 +862,38 @@ void FormController::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) cons if ( rRow.empty() ) continue; - if ( aFilter.getLength() ) - aFilter.appendAscii( " OR " ); - - aFilter.appendAscii( "( " ); + ::rtl::OUStringBuffer aRowFilter; for ( FmFilterRow::const_iterator condition = rRow.begin(); condition != rRow.end(); ++condition ) { // get the field of the controls map Reference< XControl > xControl( condition->first, UNO_QUERY_THROW ); Reference< XPropertySet > xModelProps( xControl->getModel(), UNO_QUERY_THROW ); Reference< XPropertySet > xField( xModelProps->getPropertyValue( FM_PROP_BOUNDFIELD ), UNO_QUERY_THROW ); - if ( condition != rRow.begin() ) - aFilter.appendAscii( " AND " ); ::rtl::OUString sFilterValue( condition->second ); ::rtl::OUString sErrorMsg, sCriteria; - ::rtl::Reference< ISQLParseNode > xParseNode = predicateTree( sErrorMsg, sFilterValue, xFormatter, xField ); + const ::rtl::Reference< ISQLParseNode > xParseNode = + predicateTree( sErrorMsg, sFilterValue, xFormatter, xField ); OSL_ENSURE( xParseNode.is(), "FormController::getFastPropertyValue: could not parse the field value predicate!" ); if ( xParseNode.is() ) { // don't use a parse context here, we need it unlocalized xParseNode->parseNodeToStr( sCriteria, xConnection, NULL ); - aFilter.append( sCriteria ); + if ( condition != rRow.begin() ) + aRowFilter.appendAscii( " AND " ); + aRowFilter.append( sCriteria ); } } - aFilter.appendAscii( " )" ); + if ( aRowFilter.getLength() > 0 ) + { + if ( aFilter.getLength() ) + aFilter.appendAscii( " OR " ); + + aFilter.appendAscii( "( " ); + aFilter.append( aRowFilter.makeStringAndClear() ); + aFilter.appendAscii( " )" ); + } } } catch( const Exception& ) @@ -1494,50 +1507,54 @@ void SAL_CALL FormController::textChanged(const TextEvent& e) throw( RuntimeExce // SYNCHRONIZED --> ::osl::ClearableMutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FormController: already disposed!" ); - if (m_bFiltering) + if ( !m_bFiltering ) { - Reference< XTextComponent > xText(e.Source,UNO_QUERY); - ::rtl::OUString aText = xText->getText(); - - if ( m_aFilterRows.empty() ) - appendEmptyDisjunctiveTerm(); + impl_onModify(); + return; + } - // Suchen der aktuellen Row - if ( ( (size_t)m_nCurrentFilterPosition >= m_aFilterRows.size() ) || ( m_nCurrentFilterPosition < 0 ) ) - { - OSL_ENSURE( false, "FormController::textChanged: m_nCurrentFilterPosition is wrong!" ); - return; - } + if ( m_bSuspendFilterTextListening ) + return; - FmFilterRow& rRow = m_aFilterRows[ m_nCurrentFilterPosition ]; + Reference< XTextComponent > xText(e.Source,UNO_QUERY); + ::rtl::OUString aText = xText->getText(); - // do we have a new filter - if (aText.getLength()) - rRow[xText] = aText; - else - { - // do we have the control in the row - FmFilterRow::iterator iter = rRow.find(xText); - // erase the entry out of the row - if (iter != rRow.end()) - rRow.erase(iter); - } + if ( m_aFilterRows.empty() ) + appendEmptyDisjunctiveTerm(); - // multiplex the event to our FilterControllerListeners - FilterEvent aEvent; - aEvent.Source = *this; - aEvent.FilterComponent = ::std::find( m_aFilterComponents.begin(), m_aFilterComponents.end(), xText ) - m_aFilterComponents.begin(); - aEvent.DisjunctiveTerm = getActiveTerm(); - aEvent.PredicateExpression = aText; + // Suchen der aktuellen Row + if ( ( (size_t)m_nCurrentFilterPosition >= m_aFilterRows.size() ) || ( m_nCurrentFilterPosition < 0 ) ) + { + OSL_ENSURE( false, "FormController::textChanged: m_nCurrentFilterPosition is wrong!" ); + return; + } - aGuard.clear(); - // <-- SYNCHRONIZED + FmFilterRow& rRow = m_aFilterRows[ m_nCurrentFilterPosition ]; - // notify the changed filter expression - m_aFilterListeners.notifyEach( &XFilterControllerListener::predicateExpressionChanged, aEvent ); - } + // do we have a new filter + if (aText.getLength()) + rRow[xText] = aText; else - impl_onModify(); + { + // do we have the control in the row + FmFilterRow::iterator iter = rRow.find(xText); + // erase the entry out of the row + if (iter != rRow.end()) + rRow.erase(iter); + } + + // multiplex the event to our FilterControllerListeners + FilterEvent aEvent; + aEvent.Source = *this; + aEvent.FilterComponent = ::std::find( m_aFilterComponents.begin(), m_aFilterComponents.end(), xText ) - m_aFilterComponents.begin(); + aEvent.DisjunctiveTerm = getActiveTerm(); + aEvent.PredicateExpression = aText; + + aGuard.clear(); + // <-- SYNCHRONIZED + + // notify the changed filter expression + m_aFilterListeners.notifyEach( &XFilterControllerListener::predicateExpressionChanged, aEvent ); } // XItemListener |