Version 6.4.0.3, tag libreoffice-6.4.0.3
[LibreOffice.git] / sc / source / filter / xml / cachedattraccess.cxx
blobb87fc014f3d9a82669a410686b0d647aa235b7fb
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #include "cachedattraccess.hxx"
11 #include <document.hxx>
13 ScXMLCachedRowAttrAccess::Cache::Cache() :
14 mnTab(-1), mnRow1(-1), mnRow2(-1), mbValue(false) {}
16 bool ScXMLCachedRowAttrAccess::Cache::hasCache(sal_Int32 nTab, sal_Int32 nRow) const
18 return mnTab == nTab && mnRow1 <= nRow && nRow <= mnRow2;
21 ScXMLCachedRowAttrAccess::ScXMLCachedRowAttrAccess(ScDocument* pDoc) :
22 mpDoc(pDoc) {}
24 bool ScXMLCachedRowAttrAccess::rowHidden(sal_Int32 nTab, sal_Int32 nRow, sal_Int32& nEndRow)
26 if (!maHidden.hasCache(nTab, nRow))
28 SCROW nRow1, nRow2;
29 maHidden.mbValue = mpDoc->RowHidden(
30 static_cast<SCROW>(nRow), static_cast<SCTAB>(nTab), &nRow1, &nRow2);
31 maHidden.mnTab = nTab;
32 maHidden.mnRow1 = static_cast<sal_Int32>(nRow1);
33 maHidden.mnRow2 = static_cast<sal_Int32>(nRow2);
36 nEndRow = maHidden.mnRow2;
37 return maHidden.mbValue;
40 bool ScXMLCachedRowAttrAccess::rowFiltered(sal_Int32 nTab, sal_Int32 nRow, sal_Int32& nEndRow)
42 if (!maFiltered.hasCache(nTab, nRow))
44 SCROW nRow1, nRow2;
45 maFiltered.mbValue = mpDoc->RowFiltered(
46 static_cast<SCROW>(nRow), static_cast<SCTAB>(nTab), &nRow1, &nRow2);
47 maFiltered.mnTab = nTab;
48 maFiltered.mnRow1 = static_cast<sal_Int32>(nRow1);
49 maFiltered.mnRow2 = static_cast<sal_Int32>(nRow2);
51 nEndRow = maFiltered.mnRow2;
52 return maFiltered.mbValue;
55 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */