Age | Commit message (Collapse) | Author |
|
inserting a ContentControl, now generate a unique ID for it...
search the lowest possible non used (non negative) number
added a GetType() function for SwXContentControl that get it from
SwContentControl, and used it for extract and transform.
Added some support for all other types.. some are not really usable
yet.
Fixed a problem when setting checkbox check, did not changed its
content.
If content is set to “”. It now set as placeholder,
and reset its content to the initial placeholder value, like:
“Choose an item” or “Click here to enter text”
(work for checkbox, and picture CntentControl.)
Change-Id: I0fc696f73734bdfb9ac5b8fdc6891168b8d4ed5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170600
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Added a new UNO command: .uno:TransformDocumentStructure
it need a sring parameter conaining a JSON strucure, that
list what to change (transform), like this:
{
"Transforms": {
"ContentControls.ByIndex.0": {
"content": "new value for the first content control"
},
"ContentControls.ByTag.name": {
"content": "John Smith"
}
}
}
this is just a 1. version it can only set text of a plain-text
content control,
or the state of a checkbox,
or the alias (i may will be removed .. we have to decide later
about all setable propertyes of contentc controls, what to let
transform)
Change-Id: I1772d979a7eb43961d62896f3c393482ed7dfa89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170538
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
The bugdoc has ~300 pages of content, most of that is bullets, but
otherwise not complex, pasting a trivial string at doc end (which is not
a bulleted paragraph) takes a noticeable time:
debug:20449:20330: SwLayAction::InternalAction: start
debug:20449:20330: SwLayAction::InternalAction: end, took 268 ms
Profiling points out that we re-layout the internal document, which is
not expected: we just pasted on the first page, causing no layout change
on page 2 and later pages. Watching who turns on m_bInvalidContent on
the page frames, it can be noticed that SwReader::Read() invalidates all
numberings after pasting.
Fix the problem by not doing that in case we paste plain text and we
know the insertion point is not in a numbering: the invalidation is not
useful in this case and fixes the unexpected delay.
Other related ideas are 1) don't do the layout for all pages in one go
2) recognize that the bullets need no invalidation, unlike an actual
numbering with numbers. Neither of these are done in this commit yet.
Change-Id: Id7b2c022b31acb358f42ddd77195db70ae451109
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170499
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
- the empty pages can be switch off with
"Print automatically inserted blank pages"
but when the switch is off, the view of the
"Print Prewiew" was wrong when scrolling,
this patch fix that
Change-Id: I62627b8d65db325e12818c91fee3e3c7c89c7751
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170278
Tested-by: Jenkins
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
|
|
Have both a content control and a comment in a document, export to PDF
while "Comments in margin" is enabled, now the default text of the
content control has an incorrect position / size.
The transform for normal writer comment was added in commit
eb1c0480050a1328287c4a85468afbec50b0e29d (Resolves: fdo#36815 enable
printing WYSIWYG sidewindow comments, 2014-04-16), and e.g. the
hyperlink rectangles are transformed correctly, but the content control
PDF export code added in commit 82d90529dc2b3cb8359dec78852cbd910a66d275
(sw content controls, rich text: add initial PDF export, 2022-09-12)
missed this.
Fix the problem by extracting the actual transform to a new
SwEnhancedPDFExportHelper::MapSwRectToPDFRect() and then using it in
both SwEnhancedPDFExportHelper::SwRectToPDFRect() (e.g. hyperlinks) and
SwContentControlPortion::DescribePDFControl().
Note that the font size of the PDF widget also needs scaling down, also
fix here.
Change-Id: I9cccbd569070336e1720ba2a82e91793083722f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170266
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
This reverts commit 85fd526fc681a994415bb422090d1d23aa7d54f6.
Change-Id: I5019f72f88497f50a77666d57f2d16c2749bd1c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170218
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9a0b0ae315aad6daa2a209d70e3bc60af61b2ee8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170183
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: Ied3eb7ef805acfcb1093445bd65d1154cab312ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170163
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I7ad748b67266926f1e4e67e843a90b5ac3fe58b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170152
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I873e2d8856e9ceb23a5d0ca5b907c332a8238441
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170087
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
found by doing some git grepping, we should now have values
for all items in the hierarchy
Change-Id: I397ca7e8f53f53737201385c4c8029b436895c1d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170016
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
after commit 85fd526fc681a994415bb422090d1d23aa7d54f6
"fix and simplify the ItemInstanceManager mechanism"
The problem is that some *Item classes in sw/ and sc/
share WhichIds, and a whole bunch of SfxBoolItem
subclasses share the same SfxItemType enum value.
So we ended up mixing and matching objects
of different concrete subclasses in a given
*ItemManager collection.
Add some asserts to the global pool code to catch
issues like this earlier on.
Add unique value of the SfxItemType enum for all
the SfxBoolItem subclasses
Change-Id: I3c8d4e02be1cd412b0292e973a6498df5f8e7102
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170003
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Often page numbers are inserted when a document is finished,
and at that point it would be annoying to repaginate everything,
so offer this option of trying to fit the page number
into the existing margins.
I was tempted to enable it by default,
except that it would then mismatch any pages
that had header/footers created via other methods.
Problem:
-how to know which font is really needed: western, CTL, CJK?
This patch depends on NFC b7fce2b26ee4ba585544457adc742807a2129d2c
Change-Id: I285a99f8e2f12c87a8bdee20a9c86a1d79f80dd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169349
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
|
|
The mechanism is currently broken because it uses hash values as keys,
in two different places. But hash values are not required to be unique,
and as soon as there are enough items of a given type, a collision is
inevitable.
So just simplify this whole mechanism. There is no reason we need
type-specific item managers. Stuff everything into a single global pool,
that uses hashing correctly.
Notes
(*) Performance, as far as I can tell, is the same or slightly better.
(*) I removed the NUMBER_OF_UNSHARED_INSTANCES thing, in favour
of just having a simpler mechanism
Change-Id: I9068baf9bf6fae2500ae5748c6d1aabe6c3a18a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169709
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Replaces the headings/outline move action buttons in the tools area
with a toolbar to expose the main functions for the selected entry in
the content tree.
Change-Id: Iedb5b53375088a159d640fb986bfcf9376fa2072
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168174
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
which did I not see when I did
commit cb3c65fb706cb1c7c9224222fd16875e924a9759
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Thu Jun 27 19:24:28 2024 +0200
assert when SfxObjectItems are modified while in a pool
Change-Id: I16e2ee72eda4b3ca69f83eb70ad4f4b0a14748a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169696
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and add some asserts to catch if we modify these things when they inside
a pool, which now that they are in hash-based container, will cause
trouble.
Change-Id: I2779f25cbcf056fbf71e417731d9b1f09ae33dd6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169629
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Check if the hyperlink have missing name and add a fix button
to fix the warning.
Change-Id: I3a69490aa81cf0ed9d0edb04eaa3401e4b47eb7f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169508
Tested-by: Jenkins
Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
|
|
follow-up to Iff407da8907b761236ebc2aa8877b9d6b8294e10
Change-Id: Icb5b3703809e5df80df5e269e6160c1c78dc186d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169364
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Justin Luth <jluth@mail.com>
|
|
* Makes the search independent of find and replace options.
* Adds a button to launch a dialog for match case, whole words only,
and similarity search options.
* Adds a button to launch the find and replace dialog.
* Makes the find entry control have visual feedback when there are no
matches.
* Adds a label at the bottom of panel that shows the number of matches.
Change-Id: I2cffcf86978773471bb86c5e5cf8b967c24efa7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168834
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Tested-by: Jenkins
|
|
SwXParagraph is heavily used. Reduce the allocation cost of
this class by de-pimpl'ing this class.
Change-Id: Iebdb9faebfd64416d581641e275e9a4389e2c90e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I90a6f1f1854ac1c5da2133122f17c14c58ec2d13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169361
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
SwXText is heavily used. Reduce the allocation cost of
this class by de-pimpl'ing this class.
Change-Id: I01b06c978075ae312131dfff29b4f304caf69e18
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169359
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
SwXTextRange is heavily used. Reduce the allocation cost of
this class by de-pimpl'ing this class.
One strange thing I noticed is that the destructor of the Impl indicates
that deleting the bookmark via deleteMark() has to happen under the SolarMutex,
but there are two places in the existing code which violate this already.
Change-Id: I171a0d82d6d020d9a43808c424f308722770783f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169354
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9a3fd130260b2db4a19830465035a51c25ace041
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169219
Tested-by: Jenkins
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
|
|
Change-Id: Ia216da9bd7764f2d21aaee761a02eafda88d892e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169257
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
The SfxPoolItem has a new member SfxItemType m_eItemType to
compare types based on enums instead of typeinfo() which
consumes a lot of time e.g. while AutoFormat is running
Change-Id: I033ce67bc9a28ee4790f162380314de85fb4154e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166452
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
and ~20 of similar warning
The current size of SfxItemSet is 144 bytes, and std::function is 32
bytes of that.
If we reintroduce Changed as a virtual method we can avoid the need for
this callback. All of the calculation work that was originally
unconditionally done, and then thrown away, was moved into the specific
SwAttrSet case of this so the other normal cases don't do any wasted
work anymore.
Change-Id: Ieec90f6d28dad8a6bf1cf8f402042812bd81c331
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168967
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Avoid a bunch of allocation/deallocation work in
SwXText::compareRegionStarts
Change-Id: I18398ab0e281da11ac3539e8e114574a0005dc1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168905
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
reduce the amount of sorting work we need to do in the m_HintsBy*
maps, by storing the range of elements we need to resort
Change-Id: I93bd22c9bfcf41f7c02828e184ff1170700cdcc5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168857
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: Ibc8c3ce70d572e2e07ee6ae1e46996943cf90a5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168840
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Add No Break option to context menu of words hyphenated automatically,
giving as easy access to fix paragraph layout, as context menu of
misspelled words – like DTP software do. Also add this option to context
menu of words with enabled "No Break" to disable it.
To avoid unwanted paragraph layout during further text editing or
formatting, visualize words excluded from hyphenation with a light
gray dotted underline, when Formatting Marks is enabled.
Follow-up to commit b5e275f47a54bd7fee39dad516a433fde5be872d
"tdf#106733 sw: implement CharNoHyphenation" and
commit 73bd04a71e741788a2f2f3b26cc46ddb6a361372
"tdf#106733 xmloff: keep fo:hyphenate in character formatting".
Change-Id: I81bb410abcf999c8d9a3dca28acfc5c21aa0f260
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168827
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
implement a mechanism to look up annotation by name instead of iterating
through all of them.
Shaves 5% off the load time
Change-Id: I14bf46cf2aebc5d4b019a3428107b46ac82c5087
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168705
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I80cdffc91086cfa06125d3399c4b896de3836e65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168743
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
no need to call compress-redlines during load
Change-Id: Ib26a1123b96e299974507e167bcb8ce8b3e3c924
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168701
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This allows to drop the partial fix created for tdf#124603 (except for unit
test). The problem solved in commit 4c91e94e892943ef5e031d65f6f42864233cb4cd
(tdf#92036: sw: fix idle spelling loop, 2015-09-09) is kept solved; when a
word is marked pending, this is signalled to the viewshell. SwCursorShell
stores that as a flag, which will then start an idle on cursor update, and
finally call SwViewShell::LayoutIdle, which does the spell checking. If the
cursor is still in the word that is pending the check, the cycle will repeat,
trying spell checks only at cursor update, not as a busy loop.
Change-Id: I5dc77baabffa723e261d553e40d40e5ace4266bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168413
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Doing this via a macro was possible already, but that didn't invalidate
the endnote positions on the layout, so required a document reload,
which was ugly.
Implement the new SwViewShell::SetContinuousEndnotes() by removing the
endnote frames in the document, so they'll be re-created at the expected
place as the layout action ends.
Change-Id: If96e70ab29c5a6c95fce36775e9a9a61277fc8a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168383
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I0ef01a6be8207d4cffc89b95dc9ca3bf1baf38d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168358
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Tested-by: Jenkins
|
|
Change-Id: I9179b55eb27f1bf2f28c2c86f1e67f2a4daf4819
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168341
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
This takes my load time from 48s to 6s.
The specific problem site is DocumentRedlineManager::SplitRedline,
which is hard hit when loading DOCX files.
Speed it up by caching the redline with the max end pos, which works
because most of the time we are trying to split around a position
which is the past of the end of the existing redlines.
Possibly a better solution would be not to call SplitRedline
at all, but propogating that information around is tricky given
that we are crossing module boundaries here, calling from xmloff/
into sw/
Change-Id: Ia8e5703c1cc9e861e27a24c24f207f12e594ff44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167892
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
A fixed-height cell can contain a bigger image, which is
cropped by cell boundaries. In this case, it was not
possible to select the floating table by clicking on its
right border.
Note: fix also tests of tdf#44773 and tdf#160836 related
to DPI-dependent platforms, see tdf#160992.
Follow-up to commit 30de13743f144aced83bc43d310592f82788c910
"tdf#160836 sw: resize rows at images cropped by row height"
and commit f3b899655018397e71300dbb32cdf4f82940a68b
"tdf#160842 sw: select cell content instead of cropped part of image".
Change-Id: I22c3e34f4c8147736c29b62722f7fc43c862ba48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168237
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
|
|
Change-Id: Ib73063871472727f27b552b1074d9d3872269b44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168231
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9e99244cb6a5e79e8856eefceac16cacbca49a96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168230
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
so we can bundle the creation of the comment and the insertion
of its "reply" characteristics together as a single Undo group.
wrap the new combination with a single undo operation showing "Insert
Comment" using Rewriter
Change-Id: I5927fa5501da0c49cc1182c60e23be290b8c37c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168190
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Ic66c427f5096aea53d6634874d98620dd91744b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168165
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: Iac8f502bf200f599d44f52504a3b70a1a21b370b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168164
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I78d9fc4984bf4313222c943816f81d31924dff26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168133
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: Id39e34c0f1b68639d3adf0092d753cb5dfb4cb0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168125
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Decides if endnotes are collected at section end or the normal doc end.
Previously only the pool item name was visible, not the value.
Change-Id: I141a687764b2069e2ddf65cbfdec514a4a0eb1e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168137
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I854f0d2f38fc9c6b3f8afc4b05d42fbc26e76bc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168138
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|