Lines 1278-1283
Link Here
|
1278 |
// then the latter is true.. |
1278 |
// then the latter is true.. |
1279 |
if( !pAutoFilterBuffer ) return; |
1279 |
if( !pAutoFilterBuffer ) return; |
1280 |
|
1280 |
|
|
|
1281 |
pAutoFilterBuffer->IncrementActiveAF(); |
1282 |
|
1281 |
XclImpAutoFilterData* pData = pAutoFilterBuffer->GetByTab( GetScTab() ); |
1283 |
XclImpAutoFilterData* pData = pAutoFilterBuffer->GetByTab( GetScTab() ); |
1282 |
if( pData ) |
1284 |
if( pData ) |
1283 |
pData->SetAutoOrAdvanced(); |
1285 |
pData->SetAutoOrAdvanced(); |
Lines 1528-1536
Link Here
|
1528 |
|
1530 |
|
1529 |
} |
1531 |
} |
1530 |
|
1532 |
|
1531 |
void XclImpAutoFilterData::Apply() |
1533 |
void XclImpAutoFilterData::Apply( const BOOL bUseUnNamed ) |
1532 |
{ |
1534 |
{ |
1533 |
CreateScDBData(); |
1535 |
CreateScDBData(bUseUnNamed); |
1534 |
|
1536 |
|
1535 |
if( bActive ) |
1537 |
if( bActive ) |
1536 |
{ |
1538 |
{ |
Lines 1547-1553
Link Here
|
1547 |
} |
1549 |
} |
1548 |
} |
1550 |
} |
1549 |
|
1551 |
|
1550 |
void XclImpAutoFilterData::CreateScDBData() |
1552 |
void XclImpAutoFilterData::CreateScDBData( const BOOL bUseUnNamed ) |
1551 |
{ |
1553 |
{ |
1552 |
|
1554 |
|
1553 |
// Create the ScDBData() object if the AutoFilter is activated |
1555 |
// Create the ScDBData() object if the AutoFilter is activated |
Lines 1558-1563
Link Here
|
1558 |
pCurrDBData = rColl.GetDBAtArea( Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1560 |
pCurrDBData = rColl.GetDBAtArea( Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1559 |
if( !pCurrDBData ) |
1561 |
if( !pCurrDBData ) |
1560 |
{ |
1562 |
{ |
|
|
1563 |
AmendAFName(bUseUnNamed); |
1564 |
|
1561 |
pCurrDBData = new ScDBData( aFilterName, Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1565 |
pCurrDBData = new ScDBData( aFilterName, Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1562 |
|
1566 |
|
1563 |
if( pCurrDBData ) |
1567 |
if( pCurrDBData ) |
Lines 1593-1598
Link Here
|
1593 |
// inside the advanced range |
1597 |
// inside the advanced range |
1594 |
} |
1598 |
} |
1595 |
|
1599 |
|
|
|
1600 |
void XclImpAutoFilterData::AmendAFName(const BOOL bUseUnNamed) |
1601 |
{ |
1602 |
// If-and-only-if we have one AF filter then |
1603 |
// use the Calc "unnamed" range name. Calc |
1604 |
// only supports one in total while Excel |
1605 |
// supports one per sheet. |
1606 |
if( bUseUnNamed && bAutoOrAdvanced ) |
1607 |
{ |
1608 |
rtl::OUString sOUNoName (ScGlobal::GetRscString(STR_DB_NONAME)); |
1609 |
aFilterName = sOUNoName; |
1610 |
} |
1611 |
} |
1612 |
|
1613 |
XclImpAutoFilterBuffer::XclImpAutoFilterBuffer() : |
1614 |
nAFActiveCount( 0 ) |
1615 |
{ |
1616 |
} |
1617 |
|
1596 |
XclImpAutoFilterBuffer::~XclImpAutoFilterBuffer() |
1618 |
XclImpAutoFilterBuffer::~XclImpAutoFilterBuffer() |
1597 |
{ |
1619 |
{ |
1598 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1620 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
Lines 1623-1629
Link Here
|
1623 |
void XclImpAutoFilterBuffer::Apply() |
1645 |
void XclImpAutoFilterBuffer::Apply() |
1624 |
{ |
1646 |
{ |
1625 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1647 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1626 |
pData->Apply(); |
1648 |
pData->Apply(UseUnNamed()); |
1627 |
} |
1649 |
} |
1628 |
|
1650 |
|
1629 |
XclImpAutoFilterData* XclImpAutoFilterBuffer::GetByTab( UINT16 nTab ) |
1651 |
XclImpAutoFilterData* XclImpAutoFilterBuffer::GetByTab( UINT16 nTab ) |