summaryrefslogtreecommitdiff
path: root/svx/source/table
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2009-05-19 09:32:45 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2009-05-19 09:32:45 +0000
commit807fa686e6e3edaf63bc8f542a6eae88b2295ae3 (patch)
tree9ef94fb940bf82a8f4de9872263266e48eb59773 /svx/source/table
parentef6d9aae143378e3ca4410311ae68825cefd4918 (diff)
CWS-TOOLING: integrate CWS impress169
2009-05-13 17:37:21 +0200 sj r271865 : #i100942# applied patch, removed oversafe buffer check (now without warnings on 64 bit platform) 2009-05-13 12:27:18 +0200 sj r271855 : #i101769# fixed line/fill attributes for graphic objects 2009-05-12 10:25:17 +0200 cl r271799 : report correct minimum cell hight for empty cells 2009-04-28 17:29:46 +0200 cl r271334 : fixed merge error 2009-04-28 16:18:01 +0200 cl r271330 : fixed build error 2009-04-28 12:38:09 +0200 cl r271320 : #i100129# images for new layouts 2009-04-27 19:12:06 +0200 cl r271302 : CWS-TOOLING: rebase CWS impress169 to trunk@270723 (milestone: DEV300:m46) 2009-04-20 19:13:28 +0200 sj r271012 : #i100942# applied patch, removed oversafe buffer check 2009-04-09 18:00:01 +0200 sj r270719 : #158488# added rectangular gradient support 2009-04-09 17:49:52 +0200 sj r270718 : #158488# added rectangular gradient support 2009-04-09 17:46:24 +0200 sj r270717 : #158488# added rectangular gradient support 2009-03-26 18:16:34 +0100 cl r270098 : #i99867# applied patch from jlcheng to correctly register table design pane 2009-03-26 18:12:11 +0100 cl r270097 : #i100220# leave some items default so they are not overridden if a new table style is set 2009-03-26 18:11:10 +0100 cl r270096 : #i100220# clear only those items that are also in the style when assigning a new table layout 2009-03-26 15:56:24 +0100 cl r270085 : #i99977# listen to outliner and dispose if outliner dies 2009-03-26 15:47:29 +0100 cl r270084 : #i99977# made the Outliner a SfxBroadcaster so others can listen for its death 2009-03-24 19:10:05 +0100 sj r269991 : #i100490# fixed text resize problem 2009-03-23 14:31:11 +0100 sj r269872 : #i96083# added patch, (dubious && and ||) 2009-03-19 17:55:11 +0100 sj r269764 : #i100275# applied patch, row height is now correct even for rows containing no text 2009-03-18 18:10:52 +0100 sj r269701 : #i93616# solved performance problem when loading document 2009-03-18 16:20:40 +0100 sj r269688 : removing unused code 2009-03-18 16:19:22 +0100 sj r269687 : removing unused code 2009-03-18 16:17:54 +0100 sj r269686 : removing unused code 2009-03-18 10:28:07 +0100 cl r269643 : #i100029# let cells be disposed as soon as the table model is disposed 2009-03-17 15:56:50 +0100 cl r269614 : #i99984# new impress photo layouts 3x2 and 2x2 2009-03-17 15:36:35 +0100 cl r269611 : #i99984# adding new impress photo layouts 3x2 and 2x2 2009-03-16 18:43:48 +0100 cl r269564 : #i55224# correct internal links if pages are changed 2009-03-16 16:40:38 +0100 cl r269559 : #i55224# correct internal hyperlinks if slides are changed/renamed 2009-03-16 15:34:12 +0100 cl r269553 : #i99427# invalidate slots after promote/demote 2009-03-13 18:18:20 +0100 sj r269492 : #i92421# fixed loop if loading encrypted ppt file 2009-03-13 14:51:58 +0100 sj r269481 : #i93002# fixed crash if saving presentation without master title placeholder 2009-03-13 12:26:21 +0100 sj r269468 : #i100147# do not exceed the max point count if creating simple polygon via ::GetSimple 2009-03-12 17:00:45 +0100 sj r269427 : #i82518# justifying rectangles for arc/pie and chord actions, fixed round rectangle problem
Diffstat (limited to 'svx/source/table')
-rw-r--r--svx/source/table/cell.cxx58
-rw-r--r--svx/source/table/cell.hxx11
-rw-r--r--svx/source/table/svdotable.cxx2
-rw-r--r--svx/source/table/tablecontroller.cxx2
4 files changed, 68 insertions, 5 deletions
diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx
index 7f2f2d35f1..dbfaa845dc 100644
--- a/svx/source/table/cell.cxx
+++ b/svx/source/table/cell.cxx
@@ -142,6 +142,8 @@ namespace sdr
void ItemChange(const sal_uInt16 nWhich, const SfxPoolItem* pNewItem);
+ void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr);
+
sdr::table::CellRef mxCell;
};
@@ -271,7 +273,24 @@ namespace sdr
// call parent
AttributeProperties::ItemChange( nWhich, pNewItem );
}
+
+ void CellProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr)
+ {
+ TextProperties::SetStyleSheet( pNewStyleSheet, bDontRemoveHardAttr );
+
+ if( bDontRemoveHardAttr && pNewStyleSheet )
+ {
+ GetObjectItemSet();
+ const SfxItemSet& rStyleAttribs = pNewStyleSheet->GetItemSet();
+
+ for ( USHORT nWhich = SDRATTR_START; nWhich <= SDRATTR_TABLE_LAST; nWhich++ )
+ {
+ if ( rStyleAttribs.GetItemState( nWhich ) == SFX_ITEM_ON )
+ mpItemSet->ClearItem( nWhich );
+ }
+ }
+ }
} // end of namespace properties
} // end of namespace sdr
@@ -281,6 +300,19 @@ namespace sdr { namespace table {
// Cell
// -----------------------------------------------------------------------------
+rtl::Reference< Cell > Cell::create( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject )
+{
+ rtl::Reference< Cell > xCell( new Cell( rTableObj, pOutlinerParaObject ) );
+ if( xCell->mxTable.is() )
+ {
+ Reference< XEventListener > xListener( xCell.get() );
+ xCell->mxTable->addEventListener( xListener );
+ }
+ return xCell;
+}
+
+// -----------------------------------------------------------------------------
+
Cell::Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) throw()
: SdrText( rTableObj, pOutlinerParaObject )
, SvxUnoTextBase( ImplGetSvxUnoOutlinerTextCursorPropertyMap() )
@@ -309,7 +341,19 @@ Cell::~Cell() throw()
void Cell::dispose()
{
- mxTable.clear();
+ if( mxTable.is() )
+ {
+ try
+ {
+ Reference< XEventListener > xThis( this );
+ mxTable->removeEventListener( xThis );
+ }
+ catch( Exception& )
+ {
+ DBG_ERROR("Cell::dispose(), exception caught!");
+ }
+ mxTable.clear();
+ }
if( mpProperties )
{
@@ -621,7 +665,7 @@ sal_Int32 Cell::getMinimumHeight()
pEditOutliner->SetMaxAutoPaperSize(aSize);
nMinimumHeight = pEditOutliner->GetTextHeight()+1;
}
- else
+ else /*if ( hasText() )*/
{
Outliner& rOutliner=rTableObj.ImpGetDrawOutliner();
rOutliner.SetPaperSize(aSize);
@@ -737,6 +781,9 @@ Any SAL_CALL Cell::queryInterface( const Type & rType ) throw(RuntimeException)
if( rType == XLayoutConstrains::static_type() )
return Any( Reference< XLayoutConstrains >( this ) );
+ if( rType == XEventListener::static_type() )
+ return Any( Reference< XEventListener >( this ) );
+
Any aRet( SvxUnoTextBase::queryAggregation( rType ) );
if( aRet.hasValue() )
return aRet;
@@ -1697,5 +1744,12 @@ void SAL_CALL Cell::setString( const OUString& aString ) throw (RuntimeException
notifyModified();
}
+// XEventListener
+void SAL_CALL Cell::disposing( const EventObject& /*Source*/ ) throw (RuntimeException)
+{
+ mxTable.clear();
+ dispose();
+}
+
} }
diff --git a/svx/source/table/cell.hxx b/svx/source/table/cell.hxx
index 3500230dfa..dc3b2ad300 100644
--- a/svx/source/table/cell.hxx
+++ b/svx/source/table/cell.hxx
@@ -34,6 +34,7 @@
#include <com/sun/star/table/XMergeableCell.hpp>
#include <com/sun/star/awt/XLayoutConstrains.hpp>
#include <com/sun/star/beans/XMultiPropertyStates.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
#include <rtl/ref.hxx>
@@ -61,13 +62,13 @@ class Cell : public SdrText,
public SvxUnoTextBase,
public ::com::sun::star::table::XMergeableCell,
public ::com::sun::star::awt::XLayoutConstrains,
+ public ::com::sun::star::lang::XEventListener,
public ::cppu::OWeakObject
{
friend class CellUndo;
public:
- Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) throw();
- virtual ~Cell() throw();
+ static rtl::Reference< Cell > create( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject );
// private
void dispose();
@@ -192,6 +193,9 @@ public:
virtual ::rtl::OUString SAL_CALL getString( ) throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL setString( const ::rtl::OUString& aString ) throw (::com::sun::star::uno::RuntimeException);
+ // XEventListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+
virtual void SetOutlinerParaObject( OutlinerParaObject* pTextObject );
void AddUndo();
@@ -212,6 +216,9 @@ protected:
::com::sun::star::uno::Any GetAnyForItem( SfxItemSet& aSet, const SfxItemPropertyMap* pMap );
private:
+ Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) throw();
+ virtual ~Cell() throw();
+
SvxItemPropertySet maPropSet;
sdr::properties::TextProperties* mpProperties;
diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index deceaddf26..211afa5ff4 100644
--- a/svx/source/table/svdotable.cxx
+++ b/svx/source/table/svdotable.cxx
@@ -2676,7 +2676,7 @@ Pointer SdrTableObj::GetCreatePointer() const
void SdrTableObj::createCell( CellRef& xNewCell )
{
- xNewCell.set( new Cell( *this, 0 ) );
+ xNewCell = Cell::create( *this, 0 );
}
// --------------------------------------------------------------------
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index a43796d705..ab5d250ada 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -847,6 +847,7 @@ void SvxTableController::SetTableStyle( const SfxItemSet* pArgs )
pModel->AddUndo( new TableStyleUndo( *pTableObj ) );
+/*
const sal_Int32 nRowCount = mxTable->getRowCount();
const sal_Int32 nColCount = mxTable->getColumnCount();
for( sal_Int32 nRow = 0; nRow < nRowCount; nRow++ )
@@ -866,6 +867,7 @@ void SvxTableController::SetTableStyle( const SfxItemSet* pArgs )
DBG_ERROR( "svx::SvxTableController::SetTableStyle(), exception caught!" );
}
}
+*/
pTableObj->setTableStyle( xNewTableStyle );
pModel->EndUndo();