summaryrefslogtreecommitdiff
path: root/sc/source/core/data/sortparam.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/core/data/sortparam.cxx')
-rw-r--r--sc/source/core/data/sortparam.cxx271
1 files changed, 0 insertions, 271 deletions
diff --git a/sc/source/core/data/sortparam.cxx b/sc/source/core/data/sortparam.cxx
deleted file mode 100644
index e230bfb70..000000000
--- a/sc/source/core/data/sortparam.cxx
+++ /dev/null
@@ -1,271 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-
-
-#include "sortparam.hxx"
-#include "global.hxx"
-#include "address.hxx"
-#include "queryparam.hxx"
-#include "subtotalparam.hxx"
-
-
-//------------------------------------------------------------------------
-
-ScSortParam::ScSortParam()
-{
- Clear();
-}
-
-//------------------------------------------------------------------------
-
-ScSortParam::ScSortParam( const ScSortParam& r ) :
- nCol1(r.nCol1),nRow1(r.nRow1),nCol2(r.nCol2),nRow2(r.nRow2),nUserIndex(r.nUserIndex),
- bHasHeader(r.bHasHeader),bByRow(r.bByRow),bCaseSens(r.bCaseSens),
- bNaturalSort(r.bNaturalSort),bUserDef(r.bUserDef),
- bIncludePattern(r.bIncludePattern),bInplace(r.bInplace),
- nDestTab(r.nDestTab),nDestCol(r.nDestCol),nDestRow(r.nDestRow),
- aCollatorLocale( r.aCollatorLocale ), aCollatorAlgorithm( r.aCollatorAlgorithm ),
- nCompatHeader( r.nCompatHeader )
-{
- for (sal_uInt16 i=0; i<MAXSORT; i++)
- {
- bDoSort[i] = r.bDoSort[i];
- nField[i] = r.nField[i];
- bAscending[i] = r.bAscending[i];
- }
-}
-
-//------------------------------------------------------------------------
-
-void ScSortParam::Clear()
-{
- nCol1=nCol2=nDestCol = 0;
- nRow1=nRow2=nDestRow = 0;
- nCompatHeader = 2;
- nDestTab = 0;
- nUserIndex = 0;
- bHasHeader=bCaseSens=bUserDef=bNaturalSort = false;
- bByRow=bIncludePattern=bInplace = true;
- aCollatorLocale = ::com::sun::star::lang::Locale();
- aCollatorAlgorithm = ::rtl::OUString();
-
- for (sal_uInt16 i=0; i<MAXSORT; i++)
- {
- bDoSort[i] = false;
- nField[i] = 0;
- bAscending[i] = true;
- }
-}
-
-//------------------------------------------------------------------------
-
-ScSortParam& ScSortParam::operator=( const ScSortParam& r )
-{
- nCol1 = r.nCol1;
- nRow1 = r.nRow1;
- nCol2 = r.nCol2;
- nRow2 = r.nRow2;
- nUserIndex = r.nUserIndex;
- bHasHeader = r.bHasHeader;
- bByRow = r.bByRow;
- bCaseSens = r.bCaseSens;
- bNaturalSort = r.bNaturalSort;
- bUserDef = r.bUserDef;
- bIncludePattern = r.bIncludePattern;
- bInplace = r.bInplace;
- nDestTab = r.nDestTab;
- nDestCol = r.nDestCol;
- nDestRow = r.nDestRow;
- aCollatorLocale = r.aCollatorLocale;
- aCollatorAlgorithm = r.aCollatorAlgorithm;
- nCompatHeader = r.nCompatHeader;
-
- for (sal_uInt16 i=0; i<MAXSORT; i++)
- {
- bDoSort[i] = r.bDoSort[i];
- nField[i] = r.nField[i];
- bAscending[i] = r.bAscending[i];
- }
-
- return *this;
-}
-
-//------------------------------------------------------------------------
-
-bool ScSortParam::operator==( const ScSortParam& rOther ) const
-{
- bool bEqual = false;
- // Anzahl der Sorts gleich?
- sal_uInt16 nLast = 0;
- sal_uInt16 nOtherLast = 0;
- while ( bDoSort[nLast++] && nLast < MAXSORT ) ;
- while ( rOther.bDoSort[nOtherLast++] && nOtherLast < MAXSORT ) ;
- nLast--;
- nOtherLast--;
- if ( (nLast == nOtherLast)
- && (nCol1 == rOther.nCol1)
- && (nRow1 == rOther.nRow1)
- && (nCol2 == rOther.nCol2)
- && (nRow2 == rOther.nRow2)
- && (bHasHeader == rOther.bHasHeader)
- && (bByRow == rOther.bByRow)
- && (bCaseSens == rOther.bCaseSens)
- && (bNaturalSort == rOther.bNaturalSort)
- && (bUserDef == rOther.bUserDef)
- && (nUserIndex == rOther.nUserIndex)
- && (bIncludePattern == rOther.bIncludePattern)
- && (bInplace == rOther.bInplace)
- && (nDestTab == rOther.nDestTab)
- && (nDestCol == rOther.nDestCol)
- && (nDestRow == rOther.nDestRow)
- && (aCollatorLocale.Language == rOther.aCollatorLocale.Language)
- && (aCollatorLocale.Country == rOther.aCollatorLocale.Country)
- && (aCollatorLocale.Variant == rOther.aCollatorLocale.Variant)
- && (aCollatorAlgorithm == rOther.aCollatorAlgorithm)
- )
- {
- bEqual = true;
- for ( sal_uInt16 i=0; i<=nLast && bEqual; i++ )
- {
- bEqual = (nField[i] == rOther.nField[i]) && (bAscending[i] == rOther.bAscending[i]);
- }
- }
- return bEqual;
-}
-
-//------------------------------------------------------------------------
-
-ScSortParam::ScSortParam( const ScSubTotalParam& rSub, const ScSortParam& rOld ) :
- nCol1(rSub.nCol1),nRow1(rSub.nRow1),nCol2(rSub.nCol2),nRow2(rSub.nRow2),nUserIndex(rSub.nUserIndex),
- bHasHeader(true),bByRow(true),bCaseSens(rSub.bCaseSens),bNaturalSort(rOld.bNaturalSort),
- bUserDef(rSub.bUserDef),bIncludePattern(rSub.bIncludePattern),
- bInplace(true),
- nDestTab(0),nDestCol(0),nDestRow(0),
- aCollatorLocale( rOld.aCollatorLocale ), aCollatorAlgorithm( rOld.aCollatorAlgorithm ),
- nCompatHeader( rOld.nCompatHeader )
-{
- sal_uInt16 nNewCount = 0;
- sal_uInt16 i;
-
- // zuerst die Gruppen aus den Teilergebnissen
- if (rSub.bDoSort)
- for (i=0; i<MAXSUBTOTAL; i++)
- if (rSub.bGroupActive[i])
- {
- if (nNewCount < MAXSORT)
- {
- bDoSort[nNewCount] = true;
- nField[nNewCount] = rSub.nField[i];
- bAscending[nNewCount] = rSub.bAscending;
- ++nNewCount;
- }
- }
-
- // dann dahinter die alten Einstellungen
- for (i=0; i<MAXSORT; i++)
- if (rOld.bDoSort[i])
- {
- SCCOLROW nThisField = rOld.nField[i];
- bool bDouble = false;
- for (sal_uInt16 j=0; j<nNewCount; j++)
- if ( nField[j] == nThisField )
- bDouble = true;
- if (!bDouble) // ein Feld nicht zweimal eintragen
- {
- if (nNewCount < MAXSORT)
- {
- bDoSort[nNewCount] = true;
- nField[nNewCount] = nThisField;
- bAscending[nNewCount] = rOld.bAscending[i];
- ++nNewCount;
- }
- }
- }
-
- for (i=nNewCount; i<MAXSORT; i++) // Rest loeschen
- {
- bDoSort[i] = false;
- nField[i] = 0;
- bAscending[i] = true;
- }
-}
-
-//------------------------------------------------------------------------
-
-ScSortParam::ScSortParam( const ScQueryParam& rParam, SCCOL nCol ) :
- nCol1(nCol),nRow1(rParam.nRow1),nCol2(nCol),nRow2(rParam.nRow2),nUserIndex(0),
- bHasHeader(rParam.bHasHeader),bByRow(true),bCaseSens(rParam.bCaseSens),
- bNaturalSort(false),
-//! TODO: what about Locale and Algorithm?
- bUserDef(false),bIncludePattern(false),
- bInplace(true),
- nDestTab(0),nDestCol(0),nDestRow(0), nCompatHeader(2)
-{
- bDoSort[0] = true;
- nField[0] = nCol;
- bAscending[0] = true;
- for (sal_uInt16 i=1; i<MAXSORT; i++)
- {
- bDoSort[i] = false;
- nField[i] = 0;
- bAscending[i] = true;
- }
-}
-
-//------------------------------------------------------------------------
-
-void ScSortParam::MoveToDest()
-{
- if (!bInplace)
- {
- SCsCOL nDifX = ((SCsCOL) nDestCol) - ((SCsCOL) nCol1);
- SCsROW nDifY = ((SCsROW) nDestRow) - ((SCsROW) nRow1);
-
- nCol1 = sal::static_int_cast<SCCOL>( nCol1 + nDifX );
- nRow1 = sal::static_int_cast<SCROW>( nRow1 + nDifY );
- nCol2 = sal::static_int_cast<SCCOL>( nCol2 + nDifX );
- nRow2 = sal::static_int_cast<SCROW>( nRow2 + nDifY );
- for (sal_uInt16 i=0; i<MAXSORT; i++)
- if (bByRow)
- nField[i] += nDifX;
- else
- nField[i] += nDifY;
-
- bInplace = true;
- }
- else
- {
- OSL_FAIL("MoveToDest, bInplace == TRUE");
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */