Calligra/2.2 Changelog
KOffice 2.2 contains more than 3000 changes. Hundreds of commits have gone into the creation of import filters for the Office 2007 file formats: .docx, .pptx and .xlsx. These filters are now usable, though not yet perfect (of course). Hundreds more commits have gone into the improvement of the binary Microsoft Office document file format import filters: .doc, .ppt and .xls. With the help of Nokia, the kofficetests repository has been extended with an enormous collection of problematical or interesting test documents.
The libraries have been refactored and their API reviewed as a step towards making it attractive to develop third-party software on top of the KOffice platform. Kexi has come back into the fold, while Krita is becoming more and more an independent project.
An attempt was made to make KOffice compile and run correctly not only on Linux/Intel platforms, but also Windows, OSX, Solaris and ARM-based platforms.
This is an extensive overview of all important changes committed during the 2.2 development period, which lasted from October 24th 2009 until April 24th 2010.
General
- cleanup code by removing hundreds of warnings
- improve layout of tool option panes
- cleanup library hierarchy
- build fixes for Microsoft Visual C++ compatibility
- build fixes for OSX using Cocoa
- build fixes on Solaris
- Speedup of start-up and stop doing unneeded translations.
- Fix absent IO checking in POLE (used in .ppt and .xls filters)
- Factor out the code for drawings in the Microsoft Office binary file formats to a new library
- use qreal instead of double everywhere possible so KOffice can be used on ARM platforms.
- Fix bug 217282: don't show warning about create resource not found, even if it's found
Libraries
Flake
The big new feature in Flake and Karbon is the effect filter framework. To any element in a document a stack of effects like blurring can be added. There have also been many performance optimizations, crash fixes and correctness fixes.
- Cleanup of the public API of Flake
- Implement a new framework to apply effect filters to shapes and shape groups (e.g., blur any vector shape)
- Fix crash on closing KWord when running against Qt < 4.6.3
- Performance improvement in accessing shape factories
- Fix saving of draw:layer-set. It needs to be saved before the shapes.
- Save the clipping of a shape.
- Fix actions for tools that are not input device agnostic
- Fix loading and saving of grouped shapes
- Fix copy and paste of images to not getting saved multiple times it also makes sure it uses the same image data which saves memory.
- Make pressing space temporarily switch to the pan tool
- Make KoViewConverter more useful
- Make pressing the Escape key go to the default tool.
- Fix transformation retrieval of child shapes of a KoShapeContainer. Before, the transformation did not include the parent's offset, which caused the selection decoration to be painted incorrectly
- ODF compatibility fix: Handle missing fill colors of chart elements
- Optimize shape registry
- Fix several division by zero crashes
- Implement loading and saving of path data of a connector shape as defined by ODF 1.2
- fix crash when creating a new path and clicking with the right mouse button after the first point (while still dragging)
- doubleclick doesn't draw an unnecessary path handle
- don't add paths with only one point
- Fix crash in image handling
- When creating path point initialize control points to the same point as the node point
- disable angle snapping if current path segment is a curve
- Fix bug 227966: keep track of path point and path shape we connect to to prevent crashes when user removes the existing path in between.
- Fix bug 231551: fix crashes when attempting to deform path segment at parameter 0 or 1 (i.e. at the start/end of the segment)
- Fix bug 220200: zooming with a rectangle does not zoom on the area
- Fix bug 212209: undo/redo broken after reparenting
- Fix bug 216828: crash when no shape is returned from the group
- Fix bug 229416: docker is still shown in the new document dialog after closing the current document
- Fix bug 236395: attribute style:protect saved but not loaded
- Fix bug 201688: implemented support for shape opacity/transparency
- Fix bug 185342: On add/remove shape make sure we do collision detection
KoText
KoText has seen many improvements to OpenDocument compatibility, as well as a lot of work to enable change tracking.
- Implement loading/saving and displaying the Table of Contents
- don't create commands during the loading of text; make loading of text exactly one undo action
- Load footnotes correctly
- Make text loading twice as fast
- Load annotations/comments
- Implement loading of image bullets in list style
- Cleanup of KoGenStyles
- Fix positioning of variables when KoPageProvider is used.
- Fix a problem, follow the ODF spec regarding the loading and saving of list delete changes using RDF.
- Begin support for text sections
- Fixes to support page breaks better
- Load and save letter spacing
- Make it possible to use KoText in KSpread for rich tech support
- Implement support for style:default-outline-level.
- Fix text anchors
- Change Tracking: Loading and saving complicated scenarios of delete changes ex: multi-paragraph deletes
- Change Tracking: Save nested change
- Change Tracking: refactor to have separate show and record change
- Change Tracking: Fix the limitation of the tracked deletion of text. Before a deleted region over 1 line would not be properly displayed.
- Change Tracking: Enable the tracking, loading and saving of text containing inline objects including anchored shapes (images)
- Change Tracking: store changes as rich text
- Change Tracking: Save the KDE user full name as the author of a tracked change
- Fix bug 184036: rtl/bidi support on loading an odf, generally improve Right-To-Left support
- Fix bug 220693: A text:line-break tag in ODF is a soft break, load it as such.
- Fix bug 220701: Italics is not implied for hrefs
- Fix Bug: 233803 - Styles not saved for variables
KoPageApp
- Don't save unneeded style. The style information of the background is added to the one of the page. Before this patch unnecessary styles were written out.
- Re-use KoConfigMisc configuration page
- Fix that the presentation tool got wrong mouse coordinates
- only handle the activePageChanged signal when the tool is active. This fixes the bug that the background is updated without selecting the background tool first.
KoOdf
- Fix handling of styles.xml errors
- Some embedded documents, for example ODS docs created with OpenOffice.org 2.0, do not contain their own meta.xml. Use the embedding document's meta file instead.
- Make the reading of margins a bit more in line with css
- Bring styles handling more in line with ODF spec
- Fix documents created with older versions of OpenOffice.org.
- Fix loading charts produced by the excel-filter and allow "./Object1/"=="Object1" just like oocalc does too.
- Optimize loading performance
- Save table properties
- Fix bug 231095: fix hasFile expanding filename incorrectly
- Fix bug 213045: Error in saving page styles
KoPlugin
- Fix sorting of plugins
KoReport
KoReport is a new library for generating reports, at the moment used in both Kexi and KPlato.
- Fix a memory leak
Main
The main new feature in the Main library, which handles high level window, view and document management has been the addition of <a href="http://monkeyiq.blogspot.com/2010/01/koffice-and-rdf-say-it-with-style.html">the RDF framework</a>.
- Implement support for RDF
- Add KoFontFace as a class to keep track of font face information.
- Make the docker manager created by the main window, and remove reference to the docker system in the view
- Fix saving of dockers position after call to hide dockers.
- Make it possible for a tool to exist without an option widget
- Show the correct tool option when switching between mouse and tablet
- Fix bug 228029: Only show the filename in the window title.
- Fix bug 215409: crash on closing an application
Pigment
For Pigment, the color management and manipulation library, the big thing has been making Pigment itself independent of <a href="http://www.littlecms.com">LittleCMS</a>. LittleCMS support has moved to a plugin, which is essential for Krita to run, but not for the other applications. This way, applications that do not need color management can save runtime memory consumption as well as gain startup speed.
- Fixed an alpha-bug in KoConvolutionOpImpl
- Move LCMS support into a separate colorspace engine plugin
- Move OpenGTL support into a separate colorspace engine plugin
- Implement simple default color spaces applications that do not need color management can use, saving memory
- Refactor the API to use colormodel/depth to get colorspaces
- Refactor and fix convolution
- Fix many memory leaks
- Improve the alpha darken to mix colors. This fixes painting when the color brush change (either for "mix" or for "darken" options)
- Fix crash when grabbing an alpha color space
- Hide the cloning and deletion of color spaces: fixes memory leaks
- Cache color spaces for performance improvements
- Implement floating point alpha channel handling
- Speed up the conversion between float/integers
- Fix bug 227506: Ignore color space that don't have a factory when grabbing, fix crash when applying tonemapping
- Fix bug 231418: painting and adding layer on non 8bits images
- Fix bug 218091: always fallback to one of the profiles if no profile wasn't found so far
- Fix bug 228173: fix crash in color curve filter by making sure that the best histogram producer is the one that match both color depth and color model
- Fix bug 224233: Don't crash if we cannot find a profile
- Fix bug 176536: makes Subtract behaves like the Gimp, and an inverted subtract
- Fix bug 176536: omposite op changes the alpha of destination pixels
Widgets
- Add line selector to the widgets API, will be used by kexi forms and reports as in koffice 1.x
- Allow resource server to load more than one resource per file
- Optimize the triangle color selector
- Improve KoSliderCombo widget
- Fix memory leaks
- make sure imported resources have unique filenames
- Fix clicking on a resource generating 2 undo states.
- Fix bug 217295: restore reset function in dual color button
- Fix bug 217284: crash when importing data from the clipboard
- Fix bug 228925: crash on deleting resource
Kross
- Fix bug: Don't show disabled scripts in the scripts menu
Applications
KWord
For KWord, apart from the focus on improving the Microsoft Word file formats (.doc as well as .docx), many improvements in page layout have been committed.
- Add import filter for MS Word 2007 documents (.docx files)
- Implement and show page borders
- Make printing use the proper page size in KWord (to PDF)
- Fix crash in KWord when loading document with several text shapes.
- Show footnotes as rich text
- Load and save annotations
- Don't show endnotes as footnotes
- Fix various bugs related to footnotes.
- Implement RDF support, nepomuk integration.
- Fixes to the layout of anchored frames
- Fix page padding
- Fix issue with multiple zoom controls appearing in the statusbar
- Implement guide lines
- Fix off-by-one error in page handling
- Don't auto-remove the only page on shape-delete
- Adding next / prev page actions to KWord.
- Show tools status updates in statusbar
- Add the actions insert and delete page, with a dialog to allow the user to choose where to insert it
- Add background color to the page style
- Fixes marking doc modified on opening
- Fix the doc being 'stuck' to the top while loading: this also improves the loading speed.
- Improve the page layout dialog
- Add new feature; un/clip frame: clipping a frame means you get two outlines on selection, one is the original and the other is the visible one. So you can show only a part of an image, for instance
- Fix memory leaks
- Fix using the page dialog with pagespreads setting the wrong size
- Fix bug 214958: Pages are added continuously when header is more than one page
- Fix bug 205263: Anchored shape isn't movable
- Fix bug 228309: Don't remove empty frames for headers/footers
- Fix bug 212336: Fixes crash on loading doc with anchored image
- Fix bug 231846: Fix NaN creation on height or width zero.
- Fix bug 225312: Anchored frames can have to listen to paragraph alignment
- Fix bug 233074: crash on split view + close view.
- Fix bug 209940: On appending pages, reuse lastPage pagestyle.
- Fix bug 213238: inserting Page break don't move the view
- DOC Filter: Add support for vertical text to the .doc filter
- DOC Filter: Add support for drawings to the .doc filter
- DOC Filter: Vertical text boxes added to .doc filter.
- DOC Filter: Add handling of page borders.
- DOC Filter: Make the MS Word import filter handle hyperlinks in the text.
- DOC Filter: Improve import of tables
- DOC Filter: Don't close lists in tables if there isn't an open list.
- DOC Filter: Make the msword-odf filter handle embedded EMF files in addition to WMF.
- DOC Filter: Fix opening url hyperlinks
- DOC Filter: Adding Footnote start-at option for msword filter
- DOC Filter: Added Custom footnote and Chicago style implementation
- DOC Filter: Add support for loading comments/annotations
- DOC Filter: Don't show hidden text
- DOC Filter: convert outline font as well
- DOC Filter: support letterspacing as in condensed/expanded text
- DOC Filter: Support alignment of list counter alignment, beginning support of list counter width and spacing
- DOC Filter: Add support for OfficeArt in concept/basic implementation and in particular for the line type
- DOC Filter: make sure line spacing is calculated correctly
- DOC Filter: Fix crash due to lists being started and stopped in various parts.
- DOC Filter: Improve import of Table of Contents
- DOC Filter: Fix crashes when loading some .doc files
- DOC Filter: Added support for shading patterns in cells of tables.
- DOC Filter: Handling of table row height fixed
- DOC Filter: Get the footnote/end note settings out of the DOP
- DOC Filter: Parsing of headers/footers for a section with a "Continuous section break" enabled.
- DOC Filter: Fix background color conversion
- DOC Filter: Fixed a bug in page-layout creation
- DOC Filter: Support drop caps
- DOC Filter: Windows media player is added to doc file as HostControl. Support for it has been added.
- DOC Filter: Character styles output for pictures when no text with that style available fix
- DOC Filter: Support for section's first page.
- DOC Filter: Horizontal alignment and margin-left support for tables
- DOC Filter: Added page-background information into page-layout
- DOC Filter: Fix bug with page numbering
- DOC Filter: Support for a horizontal rule referring to a picture.
- DOC Filter: Import wv2 library and convert to use kDebug
KSpread
An enormous amount of work has been committed on KSpread. There is now a functional Excel 2007 import filter, and the legacy Excel 2000/2003 import filter has seen many improvements. But KSpread itself has seen improvements all over the place: rich text in cells, calculation correctness, many crash fixes, as well as a new default layout for the gui.
- Add import filter for Excel 2007 documents (.xlsx files)
- New default layout for the GUI (dockers, toolbox, toolbars)
- Allow "." (dot) in identifiers, following the ODF spec
- implement the MULTIPLE.OPERATIONS function
- Fix crash on exit by don't trying to save changes on exit in endReferenceSelection.
- Fix dangling pointer crash if the FormulaDialog survived the cellEditor by making sure the FormulaDialog is destroyed too if the cellEditor got destroyed.
- Fix crash if the first column/row was used for operations like inserting a cell.
- Fix handling of dates. The Value::Format logic does not work correct here and we need to set the FormatType manually and need to rebuild the style from scratch after changing it.
- Basic display of datetime date in the cell
- OO.org Calc and Excel operations done with +, -, * and / do fail if one of the values is non-numeric. KSpread does behave the same now and displays an #value error in that case. This differs from formulas like SUM which ignore non numeric values.
- Fix #REF error for invalid cell/sheet references
- Fix generic format was selected rather then currency if no currency format was provided. We are using the default format now in that case.
- Fix crash on saving if the currentCellStyle was not located in the mainStyles.
- Fix handling of text:span elements. Now text:a elements will even be discovered if embedded in a text:span element.
- Both, '!' and '.', are valid sheet delimiters. This fixes links between sheets in ODS documents that are using the '.' char as delimiter. Every other place in KSpread handles it already except the sheet-filter which is used for links between sheets.
- Fix handling of ASIN, COS and ACOS by stricter checking the argument as described in the specs.
- Do the same OO.org and Excel do and don't show the formula indicator by default. This gets right of all those blue little triangles in cells with formulas. They can still be enabled per sheet/document by using the sheet-properties.
- add (very basic) support for style:font-name as a way of specifying the font to use
- better handling of negative values in fractionFormat
- Always set the user input to the actual value read from the cell, and not whatever happens to be set as text, as the textual representation of a value may be less accurate than the value itself, and thus can not be trusted to be what the user entered.
- make loading of fraction styles a bit more robust
- fix bug where StyleManager::style() could return 0 when name=="Default" by adding an extra check to make sure m_styles actually contains a style with the given name before returning it
- fix saving of column styles; previously the column style of the first column after a bunch of empty/default columns would not be saved as the number of adjacent empty columns was calculated to be 1 too high
- Added Header/Footer Printing functionality
- Support sheet names.
- Performance improvement: Only update relevant region. This bug changed the complexity of updating a changed region from O(n) to O(n^2). Which was the reason that large documents with lots of charts in it practically never finished loading.
- Basic rich text support in KSpread; currently loading, saving and rendering mostly works, editing is not really possible yet
- Improve password protection
- Use currency formatting for numbers pre- and post-fixed with currency symbols
- Fix saving named areas. Now this can be read again by OpenOffice.org and KSpread.
- Improve currency support
- Fix crash on save by explicit allowing maximal KS_colMax/KS_rowMax
- Fix crash if the saved cursor-position is beyond the boundaries.
- Thumbnail support for KSpread
- Fix crash if an invalid Binding() was created.
- Fix handling of percent formatting. Only add the % sign if the formatting mask does not already define it. This prevents displaying of two % signs of the formatting mask already defines the postfix to display.
- Increase the range where a number is detected as plain number rather then as scientific number to be closer to the value oo.org uses and don't choose to early to switch a plain number to a scientific number.
- Lots of bounds checking for the maximum number of rows and columns KSpread supports
- Implement the intersection operator
- Do as OpenOffice.org and treat empty references as 0.
- Mimic OpenOffice.org and give precedence to the already applied style instead of the cell style for currency cells.
- Don't relay on table:columns to be defined to determinate the table's dimension but be more flexible in the interpretation and allow the cells themselves to define the dimension too. This is inline with how OpenOffice.org behaves if not columns are defined minues the obscure 'cells exceed maximum' error-message oocalc displays but then continues.
- Support style:shrink-to-fit in KSpread: Shrink the font size to make the displayString fit the cell
- fix the KSpread default docker layout to be somewhat more sane
- Load shape size correctly for shapes anchored to a cell
- Made loading datetimes from ODF work as expected. This fixes the datetime-tests in http://plugtest.opendocsociety.org/doku.php?id=scenarios:20100415:yearfrac
- fix bug in loading of merged cells in repeated rows, the merging should apply to the cell in all the rows
- fix the sumif function; the 3rd parameter specifies the location of where to get values to sum, it doesn't specify the exact range
- fix parsing of range reference that include explicit sheet names in both first and second cell of range.
- fix dependency calculation, don't skip the first cell in each row when calculating dependencies.
- Don't take forever saving a document because generating a thumbnail tries to render the entire document. Drawing just the top 100x100 cells should be more than enough
- make the Areas function work as expected when a union of regions is passed as parameter
- Fix ASC function. Its just conversion to single byte chars and NOT the text "FIXME ASC()" :-/
- Fix display #value error rather then #na error like oo.org.
- Fix the SUBTOTAL formula.
- added the FORMULA function which allows to return the string representation of a cell's formula.
- Fix ROUNDUP() and ROUNDDOWN() functions to behave like it's done in OpenOffice.org.
- Fix one more yearfrac testcase from http://plugtest.opendocsociety.org/doku.php?id=scenarios:20100415:yearfrac
- Make KSpread support input methods (for Chinese, for instance)
- Fix performance issue when displaying the sheet
- fix drawing of sloped down angled text
- improve handling of horizontal alignment with vertical text
- change the way wrapped text is rendered. Previously when wrapped text didn't fit in the cell, KSpread wouldn't wrap it at all, now it still wraps the text and just clips it to whatever fits in the cell
- Improve text rendering: Use a font created on a KoPostscriptPaintDevice when painting to make sure we get the exact same dimensions as what was there during calculation of the size of the text.
- Fix drawing of grid border and colored cells
- Fix thai text.
- Add unit test for the two-parameter version of MID which exposes a Qt bug, and add workaround for that bug.
- DateTime conversion in the excelimporter: proper conversion for values passed as date time from .xls to .ods.
- Implement the BAHTTEXT function that converts a number to a text in Thai characters (baht).
- Implement global Name FormulaToken and fix ExternName FormulaToken.
- Add support for vertical alignments Distributed and Justified when loading excel files
- Eval also style:map's that are located in the styles.xml.
- Handle all supported image formats (empf, wmf, pict, jpeg, png, dib and tiff). code borrowed from libppt.
- Handle Excel's workbook/sheet protection
- Set Text-Under-Icons text-position for all toolbars
- Fix crash in KSpread on closing a document while the textshape was selected.
- Make KSpread use conditional styles. Number precision from number format string, if provided.
- Fix accounting format
- Fix rich text detection in KSpread: There is no need to interpret text as rich text just because the element has a <text:s> child (spaces) (also ignored: <text:tab> (\t)).
- Fix bug 201312: crash in KSpread trying to edit cell containing an incomplete equation
- Fix bug 198667: column/row actions.
- Fix bug 216761: the table was put to 0 before to deactivate the the cell, but the mouseMove for instance is still called, it crashed.
- Fix bug 207584: crash on pasting odf with a spreadsheet
- Fix bug 186626: table shape crashes on choosing the sheet in the tool options
- Fix bug 130609: split format-toolbox into font-toolbox and format-toolbox
- Fix bug 225068: Fix crash when open a ods file create with Google docs
- Fix bug 222141: Fix crash when creating new sheet
- Fix bug 222038: Fix crash when a KSpread file is read
- XLS filter: made BRAI formulas be evaluateded correct when loading .xls files
- XLS filter: support super- and subscript
- XLS filter: support bar charts
- XLS filter: add support for merged cells to the xls filter
- XLS filter: Improve substream support: move handling of record in the globals substream to its own class.
- XLS filter: properly support nested substreams. This fixes problems with data in charts overwriting data in the sheet the chart is in.
- XLS filter: autogenerate record classes from xml instead of handcoding them
- XLS filter: Implement reading of meta information like title, author, keywords and creation / last modified dates.
- XLS filter: handle currency formatting
- XLS filter: improve handling of double line borders
- XLS filter: improve handling of the various vertical alignment options
- XLS filter: add support for rotated text to the xls filter
- XLS filter: add support for vertical text to the xls filter
- XLS filter: add support for rich text strings to the xls filter;
- XLS filter: improve image support
- XLS filter: Fix handle also errors by letting Value::asString return the errorString that is then written to the ODS
- XLS filter: Made loading comments/notes/annotations work.
- XLS filter: Write also the settings.xml to include settings like the activate sheet
- XLS filter: made also initial cursorPositions and scrollPositions work
- XLS filter: load from excel also if the grid should be display, if zero values should be displayed, if we are in page-break-view mode to set the page-borders and if automated calculation is enabled/disabled.
- XLS filter: Made named areas work.
- XLS filter: Made diagonal borders work.
- XLS filter: fix handling of pen widths, handle also the "draw both diagonal borders"
- XLS filter: Fix handling of default cell-styles
- XLS filter: Compress repeating content using the ODF tags number-columns-repeated and number-rows-repeated: improves performance by a factor of 4
- XLS filter: Show the loading progress.
- XLS filter: Improved support for charting
- XLS filter: Load pie-charts
- XLS filter: allow multiple series per chart
- XLS filter: Implementing legends
- XLS filter: Made title-texts for charts working
- XLS filter: Support 3D Pie-Chart.
- XLS filter: Fix content got lost if more then 1024 columns where used cause of a hard-coded maximal column value in Sheet::cell.
- XLS filter: don't save built-in named ranges (that aren't really named ranges in the first place) as named ranges, but save auto filter ranges as auto filter ranges.
- XLS filter: Fix time formatting.
- XLS filter: Fixed time-values always where 0:00 cause of an invalid value for the ms (the , char) plus a wrong place for the second char S.
- XLS filter: Fix handling of dates.
- XLS filter: Implement handling of fraction formats.
- XLS filter: Evaluate also the number:min-integer-digits of fractions
- XLS filter: Handle also the other way Excel specifies conditional formats.
- XLS filter: Fix ROUNDUP, ROUNDDOWN and ROUND functions.
- XLS filter: Fix handling of currency symbol formats like €, $, £ and ¥ and there country and language associations.
- XLS filter: save the font-family in the fo:font-family attribute, not in the style:font-name attribute; style:font-name would require a separate font-face style declaration that has the actual font definition
- XLS filter: properly set default cell styles on rows and columns as read from the xls file
- XLS filter: in odf default-cell-style's only apply to cells (or at least columns) that are present in the file in xls though row styles should apply to all cells in that row, so make sure to always write out 256 columns
- XLS filter: Parsing Header/Footer information from Excel file. Now KoGenStyles are used for saving style info.
- XLS filter: handle the text formatting
- XLS filter: bit better position+size for images but still not like Excel :-/
- XLS filter: Excels default columns width is, if not defined otherwise, 8.43 and not 8. Looks more correct now.
- XLS filter: Added code to also special case the RAND() formula.
- XLS filter: fix width+height of images
- XLS filter: Start to use the NumberFormatParser for pre-XML Excel
- XLS filter: Improve saving of settings, including protection: use own tags for both to be sure that oo.org ignores the protection (oo.org uses an own hack, 'VelvetSweatshop' :-) )
- XLS filter: Implement handling of patterns
- XLS filter: Finally fixed the SUBTOTAL formula.
- XLS filter: More robust hyperlink-logic. Also fixed exclusive linkName vs text-content handling.
- XLS filter: Limit processing of rows*columns to KSpreads maximal supported number of rows*columns. This should get right of long load-times for rows*columns that KSpread does not process at the end anyway.
- XLS filter: A row can have a body without having a rowstyle. Handle that case by moving the row-compression logic to the rowsRepeated method and let it dynamically look-up if the value was not cached before. This fixes an assert with an interesting document that seems to contain lots of bug-triggers :)
- XLS filter: Set the pie-explode factor.
- XLS filter: Improve XML produced by the xls filter — make it correct.
- XLS filter: un-break row-repeat logic.
- XLS filter: fix loading datetimes like those in http://plugtest.opendocsociety.org/lib/exe/fetch.php?media=scenarios:20100415:yearfrac.xls
- XLS filter: fix caching of rows repeated values. using row index as a key doesn't really work when there is more than one sheet in the document
- XLS filter: Implement support for loading shared formulas (when the same formula is used in multiple cells excel only needs to save one copy of the actual formula). This adds support for the SHAREDFMLA record and the REFN formula token.
- XLS filter: Add support for internal references to other sheets. Only simple cell references for now, no support for area references yet.
- XLS filter: Also add support for area references to other sheets in the same workbook (area3d token)
- XLS filter: Add support for AreaN tokens
- XLS filter: Add support for data tables to the xls import filter
- XLS filter: Fix the decodeRK code; integer/100 is not always an integer, so don't pretend it is
- XLS filter: Improve Unicode support
- XLS filter: Implement Hyperlinks
- XLS filter: Make custom formatting work
- XLS filter: Fix MINUTE formula, added deprecated comment for those formulas that are deprecated by Excel itself
- XLS filter: Implement areaMap's which are a form of array's. Since they can be used in various formulas and some formulas even require sich areaMap's, this will make a lot of formulas work correct that did not before.
- XLS filter: Implement token's with id 0. The are named "continuous records" in the excel jargon and need to be ignored. This gets right of the "Unknown" text's that are sometimes in a formula without a logical reason.
- XLS filter: Fix handling of matrix's caused by an off-by-one. The first byte is reserved and the real data start after it.
- XLS filter: add handler for hcenter, vcenter and setup to don't show them any longer in the not-handled list
- XLS filter: Improve support for embedded objects
- XLS filter: Add support for loading THAI date/time functions and other excel-specific functions like ISHYPERLINK or RTD
- XLS filter: Fix Bug 221352: loading of very long strings
- XLS filter: Fix alignment of numbers with scientific formatting
- XLS filter: Improve support for chart substreams
- XLS filter: Improve support for Office Drawing
- XLS filter: Fix loading of border colors
- XLS filter: Fix DAYS360 formula
- XLS filter: Fix handling of Name tokens. This makes the Blank-Loan-Template.xls (a loan calculator) work.
- XLS filter: More performance improvements!
- XLS filter: Much improved sanity checking
- XLS filter: fix loading of value formats.
- XLS filter: fix memarea token handling (it is only a marker, and thus should be ignored just like MemErr and MemFunc)
- HTML filter: Added HTML import filter for KSpread. Supported are HTML files exported by KSpread and Excel so far.
KPresenter
KPresenter has seen a lot of work as well. The beginning of a new animation framework. There is the addition of a Powerpoint 2007 import filter but also a completely new Powerpoint 2000/2003 import filter. The work done by the ISI students is not yet integrated in KPresenter, their OpenGL based page transitions will be in 2.3.
- Add import filter for Powerpoint 2007 documents (.pptx files)
- Make the PowerPoint filter handle dates and times.
- fix presentation:date-time variable
- Added Feature to autohide the cursor during presentation mode
- Make sure presentations also work on dual screen setups and not just xinerama
- Start of a new animation framework!
- Add some common shortcuts to start the presentation
- Write valid odf for the paragraph style
- Added presentation declaration changes in the ppt filter
- implement setting of the correct values for presentation variables.
- fix loading of presentation declarations
- rename some variables and reuse them also in presentation variable
- PPT filter: Adding changes due to divide error and also adding pdf support in script
- Implement saving for presentation variables and presentation declarations.
- Base the ppt filter on msoscheme: use a generated parser
- add attributes for showing header, footer, datetime and page number.
- Fix bug 185354: Slide layout outline is shown under the slide contents
- PPT filter: Add support for fillDztype which determines the dimension units for background images.
- PPT filter: Add support for converting the background image in a ppt file.
- PPT filter: Added support for the following text styles to KPresenter's PowerPoint filter: position, shadow, emboss, underline, alignment
- PPT filter: Extended paragraph and text styles are now loaded from PowerPoint files.
- PPT filter: Fix handling of slide numbers:
- PPT filter: Fix display of background color for text frames.
- PPT filter: Improve handling of bullets in lists for PowerPoint files.
- PPT filter: Convert replacement OLE object picture
- PPT filter: Fix loading of pictures and embedded objects
- PPT filter: Add basics for converting background bitmaps
- PPT filter: Fix parsing of paragraph top and bottom spacing.
- PPT filter: Added footer declaration support in KPresenter filters
- PPT filter: Port "powerpointimport" to generated parser
- PPT filter: Fixes to frame line conversion.
- PPT filter: Fix regressions related to bullets, coordinates and adds some new types.
- PPT filter: Global graphics style is now generated from the OfficeArtDgg instance.
- PPT filter: Exit with non-null exit status on conversion error.
- PPT filter: A number of crash fixes and improvement of ppttoodp
- PPT filter: Make sure the color value is always initialized.
- PPT filter: Added a rudimentary support for hyperlinks within PowerPoint files in PowerPoint filter.
- PPT filter: Support global style:stroke-dash elements.
- PPT filter: Improved default styles support
- PPT filter: Improved master slide support
- PPT filter: Add support for slide notes.
- PPT filter: Support graphic styles for the placeholders in the master slides.
- PPT filter: Fix notes master.
- PPT filter: Add the set2dGeometry function, used to set the rotation, height, width, x and y for a given container.
- PPT filter: Proper text splitting
- PPT filter: Improve link handling in msoscheme.
- PPT filter: Add styling information to the text:span and text:link elements.
- PPT filter: Add paragraph styling
- PPT filter: Add support for bullet lists
- PPT filter: Support shape and slide background images.
- PPT filter: Fix bullets occurring in titles and make sure template styles after a coordinate transformation are stored in the right xml file.
- PPT filter: Fix numeric formatting of shadow-opacity: this value should not be printed in scientific format, i.e. 1e-10.
- PPT filter: Make finding of master styles more robust.
- PPT filter: a style that may later be used as a parent style should not be an automatic style
- PPT filter: Add derived styles for center body and center title
- PPT filter: Improvements to list conversion
- PPT filter: Fix display of simple numbered lists.
- PPT filter: Better detection of whether or not a line is a text item or a normal line.
- PPT filter: Support picture bullets.
- PPT filter: Improve OpenOffice.org compatibility of the output of the PPT filter
- PPT filter: Fix coordinate transformations for lines.
- PPT filter: Define the arrows needed for ppt file support.
- PPT filter: Fix finding of the right character style.
- PPT filter: Better detection of the distinction between bullets and automatic numbering.
- PPT filter: If an image shape has no image data, just place an empty frame.
- PPT filter: Add support for more arrow types
- PPT filter: Fix parsing texts that are a mix of meta-characters and plain text.
- PPT filter: Write the attribute presentation:class for footer, header, page number and date/time frames.
- PPT filter: Set the attributes presentation:class and presentation:placeholder.
- PPT filter: Write date and time in XML Schema format
- PPT filter: Fix outlines of graphics (Add explicit draw:stroke="solid")
- PPT filter: Fix a crash in password protected file.
- PPT filter: Add support for compressed emf, pict and wmf pictures.
- PPT filter: Support for nested bullets.
- PPT filter: Fix getting text for text boxes.
- PPT filter: Add styling to text in text boxes.
- PPT filter: Expand the conversion of OfficeArtCOLORREF to take the color scheme into account in some cases.
- PPT filter: Fix loading of images with invalid blipStore
- PPT filter: Handle msosptHostControl and show it as a picture.
- PPT filter: Big speedups in parsing ppt files (Converting 2491 ppt files taking up 6.6 Gb in a directory called ppt with the command 'ppttoodp ppt' took 8 minutes 20 seconds. This means 5.0 files per second or 13.5 MB per second.)
KChart
KChart has seen many fixes as well, and an upgrade to a new version of <a href="http://www.kdab.com/?page=products&sub=kdchart">KDChart</a>.
- fix crash if the chart is resized so that the plotarea gets a zero width or height.
- Fix missing stroke for chart:legend element in KoOdfWorkaround
- Update KDChart copy to v2.3
- Fix legend painting bug
- Fix KDChart bug: A diagram's brush and pen were retrieved with a wrong header orientation
- Draw ring chart segments in correct order
- Draw data sets in area diagrams in correct order, so that the first data set is in front
- Fix calculation of explode factor.
- Fix default legend labels in ODF are 1,2,3,... and not Item 1,Item 2, Item 3, ...
- Make data direction load from the correct place. That place is the plot-area style, not the plot-area element.
- Set axis title shape as 'clipped', so that its position is relative to the chart container
- Fix crash in KSpread upon loading of a document with an embedded chart, as well as a crash in the chart data editor that occurred when the data direction was changed.
- Load chart shape style, and set a white solid background if no background style is specified in the document
- Do not set a white background if no background was specified in the ODF file. Otherwise, a background that the user might have removed will be overwritten by a white one after saving + loading.
- Correctly implement CellRegion::stringToRegion(), using regular expressions. Now both absolute as well as relative cell addresses can be parsed.
- Load table headers as regular data to make it editable by the user.
- Load plot area's table:cell-range-address, and use it to determine the data sets's data regions if they're not specified explicitly.
- Create data sets with x data regions assigned if data dimension is 2.
- Fix handling of charts with more than 2 data dimensions
- Begin work on loading of chart subtype attributes in Axis
- Add 'visible' property to Axis
- Make sure invisible x axes are not added to charts.
- Refactor the way kchart and kdchart are interwoven
- Fix stroke and colors
- Scale relative positions of chart elements relative to the top left corner of the chart.
- Show lines instead of markers in legend when chart type is either LineChartType or ScatterChartType.
- Automatically adjust legend to chart data
- Implement chart:display-label property.
- Set plot area's three-dimensional attribute on a newly created diagram.
- Fix interaction with KSpread when there are multiple sheets
- Fix crash if a BubbleDiagram or StockDiagram is loaded
- Fix an issue in the chart config widget where a separator was wrongly placed when the chart type was Pie.
- Fix enabling/disabling handling of axes
- Fixes the used colors in http://websvn.kde.org/trunk/tests/kofficetests/interoperability/KSpread/oocalc/oos_pie_chart.ods?view=log
- Fix handling of cellranges, like range-notations like Sheet1.D2:Sheet1.F2 as well as Sheet1.D2:F2. Improves compatibility with OpenOffice
- Fix crash that happened cause we did not remove axis from automaticallyHiddenAxisTitles on remove/delete axis and once deleted dangling pointers left.
- Fix black background where a transparent background was expected.
- Fix orientation if it was not explicitly defined
- Don't evaluate the data-source-has-labels if a category with a cell-range-address was defined in an axis. This implements the condition described in paragraph 10.7.1 in the ODF 1.2 specs.
- Fix via chart:categories defined vertical cell ranges. This fixes the in the legend displayed items of http://websvn.kde.org/trunk/tests/kofficetests/interoperability/KSpread/MSExcel2000/me00_pie_chart.xls?view=log
- Made loading and showing of title, subtitle and footer work as expected by reordering the loading to be able to apply showLabel to the shapes.
- implement the loading of the exploding factor.
- Follow OpenOffice and always default to a vertical data direction [1] if not defined otherwise.
- Load+save data-label-text attribute for series
- Apply ODF workarounds even if chart:style-name attribute of a series is emitted (even more importantly so then)
- Scale sizes and painter from pt to px for use with KDChart, as it thinks in terms of pixels.
- Check for invalid 'first' and 'last' values and adjust them to be valid if possible. This fixes a crash that happens cause the produced ODS references cell's which are outside of our dataset's (see bug #158840)
- Fix bug 171324: plot area shrinks but never grows
- Fix bug 219907: KSpread ignores table:end-cell-address, for embedded shapes
- fix bug 233468: Chart shape crashes upon edit in data region editor in KSpread
- Fix bug 204121: crash during destruction of chart shape
KFormula
- Fix two crashes detected by TestLoad test suite
KPlato
KPlato started using a new project scheduler library and started cooperating with Kexi in using the new KoReport library — apart from many other bug fixes!
- Removes popup dialog to enable/disable scheduling debug messages if not debug build.
- Add unit test for calculation of duration when all resources are not available the whole duration.
- Spellcheck thoroughly all user-visible strings
- Add undo/redo for currency settings
- Add task/subtask: Use toolbutton menus to add milestones,
- Add copy to clipboard of scheduling log data.
- Fix bug in task status model and add manual refresh.
- Save/load group type, update example project.
- Interface librpcs, genetics based Resource Constrained Project Scheduler by Robert Lemmen.
- Add experimental reports using the kexi report designer/view.
- Add usage of report design dialog that can edit exiting reports, create new reports and edit/save report files.
- Unify undo/redo command names.
- Scripting: give access to performance/cost data, fixup/add examples.
- Reports: Add a sample report, give access to some interesting project values, and fix bug in schedule manager setting.
- Use correct locale when reading money in task and resource dialogs.
- Make it possible to get cost from the cost breakdown model as a non-formatted value.
- Append nodes dropped on a node. Move nodes back to original positions when undoing.
- Add cost account for resource assignment
- Add the show project action to gantt view too.
- InsertProject: Insert dependencies, and always insert tasks in correct sequence.
- Try to calculate ACWP even if data is insufficient.
- Respect resource allocation of less than 100%.
- Treat all working resources alike, fix bugs in material resource scheduling, add unit tests.
- Fix: Task startup and shutdown costs are not calculated to account.
- Improve calculations of early/late start and finish
- Fixes scheduling when converting between different timezones make datetime cross midnight.
- Add lots of what's this help
- Fix crash when items are removed
- Fix incorrect tooltips
- Add the schedule manager to the base view for convenience
- Use KoReport to produce reports
- Fix bug in initial positioning of node items
- Improve the report export dialog.
- Reports: Position printout correctly on paper and use the margins other settings.
- Plotting: use klocale and fix calculation of major tickmarks.
- Add several more types of reports
- Report: Add printing, html export and ods export.
- Fix bug 232613: Bad performance in Calculate Schedule
- Fix bug 237074: Cannot handle remote files
- Fix bug 236417: Crash on insert project file
- Fix bug 236841: Crash after insert file in save/autosave
- Fix bug 230437: set reasonable default allocation value (100%).
- Fix bug 230434: Indicate when estimate, optimistic, pessimistic (tooltip + parenthesis around value) and estimate calendar (tooltip) is not relevant because of other settings.
- Fix bug 231902: Calendar: Show values defined in parent calendars (in italic) to make it clearer that sub-calendars inherit from parents.
Karbon
Karbon has seen many improvements to the SVG import filter and, as noted in the Flake library section, a whole new set of effect filters that can be used to, for instance, blur a vector shape.
- Fix crash in calligraphy tool
- Make gradients use bounding box mode
- Introduce a context for filter effect loading to be able to pass additional data to the loading functions
- fix crash when importing gradients from old karbon file format
- Filter effects: allow editing filter effects on groups too
- Filter effects: implemented support for changing filter effect region on canvas via the mouse
- Filter effects: improve resizing behavior
- Filter effects: added basic support for editing filter regions
- Filter effects: implemented svg effect feColorMatrix
- Filter effects: implemented filter effect feFlood
- Filter effects: fix color matrix effect calculation
- Filter effects: implemented svg filter effect feComposite
- Filter effects: implemented svg filter effect feBlend
- Filter effects: implemented svg filter effect feComponentTransfer
- Filter effects: implemented filter effect feImage
- Filter effects: fix parsing of blur deviation
- Filter effects: implemented filter effect feMorphology
- Filter effects: implemented feConvolveMatrix filter effect
- Filter effects: added more controls to edit convolve matrix effect properties
- Filter effects: added support for editing kernel matrix
- Filter effects: Optimizations to filter effects
- Fix bug 215609: only select last calligraphy stroke if it is still inside the shape manager
- Fix bug 201065: add support for raster images when importing graphics
- Fix bug 214274: do not crash if there is no page style found when loading odf
- Fix bug 217287: use filter manager to get list of valid mimetypes for importing
- SVG filter: fix parsing default filter effect subregion
- SVG filter: parse shape level opacity after fill and stroke so we can multiply to fill/stroke color
- SVG filter: fix parsing gradients and patterns where a fallback color is provided and use the provided fallback color if the referenced gradient/pattern does not exist
- SVG filter: if a toplevel group shapes has filter effects, do not convert it to a layer
- SVG filter: fix parsing polyline/polygon points
- SVG filter: added very simple/naive css style support
- SVG filter: add proper css styling support to the svg import filter
- SVG filter: handle "inherit" attribute value for gradient color stops and style attributes
- SVG filter: include font attributes when collecting styles so they benefit from the css style sheet support too
- SVG filter: fix broken gradient parsing when coordinates are in bounding box coordinates
- SVG filter: fix calculation of filter effect regions (take viewbox transformation into account)
Kexi
Absent for two releases, Kexi is back again! Following on several years of work, nearly 350 commits created during the 2.2 development period mean that Kexi is once again included in the KOffice suite. Welcome back!
Krita
For Krita, please see the release announcement and change-log on <a href="http://www.krita.org">krita.org</a>. Krita is transitioning from a KOffice application to an application based on KOffice technology.
F-Office
Not included in the release as such, after 2.1 was release, Nokia committed the F-Office application to the KOffice repository. F-Office is the mobile version of KOffice, available for installation on the Maemo platform. It brings viewing capabilities for word-processing, spreadsheet and presentation documents to Maemo.
Plugins
Text Editing
- Fix spell checking
- Fix bug 222893: Composed fractions have added A hat
- Fix bug 229328: autocorrection doesn't take capital letters into account
- Fix bug 222893: Fixes Composed fractions recognition
- Fix bug 229328: Fix autocorrect punctuation handling
- Fix bug 229327: remove useless autocorrection entries
Text Shape
- Fix keypad arrow don't work when numlock is off
- Fix inline images (as-char) not taking space anymore.
- Fix crash when deleting last character in Align Block mode
- Fix handling footnotes
- Support alignment of list counters
- Make pasting correctly call the editing plugins
- Support image bullets
- Fix crash during text layout
- Implement table-of-contents generation
- Fix adding a text shape adds eleven undo actions: turn off undo while populating doc
- Implement start of accept/reject framework for change tracking
- Draw tableborders even if they are invisible. This is useful while editing.
- Initial implementation of configuration of change visualization
- Fixing paragraph border position, Displaying end notes and default margin value if it is not set.
- Implement accept and reject changes
- Fix: display of deleted change is done on the wrong text shape when a document contains several text shapes.
- Fix crash when in a paragraph there is a underline or strikeout formatting which starts a bit into the paragraph.
- Add new bullet and numbering option button with visual representation of the list style
- Make sure the strike-through and underlines move up and down along with subscript and superscript.
- Start support for animated text (especially for presentations)
- Enable the cut/delete of text containing inline anchored shapes with undo/redo support
- Enable the tracking of changes in Lists
- Fix line spacing
- Fix background color in formatting preview
- Add preview of list-item numbering and concepts to formatting preview
- Improve design of texteditor plugins
- Fix bug 210759: Fix painting of the underline
- Fix bug 198018: Make input methods (CJK text entry) work much better.
- Fix bug 226774: KWord shows end notes among footnotes
- Fix bug 231668: Remember which text comes from which note and avoid duplicates
- Fix bug 234135: keypad arrows don't work when numlock is off
- Fix bug 230557: Take selection into account when changing text-direction
- Fix bug 230882: Fixes text-direction button didn't set 'auto' in selection
EMF/WMF
- Create a new vector image shape plugin to handle embedded vector graphics for Microsoft file formats: emf and wmf.
- Support VML
Styles Docker
- Make the styles docker generally available, not just in Karbon
Path Shapes
- Workaround OpenOffice.org bug on polar handles
- Guard against bad input from an ODF and avoid crashing on that.
- Improve performance
- Add more arrow shapes
- Add the ability to load the draw:mirror-vertical and draw:mirror-horizontal properties.
- Fix crash when moving handles of the rectangle shape
- Fix bug 233951: updating values on unit spin boxes
Picture shape
- Fix usage of the pixmap cache
- Fix bug where only one image was rendered on a page
Video Shape
- Create a video shape that can play a video that is embedded in the odf file.
Tools
- Create a tool to handle guides
- Implement a tool to create connectors between shapes, the connection tool
- Fix moving of grouped shapes by keyboard
- Implement the aspect ratio settings for the default tool
- Fix bug 211699: update before resize to avoid artefacts
Tools
- Create slidecompare tool for easy comparison of rendering of odf files