office-gobmx/sc
Noel Grandin e57d5daaea fix leaks when using tools::JsonWriter
Specifically in sd/source/core/annotations/Annotation.cxx

We seem to end up fixing leaks here often.
The current tools::JsonWriter API is just very hard to use correctly.

So rather return an OString, which is cheap to copy,
and push that down into the LOK code.

AFAIK that seems to end up requiring less code and less adhoc copying
of data (specifically the queueing code in init.cxx was creating
copies when converting to std::string).

Ideally, we could have some special API to avoid the new strdup()
calls in init.cxx, but not sure how to prevent other people
from accidentally using that.

Change-Id: Ia33437c1bfd9cc2d54dfb99914d1b72db20335f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149963
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-05 17:02:46 +02:00
..
inc tdf#153880 sc: Make Calc text hyperlinks stand out more 2023-04-04 20:16:47 +02:00
qa fix leaks when using tools::JsonWriter 2023-04-05 17:02:46 +02:00
res/xml
sdi sc drawstyles: Handle style commands and undo 2023-03-21 23:10:39 +00:00
source fix leaks when using tools::JsonWriter 2023-04-05 17:02:46 +02:00
uiconfig/scalc Resolves tdf#154446 - Remove redundant option for grid line color 2023-04-04 10:53:56 +02:00
util
workben
AllLangMoTarget_sc.mk
common_unoapi_tests.mk
CppunitTest_sc_a11y.mk
CppunitTest_sc_addin_functions_test.mk
CppunitTest_sc_anchor_test.mk
CppunitTest_sc_annotationobj.mk
CppunitTest_sc_annotationshapeobj.mk
CppunitTest_sc_annotationsobj.mk
CppunitTest_sc_arealinkobj.mk
CppunitTest_sc_arealinksobj.mk
CppunitTest_sc_array_functions_test.mk
CppunitTest_sc_autoformatobj.mk
CppunitTest_sc_autoformatsobj.mk
CppunitTest_sc_cache_test.mk
CppunitTest_sc_cellcursorobj.mk
CppunitTest_sc_cellfieldsobj.mk
CppunitTest_sc_cellformatsenumeration.mk
CppunitTest_sc_cellformatsobj.mk
CppunitTest_sc_cellobj.mk
CppunitTest_sc_cellrangeobj.mk
CppunitTest_sc_cellrangesobj.mk
CppunitTest_sc_cellsearchobj.mk
CppunitTest_sc_cellsenumeration.mk
CppunitTest_sc_cellsobj.mk
CppunitTest_sc_chart2dataprovider.mk
CppunitTest_sc_chartobj.mk
CppunitTest_sc_chartsobj.mk
CppunitTest_sc_check_data_pilot_field.mk
CppunitTest_sc_check_data_pilot_table.mk
CppunitTest_sc_check_xcell_ranges_query.mk
CppunitTest_sc_cond_format_merge.mk
CppunitTest_sc_consolidationdescriptorobj.mk
CppunitTest_sc_copypaste.mk
CppunitTest_sc_core.mk
CppunitTest_sc_database_functions_test.mk
CppunitTest_sc_databaserangeobj.mk
CppunitTest_sc_databaserangesobj.mk
CppunitTest_sc_datapilotfieldgroupitemobj.mk
CppunitTest_sc_datapilotfieldgroupobj.mk
CppunitTest_sc_datapilotfieldgroupsobj.mk
CppunitTest_sc_datapilotfieldobj.mk
CppunitTest_sc_datapilotfieldsobj.mk
CppunitTest_sc_datapilotitemobj.mk
CppunitTest_sc_datapilotitemsobj.mk
CppunitTest_sc_datapilottableobj.mk
CppunitTest_sc_datapilottablesobj.mk
CppunitTest_sc_dataprovider.mk
CppunitTest_sc_datetime_functions_test.mk
CppunitTest_sc_ddelinkobj.mk
CppunitTest_sc_ddelinksobj.mk
CppunitTest_sc_documentconfigurationobj.mk
CppunitTest_sc_drawpageobj.mk
CppunitTest_sc_drawpagesobj.mk
CppunitTest_sc_editfieldobj_cell.mk
CppunitTest_sc_editfieldobj_header.mk
CppunitTest_sc_filterdescriptorbase.mk
CppunitTest_sc_filters_test.mk
CppunitTest_sc_financial_functions_test.mk
CppunitTest_sc_functiondescriptionobj.mk
CppunitTest_sc_functionlistobj.mk
CppunitTest_sc_functions_test_old.mk
CppunitTest_sc_headerfieldsobj.mk
CppunitTest_sc_headerfootercontentobj.mk
CppunitTest_sc_html_export_test.mk
CppunitTest_sc_importdescriptorbaseobj.mk
CppunitTest_sc_indexenumeration_cellannotationsenumeration.mk
CppunitTest_sc_indexenumeration_cellarealinksenumeration.mk
CppunitTest_sc_indexenumeration_databaserangesenumeration.mk
CppunitTest_sc_indexenumeration_datapilotfieldsenumeration.mk
CppunitTest_sc_indexenumeration_datapilotitemsenumeration.mk
CppunitTest_sc_indexenumeration_datapilottablesenumeration.mk
CppunitTest_sc_indexenumeration_ddelinksenumeration.mk
CppunitTest_sc_indexenumeration_functiondescriptionenumeration.mk
CppunitTest_sc_indexenumeration_labelrangesenumeration.mk
CppunitTest_sc_indexenumeration_namedrangesenumeration.mk
CppunitTest_sc_indexenumeration_scenariosenumeration.mk
CppunitTest_sc_indexenumeration_sheetcellrangesenumeration.mk
CppunitTest_sc_indexenumeration_sheetlinksenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetsenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetviewpanesenumeration.mk
CppunitTest_sc_indexenumeration_subtotalfieldsenumeration.mk
CppunitTest_sc_indexenumeration_tableautoformatenumeration.mk
CppunitTest_sc_indexenumeration_tablechartsenumeration.mk
CppunitTest_sc_indexenumeration_tablecolumnsenumeration.mk
CppunitTest_sc_indexenumeration_tableconditionalentryenumeration.mk
CppunitTest_sc_indexenumeration_tablerowsenumeration.mk
CppunitTest_sc_indexenumeration_textfieldenumeration.mk
CppunitTest_sc_information_functions_test.mk
CppunitTest_sc_jumbosheets_test.mk
CppunitTest_sc_labelrangeobj.mk
CppunitTest_sc_labelrangesobj.mk
CppunitTest_sc_logical_functions_test.mk
CppunitTest_sc_macros_test.mk
CppunitTest_sc_mark_test.mk
CppunitTest_sc_mathematical_functions_test.mk
CppunitTest_sc_modelobj.mk
CppunitTest_sc_namedrangeobj.mk
CppunitTest_sc_namedrangesobj.mk
CppunitTest_sc_new_cond_format_api.mk
CppunitTest_sc_opencl-1.mk
CppunitTest_sc_opencl-2.mk
CppunitTest_sc_outlineobj.mk
CppunitTest_sc_pdf_export.mk
CppunitTest_sc_perfobj.mk
CppunitTest_sc_pivottable_filters_test.mk
CppunitTest_sc_recentfunctionsobj.mk
CppunitTest_sc_recordchanges.mk
CppunitTest_sc_scenariosobj.mk
CppunitTest_sc_screenshots.mk
CppunitTest_sc_shapeobj.mk
CppunitTest_sc_shapetest.mk
CppunitTest_sc_sheetlinkobj.mk
CppunitTest_sc_sheetlinksobj.mk
CppunitTest_sc_sortdescriptorbaseobj.mk
CppunitTest_sc_sparkline_test.mk
CppunitTest_sc_spreadsheet_functions_test.mk
CppunitTest_sc_spreadsheetsettings.mk
CppunitTest_sc_spreadsheetsettingsobj.mk
CppunitTest_sc_statistical_functions_test.mk
CppunitTest_sc_stylefamiliesobj.mk
CppunitTest_sc_stylefamilyobj.mk
CppunitTest_sc_styleobj.mk
CppunitTest_sc_subsequent_export_test.mk
CppunitTest_sc_subsequent_export_test2.mk
CppunitTest_sc_subsequent_export_test3.mk
CppunitTest_sc_subsequent_export_test4.mk
CppunitTest_sc_subsequent_filters_test.mk
CppunitTest_sc_subsequent_filters_test2.mk
CppunitTest_sc_subsequent_filters_test3.mk
CppunitTest_sc_subsequent_filters_test4.mk
CppunitTest_sc_subtotaldescriptorbase.mk
CppunitTest_sc_subtotalfieldobj.mk
CppunitTest_sc_tablecolumnobj.mk
CppunitTest_sc_tablecolumnsobj.mk
CppunitTest_sc_tableconditionalentryobj.mk
CppunitTest_sc_tableconditionalformat.mk
CppunitTest_sc_tablerowobj.mk
CppunitTest_sc_tablerowsobj.mk
CppunitTest_sc_tablesheetobj.mk
CppunitTest_sc_tablesheetsobj.mk
CppunitTest_sc_tablevalidationobj.mk
CppunitTest_sc_tabviewobj.mk
CppunitTest_sc_text_functions_test.mk
CppunitTest_sc_tiledrendering.mk
CppunitTest_sc_ucalc.mk
CppunitTest_sc_ucalc_condformat.mk
CppunitTest_sc_ucalc_copypaste.mk
CppunitTest_sc_ucalc_datatransformation.mk
CppunitTest_sc_ucalc_formula.mk
CppunitTest_sc_ucalc_formula2.mk CppunitTest_sc_ucalc_formula: split in two 2023-03-15 08:09:05 +00:00
CppunitTest_sc_ucalc_parallelism.mk
CppunitTest_sc_ucalc_pivottable.mk
CppunitTest_sc_ucalc_range.mk
CppunitTest_sc_ucalc_rangelst.mk
CppunitTest_sc_ucalc_sharedformula.mk
CppunitTest_sc_ucalc_solver.mk tdf#38948 Save solver settings to file 2023-03-25 08:06:13 +00:00
CppunitTest_sc_ucalc_sort.mk
CppunitTest_sc_ucalc_sparkline.mk
CppunitTest_sc_uicalc.mk
CppunitTest_sc_uicalc2.mk CppunitTest_sc_uicalc: split in two 2023-03-23 20:12:44 +00:00
CppunitTest_sc_uniquecellformatsenumeration.mk
CppunitTest_sc_uniquecellformatsobj.mk
CppunitTest_sc_vba_macro_test.mk
CppunitTest_sc_viewpaneobj.mk
functions_setup.mk
IwyuFilter_sc.yaml
JunitTest_sc_complex.mk
JunitTest_sc_unoapi_1.mk
JunitTest_sc_unoapi_2.mk
JunitTest_sc_unoapi_3.mk
JunitTest_sc_unoapi_4.mk
JunitTest_sc_unoapi_6.mk
JunitTest_sc_unoapi_7.mk
Library_sc.mk tdf#38948 Save solver settings to file 2023-03-25 08:06:13 +00:00
Library_scd.mk
Library_scfilt.mk
Library_scqahelper.mk
Library_scui.mk
Library_vbaobj.mk
Makefile
Module_sc.mk tdf#38948 Save solver settings to file 2023-03-25 08:06:13 +00:00
Package_opencl.mk
Package_res_xml.mk
PythonTest_sc_python.mk
README.md
subsequent_setup.mk
ucalc_setup.mk
UIConfig_scalc.mk jsdialog: enable data validation dialog 2023-03-23 07:01:26 +00:00
UITest_autofilter.mk
UITest_autofilter2.mk
UITest_calc_dialogs.mk
UITest_calc_tests.mk UITest_calc_tests{,2,3,4}: enable oneprocess mode 2023-03-29 16:24:17 +00:00
UITest_calc_tests2.mk UITest_calc_tests{,2,3,4}: enable oneprocess mode 2023-03-29 16:24:17 +00:00
UITest_calc_tests3.mk UITest_calc_tests{,2,3,4}: enable oneprocess mode 2023-03-29 16:24:17 +00:00
UITest_calc_tests4.mk UITest_calc_tests{,2,3,4}: enable oneprocess mode 2023-03-29 16:24:17 +00:00
UITest_calc_tests6.mk UITest_{calc_tests6,chart,chart2,sort}: enable oneprocess mode 2023-03-30 06:54:54 +00:00
UITest_calc_tests7.mk
UITest_calc_tests8.mk
UITest_calc_tests9.mk
UITest_chart.mk UITest_{calc_tests6,chart,chart2,sort}: enable oneprocess mode 2023-03-30 06:54:54 +00:00
UITest_chart2.mk UITest_{calc_tests6,chart,chart2,sort}: enable oneprocess mode 2023-03-30 06:54:54 +00:00
UITest_conditional_format.mk
UITest_csv_dialog.mk
UITest_external_links.mk
UITest_function_wizard.mk
UITest_goalSeek.mk
UITest_inputLine.mk
UITest_key_f4.mk
UITest_manual_tests.mk
UITest_pageFormat.mk
UITest_pasteSpecial.mk
UITest_protect.mk
UITest_range_name.mk
UITest_sc_options.mk
UITest_search_replace.mk
UITest_signatureLine.mk
UITest_solver.mk
UITest_sort.mk UITest_{calc_tests6,chart,chart2,sort}: enable oneprocess mode 2023-03-30 06:54:54 +00:00
UITest_statistics.mk
UITest_textCase.mk
UITest_textToColumns.mk
UITest_validity.mk

Spreadsheet Application Code

You can dump some information in a dbgutil build:

Shortcuts

CTRL+SHIFT+F12

Dumps the column width of the first 20 columns.

CTRL+SHIFT+F11

Dumps the graphic objects and their position and size in pixel.

CTRL+SHIFT+F6

Dumps the SfxItemSet representing the cell properties' of the current selection as a xml file. The file will be named dump.xml

The Cache Format

ScDocument::StoreTabToCache allows storing the content (not the formatting) of a table to a binary cache format.

The format is column orientated which allows quick serialization of the table.

  • Header:

    • Number of Columns: 64 bit unsigned integer
  • Column:

    • Column Index: 64 bit unsigned integer
    • Column Size: 64 bit unsigned integer
    • For each cell type block a new ColumnBlock
  • ColumnBlock:

    • Start Row: 64 bit unsigned integer
    • Block Size: 64 bit unsigned integer
    • Type: 8 bit unsigned integer
      • 0 : empty
      • 1 : numeric
        • for each cell: 64 bit IEEE 754 double precision value
      • 2 : string
        • for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
      • 3 : formula
        • for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string

Functions Supporting Wildcards or Regular Expressions

As this comes up every now and then, and rather should be documented in an extra list of the Help system, functions that support Wildcards or Regular Expressions and depend on the setting under Tools -> Options -> Calc -> Calculate are those that in ODF OpenFormula (ODFF) are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see https://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html

  • Database Functions
    • DAVERAGE
    • DCOUNT
    • DCOUNTA
    • DGET
    • DMAX
    • DMIN
    • DPRODUCT
    • DSTDEV
    • DSTDEVP
    • DSUM
    • DVAR
    • DVARP
  • Information Functions
    • COUNTIF
    • COUNTIFS
  • Lookup Functions
    • HLOOKUP
    • LOOKUP
    • MATCH
    • VLOOKUP
  • Mathematical Functions
    • SUMIF
    • SUMIFS
  • Statistical Functions
    • AVERAGEIF
    • AVERAGEIFS
  • Text Functions
    • SEARCH