View | Details | Raw Unified | Return to issue 3296
Collapse All | Expand All

(-)source/filter/inc/XclImpObjects.hxx (-1 / +4 lines)
Lines 419-424 Link Here
419
    XclImpEscherObjList         aEscherObjList;
419
    XclImpEscherObjList         aEscherObjList;
420
420
421
    XclImpEscherObj*            pCurrEscherObj;
421
    XclImpEscherObj*            pCurrEscherObj;
422
    SvxMSDffSolverContainer*    pSolverContainer;
422
423
423
    sal_Bool                    bLeadingTxo;
424
    sal_Bool                    bLeadingTxo;
424
    sal_Bool                    bMaybeTxo;
425
    sal_Bool                    bMaybeTxo;
Lines 457-462 Link Here
457
    inline sal_Bool             IsCurrObjChart() const;
458
    inline sal_Bool             IsCurrObjChart() const;
458
    void                        SetNewCurrObjChart();
459
    void                        SetNewCurrObjChart();
459
460
461
    inline SvxMSDffSolverContainer*    GetSolverContainer() const { return pSolverContainer; }
462
460
    inline XclImpChart*         GetCurrChartData() const;
463
    inline XclImpChart*         GetCurrChartData() const;
461
    XclImpChart*                ReplaceChartData( XclImpStream& rStrm, XclChartType eNewType );
464
    XclImpChart*                ReplaceChartData( XclImpStream& rStrm, XclChartType eNewType );
462
465
Lines 475-481 Link Here
475
    /** Returns true, if the object with ID nObjId will be ignored. */
478
    /** Returns true, if the object with ID nObjId will be ignored. */
476
    bool                        IsIgnoreObject( sal_uInt32 nObjId ) const;
479
    bool                        IsIgnoreObject( sal_uInt32 nObjId ) const;
477
480
478
    void                        Apply();
481
    void                        Apply( Biff8MSDffManager* pDffMan );
479
};
482
};
480
483
481
inline sal_Bool XclImpObjectManager::IsType( const XclImpEscherObj* pObj, XclImpObjectType eType )
484
inline sal_Bool XclImpObjectManager::IsType( const XclImpEscherObj* pObj, XclImpObjectType eType )
(-)source/filter/excel/XclImpObjects.cxx (-2 / +48 lines)
Lines 255-261 Link Here
255
    while( aStrm.Tell() < nPos )
255
    while( aStrm.Tell() < nPos )
256
    {
256
    {
257
        aStrm >> aHd;
257
        aStrm >> aHd;
258
        if( aHd.IsContainer() )
258
        if(aHd.nRecType == DFF_msofbtSolverContainer )
259
        {
260
            aStrm.Seek( nEntry );
261
            return &aHd;
262
        }
263
        else if( aHd.IsContainer() )
259
            UpdateNode( aHd );
264
            UpdateNode( aHd );
260
        else if( (aStrm.Tell() + aHd.nRecLen) <= nPos )
265
        else if( (aStrm.Tell() + aHd.nRecLen) <= nPos )
261
            aStrm.SeekRel( aHd.nRecLen );
266
            aStrm.SeekRel( aHd.nRecLen );
Lines 936-941 Link Here
936
    aStreamConsumer(),
941
    aStreamConsumer(),
937
    aEscherObjList( *rRoot.mpRD ),
942
    aEscherObjList( *rRoot.mpRD ),
938
    pCurrEscherObj( NULL ),
943
    pCurrEscherObj( NULL ),
944
    pSolverContainer ( NULL ),
939
    bLeadingTxo( sal_False ),
945
    bLeadingTxo( sal_False ),
940
    bMaybeTxo( sal_False ),
946
    bMaybeTxo( sal_False ),
941
    bStartWithDummy( sal_True )
947
    bStartWithDummy( sal_True )
Lines 946-951 Link Here
946
{
952
{
947
    if( pCurrEscherObj )
953
    if( pCurrEscherObj )
948
        delete pCurrEscherObj;
954
        delete pCurrEscherObj;
955
956
    if( pSolverContainer )
957
        delete pSolverContainer;
958
949
}
959
}
950
960
951
const XclImpEscherNote* XclImpObjectManager::GetObjNote( sal_uInt32 nObjNum, sal_uInt16 nTab ) const
961
const XclImpEscherNote* XclImpObjectManager::GetObjNote( sal_uInt32 nObjNum, sal_uInt16 nTab ) const
Lines 1065-1070 Link Here
1065
                    aStreamConsumer.AppendData( aBuf, 0x0200 );
1075
                    aStreamConsumer.AppendData( aBuf, 0x0200 );
1066
                }
1076
                }
1067
                break;
1077
                break;
1078
                case DFF_msofbtSolverContainer :
1079
                    if( !pSolverContainer )
1080
                        pSolverContainer = new SvxMSDffSolverContainer;
1081
                    aStreamConsumer.GetStream() >> *pSolverContainer ;
1082
                break;
1068
            }
1083
            }
1069
        }
1084
        }
1070
    }
1085
    }
Lines 1293-1303 Link Here
1293
    return ::std::binary_search( maIgnoreObj.begin(), maIgnoreObj.end(), nObjId );
1308
    return ::std::binary_search( maIgnoreObj.begin(), maIgnoreObj.end(), nObjId );
1294
}
1309
}
1295
1310
1296
void XclImpObjectManager::Apply()
1311
void XclImpObjectManager::Apply( Biff8MSDffManager* pDffMan )
1297
{
1312
{
1298
    RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "sc", "dr104026", "XclImpObjectManager::Apply" );
1313
    RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "sc", "dr104026", "XclImpObjectManager::Apply" );
1299
    ScfProgressBar aProgress( GetDocShell(), STR_PROGRESS_CALCULATING );
1314
    ScfProgressBar aProgress( GetDocShell(), STR_PROGRESS_CALCULATING );
1300
    aEscherObjList.Apply( aProgress );
1315
    aEscherObjList.Apply( aProgress );
1316
    if( pSolverContainer )
1317
    {
1318
        if( pDffMan )
1319
            pDffMan->SolveSolver(*pSolverContainer );
1320
    }
1321
	
1301
}
1322
}
1302
1323
1303
1324
Lines 1576-1581 Link Here
1576
        {
1597
        {
1577
            sal_uInt32 nTextId = GetPropertyValue( DFF_Prop_lTxid, 0 );
1598
            sal_uInt32 nTextId = GetPropertyValue( DFF_Prop_lTxid, 0 );
1578
            StoreShapeOrder( rObjData.nShapeId, nTextId, pRet );
1599
            StoreShapeOrder( rObjData.nShapeId, nTextId, pRet );
1600
        }
1601
    }
1602
1603
    SvxMSDffSolverContainer* pSolverContainer = rObjManager.GetSolverContainer();
1604
1605
    if(pRet && pSolverContainer)
1606
    {
1607
        for ( SvxMSDffConnectorRule* pPtr = (SvxMSDffConnectorRule*)pSolverContainer->aCList.First();
1608
            pPtr; pPtr = (SvxMSDffConnectorRule*)pSolverContainer->aCList.Next() )
1609
        {
1610
            if ( rObjData.nShapeId == pPtr->nShapeC )
1611
                pPtr->pCObj = pRet;
1612
            else
1613
            {
1614
                if ( rObjData.nShapeId == pPtr->nShapeA )
1615
                {
1616
                    pPtr->pAObj = pRet;
1617
                    pPtr->nSpFlagsA = rObjData.nSpFlags;
1618
                }
1619
                if ( rObjData.nShapeId == pPtr->nShapeB )
1620
                {
1621
                    pPtr->pBObj = pRet;
1622
                    pPtr->nSpFlagsB = rObjData.nSpFlags;
1623
                }
1624
            }
1579
        }
1625
        }
1580
    }
1626
    }
1581
    return pRet;
1627
    return pRet;
(-)source/filter/excel/excimp8.cxx (-3 / +6 lines)
Lines 1023-1032 Link Here
1023
1023
1024
    SfxObjectShell* pShell = GetDocShell();
1024
    SfxObjectShell* pShell = GetDocShell();
1025
    XclImpObjectManager& rObjManager = GetObjectManager();
1025
    XclImpObjectManager& rObjManager = GetObjectManager();
1026
    Biff8MSDffManager*      pDffMan = NULL;
1026
1027
1027
    if( pShell && rObjManager.HasEscherStream() )
1028
    if( pShell && rObjManager.HasEscherStream() )
1028
	{
1029
	{
1029
        Biff8MSDffManager*      pDffMan = new Biff8MSDffManager( *pExcRoot, rObjManager,
1030
        pDffMan = new Biff8MSDffManager( *pExcRoot, rObjManager,
1030
                                            0, 0, pD->GetDrawLayer(), 1440 );
1031
                                            0, 0, pD->GetDrawLayer(), 1440 );
1031
1032
1032
        const XclImpAnchorData*         pAnch;
1033
        const XclImpAnchorData*         pAnch;
Lines 1108-1117 Link Here
1108
			}
1109
			}
1109
		}
1110
		}
1110
1111
1111
		delete pDffMan;
1112
	}
1112
	}
1113
1113
1114
    rObjManager.Apply();
1114
    rObjManager.Apply(pDffMan);
1115
1116
    if( pDffMan )
1117
        delete pDffMan;
1115
1118
1116
	ImportExcel::PostDocLoad();
1119
	ImportExcel::PostDocLoad();
1117
1120

Return to issue 3296