CWS-TOOLING: integrate CWS dba31g

2009-02-06 09:31:37 +0100 fs  r267443 : line ends
2009-02-06 09:31:16 +0100 fs  r267442 : line ends
2009-01-26 09:21:13 +0100 msc  r266904 : #i10000# reactive tests
2009-01-21 12:38:53 +0100 msc  r266657 : #i98316# add bugid
2009-01-20 14:49:04 +0100 msc  r266584 : i97307
2009-01-20 13:43:22 +0100 oj  r266572 : #i978i97860# merge changes from dba31h
2009-01-19 12:12:27 +0100 oj  r266487 : #i97307# wrong shortcuts
2009-01-12 11:45:03 +0100 fs  r266139 : #i97867# ImplPaint: don't paint if there are not items (yet)
2009-01-08 20:34:46 +0100 fs  r266039 : ignore output paths
2009-01-08 20:25:45 +0100 fs  r266038 : spelling: unxols4 -> unxsols4
2009-01-08 20:16:10 +0100 fs  r266037 : BUILD_QADEVOOO
2009-01-08 20:15:35 +0100 fs  r266036 : ignore output paths
2009-01-07 22:47:01 +0100 fs  r265978 : close the document after the test
2009-01-07 22:40:22 +0100 fs  r265977 : tweak the test, some behavior worked in a timing-dependent fashion only
2009-01-07 13:21:48 +0100 lla  r265961 : #i96526# need FileAccess instead of File due to URL incompatibity
2009-01-07 12:27:19 +0100 lla  r265959 : #i96526# need FileAccess instead of File due to URL incompatibity
2009-01-06 13:30:04 +0100 fs  r265917 : #158964# GetFormControl: don't accept requests for model which do not belong to the page displayed in the given view
2009-01-06 13:30:04 +0100 fs  r265916 : #158964# GetUnoControl: don't accept requests for a view where a foreign page is displayed
2009-01-06 13:26:37 +0100 fs  r265915 : #158964# FmXPageViewWinRec::dispose: catch exceptions (fixes the symptom, the root cause is fixed elsewhere)
2009-01-06 09:52:38 +0100 oj  r265897 : #i97307# shortcuts
2009-01-06 09:41:26 +0100 fs  r265896 : #i10000#
2009-01-05 13:40:38 +0100 fs  r265866 : CWS-TOOLING: rebase CWS dba31g to trunk@265758 (milestone: DEV300:m38)
2008-12-18 11:35:43 +0100 fs  r265678 : document the new InputRequired property
2008-12-17 07:25:18 +0100 oj  r265578 : #i97307# insert new Accelerators handling in configuration
2008-12-16 09:52:27 +0100 lla  r265526 : #i96526# error message is a problem with no existance default.otr occur
2008-12-16 09:33:14 +0100 oj  r265525 : #i96948# remove merge conflict with StreamName
2008-12-16 09:22:12 +0100 oj  r265524 : #i96935# set reportcomponent for custom shape
2008-12-15 10:32:38 +0100 oj  r265463 : #i96965# do not add connection for selfreferencing table
2008-12-12 14:00:56 +0100 fs  r265416 : #i97044# EnableFocusSelectionHide=FALSE => don't hide selection when not focused (this is more of a side effect), and preserve the selection when gaining the focus (this is the desired effect)
2008-12-11 15:32:32 +0100 fs  r265319 : prevent a deadlock during complex.dbaccess.DatabaseDocument test
2008-12-11 15:31:25 +0100 fs  r265317 : prevent a deadlock during complex.dbaccess.DatabaseDocument test
2008-12-11 13:45:06 +0100 fs  r265296 : #i97137#
2008-12-11 12:43:00 +0100 fs  r265285 : #i97134#
2008-12-10 13:20:28 +0100 lla  r265175 : #94067# add (APP|SYS)FONT to XUnitConversion interface implementation
2008-12-10 13:08:22 +0100 lla  r265173 : #i94067# add (APP|SYS)FONT
2008-12-10 09:21:39 +0100 fs  r265151 : #i95010# implement a non-hacky solution for #i94033#, by making Begin/Do/EndCompleteRedraw virtual
2008-12-09 17:29:32 +0100 fs  r265120 : #i96636#
This commit is contained in:
Oliver Bolte 2009-02-13 07:10:18 +00:00
parent b64ae6cafc
commit 936accce7a
10 changed files with 880 additions and 851 deletions

View file

@ -38,9 +38,9 @@ using namespace connectivity;
// -----------------------------------------------------------------------------
OSkipDeletedSet::OSkipDeletedSet(IResultSetHelper* _pHelper)
: m_pHelper(_pHelper)
,m_bDeletedVisible(false)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "commontools", "Ocke.Janssen@sun.com", "OSkipDeletedSet::OSkipDeletedSet" );
m_bDeletedVisible = m_pHelper->deletedVisible();
m_aBookmarksPositions.reserve(256);
}
// -----------------------------------------------------------------------------

View file

@ -135,6 +135,7 @@ OResultSet::OResultSet(OStatement_Base* pStmt,OSQLParseTreeIterator& _aSQLIte
m_nResultSetConcurrency = isCount() ? ResultSetConcurrency::READ_ONLY : ResultSetConcurrency::UPDATABLE;
construct();
m_aSkipDeletedSet.SetDeleted(m_bShowDeleted);
osl_decrementInterlockedCount( &m_refCount );
}

View file

@ -101,6 +101,7 @@ namespace connectivity
@return the last position
*/
inline sal_Int32 getLastPosition() const { return m_aBookmarksPositions.size(); }
inline void SetDeleted(bool _bDeletedVisible) { m_bDeletedVisible = _bDeletedVisible; }
};
}
#endif // CONNECTIVITY_SKIPDELETEDSSET_HXX

View file

@ -1,169 +1,167 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: fmview.hxx,v $
* $Revision: 1.7 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVX_FMVIEW_HXX
#define _SVX_FMVIEW_HXX
#include <svx/view3d.hxx>
#include <comphelper/uno3.hxx>
#include "svx/svxdllapi.h"
FORWARD_DECLARE_INTERFACE(util,XNumberFormats)
FORWARD_DECLARE_INTERFACE(beans,XPropertySet)
class OutputDevice;
class FmFormModel;
class FmPageViewWinRec;
class FmFormObj;
class FmFormPage;
class FmFormShell;
class FmXFormView;
namespace svx {
class ODataAccessDescriptor;
struct OXFormsDescriptor;
}
class SdrUnoObj;
namespace com { namespace sun { namespace star { namespace form {
class XForm;
class XFormController;
} } } }
class SVX_DLLPUBLIC FmFormView : public E3dView
{
FmXFormView* pImpl;
FmFormShell* pFormShell;
void Init();
public:
TYPEINFO();
FmFormView(FmFormModel* pModel, OutputDevice* pOut = 0L);
virtual ~FmFormView();
/** create a control pair (label/bound control) for the database field description given.
@param rFieldDesc
description of the field. see clipboard format SBA-FIELDFORMAT
@deprecated
This method is deprecated. Use the version with a ODataAccessDescriptor instead.
*/
SdrObject* CreateFieldControl(const UniString& rFieldDesc) const;
/** create a control pair (label/bound control) for the database field description given.
*/
SdrObject* CreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor );
/** create a control pair (label/bound control) for the xforms description given.
*/
SdrObject* CreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc );
virtual void MarkListHasChanged();
virtual void AddWindowToPaintView(OutputDevice* pNewWin);
virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin);
static void createControlLabelPair(
OutputDevice* _pOutDev,
sal_Int32 _nXOffsetMM,
sal_Int32 _nYOffsetMM,
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats >& _rxNumberFormats,
sal_uInt16 _nControlObjectID,
const ::rtl::OUString& _rFieldPostfix,
UINT32 _nInventor,
UINT16 _nLabelObjectID,
SdrPage* _pLabelPage,
SdrPage* _pControlPage,
SdrModel* _pModel,
SdrUnoObj*& _rpLabel,
SdrUnoObj*& _rpControl
);
virtual SdrPageView* ShowSdrPage(SdrPage* pPage);
virtual void HideSdrPage();
// for copying complete form structures, not only control models
virtual SdrModel* GetMarkedObjModel() const;
using E3dView::Paste;
virtual sal_Bool Paste(const SdrModel& rMod, const Point& rPos, SdrObjList* pLst=NULL, sal_uInt32 nOptions=0);
virtual BOOL MouseButtonDown( const MouseEvent& _rMEvt, Window* _pWin );
/** grab the focus to the first form control on the view
@param _bForceSync
<TRUE/> if the handling should be done synchronously.
*/
SVX_DLLPRIVATE void GrabFirstControlFocus( sal_Bool _bForceSync = sal_False );
/** returns the form controller for a given form and a given device
*/
SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController >
GetFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& _rxForm, const OutputDevice& _rDevice ) const;
// SdrView
BOOL KeyInput(const KeyEvent& rKEvt, Window* pWin);
/// shortcut to "GetSdrPageView() ? PTR_CAST( FmFormPage, GetSdrPageView() ) : NULL"
FmFormPage* GetCurPage();
SVX_DLLPRIVATE void ActivateControls(SdrPageView*);
SVX_DLLPRIVATE void DeactivateControls(SdrPageView*);
SVX_DLLPRIVATE void ChangeDesignMode(sal_Bool bDesign);
SVX_DLLPRIVATE FmXFormView* GetImpl() const { return pImpl; }
SVX_DLLPRIVATE FmFormShell* GetFormShell() const { return pFormShell; }
struct FormShellAccess { friend class FmFormShell; private: FormShellAccess() { } };
void SetFormShell( FmFormShell* pShell, FormShellAccess ) { pFormShell = pShell; }
struct ImplAccess { friend class FmXFormView; private: ImplAccess() { } };
void SetMoveOutside( bool _bMoveOutside, ImplAccess ) { E3dView::SetMoveOutside( _bMoveOutside ); }
virtual void InsertControlContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC);
virtual void RemoveControlContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC);
// the following is a hack, only to be used on the 3.0.1 branch, to prevent becoming
// incompatible there
// #i94033# / 2008-10-16 / frank.schoenheit@sun.com
void onBeginCompleteRedraw();
void onEndCompleteRedraw();
SVX_DLLPRIVATE const OutputDevice* GetActualOutDev() const {return pActualOutDev;}
SVX_DLLPRIVATE sal_Bool checkUnMarkAll(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xSource);
private:
SVX_DLLPRIVATE void AdjustMarks(const SdrMarkList& rMarkList);
SVX_DLLPRIVATE FmFormObj* getMarkedGrid() const;
protected:
using E3dView::SetMoveOutside;
};
#endif // _FML_FMVIEW_HXX
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: fmview.hxx,v $
* $Revision: 1.7 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVX_FMVIEW_HXX
#define _SVX_FMVIEW_HXX
#include <svx/view3d.hxx>
#include <comphelper/uno3.hxx>
#include "svx/svxdllapi.h"
FORWARD_DECLARE_INTERFACE(util,XNumberFormats)
FORWARD_DECLARE_INTERFACE(beans,XPropertySet)
class OutputDevice;
class FmFormModel;
class FmPageViewWinRec;
class FmFormObj;
class FmFormPage;
class FmFormShell;
class FmXFormView;
namespace svx {
class ODataAccessDescriptor;
struct OXFormsDescriptor;
}
class SdrUnoObj;
namespace com { namespace sun { namespace star { namespace form {
class XForm;
class XFormController;
} } } }
class SVX_DLLPUBLIC FmFormView : public E3dView
{
FmXFormView* pImpl;
FmFormShell* pFormShell;
void Init();
public:
TYPEINFO();
FmFormView(FmFormModel* pModel, OutputDevice* pOut = 0L);
virtual ~FmFormView();
/** create a control pair (label/bound control) for the database field description given.
@param rFieldDesc
description of the field. see clipboard format SBA-FIELDFORMAT
@deprecated
This method is deprecated. Use the version with a ODataAccessDescriptor instead.
*/
SdrObject* CreateFieldControl(const UniString& rFieldDesc) const;
/** create a control pair (label/bound control) for the database field description given.
*/
SdrObject* CreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor );
/** create a control pair (label/bound control) for the xforms description given.
*/
SdrObject* CreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc );
virtual void MarkListHasChanged();
virtual void AddWindowToPaintView(OutputDevice* pNewWin);
virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin);
static void createControlLabelPair(
OutputDevice* _pOutDev,
sal_Int32 _nXOffsetMM,
sal_Int32 _nYOffsetMM,
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxField,
const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats >& _rxNumberFormats,
sal_uInt16 _nControlObjectID,
const ::rtl::OUString& _rFieldPostfix,
UINT32 _nInventor,
UINT16 _nLabelObjectID,
SdrPage* _pLabelPage,
SdrPage* _pControlPage,
SdrModel* _pModel,
SdrUnoObj*& _rpLabel,
SdrUnoObj*& _rpControl
);
virtual SdrPageView* ShowSdrPage(SdrPage* pPage);
virtual void HideSdrPage();
// for copying complete form structures, not only control models
virtual SdrModel* GetMarkedObjModel() const;
using E3dView::Paste;
virtual sal_Bool Paste(const SdrModel& rMod, const Point& rPos, SdrObjList* pLst=NULL, sal_uInt32 nOptions=0);
virtual BOOL MouseButtonDown( const MouseEvent& _rMEvt, Window* _pWin );
/** grab the focus to the first form control on the view
@param _bForceSync
<TRUE/> if the handling should be done synchronously.
*/
SVX_DLLPRIVATE void GrabFirstControlFocus( sal_Bool _bForceSync = sal_False );
/** returns the form controller for a given form and a given device
*/
SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController >
GetFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& _rxForm, const OutputDevice& _rDevice ) const;
// SdrView
BOOL KeyInput(const KeyEvent& rKEvt, Window* pWin);
/// shortcut to "GetSdrPageView() ? PTR_CAST( FmFormPage, GetSdrPageView() ) : NULL"
FmFormPage* GetCurPage();
SVX_DLLPRIVATE void ActivateControls(SdrPageView*);
SVX_DLLPRIVATE void DeactivateControls(SdrPageView*);
SVX_DLLPRIVATE void ChangeDesignMode(sal_Bool bDesign);
SVX_DLLPRIVATE FmXFormView* GetImpl() const { return pImpl; }
SVX_DLLPRIVATE FmFormShell* GetFormShell() const { return pFormShell; }
struct FormShellAccess { friend class FmFormShell; private: FormShellAccess() { } };
void SetFormShell( FmFormShell* pShell, FormShellAccess ) { pFormShell = pShell; }
struct ImplAccess { friend class FmXFormView; private: ImplAccess() { } };
void SetMoveOutside( bool _bMoveOutside, ImplAccess ) { E3dView::SetMoveOutside( _bMoveOutside ); }
virtual void InsertControlContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC);
virtual void RemoveControlContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC);
virtual SdrPaintWindow* BeginCompleteRedraw(OutputDevice* pOut);
virtual void EndCompleteRedraw(SdrPaintWindow& rPaintWindow);
SVX_DLLPRIVATE const OutputDevice* GetActualOutDev() const {return pActualOutDev;}
SVX_DLLPRIVATE sal_Bool checkUnMarkAll(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xSource);
private:
SVX_DLLPRIVATE void AdjustMarks(const SdrMarkList& rMarkList);
SVX_DLLPRIVATE FmFormObj* getMarkedGrid() const;
protected:
using E3dView::SetMoveOutside;
};
#endif // _FML_FMVIEW_HXX

View file

@ -383,9 +383,9 @@ public:
// DoCompleteRedraw draws the DrawingLayer hierarchy then.
// EndCompleteRedraw does the necessary refreshes, evtl. paints text edit and overlay and evtl destroys the
// SdrPaintWindow again. This means: the SdrPaintWindow is no longer safe after this closing call.
SdrPaintWindow* BeginCompleteRedraw(OutputDevice* pOut);
void DoCompleteRedraw(SdrPaintWindow& rPaintWindow, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
void EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
virtual SdrPaintWindow* BeginCompleteRedraw(OutputDevice* pOut);
virtual void DoCompleteRedraw(SdrPaintWindow& rPaintWindow, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
virtual void EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
////////////////////////////////////////////////////////////////////////////////////////////////////
// used for the other applications basctl/sc/sw which call DrawLayer at PageViews

View file

@ -1333,25 +1333,11 @@ void FmFormShell::SetControlActivationHandler( const Link& _rHdl )
}
//------------------------------------------------------------------------
SdrUnoObj* FmFormShell::GetFormControl( const Reference< XControlModel >& _rxModel, const SdrView& _rView, const OutputDevice& _rDevice, Reference< XControl >& _out_rxControl ) const
namespace
{
if ( !_rxModel.is() )
return NULL;
FmFormModel* pModel = GetFormModel();
OSL_ENSURE( pModel, "FmFormShell::GetFormControl: no model!" );
if ( !pModel )
return NULL;
sal_uInt16 pageCount = pModel->GetPageCount();
for ( sal_uInt16 page = 0; page < pageCount; ++page )
SdrUnoObj* lcl_findUnoObject( const SdrObjList& _rObjList, const Reference< XControlModel >& _rxModel )
{
SdrPage* pPage = pModel->GetPage( page );
OSL_ENSURE( pPage, "FmFormShell::GetFormControl: NULL page encountered!" );
if ( !pPage )
continue;
SdrObjListIter aIter( *pPage );
SdrObjListIter aIter( _rObjList );
while ( aIter.IsMore() )
{
SdrObject* pObject = aIter.Next();
@ -1364,12 +1350,51 @@ SdrUnoObj* FmFormShell::GetFormControl( const Reference< XControlModel >& _rxMod
continue;
if ( _rxModel == xControlModel )
{
_out_rxControl = pUnoObject->GetUnoControl( _rView, _rDevice );
return pUnoObject;
}
}
return NULL;
}
}
//------------------------------------------------------------------------
SdrUnoObj* FmFormShell::GetFormControl( const Reference< XControlModel >& _rxModel, const SdrView& _rView, const OutputDevice& _rDevice, Reference< XControl >& _out_rxControl ) const
{
if ( !_rxModel.is() )
return NULL;
// we can only retrieve controls for SdrObjects which belong to page which is actually displayed in the given view
SdrPageView* pPageView = _rView.GetSdrPageView();
SdrPage* pPage = pPageView ? pPageView->GetPage() : NULL;
OSL_ENSURE( pPage, "FmFormShell::GetFormControl: no page displayed in the given view!" );
if ( !pPage )
return NULL;
SdrUnoObj* pUnoObject = lcl_findUnoObject( *pPage, _rxModel );
if ( pUnoObject )
{
_out_rxControl = pUnoObject->GetUnoControl( _rView, _rDevice );
return pUnoObject;
}
#if OSL_DEBUG_LEVEL > 0
// perhaps we are fed with a control model which lives on a page other than the one displayed
// in the given view. This is worth being reported as error, in non-product builds.
FmFormModel* pModel = GetFormModel();
if ( pModel )
{
sal_uInt16 pageCount = pModel->GetPageCount();
for ( sal_uInt16 page = 0; page < pageCount; ++page )
{
pPage = pModel->GetPage( page );
OSL_ENSURE( pPage, "FmFormShell::GetFormControl: NULL page encountered!" );
if ( !pPage )
continue;
pUnoObject = lcl_findUnoObject( *pPage, _rxModel );
OSL_ENSURE( !pUnoObject, "FmFormShell::GetFormControl: the given control model belongs to a wrong page (displayed elsewhere)!" );
}
}
#endif
return NULL;
}

File diff suppressed because it is too large Load diff

View file

@ -197,23 +197,35 @@ FmXPageViewWinRec::~FmXPageViewWinRec()
//------------------------------------------------------------------
void FmXPageViewWinRec::dispose()
{
for (::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin();
i != m_aControllerList.end(); i++)
for ( ::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin();
i != m_aControllerList.end();
++i
)
{
// detaching the events
Reference< XChild > xChild((*i)->getModel(), UNO_QUERY);
if (xChild.is())
try
{
Reference< XEventAttacherManager > xEventManager(xChild->getParent(), UNO_QUERY);
Reference< XInterface > xIfc(*i, UNO_QUERY);
xEventManager->detach( i - m_aControllerList.begin(), xIfc );
}
Reference< XFormController > xController( *i, UNO_SET_THROW );
// dispose the formcontroller
Reference< XComponent > xComp(*i, UNO_QUERY);
xComp->dispose();
// detaching the events
Reference< XChild > xControllerModel( xController->getModel(), UNO_QUERY );
if ( xControllerModel.is() )
{
Reference< XEventAttacherManager > xEventManager( xControllerModel->getParent(), UNO_QUERY );
Reference< XInterface > xControllerNormalized( xController, UNO_QUERY_THROW );
xEventManager->detach( i - m_aControllerList.begin(), xControllerNormalized );
}
// dispose the formcontroller
Reference< XComponent > xComp( xController, UNO_QUERY_THROW );
xComp->dispose();
}
catch( const Exception& )
{
DBG_UNHANDLED_EXCEPTION();
}
}
m_aControllerList.clear(); // this call deletes the formcontrollers
m_aControllerList.clear();
}

View file

@ -623,6 +623,10 @@ uno::Reference< awt::XControl > SdrUnoObj::GetUnoControl(const SdrView& _rView,
uno::Reference< awt::XControl > xControl;
SdrPageView* pPageView = _rView.GetSdrPageView();
OSL_ENSURE( GetPage() == pPageView->GetPage(), "SdrUnoObj::GetUnoControl: This object is not displayed in that particular view!" );
if ( GetPage() != pPageView->GetPage() )
return NULL;
SdrPageWindow* pPageWindow = pPageView ? pPageView->FindPageWindow( _rOut ) : NULL;
OSL_ENSURE( pPageWindow, "SdrUnoObj::GetUnoControl: did not find my SdrPageWindow!" );
if ( !pPageWindow )

View file

@ -36,7 +36,6 @@
#include <sdrpaintwindow.hxx>
#include <goodies/grfmgr.hxx>
#include <svx/svdmodel.hxx>
#include <svx/fmview.hxx>
#ifdef DBG_UTIL
#include <svdibrow.hxx>
@ -868,13 +867,6 @@ SdrPaintWindow* SdrPaintView::BeginCompleteRedraw(OutputDevice* pOut)
pPaintWindow->setTemporaryTarget(true);
}
// the following is a hack, only to be used on the 3.0.1 branch, to prevent becoming
// incompatible there
// #i94033# / 2008-10-16 / frank.schoenheit@sun.com
FmFormView* pMeAsFormView = dynamic_cast< FmFormView* >( this );
if ( pMeAsFormView )
pMeAsFormView->onBeginCompleteRedraw();
return pPaintWindow;
}
@ -938,13 +930,6 @@ void SdrPaintView::EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFo
rPaintWindow.OutputPreRenderDevice(rPaintWindow.GetRedrawRegion());
}
}
// the following is a hack, only to be used on the 3.0.1 branch, to prevent becoming
// incompatible there
// #i94033# / 2008-10-16 / frank.schoenheit@sun.com
FmFormView* pMeAsFormView = dynamic_cast< FmFormView* >( this );
if ( pMeAsFormView )
pMeAsFormView->onEndCompleteRedraw();
}
////////////////////////////////////////////////////////////////////////////////////////////////////