User: rt      
Date: 2008-06-16 13:46:07+0000
Modified:
   dba/reportdesign/source/ui/report/ReportSection.cxx

Log:
 INTEGRATION: CWS rptchart02 (1.8.4); FILE MERGED
 2008/05/15 12:29:39 oj 1.8.4.7: #i87135# allow to enable e.g. bold for 
controls as other checks
 2008/04/30 13:03:35 oj 1.8.4.6: #i88843# impl clone method
 2008/04/16 06:30:36 oj 1.8.4.5: RESYNC: (1.8-1.9); FILE MERGED
 2008/04/15 08:34:45 oj 1.8.4.4: #i88295# handle copy n paste
 2008/04/03 12:01:46 oj 1.8.4.3: handle delete key properly when ole object is  
ui active
 2008/04/03 06:35:21 oj 1.8.4.2: #i86343# remove unused code
 2008/03/12 09:45:18 oj 1.8.4.1: impl chart handling

File Changes:

Directory: /dba/reportdesign/source/ui/report/
==============================================

File [changed]: ReportSection.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/reportdesign/source/ui/report/ReportSection.cxx?r1=1.9&r2=1.10
Delta lines:  +49 -83
---------------------
--- ReportSection.cxx   2008-04-10 19:14:53+0000        1.9
+++ ReportSection.cxx   2008-06-16 13:46:04+0000        1.10
@@ -256,38 +256,41 @@
             {
                 try
                 {
-                    uno::Sequence< uno::Reference<util::XCloneable> > aCopies;
+                    uno::Sequence< uno::Reference<report::XReportComponent> > 
aCopies;
                     pIter->Value >>= aCopies;
-                    const uno::Reference<util::XCloneable>* pCopiesIter = 
aCopies.getConstArray();
-                    const uno::Reference<util::XCloneable>* pCopiesEnd = 
pCopiesIter + aCopies.getLength();
+                    const uno::Reference<report::XReportComponent>* 
pCopiesIter = aCopies.getConstArray();
+                    const uno::Reference<report::XReportComponent>* pCopiesEnd 
= pCopiesIter + aCopies.getLength();
                     for (;pCopiesIter != pCopiesEnd ; ++pCopiesIter)
                     {
-                        uno::Reference< report::XReportComponent> 
xComponent(*pCopiesIter,uno::UNO_QUERY_THROW);
-                        uno::Reference< report::XReportComponent> 
xClone(xComponent->createClone(),uno::UNO_QUERY_THROW);
-                        Rectangle 
aRet(VCLPoint(xClone->getPosition()),VCLSize(xClone->getSize()));
+                                               SvxShape* pShape = 
SvxShape::getImplementation( *pCopiesIter );
+                        SdrObject* pObject = pShape ? pShape->GetSdrObject() : 
NULL;
+                                               if ( pObject )
+                                               {   
+                            SdrObject* pNeuObj = pObject->Clone();
+
+                            pNeuObj->SetPage( m_pPage );
+                                                       pNeuObj->SetModel( 
m_pModel.get() );
+                                       SdrInsertReason 
aReason(SDRREASON_VIEWCALL);
+                                       
m_pPage->InsertObject(pNeuObj,CONTAINER_APPEND,&aReason);
+
+                                                       Rectangle 
aRet(VCLPoint((*pCopiesIter)->getPosition()),VCLSize((*pCopiesIter)->getSize()));
                         aRet.setHeight(aRet.getHeight() + 1);
                         aRet.setWidth(aRet.getWidth() + 1);
                         bool bOverlapping = true;
                         while ( bOverlapping )
                         {
-                            bOverlapping = isOver(aRet,*m_pPage,*m_pView,true);
+                                                               bOverlapping = 
isOver(aRet,*m_pPage,*m_pView,true,pNeuObj) != NULL;
                             if ( bOverlapping )
                             {
                                 aRet.Move(0,aRet.getHeight()+1);
-                                xClone->setPositionY(aRet.Top());
+                                    pNeuObj->SetLogicRect(aRet);
+                                                                       
//(*pCopiesIter)->setPositionY(aRet.Top());
                             }
                         }
-                        if ( !bOverlapping )
-                        {
-                            m_xSection->add(xClone.get());
-                            SvxShape* pShape = SvxShape::getImplementation( 
xClone );
-                            SdrObject* pObject = pShape ? 
pShape->GetSdrObject() : NULL;
-                            OSL_ENSURE( pObject, "OReportSection::Paste: no 
SdrObject for the shape!" );
-                            if ( pObject )
-                            {
-                                m_pView->AddUndo( 
m_pView->GetModel()->GetSdrUndoFactory().CreateUndoNewObject( *pObject ) );
-                                m_pView->MarkObj( pObject, 
m_pView->GetSdrPageView() );
-                            }
+                                                       m_pView->AddUndo( 
m_pView->GetModel()->GetSdrUndoFactory().CreateUndoNewObject( *pNeuObj ) );
+                                                       m_pView->MarkObj( 
pNeuObj, m_pView->GetSdrPageView() );
+                            if ( m_xSection.is() && 
(static_cast<sal_uInt32>(aRet.getHeight() + aRet.Top()) > 
m_xSection->getHeight()) )
+                                           
m_xSection->setHeight(aRet.getHeight() + aRet.Top());
                         }
                     }
                 }
@@ -311,33 +314,6 @@
        m_pView->DeleteMarked();
 }
 //----------------------------------------------------------------------------
-BOOL OReportSection::UnmarkDialog()
-{
-       SdrObject*              pDlgObj = m_pPage->GetObj(0);
-       SdrPageView*    pPgView = m_pView->GetSdrPageView();
-
-       BOOL bWasMarked = m_pView->IsObjMarked( pDlgObj );
-
-       if( bWasMarked )
-               m_pView->MarkObj( pDlgObj, pPgView, TRUE );
-
-       return bWasMarked;
-}
-
-//----------------------------------------------------------------------------
-BOOL OReportSection::RemarkDialog()
-{
-       SdrObject*              pDlgObj = m_pPage->GetObj(0);
-       SdrPageView*    pPgView = m_pView->GetSdrPageView();
-
-       BOOL bWasMarked = m_pView->IsObjMarked( pDlgObj );
-
-       if( !bWasMarked )
-               m_pView->MarkObj( pDlgObj, pPgView, FALSE );
-
-       return bWasMarked;
-}
-//----------------------------------------------------------------------------
 void OReportSection::SetMode( DlgEdMode eNewMode )
 {
        if ( eNewMode != m_eMode )
@@ -374,7 +350,7 @@
     const SdrMarkList& rMarkedList = m_pView->GetMarkedObjectList();
        const ULONG nMark = rMarkedList.GetMarkCount();
 
-    ::std::vector< uno::Reference<util::XCloneable> > aCopies;
+    ::std::vector< uno::Reference<report::XReportComponent> > aCopies;
     aCopies.reserve(nMark);
 
     SdrUndoFactory& rUndo = m_pView->GetModel()->GetSdrUndoFactory();
@@ -388,8 +364,8 @@
                {
             try
             {
-                uno::Reference<report::XReportComponent> xComponent = 
pObj->getReportComponent();
-                aCopies.push_back(xComponent->createClone());
+                SdrObject* pNeuObj = pSdrObject->Clone();
+                
aCopies.push_back(uno::Reference<report::XReportComponent>(pNeuObj->getUnoShape(),uno::UNO_QUERY));
                 if ( _bEraseAnddNoClone )
                 {
                     m_pView->AddUndo( rUndo.CreateUndoDeleteObject( 
*pSdrObject ) );
@@ -411,7 +387,7 @@
         _rAllreadyCopiedObjects.realloc( nLength + 1);
         beans::NamedValue* pNewValue = _rAllreadyCopiedObjects.getArray() + 
nLength;
         pNewValue->Name = m_xSection->getName();
-        pNewValue->Value <<= uno::Sequence< uno::Reference<util::XCloneable> 
>(&(*aCopies.begin()),aCopies.size());
+        pNewValue->Value <<= uno::Sequence< 
uno::Reference<report::XReportComponent> >(&(*aCopies.begin()),aCopies.size());
     }
 }
 //----------------------------------------------------------------------------
@@ -448,12 +424,6 @@
        m_pFunc->MouseMove( rMEvt );
 }
 //----------------------------------------------------------------------------
-bool OReportSection::adjustPageSize()
-{
-    bool bAdjustedPageSize = false;
-       return bAdjustedPageSize;
-}
-//----------------------------------------------------------------------------
 void OReportSection::SetGridVisible(BOOL _bVisible)
 {
        m_pView->SetGridVisible( _bVisible );
@@ -464,21 +434,6 @@
        if ( m_pView )
                m_pView->MarkAllObj();
 }
-// 
-----------------------------------------------------------------------------
-void OReportSection::setSectionHeightPixel(sal_uInt32 _nHeight)
-{
-       OSL_ENSURE(m_xSection.is(),"Why is the UNO section NULL!");
-       if ( m_xSection.is() )
-               
m_xSection->setHeight(PixelToLogic(Size(0,_nHeight),MAP_100TH_MM).Width());
-}
-//----------------------------------------------------------------------------
-void OReportSection::insertObject(const uno::Reference< 
report::XReportComponent >& _xObject)
-{
-       OSL_ENSURE(_xObject.is(),"Object is not valid to create a SdrObject!");
-       if ( !_xObject.is() || !m_pView || !m_pPage )
-               return;
-       m_pPage->insertObject(_xObject);
-}
 //----------------------------------------------------------------------------
 void OReportSection::Command( const CommandEvent& _rCEvt )
 {
@@ -616,6 +571,12 @@
        return m_pFunc.get() ? m_pFunc->handleKeyEvent(_rEvent) : sal_False;
 }
 // 
-----------------------------------------------------------------------------
+void OReportSection::deactivateOle()
+{
+    if ( m_pFunc.get() )
+               m_pFunc->deactivateOle(true);
+}
+// 
-----------------------------------------------------------------------------
 void OReportSection::createDefault(const ::rtl::OUString& _sType)
 {
     SdrObject* pObj = m_pView->GetCreateObj();//rMarkList.GetMark(0)->GetObj();
@@ -707,7 +668,7 @@
        return xModel;
 }
 // 
-----------------------------------------------------------------------------
-void OReportSection::fillControlModelSelection(::std::vector< uno::Reference< 
report::XReportComponent > >& _rSelection) const
+void OReportSection::fillControlModelSelection(::std::vector< uno::Reference< 
uno::XInterface > >& _rSelection) const
 {
     if ( m_pView )
        {
@@ -832,6 +793,11 @@
     m_pFunc->stopScrollTimer();
 }
 // 
-----------------------------------------------------------------------------
+bool OReportSection::isUiActive() const
+{
+    return m_pFunc->isUiActive();
+}
+// 
-----------------------------------------------------------------------------
 // 
=============================================================================
 }
 // 
=============================================================================




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to