LibreOffice Module sc (master)  1
table.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
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  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SC_INC_TABLE_HXX
21 #define INCLUDED_SC_INC_TABLE_HXX
22 
23 #include <algorithm>
24 #include <vector>
25 #include <tools/gen.hxx>
26 #include <tools/color.hxx>
27 #include "attarray.hxx"
28 #include "column.hxx"
29 #include "colcontainer.hxx"
30 #include "sortparam.hxx"
31 #include "types.hxx"
32 #include "cellvalue.hxx"
33 #include <formula/types.hxx>
34 #include "calcmacros.hxx"
35 #include <formula/errorcodes.hxx>
36 #include "document.hxx"
37 
38 #include <set>
39 #include <memory>
40 
41 template <typename A, typename D> class ScBitMaskCompressedArray;
42 template <typename A, typename D> class ScCompressedArray;
43 
44 namespace utl {
45  class TextSearch;
46 }
47 
48 namespace com::sun::star {
49  namespace sheet {
50  struct TablePageBreakData;
51  }
52 }
53 
54 namespace formula { struct VectorRefArray; }
55 namespace sc {
56 
57 class StartListeningContext;
58 class EndListeningContext;
59 class CopyFromClipContext;
60 class CopyToClipContext;
61 class CopyToDocContext;
62 class MixDocContext;
63 class ColumnSpanSet;
64 class RangeColumnSpanSet;
65 class ColumnSet;
66 struct ColumnBlockPosition;
67 class TableColumnBlockPositionSet;
68 struct RefUpdateContext;
69 struct RefUpdateInsertTabContext;
70 struct RefUpdateDeleteTabContext;
71 struct RefUpdateMoveTabContext;
72 struct NoteEntry;
73 class DocumentStreamAccess;
74 class CellValues;
75 class TableValues;
76 class RowHeightContext;
77 class CompileFormulaContext;
78 struct SetFormulaDirtyContext;
79 class ColumnIterator;
80 
81 }
82 
83 class SfxItemSet;
84 class SfxStyleSheetBase;
85 class SvxBoxInfoItem;
86 class SvxBoxItem;
87 class SvxSearchItem;
88 
89 class ScAutoFormatData;
90 class ScEditDataArray;
91 class ScFormulaCell;
92 class ScOutlineTable;
93 class ScPrintSaverTab;
94 class ScProgress;
95 class ScRangeList;
96 class ScSheetEvents;
97 class ScSortInfoArray;
100 class ScStyleSheet;
101 class ScTableProtection;
102 class ScUserListData;
103 struct RowInfo;
104 class ScFunctionData;
105 class CollatorWrapper;
109 struct ScSetStringParam;
110 struct ScColWidthParam;
111 class ScRangeName;
112 class ScDBData;
113 class ScHint;
114 class ScPostIt;
115 struct ScInterpreterContext;
116 
117 
118 class ScColumnsRange final
119 {
120  public:
121  class Iterator final
122  {
123  std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator maColIter;
124  public:
125  typedef std::input_iterator_tag iterator_category;
126  typedef SCCOL value_type;
128  typedef const SCCOL* pointer;
129  typedef SCCOL reference;
130 
131  explicit Iterator(const std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator& colIter) : maColIter(colIter) {}
132 
133  Iterator& operator++() { ++maColIter; return *this;}
134  Iterator& operator--() { --maColIter; return *this;}
135 
136  bool operator==(const Iterator & rOther) const {return maColIter == rOther.maColIter;}
137  bool operator!=(const Iterator & rOther) const {return !(*this == rOther);}
138  SCCOL operator*() const {return (*maColIter)->GetCol();}
139  };
140 
141  ScColumnsRange(const Iterator & rBegin, const Iterator & rEnd) : maBegin(rBegin), maEnd(rEnd) {}
142  const Iterator & begin() { return maBegin; }
143  const Iterator & end() { return maEnd; }
144  std::reverse_iterator<Iterator> rbegin() { return std::reverse_iterator<Iterator>(maEnd); }
145  std::reverse_iterator<Iterator> rend() { return std::reverse_iterator<Iterator>(maBegin); }
146 private:
149 };
150 
151 class ScTable
152 {
153 private:
154  typedef ::std::vector< ScRange > ScRangeVec;
155 
157 
158  OUString aName;
159  OUString aCodeName;
160  OUString aComment;
161 
162  OUString aLinkDoc;
163  OUString aLinkFlt;
164  OUString aLinkOpt;
165  OUString aLinkTab;
168 
169  // page style template
170  OUString aPageStyle;
171  Size aPageSizeTwips; // size of the print-page
172  SCCOL nRepeatStartX; // repeating rows/columns
173  SCCOL nRepeatEndX; // REPEAT_NONE, if not used
176 
177  std::unique_ptr<ScTableProtection> pTabProtection;
178 
179  std::unique_ptr<ScCompressedArray<SCCOL, sal_uInt16>> mpColWidth;
180  std::unique_ptr<ScFlatUInt16RowSegments> mpRowHeights;
181 
182  std::unique_ptr<ScBitMaskCompressedArray<SCCOL, CRFlags>> mpColFlags;
183  std::unique_ptr<ScBitMaskCompressedArray< SCROW, CRFlags>> pRowFlags;
184  std::unique_ptr<ScFlatBoolColSegments> mpHiddenCols;
185  std::unique_ptr<ScFlatBoolRowSegments> mpHiddenRows;
186  std::unique_ptr<ScFlatBoolColSegments> mpFilteredCols;
187  std::unique_ptr<ScFlatBoolRowSegments> mpFilteredRows;
188 
189  ::std::set<SCROW> maRowPageBreaks;
190  ::std::set<SCROW> maRowManualBreaks;
191  ::std::set<SCCOL> maColPageBreaks;
192  ::std::set<SCCOL> maColManualBreaks;
193 
194  std::unique_ptr<ScOutlineTable> pOutlineTable;
195 
196  std::unique_ptr<ScSheetEvents> pSheetEvents;
197 
200 
203  std::unique_ptr<utl::TextSearch> pSearchText;
204 
205  mutable OUString aUpperName; // #i62977# filled only on demand, reset in SetName
206 
207  // sort parameter to minimize stack size of quicksort
210 
211  ScRangeVec aPrintRanges;
212 
213  std::unique_ptr<ScRange> pRepeatColRange;
214  std::unique_ptr<ScRange> pRepeatRowRange;
215 
216  sal_uInt16 nLockCount;
217 
218  std::unique_ptr<ScRangeList> pScenarioRanges;
222  std::unique_ptr<ScDBData> pDBDataNoName;
223  mutable std::unique_ptr<ScRangeName> mpRangeName;
224 
225  std::unique_ptr<ScConditionalFormatList> mpCondFormatList;
226 
228 
229  bool bScenario:1;
230  bool bLayoutRTL:1;
231  bool bLoadingRTL:1;
233  mutable bool bTableAreaValid:1;
234  bool bVisible:1;
235  bool bStreamValid:1;
243 
244  // Default attributes for the unallocated columns.
246 
247 friend class ScDocument; // for FillInfo
248 friend class ScColumn;
249 friend class ScValueIterator;
253 friend class ScCellIterator;
254 friend class ScQueryCellIterator;
258 friend class ScDocAttrIterator;
259 friend class ScAttrRectIterator;
261 friend class ScDocumentImport;
263 friend class sc::ColumnSpanSet;
265 friend class sc::EditTextIterator;
267 
268 public:
269  ScTable( ScDocument* pDoc, SCTAB nNewTab, const OUString& rNewName,
270  bool bColInfo = true, bool bRowInfo = true );
271  ~ScTable() COVERITY_NOEXCEPT_FALSE;
272  ScTable(const ScTable&) = delete;
273  ScTable& operator=(const ScTable&) = delete;
274 
275  ScDocument& GetDoc() { return *pDocument;}
276  const ScDocument& GetDoc() const { return *pDocument;}
277  SCTAB GetTab() const { return nTab; }
278 
279  ScOutlineTable* GetOutlineTable() { return pOutlineTable.get(); }
280 
281  ScColumn& CreateColumnIfNotExists( const SCCOL nScCol ) const
282  {
283  if ( nScCol >= aCol.size() )
285  return aCol[nScCol];
286  }
287  // out-of-line the cold part of the function
288  void CreateColumnIfNotExistsImpl( const SCCOL nScCol ) const;
289  sal_uLong GetCellCount() const;
290  sal_uLong GetWeightedCount() const;
291  sal_uLong GetWeightedCount(SCROW nStartRow, SCROW nEndRow) const;
292  sal_uLong GetCodeCount() const; // RPN code in formula
293 
294  sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const;
295 
296  bool SetOutlineTable( const ScOutlineTable* pNewOutline );
297  void StartOutlineTable();
298 
299  void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
300 
301  bool TestRemoveSubTotals( const ScSubTotalParam& rParam );
302  void RemoveSubTotals( ScSubTotalParam& rParam );
303  bool DoSubTotals( ScSubTotalParam& rParam );
304 
305  const ScSheetEvents* GetSheetEvents() const { return pSheetEvents.get(); }
306  void SetSheetEvents( std::unique_ptr<ScSheetEvents> pNew );
307 
308  bool IsVisible() const { return bVisible; }
309  void SetVisible( bool bVis );
310 
311  bool IsStreamValid() const { return bStreamValid; }
312  void SetStreamValid( bool bSet, bool bIgnoreLock = false );
313 
314  [[nodiscard]] bool IsColValid( const SCCOL nScCol ) const
315  {
316  return nScCol >= static_cast< SCCOL >( 0 ) && nScCol < aCol.size();
317  }
318  [[nodiscard]] bool IsColRowValid( const SCCOL nScCol, const SCROW nScRow ) const
319  {
320  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow );
321  }
322  [[nodiscard]] bool IsColRowTabValid( const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab ) const
323  {
324  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow ) && ValidTab( nScTab );
325  }
326  [[nodiscard]] bool ValidCol(SCCOL nCol) const { return GetDoc().ValidCol(nCol); }
327  [[nodiscard]] bool ValidRow(SCROW nRow) const { return GetDoc().ValidRow(nRow); }
328  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const { return GetDoc().ValidColRow(nCol, nRow); }
329 
330  bool IsPendingRowHeights() const { return bPendingRowHeights; }
331  void SetPendingRowHeights( bool bSet );
332 
333  bool GetCalcNotification() const { return bCalcNotification; }
334  void SetCalcNotification( bool bSet );
335 
336  bool IsLayoutRTL() const { return bLayoutRTL; }
337  bool IsLoadingRTL() const { return bLoadingRTL; }
338  void SetLayoutRTL( bool bSet );
339  void SetLoadingRTL( bool bSet );
340 
341  bool IsScenario() const { return bScenario; }
342  void SetScenario( bool bFlag );
343  void GetScenarioComment( OUString& rComment) const { rComment = aComment; }
344  void SetScenarioComment( const OUString& rComment ) { aComment = rComment; }
345  const Color& GetScenarioColor() const { return aScenarioColor; }
346  void SetScenarioColor(const Color& rNew) { aScenarioColor = rNew; }
347  const Color& GetTabBgColor() const { return aTabBgColor; }
348  void SetTabBgColor(const Color& rColor);
350  void SetScenarioFlags(ScScenarioFlags nNew) { nScenarioFlags = nNew; }
351  void SetActiveScenario(bool bSet) { bActiveScenario = bSet; }
352  bool IsActiveScenario() const { return bActiveScenario; }
353 
354  ScLinkMode GetLinkMode() const { return nLinkMode; }
355  bool IsLinked() const { return nLinkMode != ScLinkMode::NONE; }
356  const OUString& GetLinkDoc() const { return aLinkDoc; }
357  const OUString& GetLinkFlt() const { return aLinkFlt; }
358  const OUString& GetLinkOpt() const { return aLinkOpt; }
359  const OUString& GetLinkTab() const { return aLinkTab; }
361 
362  void SetLink( ScLinkMode nMode, const OUString& rDoc, const OUString& rFlt,
363  const OUString& rOpt, const OUString& rTab, sal_uLong nRefreshDelay );
364 
365  sal_Int64 GetHashCode () const;
366 
367  const OUString& GetName() const { return aName; }
368  void SetName( const OUString& rNewName );
369 
370  void SetAnonymousDBData(std::unique_ptr<ScDBData> pDBData);
371  ScDBData* GetAnonymousDBData() { return pDBDataNoName.get();}
372 
373  const OUString& GetCodeName() const { return aCodeName; }
374  void SetCodeName( const OUString& rNewName ) { aCodeName = rNewName; }
375 
376  const OUString& GetUpperName() const;
377 
378  const OUString& GetPageStyle() const { return aPageStyle; }
379  void SetPageStyle( const OUString& rName );
380  void PageStyleModified( const OUString& rNewName );
381 
382  bool IsProtected() const;
383  void SetProtection(const ScTableProtection* pProtect);
385  void GetUnprotectedCells( ScRangeList& rRangeList ) const;
386 
387  bool IsEditActionAllowed( sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd ) const;
388 
389  Size GetPageSize() const;
390  void SetPageSize( const Size& rSize );
391  void SetRepeatArea( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
392 
393  void LockTable();
394  void UnlockTable();
395 
396  bool IsBlockEditable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2,
397  SCROW nRow2, bool* pOnlyNotBecauseOfMatrix = nullptr,
398  bool bNoMatrixAtAll = false ) const;
399  bool IsSelectionEditable( const ScMarkData& rMark,
400  bool* pOnlyNotBecauseOfMatrix = nullptr ) const;
401 
402  bool HasBlockMatrixFragment( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
403  bool bNoMatrixAtAll = false ) const;
404  bool HasSelectionMatrixFragment( const ScMarkData& rMark ) const;
405 
406  bool IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes ) const;
407 
408  bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString& rString,
409  const ScSetStringParam * pParam = nullptr );
410 
411  bool SetEditText( SCCOL nCol, SCROW nRow, std::unique_ptr<EditTextObject> pEditText );
412  void SetEditText( SCCOL nCol, SCROW nRow, const EditTextObject& rEditText, const SfxItemPool* pEditPool );
413  SCROW GetFirstEditTextRow( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
414 
415  void SetEmptyCell( SCCOL nCol, SCROW nRow );
416  void SetFormula(
417  SCCOL nCol, SCROW nRow, const ScTokenArray& rArray, formula::FormulaGrammar::Grammar eGram );
418  void SetFormula(
419  SCCOL nCol, SCROW nRow, const OUString& rFormula, formula::FormulaGrammar::Grammar eGram );
420 
427  ScFormulaCell* SetFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
428 
429  bool SetFormulaCells( SCCOL nCol, SCROW nRow, std::vector<ScFormulaCell*>& rCells );
430 
431  bool HasFormulaCell( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 ) const;
432 
433  svl::SharedString GetSharedString( SCCOL nCol, SCROW nRow ) const;
434 
435  void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
436  void SetValues( const SCCOL nCol, const SCROW nRow, const std::vector<double>& rVals );
437  void SetError( SCCOL nCol, SCROW nRow, FormulaError nError);
438  SCSIZE GetPatternCount( SCCOL nCol ) const;
439  SCSIZE GetPatternCount( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
440  bool ReservePatternCount( SCCOL nCol, SCSIZE nReserve );
441 
442  void SetRawString( SCCOL nCol, SCROW nRow, const svl::SharedString& rStr );
443  void GetString( SCCOL nCol, SCROW nRow, OUString& rString,
444  const ScInterpreterContext* pContext = nullptr ) const;
445  double* GetValueCell( SCCOL nCol, SCROW nRow );
446  void GetInputString( SCCOL nCol, SCROW nRow, OUString& rString ) const;
447  double GetValue( SCCOL nCol, SCROW nRow ) const;
448  const EditTextObject* GetEditText( SCCOL nCol, SCROW nRow ) const;
449  void RemoveEditTextCharAttribs( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
450  void GetFormula( SCCOL nCol, SCROW nRow, OUString& rFormula ) const;
451  const ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow ) const;
452  ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow );
453 
454  CellType GetCellType( const ScAddress& rPos ) const
455  {
456  if (!GetDoc().ValidColRow(rPos.Col(),rPos.Row()))
457  return CELLTYPE_NONE;
458  if (rPos.Col() >= aCol.size())
459  return CELLTYPE_NONE;
460  return aCol[rPos.Col()].GetCellType( rPos.Row() );
461  }
462  CellType GetCellType( SCCOL nCol, SCROW nRow ) const;
463  ScRefCellValue GetCellValue( SCCOL nCol, SCROW nRow ) const;
464 
465  void GetFirstDataPos(SCCOL& rCol, SCROW& rRow) const;
466  void GetLastDataPos(SCCOL& rCol, SCROW& rRow) const;
467 
468  std::unique_ptr<ScPostIt> ReleaseNote( SCCOL nCol, SCROW nRow );
469 
470  size_t GetNoteCount( SCCOL nCol ) const;
471  SCROW GetNotePosition( SCCOL nCol, size_t nIndex ) const;
472  void CreateAllNoteCaptions();
473  void ForgetNoteCaptions( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData );
474 
475  void GetAllNoteEntries( std::vector<sc::NoteEntry>& rNotes ) const;
476  void GetNotesInRange( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes ) const;
477  CommentCaptionState GetAllNoteCaptionsState( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes );
478  bool ContainsNotesInRange( const ScRange& rRange ) const;
479 
480  bool TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize ) const;
481  void InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize );
482  void DeleteRow(
483  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
484  bool* pUndoOutline, std::vector<ScAddress>* pGroupPos );
485 
486  bool TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize ) const;
487  void InsertCol(
488  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
489  void DeleteCol(
490  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool* pUndoOutline );
491 
492  void DeleteArea(
493  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag,
494  bool bBroadcast = true, sc::ColumnSpanSet* pBroadcastSpans = nullptr );
495 
496  void CopyToClip( sc::CopyToClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pTable );
497  void CopyToClip( sc::CopyToClipContext& rCxt, const ScRangeList& rRanges, ScTable* pTable );
498 
500  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap& rMap,
501  ScTable* pDestTab );
502 
503  void CopyCellToDocument( SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable& rDestTab );
504 
505  bool InitColumnBlockPosition( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol );
506 
508  sc::CopyFromClipContext& rCxt, const ScTable& rClipTab, sc::ColumnSpanSet& rBroadcastSpans );
509 
510  void CopyOneCellFromClip(
511  sc::CopyFromClipContext& rCxt, const SCCOL nCol1, const SCROW nRow1,
512  const SCCOL nCol2, const SCROW nRow2,
513  const SCROW nSrcRow, const ScTable* pSrcTab );
514 
515  void CopyFromClip(
516  sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
517  SCCOL nDx, SCROW nDy, ScTable* pTable );
518 
521  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
522 
523  void SetDirtyFromClip(
524  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet& rBroadcastSpans );
525 
526  void CopyToTable(
527  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
528  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab,
529  const ScMarkData* pMarkData, bool bAsLink, bool bColRowFlags,
530  bool bGlobalNamesToLocal, bool bCopyCaptions );
531 
532  void CopyCaptionsToTable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pDestTab, bool bCloneCaption );
533 
534  void UndoToTable(
535  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
536  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab );
537 
538  void CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
539  SCCOL nDx, SCROW nDy, const ScTable* pTable);
540  void TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
541  ScTable* pTransClip, InsertDeleteFlags nFlags, bool bAsLink );
542 
543  // mark of this document
544  void MixMarked(
545  sc::MixDocContext& rCxt, const ScMarkData& rMark, ScPasteFunc nFunction,
546  bool bSkipEmpty, const ScTable* pSrcTab );
547 
548  void MixData(
549  sc::MixDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
550  ScPasteFunc nFunction, bool bSkipEmpty, const ScTable* pSrcTab );
551 
552  void CopyData( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
553  SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab );
554 
555  void CopyScenarioFrom( const ScTable* pSrcTab );
556  void CopyScenarioTo( const ScTable* pDestTab ) const;
557  bool TestCopyScenarioTo( const ScTable* pDestTab ) const;
558  void MarkScenarioIn(ScMarkData& rMark, ScScenarioFlags nNeededBits) const;
559  bool HasScenarioRange( const ScRange& rRange ) const;
561  const ScRangeList* GetScenarioRanges() const;
562 
563  void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const;
564 
565  void InvalidateTableArea();
566  void InvalidatePageBreaks();
567 
568  bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty
569  bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow ) const;
570  bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes ) const;
571  bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow,
572  SCCOL& rEndCol ) const;
573  bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol,
574  SCROW& rEndRow, bool bNotes ) const;
575 
576  bool GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const;
577 
578  void ExtendPrintArea( OutputDevice* pDev,
579  SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
580 
581  void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
582  bool bIncludeOld, bool bOnlyDown ) const;
583 
584  bool GetDataAreaSubrange( ScRange& rRange ) const;
585 
586  bool ShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, SCROW& rStartRow,
587  SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly,
588  bool bStickyTopRow, bool bStickyLeftCol, bool bConsiderCellNotes,
589  bool bConsiderCellDrawObjects ) const;
590 
591  SCROW GetLastDataRow( SCCOL nCol1, SCCOL nCol2, SCROW nLastRow,
592  bool bConsiderCellNotes = false, bool bConsiderCellDrawObjects = false ) const;
593 
594  SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
595  SCCOL nEndCol, SCROW nEndRow, ScDirection eDir ) const;
596 
597  void FindAreaPos( SCCOL& rCol, SCROW& rRow, ScMoveDirection eDirection ) const;
598  void GetNextPos( SCCOL& rCol, SCROW& rRow, SCCOL nMovX, SCROW nMovY,
599  bool bMarked, bool bUnprotected, const ScMarkData& rMark, SCCOL nTabStartCol ) const;
600 
601  bool SkipRow( const SCCOL rCol, SCROW& rRow, const SCROW nMovY, const ScMarkData& rMark,
602  const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected ) const;
603  void LimitChartArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
604 
605  bool HasData( SCCOL nCol, SCROW nRow ) const;
606  bool HasStringData( SCCOL nCol, SCROW nRow ) const;
607  bool HasValueData( SCCOL nCol, SCROW nRow ) const;
608  bool HasStringCells( SCCOL nStartCol, SCROW nStartRow,
609  SCCOL nEndCol, SCROW nEndRow ) const;
610 
611  sc::MultiDataCellState HasMultipleDataCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
612 
613  FormulaError GetErrCode( const ScAddress& rPos ) const
614  {
615  return IsColRowValid(rPos.Col(),rPos.Row()) ?
616  aCol[rPos.Col()].GetErrCode( rPos.Row() ) :
617  FormulaError::NONE;
618  }
619 
620  void ResetChanged( const ScRange& rRange );
621 
624  void SetDirty( const ScRange&, ScColumn::BroadcastMode );
625  void SetDirtyAfterLoad();
626  void SetDirtyVar();
627  void SetTableOpDirty( const ScRange& );
628  void CalcAll();
629  void CalcAfterLoad( sc::CompileFormulaContext& rCxt, bool bStartListening );
631  void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress );
632 
638  bool BroadcastBroadcasters( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint& rHint );
639 
641 
642  void UpdateReference(
643  sc::RefUpdateContext& rCxt, ScDocument* pUndoDoc = nullptr,
644  bool bIncludeDraw = true, bool bUpdateNoteCaptionPos = true );
645 
646  void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
647  SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
648  SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos = true );
649 
650  void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
651  ScDocument* pUndoDoc );
652 
653  void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
654 
657  void UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt, SCTAB nTabNo, ScProgress* pProgress );
658  void UpdateCompile( bool bForceIfNameInUse = false );
659  void SetTabNo(SCTAB nNewTab);
660  void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
661  sc::UpdatedRangeNames& rIndexes) const;
662  void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
663  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd,
664  double nStepValue, double nMaxValue, ScProgress* pProgress);
665  OUString GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
666 
667  void UpdateSelectionFunction( ScFunctionData& rData, const ScMarkData& rMark );
668 
669  void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
670  sal_uInt16 nFormatNo );
671  void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData& rData);
672  bool SearchAndReplace(
673  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark,
674  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
675 
676  void FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2 );
677 
678  bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask ) const;
679  bool HasAttribSelection( const ScMarkData& rMark, HasAttrFlags nMask ) const;
680  bool IsMerged( SCCOL nCol, SCROW nRow ) const;
681  bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
682  SCCOL& rEndCol, SCROW& rEndRow,
683  bool bRefresh );
684  void SetMergedCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
685 
686  const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich ) const;
687  template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, TypedWhichId<T> nWhich ) const
688  {
689  return static_cast<const T*>(GetAttr(nCol, nRow, sal_uInt16(nWhich)));
690  }
691  const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow ) const;
692  const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
693 
694  sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& rPos ) const;
695  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow ) const;
696  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
697 
698  void SetNumberFormat( SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat );
699 
701  const ScMarkData& rMark, bool bDeep ) const;
702  void MergePatternArea( ScMergePatternState& rState, SCCOL nCol1, SCROW nRow1,
703  SCCOL nCol2, SCROW nRow2, bool bDeep ) const;
704  void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner,
705  ScLineFlags& rFlags,
706  SCCOL nStartCol, SCROW nStartRow,
707  SCCOL nEndCol, SCROW nEndRow ) const;
708  void ApplyBlockFrame(const SvxBoxItem& rLineOuter,
709  const SvxBoxInfoItem* pLineInner,
710  SCCOL nStartCol, SCROW nStartRow,
711  SCCOL nEndCol, SCROW nEndRow );
712 
713  void ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
714  void ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
715  void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
716  const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = nullptr,
717  bool* const pIsChanged = nullptr );
718 
719  void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr );
720  const ScPatternAttr* SetPattern( SCCOL nCol, SCROW nRow, std::unique_ptr<ScPatternAttr> );
721  void SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
723  const ScPatternAttr& rPattern, SvNumFormatType nNewType );
724  void AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
725  void RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
726  void SetPatternAreaCondFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
727  const ScPatternAttr& rAttr, const ScCondFormatIndexes& rCondFormatIndexes );
728 
729  void ApplyStyle( SCCOL nCol, SCROW nRow, const ScStyleSheet* rStyle );
730  void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet& rStyle );
731  void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark);
732  void ApplySelectionLineStyle( const ScMarkData& rMark,
733  const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
734 
735  const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow ) const;
736  const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, bool& rFound ) const;
737  const ScStyleSheet* GetAreaStyle( bool& rFound, SCCOL nCol1, SCROW nRow1,
738  SCCOL nCol2, SCROW nRow2 ) const;
739 
740  void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, bool bRemoved,
741  OutputDevice* pDev,
742  double nPPTX, double nPPTY,
743  const Fraction& rZoomX, const Fraction& rZoomY );
744 
745  bool IsStyleSheetUsed( const ScStyleSheet& rStyle ) const;
746 
747  bool ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
748  bool RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
749 
750  void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = nullptr, bool* const pIsChanged = nullptr );
751  void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool bBroadcast = true );
752 
753  void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
754  void ChangeSelectionIndent( bool bIncrement, const ScMarkData& rMark );
755 
756  const ScRange* GetRepeatColRange() const { return pRepeatColRange.get(); }
757  const ScRange* GetRepeatRowRange() const { return pRepeatRowRange.get(); }
758  void SetRepeatColRange( std::unique_ptr<ScRange> pNew );
759  void SetRepeatRowRange( std::unique_ptr<ScRange> pNew );
760 
761  sal_uInt16 GetPrintRangeCount() const { return static_cast< sal_uInt16 >( aPrintRanges.size() ); }
762  const ScRange* GetPrintRange(sal_uInt16 nPos) const;
764  bool IsPrintEntireSheet() const { return bPrintEntireSheet; }
765 
767  void ClearPrintRanges();
769  void AddPrintRange( const ScRange& rNew );
771  void SetPrintEntireSheet();
772 
773  void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const;
774  void RestorePrintRanges( const ScPrintSaverTab& rSaveTab );
775 
776  sal_uInt16 GetOptimalColWidth( SCCOL nCol, OutputDevice* pDev,
777  double nPPTX, double nPPTY,
778  const Fraction& rZoomX, const Fraction& rZoomY,
779  bool bFormula, const ScMarkData* pMarkData,
780  const ScColWidthParam* pParam );
781  bool SetOptimalHeight(
782  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow,
783  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
784 
786  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow,
787  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
788 
789  long GetNeededSize( SCCOL nCol, SCROW nRow,
790  OutputDevice* pDev,
791  double nPPTX, double nPPTY,
792  const Fraction& rZoomX, const Fraction& rZoomY,
793  bool bWidth, bool bTotalSize,
794  bool bInPrintTwips = false);
795  void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
796  void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
797  void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
798  bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
799  double nPPTY );
800 
808  void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight );
809 
810  // nPPT to test for modification
811  void SetManualHeight( SCROW nStartRow, SCROW nEndRow, bool bManual );
812 
813  sal_uInt16 GetColWidth( SCCOL nCol, bool bHiddenAsZero = true ) const;
814  sal_uLong GetColWidth( SCCOL nStartCol, SCCOL nEndCol ) const;
815  sal_uInt16 GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
816  sal_uLong GetRowHeight( SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true ) const;
817  sal_uLong GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong* pnMaxHeight = nullptr ) const;
818  sal_uLong GetColOffset( SCCOL nCol, bool bHiddenAsZero = true ) const;
819  sal_uLong GetRowOffset( SCROW nRow, bool bHiddenAsZero = true ) const;
820 
829  SCROW GetRowForHeight(sal_uLong nHeight) const;
830 
831  sal_uInt16 GetOriginalWidth( SCCOL nCol ) const;
832  sal_uInt16 GetOriginalHeight( SCROW nRow ) const;
833 
834  sal_uInt16 GetCommonWidth( SCCOL nEndCol ) const;
835 
836  SCROW GetHiddenRowCount( SCROW nRow ) const;
837 
838  void ShowCol(SCCOL nCol, bool bShow);
839  void ShowRow(SCROW nRow, bool bShow);
840  void DBShowRow(SCROW nRow, bool bShow);
841 
842  void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
843  void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
844 
845  void SetRowFlags( SCROW nRow, CRFlags nNewFlags );
846  void SetRowFlags( SCROW nStartRow, SCROW nEndRow, CRFlags nNewFlags );
847 
849  SCROW GetLastFlaggedRow() const;
850 
852  SCCOL GetLastChangedCol() const;
854  SCROW GetLastChangedRow() const;
855 
856  bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const;
857  bool IsDataFiltered(const ScRange& rRange) const;
858  CRFlags GetColFlags( SCCOL nCol ) const;
859  CRFlags GetRowFlags( SCROW nRow ) const;
860 
862  { return pRowFlags.get(); }
863 
864  bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, bool bShow );
865  bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, bool bShow );
866 
867  void UpdatePageBreaks( const ScRange* pUserArea );
868  void RemoveManualBreaks();
869  bool HasManualBreaks() const;
870  void SetRowManualBreaks( const ::std::set<SCROW>& rBreaks );
871  void SetColManualBreaks( const ::std::set<SCCOL>& rBreaks );
872 
873  void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
874  void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
875  bool HasRowPageBreak(SCROW nRow) const;
876  bool HasColPageBreak(SCCOL nCol) const;
877  bool HasRowManualBreak(SCROW nRow) const;
878  bool HasColManualBreak(SCCOL nCol) const;
879 
890  SCROW GetNextManualBreak(SCROW nRow) const;
891 
892  void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow);
893  void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual);
894  void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual);
895  void SetRowBreak(SCROW nRow, bool bPage, bool bManual);
896  void SetColBreak(SCCOL nCol, bool bPage, bool bManual);
897  css::uno::Sequence<
898  css::sheet::TablePageBreakData> GetRowBreakData() const;
899 
900  bool RowHidden(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
901  bool RowHiddenLeaf(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
902  bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
903  bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
904  bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
905  void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
906  void CopyColHidden(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
907  void CopyRowHidden(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
908  void CopyRowHeight(const ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
909  SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
910  SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
911  SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
912  sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true) const;
913 
914  SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
915 
916  bool RowFiltered(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
917  bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
918  bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
919  void CopyColFiltered(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
920  void CopyRowFiltered(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
921  void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
922  void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
923  SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
924  SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
925  SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
926 
927  bool IsManualRowHeight(SCROW nRow) const;
928 
929  bool HasUniformRowHeight( SCROW nRow1, SCROW nRow2 ) const;
930 
931  void SyncColRowFlags();
932 
933  void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
934  void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
935 
937  void Sort(
938  const ScSortParam& rSortParam, bool bKeepQuery, bool bUpdateRefs,
939  ScProgress* pProgress, sc::ReorderParam* pUndo );
940 
941  void Reorder( const sc::ReorderParam& rParam );
942 
943  bool ValidQuery(
944  SCROW nRow, const ScQueryParam& rQueryParam, const ScRefCellValue* pCell = nullptr,
945  bool* pbTestEqualCondition = nullptr, const ScInterpreterContext* pContext = nullptr,
946  sc::TableColumnBlockPositionSet* pBlockPos = nullptr );
947  void TopTenQuery( ScQueryParam& );
948  SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub);
949  bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
950 
951  void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries& rFilterEntries );
952  void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, ScFilterEntries& rFilterEntries );
953  [[nodiscard]]
954  bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set<ScTypedStrData>& rStrings, bool bLimit);
955 
956  bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
957  bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
958 
959  sal_Int32 GetMaxStringLen( SCCOL nCol,
960  SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const;
961  sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision,
962  SCCOL nCol,
963  SCROW nRowStart, SCROW nRowEnd ) const;
964 
965  bool IsSortCollatorGlobal() const;
966  void InitSortCollator( const ScSortParam& rPar );
967  void DestroySortCollator();
968  void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true );
969 
970  void SetRangeName(std::unique_ptr<ScRangeName> pNew);
971  ScRangeName* GetRangeName() const;
972 
974  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
975 
977  sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt );
978 
980  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
981 
985 
986  void DeleteConditionalFormat(sal_uLong nOldIndex);
987 
988  sal_uLong AddCondFormat( std::unique_ptr<ScConditionalFormat> pNew );
989 
990  SvtScriptType GetScriptType( SCCOL nCol, SCROW nRow ) const;
991  void SetScriptType( SCCOL nCol, SCROW nRow, SvtScriptType nType );
992  void UpdateScriptTypes( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 );
993 
994  SvtScriptType GetRangeScriptType( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
995 
996  size_t GetFormulaHash( SCCOL nCol, SCROW nRow ) const;
997 
1000  formula::FormulaTokenRef ResolveStaticReference( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1002  bool HandleRefArrayForParallelism( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef& mxGroup );
1003 #ifdef DBG_UTIL
1004  void AssertNoInterpretNeeded( SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1005 #endif
1006 
1007  void SplitFormulaGroups( SCCOL nCol, std::vector<SCROW>& rRows );
1008  void UnshareFormulaCells( SCCOL nCol, std::vector<SCROW>& rRows );
1009  void RegroupFormulaCells( SCCOL nCol );
1010 
1011  ScRefCellValue GetRefCellValue( SCCOL nCol, SCROW nRow );
1013 
1014  SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow );
1015  const SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow ) const;
1016  void DeleteBroadcasters( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1017 
1018  void FillMatrix( ScMatrix& rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool* pPool ) const;
1019 
1020  void InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1021 
1022  void SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen );
1023 
1024  void CalculateInColumnInThread( ScInterpreterContext& rContext, SCCOL nColStart, SCCOL nColEnd,
1025  SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal);
1026  void HandleStuffAfterParallelCalculation( SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter* pInterpreter);
1027 
1036  void StartListeners( sc::StartListeningContext& rCxt, bool bAll );
1037 
1042  void SetDirtyIfPostponed();
1043 
1048  void BroadcastRecalcOnRefMove();
1049 
1050  void TransferCellValuesTo( const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues& rDest );
1051  void CopyCellValuesFrom( const SCCOL nCol, SCROW nRow, const sc::CellValues& rSrc );
1052 
1053  std::unique_ptr<sc::ColumnIterator> GetColumnIterator( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
1054 
1055  bool EnsureFormulaCellResults( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning = false );
1056 
1057  void ConvertFormulaToValue(
1059  const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2,
1060  sc::TableValues* pUndo );
1061 
1062  void SwapNonEmpty(
1063  sc::TableValues& rValues, sc::StartListeningContext& rStartCxt, sc::EndListeningContext& rEndCxt );
1064 
1065  void finalizeOutlineImport();
1066 
1067  void StoreToCache(SvStream& rStrm) const;
1068 
1069  void RestoreFromCache(SvStream& rStrm);
1070 
1071 #if DUMP_COLUMN_STORAGE
1072  void DumpColumnStorage( SCCOL nCol ) const;
1073 #endif
1074 
1081  static void UpdateSearchItemAddressForReplace( const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow );
1082 
1083  ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const;
1084  SCCOL ClampToAllocatedColumns(SCCOL nCol) const { return std::min(nCol, static_cast<SCCOL>(aCol.size() - 1)); }
1085  SCCOL GetAllocatedColumnsCount() const { return aCol.size(); }
1086 
1094  OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType);
1095 
1096 private:
1097 
1098  void FillFormulaVertical(
1099  const ScFormulaCell& rSrcCell,
1100  SCCOLROW& rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1101  ScProgress* pProgress, sal_uLong& rProgress );
1102 
1103  void FillSeriesSimple(
1104  const ScCellValue& rSrcCell, SCCOLROW& rInner, SCCOLROW nIMin, SCCOLROW nIMax,
1105  const SCCOLROW& rCol, const SCCOLROW& rRow, bool bVertical, ScProgress* pProgress, sal_uLong& rProgress );
1106 
1107  void FillAutoSimple(
1108  SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd,
1109  SCCOLROW& rInner, const SCCOLROW& rCol, const SCCOLROW& rRow,
1110  sal_uLong nActFormCnt, sal_uLong nMaxFormCnt,
1111  bool bHasFiltered, bool bVertical, bool bPositive,
1112  ScProgress* pProgress, sal_uLong& rProgress );
1113 
1114  void FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1115  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd,
1116  FillDateCmd eFillDateCmd,
1117  double nStepValue, double nMaxValue, sal_uInt16 nMinDigits,
1118  bool bAttribs, ScProgress* pProgress );
1119  void FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1120  FillCmd& rCmd, FillDateCmd& rDateCmd,
1121  double& rInc, sal_uInt16& rMinDigits,
1122  ScUserListData*& rListData, sal_uInt16& rListIndex);
1123  void FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1124  sal_uLong nFillCount, FillDir eFillDir, ScProgress* pProgress );
1125 
1126  bool ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
1127  bool bMarked, bool bUnprotected ) const;
1128 
1129  void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1130  const ScPatternAttr& rAttr, sal_uInt16 nFormatNo);
1131  void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData);
1132  void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData);
1133  bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition& rBlockPos, SCROW nRow,
1134  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1135  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1136  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1137  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1138  SCCOL nLastCol, SCROW nLastRow,
1139  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1140  bool SearchAll(const SvxSearchItem& rSearchItem, const ScMarkData& rMark,
1141  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1142  bool Replace(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1143  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1144  bool ReplaceAll(
1145  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1146  OUString& rUndoStr, ScDocument* pUndoDoc);
1147 
1148  bool SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1149  const ScMarkData& rMark);
1150  bool ReplaceStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1151  const ScMarkData& rMark, bool bIsUndo);
1152  bool SearchAllStyle(
1153  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges);
1154  bool ReplaceAllStyle(
1155  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1156  ScDocument* pUndoDoc);
1158  const SvxSearchItem& rSearchItem,
1159  SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1160  OUString& rUndoStr, ScDocument* pUndoDoc);
1161  bool SearchRangeForEmptyCell(const ScRange& rRange,
1162  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1163  OUString& rUndoStr);
1165  const ScRange& rRange, const SvxSearchItem& rSearchItem,
1166  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1167 
1168  // use the global sort parameter:
1169  bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const;
1170  static void DecoladeRow( ScSortInfoArray*, SCROW nRow1, SCROW nRow2 );
1171  short CompareCell(
1172  sal_uInt16 nSort,
1173  ScRefCellValue& rCell1, SCCOL nCell1Col, SCROW nCell1Row,
1174  ScRefCellValue& rCell2, SCCOL nCell2Col, SCROW nCell2Row ) const;
1175  short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1176  short Compare( ScSortInfoArray*, SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1177  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray( const sc::ReorderParam& rParam );
1178  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray(
1179  const ScSortParam& rSortParam, SCCOLROW nInd1, SCCOLROW nInd2,
1180  bool bKeepQuery, bool bUpdateRefs );
1181  void QuickSort( ScSortInfoArray*, SCCOLROW nLo, SCCOLROW nHi);
1182  void SortReorderByColumn( const ScSortInfoArray* pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress* pProgress );
1183 
1184  void SortReorderByRow( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1185  void SortReorderByRowRefUpdate( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1186 
1187  bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1188  bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1189  void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString& rStr);
1190 
1191  bool RefVisible(const ScFormulaCell* pCell);
1192 
1193  bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const;
1194 
1195  void IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillDateCmd eCmd);
1196  void FillFormula(
1197  const ScFormulaCell* pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast );
1198  void UpdateInsertTabAbs(SCTAB nNewPos);
1199  bool GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, bool bInSel,
1200  const ScMarkData& rMark) const;
1201  bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const;
1202  void TestTabRefAbs(SCTAB nTable) const;
1205 
1206  void StartListening( const ScAddress& rAddress, SvtListener* pListener );
1207  void EndListening( const ScAddress& rAddress, SvtListener* pListener );
1208  void StartListening( sc::StartListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1209  void EndListening( sc::EndListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1210 
1211  void AttachFormulaCells( sc::StartListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1212  void DetachFormulaCells( sc::EndListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1213 
1214  void SetLoadingMedium(bool bLoading);
1215 
1216  SCSIZE FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
1217  SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
1218  const ScPatternAttr* pPattern, const SfxItemSet* pCondSet );
1219 
1220  // idle calculation of OutputDevice text width for cell
1221  // also invalidates script type, broadcasts for "calc as shown"
1222  void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo,
1223  bool bNumFormatChanged, bool bBroadcast );
1224 
1225  void SkipFilteredRows(SCROW& rRow, SCROW& rLastNonFilteredRow, bool bForward);
1226 
1231  void MaybeAddExtraColumn(SCCOL& rCol, SCROW nRow, OutputDevice* pDev, double nPPTX, double nPPTY);
1232 
1233  void CopyPrintRange(const ScTable& rTable);
1234 
1235  SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const;
1236 
1237  SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const;
1238 
1239  // Clipboard transpose for notes
1240  void TransposeColNotes(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2);
1241 
1242  ScColumn* FetchColumn( SCCOL nCol );
1243  const ScColumn* FetchColumn( SCCOL nCol ) const;
1244 
1246  sc::EndListeningContext& rCxt, SCCOL nCol, SCROW nRow, std::vector<ScAddress>* pGroupPos );
1247 
1249  sc::EndListeningContext& rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
1250  std::vector<ScAddress>* pGroupPos );
1251 
1252  void EndListeningGroup( sc::EndListeningContext& rCxt, const SCCOL nCol, SCROW nRow );
1253  void SetNeedsListeningGroup( SCCOL nCol, SCROW nRow );
1254 
1256  OString dumpColumnRowSizes(bool bColumns);
1258  OString dumpHiddenFiltered(bool bColumns, bool bHidden);
1260  OString dumpColumnRowGroups(bool bColumns) const;
1261 
1262  SCCOL GetLOKFreezeCol() const;
1263  SCROW GetLOKFreezeRow() const;
1264  bool SetLOKFreezeCol(SCCOL nFreezeCol);
1265  bool SetLOKFreezeRow(SCROW nFreezeRow);
1266 
1271  {
1272  static constexpr SCROW ROW_NOT_FOUND = -1;
1273 
1274  public:
1275  explicit VisibleDataCellIterator(const ScDocument* pDoc, ScFlatBoolRowSegments& rRowSegs, ScColumn& rColumn);
1277 
1285  ScRefCellValue reset(SCROW nRow);
1286 
1292  ScRefCellValue next();
1293 
1300  SCROW getRow() const { return mnCurRow;}
1301 
1302  private:
1309  };
1310 
1311 };
1312 
1313 #endif
1314 
1315 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OUString GetAutoFillPreview(const ScRange &rSource, SCCOL nEndX, SCROW nEndY)
Definition: table4.cxx:831
formula::FormulaTokenRef ResolveStaticReference(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2397
void FindMaxRotCol(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2)
Definition: table2.cxx:2224
Matrix data type that can store values of mixed types.
Definition: scmatrix.hxx:113
void SetFormula(SCCOL nCol, SCROW nRow, const ScTokenArray &rArray, formula::FormulaGrammar::Grammar eGram)
Definition: table2.cxx:1544
void SetMergedCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:2120
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
Definition: table2.cxx:1987
bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set< ScTypedStrData > &rStrings, bool bLimit)
Definition: table3.cxx:3487
void CopyUpdated(const ScTable *pPosTab, ScTable *pDestTab) const
Definition: table2.cxx:1376
svl::SharedString GetSharedString(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1581
constexpr double nPPTY
bool TestCopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1465
SCTAB nTab
Definition: table.hxx:201
const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2050
void UpdatePageBreaks(const ScRange *pUserArea)
Definition: table5.cxx:49
sal_Int64 GetHashCode() const
Definition: table1.cxx:340
bool bStreamValid
Definition: table.hxx:235
SCCOL GetLastChangedCol() const
Definition: table2.cxx:3604
Iterator(const std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn >>>::const_iterator &colIter)
Definition: table.hxx:131
bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3386
void Fill(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, ScProgress *pProgress)
Definition: table4.cxx:2039
void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries &rFilterEntries)
Definition: table3.cxx:3460
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
Definition: types.hxx:44
OUString aComment
Definition: table.hxx:160
bool ColFiltered(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:808
const Iterator maEnd
Definition: table.hxx:148
bool operator==(const Iterator &rOther) const
Definition: table.hxx:136
ScFormulaCell * SetFormulaCell(SCCOL nCol, SCROW nRow, ScFormulaCell *pCell)
Takes ownership of pCell.
Definition: table2.cxx:1562
void ApplyStyleArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet &rStyle)
Definition: table2.cxx:2733
bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask) const
Definition: table2.cxx:2070
bool SearchCell(const SvxSearchItem &rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:50
void SortReorderByRow(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1016
void TransferCellValuesTo(const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues &rDest)
Definition: table7.cxx:187
void SetActiveScenario(bool bSet)
Definition: table.hxx:351
bool ReplaceStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, bool bIsUndo)
Definition: table6.cxx:706
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:43
void UnlockTable()
Definition: table2.cxx:2586
sal_uLong GetWeightedCount() const
Definition: table3.cxx:3502
bool HasBlockMatrixFragment(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2301
void CompileAll(sc::CompileFormulaContext &rCxt)
Definition: table2.cxx:1952
Store parameters used in the ScDocument::SetString() method.
Definition: stringutil.hxx:35
~ScTable() COVERITY_NOEXCEPT_FALSE
Definition: table1.cxx:311
bool HasRowManualBreak(SCROW nRow) const
Definition: table5.cxx:369
void SetLink(ScLinkMode nMode, const OUString &rDoc, const OUString &rFlt, const OUString &rOpt, const OUString &rTab, sal_uLong nRefreshDelay)
Definition: table1.cxx:406
void ForgetNoteCaptions(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData)
Definition: table2.cxx:1701
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
Definition: table2.cxx:1874
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2400
void SetRowFlags(SCROW nRow, CRFlags nNewFlags)
Definition: table2.cxx:3538
bool IsBlockEmpty(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes) const
Definition: table2.cxx:2135
void SetRowHeight(SCROW nRow, sal_uInt16 nNewHeight)
Definition: table2.cxx:2984
void DeleteConditionalFormat(sal_uLong nOldIndex)
Definition: table1.cxx:2562
void DestroySortCollator()
Definition: table3.cxx:633
std::unique_ptr< ScFlatUInt16RowSegments > mpRowHeights
Definition: table.hxx:180
bool ReplaceAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:580
HasAttrFlags
Definition: global.hxx:193
void SetPatternAreaCondFormat(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &rAttr, const ScCondFormatIndexes &rCondFormatIndexes)
Definition: table2.cxx:2709
void InvalidateTextWidth(const ScAddress *pAdrFrom, const ScAddress *pAdrTo, bool bNumFormatChanged, bool bBroadcast)
Definition: table5.cxx:1160
SCROW Row() const
Definition: address.hxx:262
Simple container to keep track of sheet - column pair.
Definition: columnset.hxx:23
void SetValues(const SCCOL nCol, const SCROW nRow, const std::vector< double > &rVals)
Definition: table7.cxx:179
const ScRange * GetPrintRange(sal_uInt16 nPos) const
Definition: table1.cxx:2218
SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const
Definition: table1.cxx:1194
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
Definition: table1.cxx:1840
bool bLoadingRTL
Definition: table.hxx:231
Size GetPageSize() const
Definition: table5.cxx:1060
FillDir
Definition: global.hxx:318
void SetName(const OUString &rNewName)
Definition: table1.cxx:345
void TestTabRefAbs(SCTAB nTable) const
Definition: table4.cxx:2387
SCCOL nTableAreaX
Definition: table.hxx:198
bool GetNextSpellingCell(SCCOL &rCol, SCROW &rRow, bool bInSel, const ScMarkData &rMark) const
Definition: table4.cxx:2354
void InitSortCollator(const ScSortParam &rPar)
Definition: table3.cxx:616
void UpdateScriptTypes(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2)
Definition: table7.cxx:244
bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const
Definition: table2.cxx:3517
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Definition: table2.cxx:2497
Provides methods to allow direct shifting of document content without broadcasting or shifting of bro...
SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:909
void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight)
Set specified row height to specified ranges.
Definition: table2.cxx:3094
void PageStyleModified(const OUString &rNewName)
Definition: table5.cxx:1154
void SortReorderByColumn(const ScSortInfoArray *pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress *pProgress)
Definition: table3.cxx:874
void SetScenario(bool bFlag)
Definition: table1.cxx:401
bool mbForceBreaks
Definition: table.hxx:242
void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:391
SCTAB GetTab() const
Definition: table.hxx:277
size_t GetNoteCount(SCCOL nCol) const
Definition: table2.cxx:1679
::std::set< SCROW > maRowPageBreaks
Definition: table.hxx:189
void ApplyPattern(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:2646
ScColumn * FetchColumn(SCCOL nCol)
Definition: table2.cxx:1087
const ScSheetEvents * GetSheetEvents() const
Definition: table.hxx:305
sheet protection state container
void InterpretDirtyCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table1.cxx:2503
void SetScenarioColor(const Color &rNew)
Definition: table.hxx:346
bool HasFormulaCell(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:292
const Iterator maBegin
Definition: table.hxx:147
bool IsPendingRowHeights() const
Definition: table.hxx:330
std::unique_ptr< ScPostIt > ReleaseNote(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1671
void SetScriptType(SCCOL nCol, SCROW nRow, SvtScriptType nType)
Definition: table1.cxx:2363
Think of this as a mini-ScColumn like storage that only stores cell values in a column.
Definition: cellvalues.hxx:42
ScScenarioFlags
Definition: global.hxx:236
void StartListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1080
sal_uInt16 GetPrintRangeCount() const
Definition: table.hxx:761
void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam &rParam, ScFilterEntries &rFilterEntries)
Definition: table3.cxx:3467
void SetPrintEntireSheet()
Marks the specified sheet to be printed completely.
Definition: table1.cxx:2209
void CopyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab)
Definition: table2.cxx:3826
void FillAutoSimple(SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd, SCCOLROW &rInner, const SCCOLROW &rCol, const SCCOLROW &rRow, sal_uLong nActFormCnt, sal_uLong nMaxFormCnt, bool bHasFiltered, bool bVertical, bool bPositive, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1364
SCCOL size() const
ScSortParam aSortParam
Definition: table.hxx:208
sal_uIntPtr sal_uLong
bool TestInsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize) const
Definition: table2.cxx:133
Context for reference update during shifting, moving or copying of cell ranges.
void CopyRowFiltered(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:856
SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2355
CellType GetCellType(const ScAddress &rPos) const
Definition: table.hxx:454
void FillSeries(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, sal_uInt16 nMinDigits, bool bAttribs, ScProgress *pProgress)
Definition: table4.cxx:1647
SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const
Definition: table1.cxx:1170
void SetCalcNotification(bool bSet)
Definition: table2.cxx:128
void SetPageSize(const Size &rSize)
Definition: table5.cxx:1026
void GetString(SCCOL nCol, SCROW nRow, OUString &rString, const ScInterpreterContext *pContext=nullptr) const
Definition: table2.cxx:1601
bool GetPrintAreaVer(SCCOL nStartCol, SCCOL nEndCol, SCROW &rEndRow, bool bNotes) const
Definition: table1.cxx:682
void DetachFormulaCells(sc::EndListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1131
std::unique_ptr< ScFlatBoolColSegments > mpFilteredCols
Definition: table.hxx:186
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
Definition: table2.cxx:2790
bool HasScenarioRange(const ScRange &rRange) const
Definition: table2.cxx:1423
bool IsVisible() const
Definition: table.hxx:308
ScLinkMode nLinkMode
Definition: table.hxx:167
CommentCaptionState GetAllNoteCaptionsState(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes)
Definition: table2.cxx:1727
sal_uInt16 nLockCount
Definition: table.hxx:216
ScRefCellValue reset(SCROW nRow)
Set the start row position.
Definition: table1.cxx:2255
SCROW getRow() const
Get the current row position.
Definition: table.hxx:1300
void SetFormulaResults(SCCOL nCol, SCROW nRow, const double *pResults, size_t nLen)
Definition: table1.cxx:2510
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Definition: table3.cxx:3542
OUString aLinkFlt
Definition: table.hxx:163
const SCCOL * pointer
Definition: table.hxx:128
Store position data for column array storage.
bool mbPageBreaksValid
Definition: table.hxx:241
Stores cell values for multiple tables.
Definition: cellvalues.hxx:87
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
Definition: table2.cxx:1975
sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:84
void GetFirstDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1796
SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const
Definition: table5.cxx:766
ScFormulaVectorState GetFormulaVectorState(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2389
void SetManualHeight(SCROW nStartRow, SCROW nEndRow, bool bManual)
Definition: table2.cxx:3105
SCSIZE Query(const ScQueryParam &rQueryParam, bool bKeepSub)
Definition: table3.cxx:3056
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden)
Definition: table5.cxx:616
const OUString & GetLinkDoc() const
Definition: table.hxx:356
This is very similar to ScCellValue, except that it references the original value instead of copying ...
Definition: cellvalue.hxx:104
void UpdateReference(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc=nullptr, bool bIncludeDraw=true, bool bUpdateNoteCaptionPos=true)
Definition: table1.cxx:1711
bool bVisible
Definition: table.hxx:234
void CopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1394
static void DecoladeRow(ScSortInfoArray *, SCROW nRow1, SCROW nRow2)
Definition: table3.cxx:1680
void SetCodeName(const OUString &rNewName)
Definition: table.hxx:374
void SetLoadingRTL(bool bSet)
Definition: table1.cxx:386
void UndoToTable(sc::CopyToDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScTable *pDestTab)
Definition: table2.cxx:1324
std::reverse_iterator< Iterator > rbegin()
Definition: table.hxx:144
ScDocument * pDocument
Definition: table.hxx:202
void DeleteRow(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize, bool *pUndoOutline, std::vector< ScAddress > *pGroupPos)
Definition: table2.cxx:194
sal_uInt16 GetOriginalHeight(SCROW nRow) const
Definition: table2.cxx:3348
Accessor class to ScDocument.
void RemoveEditTextCharAttribs(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:1640
void SkipFilteredRows(SCROW &rRow, SCROW &rLastNonFilteredRow, bool bForward)
Definition: table6.cxx:281
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2780
void MixData(sc::MixDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:775
void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered)
Definition: table5.cxx:878
bool HasData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1822
SCCOL operator*() const
Definition: table.hxx:138
void SetDirtyAfterLoad()
Definition: table2.cxx:1903
void RemoveSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1861
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:2618
void CompileHybridFormula(sc::StartListeningContext &rStartListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:237
void LimitChartArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:1148
void UpdateSelectionFunction(ScFunctionData &rData, const ScMarkData &rMark)
Definition: table3.cxx:3551
VisibleDataCellIterator(const ScDocument *pDoc, ScFlatBoolRowSegments &rRowSegs, ScColumn &rColumn)
Definition: table1.cxx:2242
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
Definition: table2.cxx:2764
std::unique_ptr< ScRangeName > mpRangeName
Definition: table.hxx:223
void RestoreFromCache(SvStream &rStrm)
Definition: table7.cxx:473
SCROW GetRowForHeight(sal_uLong nHeight) const
Get the last row such that the height of row 0 to the end row is as high as possible without exceedin...
Definition: table2.cxx:3970
std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn > > >::const_iterator maColIter
Definition: table.hxx:123
SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:699
void MaybeAddExtraColumn(SCCOL &rCol, SCROW nRow, OutputDevice *pDev, double nPPTX, double nPPTY)
In case the cell text goes beyond the column width, move the max column position to the right...
Definition: table1.cxx:2043
void SetRepeatColRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2170
void ApplyAttr(SCCOL nCol, SCROW nRow, const SfxPoolItem &rAttr)
Definition: table2.cxx:2924
bool HasRowHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3423
void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTransClip, InsertDeleteFlags nFlags, bool bAsLink)
Definition: table2.cxx:893
ScOutlineTable * GetOutlineTable()
Definition: table.hxx:279
ScRangeVec aPrintRanges
Definition: table.hxx:211
exports com.sun.star. sheet
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:230
void MarkScenarioIn(ScMarkData &rMark, ScScenarioFlags nNeededBits) const
Definition: table2.cxx:1412
Row-wise value iterator.
Definition: dociter.hxx:479
void FillFormula(const ScFormulaCell *pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast)
Definition: table4.cxx:472
bool SearchAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges)
Definition: table6.cxx:731
void FillPrintSaver(ScPrintSaverTab &rSaveTab) const
Definition: table1.cxx:2223
bool ValidRow(SCROW nRow) const
Definition: table.hxx:327
void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:403
void StartListeners(sc::StartListeningContext &rCxt, bool bAll)
Either start all formula cells as listeners unconditionally, or start those that are marked "needs li...
Definition: table2.cxx:1103
void SetStreamValid(bool bSet, bool bIgnoreLock=false)
Definition: table1.cxx:368
ScColumn & CreateColumnIfNotExists(const SCCOL nScCol) const
Definition: table.hxx:281
void SetRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:433
void AttachFormulaCells(sc::StartListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1123
Store arbitrary cell value of any kind.
Definition: cellvalue.hxx:36
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table7.cxx:342
void TransposeColNotes(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table2.cxx:1001
void CalculateInColumnInThread(ScInterpreterContext &rContext, SCCOL nColStart, SCCOL nColEnd, SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal)
Definition: table1.cxx:2518
void ResetChanged(const ScRange &rRange)
Definition: table2.cxx:1993
sal_uLong GetColOffset(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:4024
static constexpr SCROW ROW_NOT_FOUND
Definition: table.hxx:1272
Stores individual user-defined sort list.
Definition: userlist.hxx:33
void SetNumberFormat(SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat)
Definition: table2.cxx:2042
std::reverse_iterator< Iterator > rend()
Definition: table.hxx:145
void Reorder(const sc::ReorderParam &rParam)
Definition: table3.cxx:1762
void UpdateDrawRef(UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos=true)
Definition: table1.cxx:1689
bool IsBlockEditable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2413
void InsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize)
Definition: table2.cxx:146
bool ValidNextPos(SCCOL nCol, SCROW nRow, const ScMarkData &rMark, bool bMarked, bool bUnprotected) const
Definition: table1.cxx:1319
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
Definition: address.hxx:45
void SetTableOpDirty(const ScRange &)
Definition: table2.cxx:1893
void finalizeOutlineImport()
Definition: table7.cxx:449
void SetAnonymousDBData(std::unique_ptr< ScDBData > pDBData)
Definition: table1.cxx:2337
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:24
ScTableProtection * GetProtection()
Definition: table5.cxx:1055
Additional class containing cell annotation data.
Definition: postit.hxx:160
void FillMatrix(ScMatrix &rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool *pPool) const
Definition: table1.cxx:2496
void SetColManualBreaks(const ::std::set< SCCOL > &rBreaks)
Definition: table5.cxx:322
void EndListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1088
const OUString & GetName() const
Definition: table.hxx:367
void GetFormula(SCCOL nCol, SCROW nRow, OUString &rFormula) const
Definition: table2.cxx:1648
sal_uLong GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong *pnMaxHeight=nullptr) const
Definition: table2.cxx:3285
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, bool bShow)
Definition: table2.cxx:3636
FillDateCmd
Definition: global.hxx:343
void SetPageStyle(const OUString &rName)
Definition: table5.cxx:1113
long GetNeededSize(SCCOL nCol, SCROW nRow, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bWidth, bool bTotalSize, bool bInPrintTwips=false)
Definition: table1.cxx:433
void ConvertFormulaToValue(sc::EndListeningContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, sc::TableValues *pUndo)
Definition: table7.cxx:203
double * GetValueCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1609
void ClearPrintRanges()
Removes all print ranges.
Definition: table1.cxx:2188
void SetColWidthOnly(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:2972
void PreprocessRangeNameUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:223
void HandleStuffAfterParallelCalculation(SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter *pInterpreter)
Definition: table1.cxx:2535
Walk through all cells in an area.
Definition: dociter.hxx:208
ScLinkMode
Definition: global.hxx:225
void CopyToClip(sc::CopyToClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTable)
Definition: table2.cxx:480
void StripHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3684
bool IsLinked() const
Definition: table.hxx:355
SCROW nRepeatStartY
Definition: table.hxx:174
std::input_iterator_tag iterator_category
Definition: table.hxx:125
void CopyColHidden(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:628
short CompareCell(sal_uInt16 nSort, ScRefCellValue &rCell1, SCCOL nCell1Col, SCROW nCell1Row, ScRefCellValue &rCell2, SCCOL nCell2Col, SCROW nCell2Row) const
Definition: table3.cxx:1435
bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden)
Definition: table5.cxx:578
ScRefCellValue next()
Find the next visible data cell position.
Definition: table1.cxx:2299
void SetColWidth(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:2951
bool HasValueData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1838
void CopyCellValuesFrom(const SCCOL nCol, SCROW nRow, const sc::CellValues &rSrc)
Definition: table7.cxx:195
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:315
SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:886
bool HasUniformRowHeight(SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:255
Optimized ColumnSpanSet version that operates on a single ScRange.
void SetValue(SCCOL nCol, SCROW nRow, const double &rVal)
Definition: table2.cxx:1589
void SetPendingRowHeights(bool bSet)
Definition: table1.cxx:376
bool ValidQuery(SCROW nRow, const ScQueryParam &rQueryParam, const ScRefCellValue *pCell=nullptr, bool *pbTestEqualCondition=nullptr, const ScInterpreterContext *pContext=nullptr, sc::TableColumnBlockPositionSet *pBlockPos=nullptr)
Definition: table3.cxx:2735
void FindAreaPos(SCCOL &rCol, SCROW &rRow, ScMoveDirection eDirection) const
Definition: table1.cxx:1257
std::unique_ptr< ScOutlineTable > pOutlineTable
Definition: table.hxx:194
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:3754
bool Search(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:317
void SetRangeName(std::unique_ptr< ScRangeName > pNew)
Definition: table2.cxx:3932
void SetPattern(const ScAddress &rPos, const ScPatternAttr &rAttr)
Definition: table2.cxx:2905
bool RemoveFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:2893
sal_uInt16 GetOptimalColWidth(SCCOL nCol, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bFormula, const ScMarkData *pMarkData, const ScColWidthParam *pParam)
Definition: table1.cxx:420
void SetNeedsListeningGroup(SCCOL nCol, SCROW nRow)
Definition: table7.cxx:334
bool SkipRow(const SCCOL rCol, SCROW &rRow, const SCROW nMovY, const ScMarkData &rMark, const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected) const
Definition: table1.cxx:1355
void SetRowManualBreaks(const ::std::set< SCROW > &rBreaks)
Definition: table5.cxx:315
const OUString & GetLinkFlt() const
Definition: table.hxx:357
sal_uInt16 GetOriginalWidth(SCCOL nCol) const
Definition: table2.cxx:3157
bool HasSelectionMatrixFragment(const ScMarkData &rMark) const
Definition: table2.cxx:2397
std::unique_ptr< ScBitMaskCompressedArray< SCCOL, CRFlags > > mpColFlags
Definition: table.hxx:182
void SetRepeatRowRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2179
bool SearchAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:517
bool IsLayoutRTL() const
Definition: table.hxx:336
std::unique_ptr< utl::TextSearch > pSearchText
Definition: table.hxx:203
bool IsColValid(const SCCOL nScCol) const
Definition: table.hxx:314
bool SetRowHeightRange(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight, double nPPTY)
Definition: table2.cxx:3041
void FillAnalyse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, FillCmd &rCmd, FillDateCmd &rDateCmd, double &rInc, sal_uInt16 &rMinDigits, ScUserListData *&rListData, sal_uInt16 &rListIndex)
Definition: table4.cxx:215
constexpr double nPPTX
void CopyOneCellFromClip(sc::CopyFromClipContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, const SCROW nSrcRow, const ScTable *pSrcTab)
Definition: table7.cxx:124
bool SetOutlineTable(const ScOutlineTable *pNewOutline)
Definition: table2.cxx:89
OString dumpColumnRowGroups(bool bColumns) const
Returns list-of-spans representation of the column/row groupings encoded as an OString.
Definition: table7.cxx:576
SCROW GetLastDataRow(SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, bool bConsiderCellNotes=false, bool bConsiderCellDrawObjects=false) const
Definition: table1.cxx:1063
void FillAuto(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, ScProgress *pProgress)
Definition: table4.cxx:515
std::unique_ptr< ScFlatBoolColSegments > mpHiddenCols
Definition: table.hxx:184
void IncDate(double &rVal, sal_uInt16 &nDayOfMonth, double nStep, FillDateCmd eCmd)
Definition: table4.cxx:1098
bool SetFormulaCells(SCCOL nCol, SCROW nRow, std::vector< ScFormulaCell * > &rCells)
Definition: table2.cxx:1573
ScPasteFunc
Definition: global.hxx:189
sal_uLong GetLinkRefreshDelay() const
Definition: table.hxx:360
void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3475
void ApplyStyle(SCCOL nCol, SCROW nRow, const ScStyleSheet *rStyle)
Definition: table2.cxx:2726
SCSIZE GetEmptyLinesInBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScDirection eDir) const
Definition: table1.cxx:1082
void SetScenarioFlags(ScScenarioFlags nNew)
Definition: table.hxx:350
OUString aCodeName
Definition: table.hxx:159
bool ColHidden(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:561
bool IsProtected() const
Definition: table5.cxx:1040
SvtScriptType
FillCmd
Definition: global.hxx:326
bool ValidCol(SCCOL nCol) const
Definition: table.hxx:326
Set of column block positions only for one table.
bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3238
const ScFormulaCell * GetFormulaCell(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1656
ScDocument & GetDoc()
Definition: table.hxx:275
Keep track of all named expressions that have been updated during reference update.
bool IsColRowTabValid(const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab) const
Definition: table.hxx:322
void AssertNoInterpretNeeded(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2444
bool operator!=(const Iterator &rOther) const
Definition: table.hxx:137
void SetOptimalHeightOnly(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, ScProgress *pOuterProgress=nullptr, sal_uLong nProgressStart=0)
Definition: table1.cxx:483
bool ShrinkToUsedDataArea(bool &o_bShrunk, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bColumnsOnly, bool bStickyTopRow, bool bStickyLeftCol, bool bConsiderCellNotes, bool bConsiderCellDrawObjects) const
Definition: table1.cxx:952
void SetDirtyVar()
Definition: table2.cxx:1860
CollatorWrapper * pSortCollator
Definition: table.hxx:209
void AddCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2675
void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::UpdatedRangeNames &rIndexes) const
Definition: table1.cxx:1947
std::unique_ptr< ScRange > pRepeatColRange
Definition: table.hxx:213
bool HasColManualBreak(SCCOL nCol) const
Definition: table5.cxx:377
const ScRangeList * GetScenarioRanges() const
Definition: table2.cxx:1451
void CheckVectorizationState()
Definition: table2.cxx:1866
ScMoveDirection
Definition: global.hxx:335
void RestorePrintRanges(const ScPrintSaverTab &rSaveTab)
Definition: table1.cxx:2229
void UpdateInsertTab(sc::RefUpdateInsertTabContext &rCxt)
Definition: table1.cxx:1846
void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2210
sal_Int16 SCCOL
Definition: types.hxx:22
sal_uInt16 GetColWidth(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:3120
InsertDeleteFlags
Definition: global.hxx:158
bool ValidCol(SCCOL nCol) const
Definition: document.hxx:878
const ScRange * GetRepeatRowRange() const
Definition: table.hxx:757
void InvalidateScenarioRanges()
Definition: table2.cxx:1446
static void UpdateSearchItemAddressForReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow)
Replace behaves differently to the Search; adjust the rCol and rRow accordingly.
Definition: table6.cxx:546
OUString aUpperName
Definition: table.hxx:205
bool GetPrintAreaHor(SCROW nStartRow, SCROW nEndRow, SCCOL &rEndCol) const
Definition: table1.cxx:645
void CopyCaptionsToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab, bool bCloneCaption)
Definition: table2.cxx:1310
std::unique_ptr< ScDBData > pDBDataNoName
Definition: table.hxx:222
void UnshareFormulaCells(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:276
void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:418
bool TestRemoveSubTotals(const ScSubTotalParam &rParam)
Definition: table3.cxx:1827
void CreateColumnIfNotExistsImpl(const SCCOL nScCol) const
Definition: table1.cxx:2613
void CopyRowHidden(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:643
ScFlatBoolRowSegments & mrRowSegs
Definition: table.hxx:1304
CRFlags GetRowFlags(SCROW nRow) const
Definition: table2.cxx:3566
void SetEmptyCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1536
::std::map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap
const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nWhich) const
Definition: table2.cxx:2006
OUString aLinkDoc
Definition: table.hxx:162
ScScenarioFlags nScenarioFlags
Definition: table.hxx:221
void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, sal_uInt16 nFormatNo)
Definition: table4.cxx:2050
void GetUnprotectedCells(ScRangeList &rRangeList) const
Definition: table2.cxx:1760
void UpdateCompile(bool bForceIfNameInUse=false)
Definition: table1.cxx:1932
sc::MultiDataCellState HasMultipleDataCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:34
void ShowCol(SCCOL nCol, bool bShow)
Definition: table2.cxx:3374
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
Definition: table2.cxx:2083
void CopyFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, ScTable *pTable)
Definition: table2.cxx:714
void AddPrintRange(const ScRange &rNew)
Adds a new print ranges.
Definition: table1.cxx:2198
bool IsActiveScenario() const
Definition: table.hxx:352
const EditTextObject * GetEditText(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1632
const Color & GetScenarioColor() const
Definition: table.hxx:345
void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3443
ScAddress maLOKFreezeCell
Definition: table.hxx:227
void GetNotesInRange(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1716
::boost::intrusive_ptr< FormulaToken > FormulaTokenRef
std::unique_ptr< ScTableProtection > pTabProtection
Definition: table.hxx:177
ScRefCellValue GetRefCellValue(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2463
void GetLastDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1811
Structure that stores segments of boolean flags per column, and perform custom action on those segmen...
OString dumpHiddenFiltered(bool bColumns, bool bHidden)
Returns list-of-spans representation of hidden/filtered states of columns/rows encoded as an OString...
Definition: table7.cxx:556
void AutoFormat(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_uInt16 nFormatNo)
Definition: table4.cxx:2061
void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
Definition: table4.cxx:2270
bool GetNextMarkedCell(SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark) const
Definition: table1.cxx:1637
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
Definition: table2.cxx:1961
SvNumFormatType
bool bTableAreaValid
Definition: table.hxx:233
OUString aName
Definition: table.hxx:158
ScColContainer aCol
Definition: table.hxx:156
void SetRawString(SCCOL nCol, SCROW nRow, const svl::SharedString &rStr)
Definition: table2.cxx:1595
bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3159
void GetAllRowBreaks(::std::set< SCROW > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:329
void StartListeningFormulaCells(sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1150
void LockTable()
Definition: table2.cxx:2581
void DBShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3417
size_t GetFormulaHash(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2381
const OUString & GetCodeName() const
Definition: table.hxx:373
::std::set< SCROW > maRowManualBreaks
Definition: table.hxx:190
std::unique_ptr< ScConditionalFormatList > mpCondFormatList
Definition: table.hxx:225
bool DoSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1940
Color aTabBgColor
Definition: table.hxx:220
const Iterator & end()
Definition: table.hxx:143
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
Definition: table2.cxx:2770
SvtScriptType GetRangeScriptType(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2371
Iterator & operator--()
Definition: table.hxx:134
void BroadcastRecalcOnRefMove()
Broadcast dirty formula cells that contain functions such as CELL(), COLUMN() or ROW() which may chan...
Definition: table2.cxx:1921
void UpdateTranspose(const ScRange &rSource, const ScAddress &rDest, ScDocument *pUndoDoc)
Definition: table1.cxx:1833
sal_Int32 GetMaxStringLen(SCCOL nCol, SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
Definition: table3.cxx:3533
CommentCaptionState
Definition: document.hxx:252
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3654
bool ReservePatternCount(SCCOL nCol, SCSIZE nReserve)
Definition: table4.cxx:2422
void SetTabNo(SCTAB nNewTab)
Definition: table1.cxx:1940
bool IsStreamValid() const
Definition: table.hxx:311
const ScBitMaskCompressedArray< SCROW, CRFlags > * GetRowFlagsArray() const
Definition: table.hxx:861
bool HasRowPageBreak(SCROW nRow) const
Definition: table5.cxx:353
bool ApplyFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:2883
bool IsScenario() const
Definition: table.hxx:341
bool bLayoutRTL
Definition: table.hxx:230
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
Definition: column.hxx:170
bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const
Definition: table1.cxx:1133
bool ContainsNotesInRange(const ScRange &rRange) const
Definition: table2.cxx:1766
FormulaError
SCCOL Col() const
Definition: address.hxx:267
bool SetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const ScSetStringParam *pParam=nullptr)
Definition: table2.cxx:1478
void SetCondFormList(ScConditionalFormatList *pList)
Definition: table1.cxx:2567
Iterate through all edit text cells in a given sheet.
void GetScenarioComment(OUString &rComment) const
Definition: table.hxx:343
SheetGeomType
Represents the type of sheet geometry data.
Definition: document.hxx:266
bool RefVisible(const ScFormulaCell *pCell)
Definition: table2.cxx:3877
bool SearchAndReplaceEmptyCells(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:857
void UpdateMoveTab(sc::RefUpdateMoveTabContext &rCxt, SCTAB nTabNo, ScProgress *pProgress)
Definition: table1.cxx:1904
void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
Definition: table2.cxx:412
void EndListeningGroup(sc::EndListeningContext &rCxt, const SCCOL nCol, SCROW nRow)
Definition: table7.cxx:326
void MergePatternArea(ScMergePatternState &rState, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bDeep) const
Definition: table2.cxx:2610
SCROW GetLOKFreezeRow() const
Definition: table7.cxx:592
const OUString & GetLinkTab() const
Definition: table.hxx:359
void CopyToTable(sc::CopyToDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScTable *pDestTab, const ScMarkData *pMarkData, bool bAsLink, bool bColRowFlags, bool bGlobalNamesToLocal, bool bCopyCaptions)
Definition: table2.cxx:1162
bool GetDataAreaSubrange(ScRange &rRange) const
Definition: table1.cxx:911
bool SetLOKFreezeCol(SCCOL nFreezeCol)
Definition: table7.cxx:597
SCSIZE GetPatternCount(SCCOL nCol) const
Definition: table4.cxx:2406
::std::vector< ScRange > ScRangeVec
Definition: table.hxx:154
Iterator & operator++()
Definition: table.hxx:133
void FillSeriesSimple(const ScCellValue &rSrcCell, SCCOLROW &rInner, SCCOLROW nIMin, SCCOLROW nIMax, const SCCOLROW &rCol, const SCCOLROW &rRow, bool bVertical, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1284
bool ReplaceAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, ScDocument *pUndoDoc)
Definition: table6.cxx:767
void UpdateDeleteTab(sc::RefUpdateDeleteTabContext &rCxt)
Definition: table1.cxx:1875
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: document.hxx:880
void InvalidatePageBreaks()
Definition: table2.cxx:1389
bool HasManualBreaks() const
Definition: table5.cxx:310
SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:722
void GetAllColBreaks(::std::set< SCCOL > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:341
OUString aLinkOpt
Definition: table.hxx:164
::std::set< SCCOL > maColPageBreaks
Definition: table.hxx:191
SCCOL nRepeatEndX
Definition: table.hxx:173
void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2197
bool RowHidden(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:486
void SetDrawPageSize(bool bResetStreamValid=true, bool bUpdateNoteCaptionPos=true)
Definition: table2.cxx:3907
UpdateRefMode
Definition: global.hxx:310
CRFlags
Definition: global.hxx:135
sal_Int32 SCROW
Definition: types.hxx:18
To calculate a single subtotal function.
Definition: subtotal.hxx:61
void SetProtection(const ScTableProtection *pProtect)
Definition: table5.cxx:1045
void UpdateInsertTabAbs(SCTAB nNewPos)
Definition: table4.cxx:2348
OUString aPageStyle
Definition: table.hxx:170
const Iterator & begin()
Definition: table.hxx:142
void SetScenarioComment(const OUString &rComment)
Definition: table.hxx:344
void SetTabBgColor(const Color &rColor)
Definition: table1.cxx:391
ColRowEditAction
Definition: global.hxx:435
bool IsColRowValid(const SCCOL nScCol, const SCROW nScRow) const
Definition: table.hxx:318
bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3345
const OUString & GetPageStyle() const
Definition: table.hxx:378
bool IsPrintEntireSheet() const
Returns true, if the sheet is always printed.
Definition: table.hxx:764
bool SearchStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark)
Definition: table6.cxx:614
bool ValidRow(SCROW nRow) const
Definition: document.hxx:879
void TopTenQuery(ScQueryParam &)
Definition: table3.cxx:2863
ScMF
Definition: attrib.hxx:35
std::unique_ptr< ScFlatBoolRowSegments > mpFilteredRows
Definition: table.hxx:187
std::unique_ptr< sc::ColumnIterator > GetColumnIterator(SCCOL nCol, SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:423
void CopyScenarioFrom(const ScTable *pSrcTab)
Definition: table2.cxx:1402
sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero=true) const
Definition: table5.cxx:743
ScRangeName * GetRangeName() const
Definition: table2.cxx:3940
void GetDataArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bIncludeOld, bool bOnlyDown) const
Definition: table1.cxx:788
SCROW nRepeatEndY
Definition: table.hxx:175
ScRefCellValue GetCellValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1788
void DeleteCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool *pUndoOutline)
Definition: table2.cxx:346
std::unique_ptr< ScSortInfoArray > CreateSortInfoArray(const sc::ReorderParam &rParam)
Definition: table3.cxx:448
bool IsLoadingRTL() const
Definition: table.hxx:337
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: table.hxx:328
const ScDocument & GetDoc() const
Definition: table.hxx:276
void SetLayoutRTL(bool bSet)
Definition: table1.cxx:381
CellType
Definition: global.hxx:281
bool BroadcastBroadcasters(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint &rHint)
Broadcast single broadcasters in range, without explicitly setting anything dirty, not doing area broadcasts.
Definition: table2.cxx:1928
sal_uInt16 GetCommonWidth(SCCOL nEndCol) const
Definition: table2.cxx:3167
void CopyConditionalFormat(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, const ScTable *pTable)
Definition: table2.cxx:621
void MergeSelectionPattern(ScMergePatternState &rState, const ScMarkData &rMark, bool bDeep) const
Definition: table2.cxx:2596
short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const
Definition: table3.cxx:1641
sal_uLong GetCellCount() const
Definition: table3.cxx:3492
ScLinkMode GetLinkMode() const
Definition: table.hxx:354
void DumpColumnStorage(SCCOL nCol) const
ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const
Definition: table1.cxx:2585
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:826
const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const
Definition: table2.cxx:2061
SCROW GetLastChangedRow() const
Definition: table2.cxx:3619
::std::set< SCCOL > maColManualBreaks
Definition: table.hxx:192
void SetRepeatArea(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:1068
bool GetCellArea(SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:507
Color aScenarioColor
Definition: table.hxx:219
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:932
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2487
void CopyRowHeight(const ScTable &rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset)
Definition: table5.cxx:657
bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:546
void SetVisible(bool bVis)
Definition: table1.cxx:360
void CalcAll()
Definition: table2.cxx:1944
void GetInputString(SCCOL nCol, SCROW nRow, OUString &rString) const
Definition: table2.cxx:1617
bool bPendingRowHeights
Definition: table.hxx:236
formula::VectorRefArray FetchVectorRefArray(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2432
void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
Definition: table2.cxx:444
std::unique_ptr< ScCompressedArray< SCCOL, sal_uInt16 > > mpColWidth
Definition: table.hxx:179
void InvalidateTableArea()
Definition: table2.cxx:1384
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
Definition: table2.cxx:2943
void SortReorderByRowRefUpdate(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1160
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow, SCSIZE nSize) const
Definition: table2.cxx:252
bool bGlobalKeepQuery
Definition: table.hxx:238
bool HandleRefArrayForParallelism(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
Definition: table1.cxx:2452
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:401
SvtBroadcaster * GetBroadcaster(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2479
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1710
void Sort(const ScSortParam &rSortParam, bool bKeepQuery, bool bUpdateRefs, ScProgress *pProgress, sc::ReorderParam *pUndo)
Sort a range of data.
Definition: table3.cxx:1691
bool GetTableArea(SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:543
SCROW nTableAreaY
Definition: table.hxx:199
void SetDirty(const ScRange &, ScColumn::BroadcastMode)
Definition: table2.cxx:1882
ScScenarioFlags GetScenarioFlags() const
Definition: table.hxx:349
const OUString & GetLinkOpt() const
Definition: table.hxx:358
bool GetPrintArea(SCCOL &rEndCol, SCROW &rEndRow, bool bNotes) const
Definition: table1.cxx:558
void SetColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:448
SCROW GetNotePosition(SCCOL nCol, size_t nIndex) const
Definition: table2.cxx:1687
bool SetLOKFreezeRow(SCROW nFreezeRow)
Definition: table7.cxx:614
void CopyPrintRange(const ScTable &rTable)
Definition: table1.cxx:2143
Compressed array of row (or column) entries, e.g.
SCSIZE FillMaxRot(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2, SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY, const ScPatternAttr *pPattern, const SfxItemSet *pCondSet)
Definition: table2.cxx:2155
SCCOL nRepeatStartX
Definition: table.hxx:172
FormulaError GetErrCode(const ScAddress &rPos) const
Definition: table.hxx:613
sal_uLong GetCodeCount() const
Definition: table3.cxx:3522
void SetDirtyIfPostponed()
Mark formula cells dirty that have the mbPostponedDirty flag set or contain named ranges with relativ...
Definition: table2.cxx:1912
std::unique_ptr< ScRange > pRepeatRowRange
Definition: table.hxx:214
bool EnsureFormulaCellResults(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning=false)
Definition: table7.cxx:431
void CopyStaticToDocument(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap &rMap, ScTable *pDestTab)
Definition: table2.cxx:536
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich) const
Definition: table.hxx:687
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table2.cxx:1139
SCROW GetFirstEditTextRow(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:1509
bool RowFiltered(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:790
void RegroupFormulaCells(SCCOL nCol)
Definition: table7.cxx:284
void SetLoadingMedium(bool bLoading)
Definition: table2.cxx:1939
bool HasStringCells(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:1846
bool IsManualRowHeight(SCROW nRow) const
Definition: table5.cxx:953
SCROW GetNextManualBreak(SCROW nRow) const
Get the row position of the next manual break that occurs at or below specified row.
Definition: table5.cxx:385
bool HasStringData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1830
bool SetEditText(SCCOL nCol, SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
Definition: table2.cxx:1490
bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bRefresh)
Definition: table2.cxx:2098
std::unique_ptr< ScRangeList > pScenarioRanges
Definition: table.hxx:218
void StyleSheetChanged(const SfxStyleSheetBase *pStyleSheet, bool bRemoved, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY)
Definition: table2.cxx:2857
The data type represents bits, manageable by bitwise operations.
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
Definition: table2.cxx:2665
ScDirection
Definition: global.hxx:351
ScFormulaVectorState
When vectorization is enabled, we could potentially mass-calculate a series of formula token arrays i...
Definition: types.hxx:52
sal_uLong GetRowOffset(SCROW nRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3947
OUString aLinkTab
Definition: table.hxx:165
bool Replace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:564
SCCOL ClampToAllocatedColumns(SCCOL nCol) const
Definition: table.hxx:1084
void QuickSort(ScSortInfoArray *, SCCOLROW nLo, SCCOLROW nHi)
Definition: table3.cxx:1599
void SetSheetEvents(std::unique_ptr< ScSheetEvents > pNew)
Definition: table2.cxx:119
sal_uLong AddCondFormat(std::unique_ptr< ScConditionalFormat > pNew)
Definition: table1.cxx:2342
void GetNextPos(SCCOL &rCol, SCROW &rRow, SCCOL nMovX, SCROW nMovY, bool bMarked, bool bUnprotected, const ScMarkData &rMark, SCCOL nTabStartCol) const
Definition: table1.cxx:1392
void DeleteBeforeCopyFromClip(sc::CopyFromClipContext &rCxt, const ScTable &rClipTab, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table7.cxx:97
const ScStyleSheet * GetAreaStyle(bool &rFound, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:2816
bool GetCalcNotification() const
Definition: table.hxx:333
void FillFormulaVertical(const ScFormulaCell &rSrcCell, SCCOLROW &rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1219
void CopyCellToDocument(SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable &rDestTab)
Definition: table2.cxx:574
sal_uInt32 GetNumberFormat(const ScInterpreterContext &rContext, const ScAddress &rPos) const
Definition: table2.cxx:2014
void SyncColRowFlags()
Definition: table5.cxx:1007
void ApplyBlockFrame(const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:2632
bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol)
Definition: table2.cxx:703
bool HasColPageBreak(SCCOL nCol) const
Definition: table5.cxx:361
void CreateAllNoteCaptions()
Definition: table2.cxx:1695
bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table3.cxx:1670
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCCOL nCol, SCROW nRow, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:306
bool bActiveScenario
Definition: table.hxx:240
std::unique_ptr< ScBitMaskCompressedArray< SCROW, CRFlags > > pRowFlags
Definition: table.hxx:183
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
Definition: table2.cxx:2842
bool RowHiddenLeaf(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:516
bool bPageSizeValid
Definition: table.hxx:232
const ScDocument * mpDocument
Definition: table.hxx:1303
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
Definition: table7.cxx:214
bool bPrintEntireSheet
Definition: table.hxx:239
void StoreToCache(SvStream &rStrm) const
Definition: table7.cxx:457
ScColumnsRange(const Iterator &rBegin, const Iterator &rEnd)
Definition: table.hxx:141
std::unique_ptr< ScFlatBoolRowSegments > mpHiddenRows
Definition: table.hxx:185
const Color & GetTabBgColor() const
Definition: table.hxx:347
bool SearchAndReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:794
const ScRange * GetRepeatColRange() const
Definition: table.hxx:756
SCCOL GetAllocatedColumnsCount() const
Definition: table.hxx:1085
sal_uInt16 GetRowHeight(SCROW nRow, SCROW *pStartRow, SCROW *pEndRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3218
void RemoveManualBreaks()
Definition: table5.cxx:301
void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:2652
CRFlags GetColFlags(SCCOL nCol) const
Definition: table2.cxx:3558
ScDBData * GetAnonymousDBData()
Definition: table.hxx:371
bool SearchRangeForAllEmptyCells(const ScRange &rRange, const SvxSearchItem &rSearchItem, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:1069
void CompileDBFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2394
SCCOL GetLOKFreezeCol() const
Definition: table7.cxx:587
void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString &rStr)
Definition: table2.cxx:3899
const OUString & GetUpperName() const
Definition: table1.cxx:353
std::unique_ptr< ScSheetEvents > pSheetEvents
Definition: table.hxx:196
void ExtendPrintArea(OutputDevice *pDev, SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW nEndRow)
Definition: table1.cxx:1954
double GetValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1625
void StartOutlineTable()
Definition: table2.cxx:113
ScAttrArray aDefaultColAttrArray
Definition: table.hxx:245
void SetError(SCCOL nCol, SCROW nRow, FormulaError nError)
Definition: table4.cxx:2342
Size aPageSizeTwips
Definition: table.hxx:171
bool ValidTab(SCTAB nTab)
Definition: address.hxx:105
sal_uLong nLinkRefreshDelay
Definition: table.hxx:166
bool IsMerged(SCCOL nCol, SCROW nRow) const
Definition: table7.cxx:26
SCROW GetLastFlaggedRow() const
Definition: table2.cxx:3574
SCROW GetHiddenRowCount(SCROW nRow) const
Definition: table2.cxx:3360
void CopyColFiltered(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:841
void InsertCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize)
Definition: table2.cxx:269
bool IsSortCollatorGlobal() const
Definition: table3.cxx:610
Use this to iterate through non-empty visible cells in a single column.
Definition: table.hxx:1270
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:784
bool bScenario
Definition: table.hxx:229
void SplitFormulaGroups(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:268
void ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:2930
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, bool bShow)
Definition: table2.cxx:3646
bool SearchRangeForEmptyCell(const ScRange &rRange, const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, OUString &rUndoStr)
Definition: table6.cxx:959
sal_Int16 SCTAB
Definition: types.hxx:23
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
Definition: table2.cxx:2937
bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, ScProgress *pOuterProgress=nullptr, sal_uLong nProgressStart=0)
Definition: table1.cxx:450
css::uno::Sequence< css::sheet::TablePageBreakData > GetRowBreakData() const
Definition: table5.cxx:463
SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:676
OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType)
Serializes the sheet's geometry data.
Definition: table7.cxx:483
bool GetDataStart(SCCOL &rStartCol, SCROW &rStartRow) const
Definition: table1.cxx:726
bool bCalcNotification
Definition: table.hxx:237
ScTable(ScDocument *pDoc, SCTAB nNewTab, const OUString &rNewName, bool bColInfo=true, bool bRowInfo=true)
Definition: table1.cxx:232
OString dumpColumnRowSizes(bool bColumns)
Returns list-of-spans representation of the column-widths/row-heights in twips encoded as an OString...
Definition: table7.cxx:516
void RemoveCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2692
void ShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3394
ScConditionalFormatList * GetCondFormList()
Definition: table1.cxx:2572
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered)
Definition: table5.cxx:870