Lines 1285-1290
Link Here
|
1285 |
// then the latter is true.. |
1285 |
// then the latter is true.. |
1286 |
if( !pAutoFilterBuffer ) return; |
1286 |
if( !pAutoFilterBuffer ) return; |
1287 |
|
1287 |
|
|
|
1288 |
pAutoFilterBuffer->IncrementActiveAF(); |
1289 |
|
1288 |
XclImpAutoFilterData* pData = pAutoFilterBuffer->GetByTab( GetScTab() ); |
1290 |
XclImpAutoFilterData* pData = pAutoFilterBuffer->GetByTab( GetScTab() ); |
1289 |
if( pData ) |
1291 |
if( pData ) |
1290 |
pData->SetAutoOrAdvanced(); |
1292 |
pData->SetAutoOrAdvanced(); |
Lines 1535-1543
Link Here
|
1535 |
|
1537 |
|
1536 |
} |
1538 |
} |
1537 |
|
1539 |
|
1538 |
void XclImpAutoFilterData::Apply() |
1540 |
void XclImpAutoFilterData::Apply( const BOOL bUseUnNamed ) |
1539 |
{ |
1541 |
{ |
1540 |
CreateScDBData(); |
1542 |
CreateScDBData(bUseUnNamed); |
1541 |
|
1543 |
|
1542 |
if( bActive ) |
1544 |
if( bActive ) |
1543 |
{ |
1545 |
{ |
Lines 1554-1560
Link Here
|
1554 |
} |
1556 |
} |
1555 |
} |
1557 |
} |
1556 |
|
1558 |
|
1557 |
void XclImpAutoFilterData::CreateScDBData() |
1559 |
void XclImpAutoFilterData::CreateScDBData( const BOOL bUseUnNamed ) |
1558 |
{ |
1560 |
{ |
1559 |
|
1561 |
|
1560 |
// Create the ScDBData() object if the AutoFilter is activated |
1562 |
// Create the ScDBData() object if the AutoFilter is activated |
Lines 1565-1570
Link Here
|
1565 |
pCurrDBData = rColl.GetDBAtArea( Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1567 |
pCurrDBData = rColl.GetDBAtArea( Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1566 |
if( !pCurrDBData ) |
1568 |
if( !pCurrDBData ) |
1567 |
{ |
1569 |
{ |
|
|
1570 |
AmendAFName(bUseUnNamed); |
1571 |
|
1568 |
pCurrDBData = new ScDBData( aFilterName, Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1572 |
pCurrDBData = new ScDBData( aFilterName, Tab(), StartCol(), StartRow(), EndCol(), EndRow() ); |
1569 |
|
1573 |
|
1570 |
if( pCurrDBData ) |
1574 |
if( pCurrDBData ) |
Lines 1600-1605
Link Here
|
1600 |
// inside the advanced range |
1604 |
// inside the advanced range |
1601 |
} |
1605 |
} |
1602 |
|
1606 |
|
|
|
1607 |
void XclImpAutoFilterData::AmendAFName(const BOOL bUseUnNamed) |
1608 |
{ |
1609 |
// If-and-only-if we have one AF filter then |
1610 |
// use the Calc "unnamed" range name. Calc |
1611 |
// only supports one in total while Excel |
1612 |
// supports one per sheet. |
1613 |
if( bUseUnNamed && bAutoOrAdvanced ) |
1614 |
aFilterName = ScGlobal::GetRscString(STR_DB_NONAME); |
1615 |
} |
1616 |
|
1617 |
XclImpAutoFilterBuffer::XclImpAutoFilterBuffer() : |
1618 |
nAFActiveCount( 0 ) |
1619 |
{ |
1620 |
} |
1621 |
|
1603 |
XclImpAutoFilterBuffer::~XclImpAutoFilterBuffer() |
1622 |
XclImpAutoFilterBuffer::~XclImpAutoFilterBuffer() |
1604 |
{ |
1623 |
{ |
1605 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1624 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
Lines 1630-1636
Link Here
|
1630 |
void XclImpAutoFilterBuffer::Apply() |
1649 |
void XclImpAutoFilterBuffer::Apply() |
1631 |
{ |
1650 |
{ |
1632 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1651 |
for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() ) |
1633 |
pData->Apply(); |
1652 |
pData->Apply(UseUnNamed()); |
1634 |
} |
1653 |
} |
1635 |
|
1654 |
|
1636 |
XclImpAutoFilterData* XclImpAutoFilterBuffer::GetByTab( UINT16 nTab ) |
1655 |
XclImpAutoFilterData* XclImpAutoFilterBuffer::GetByTab( UINT16 nTab ) |