Age | Commit message (Collapse) | Author |
|
A first patch to get some feedback. Asnyc LO popup menus are still
buggy, as I'm not sure where to call the PopupMenu::Finish for
them.
Also the XDialogClosedListener is currently just for convenience
and might want some separate notifier.
Fun fact, that ImplExecute / ImplPopup is called for submenu, but
then doesn't execute. And generally the naming of some variables
is IMHO wrong; I might also prefix Menu members with "m_" for
easier readability.
Change-Id: Id8b413aa6b4699201e58db0113649c6b224d33b6
|
|
Selected colors removed since hovering leads to selection
(or execution) and does not need a special color
Transparency for reccent documents and templates in start center
increased to make the difference to selected more clear
Change-Id: Iab52150cd5a93e2f6ff716921b2aa7d093018b3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159407
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
StartCenterThumbnailsHighlightColor and StartCenterThumbnailsHighlightTextColor
removed in favor of StyleSettings.GetHighlightColor and .GetActiveColor
Change-Id: I7005b17f6c48525c791f23ea99b7b68e7a67531b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159286
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
we can't remove hack in SfxDispatcher::Update_Impl yet
because this made unit-copy-paste test in online broken
reverts part of:
commit 1a6d16cb14342f9a66f99960e96027af6e5369ef
lok: notebookbar: query SID_NOTEBOOKBAR only when requested to switch UI
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8cd801bbc912f2ab3f710f5c7133445f07c4e5de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159039
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
To understand this, some look back in history will be needed to see
why it is as it is today. In some (reworked) comments 'poolable' is
described as flag to hold Items in the ItemPool, also always having
only one incarnation of each possible Item.
This is not the original intention, but a side-effect. The reason is
what the binary format in the office did: To save a document, the
Objects & the Pool were saved, *not* individual Items *together*
with the objects. The Pool was completely (binary) saved (and loaded)
in one run.
Temporary IDs were used to represent at the objects in file which
Items were referenced. This *required* to have only one incarnation
per item to have a minimal binary file size, thus this high effort
was put into this. At doc load, the pool was loaded, all Items were
set to RefCount 5000, the references from the objects were restored
and then for each Item the RefCount was lowered by 5000 again
and - if being zero - deleted. Items for UI were marked 'non-poolable'
to *not* safe them with the document, so poolable was a flag to decide
if that Info/Item was to be saved with the document - or more direct:
if it is Model Data.
Items are small, so if we prefer runtime it is okay to no longer being
strict with this, anyways does not happen often and has only marginal
memory effects - compared to runtime effects/savings.
Other problems which this caused: One example is that objects in the
UNDO stack were still in the pool, so e.g. deleted pictures were saved
with the document despite no longer being used (!). That is the reason
we have an UndoItemPool and a method MigrateItemPool to move stuff to
that Pool when objects go to the UNDO stack - all of this is also no
longer needed.
Cleaning this up means to ideally have all items in the SfxItemSet,
no longer at the Pool. The Pool should be reduced to a 'Default-Item-
Holder' and a 'Slot-to-whichId-mapper'.
This needs thorough cleanups/removals, but will be worth it because
that massive simplification(s) will increase safety an runtime and make
migrating to the goal of completely type-based ItemSet stuff easier for
the future. Hopefully only view code in the office working with items
will have to be changed for this.
In this 1st step I already found that some 'compromizes' will be
needed:
- There are still Items that have to be at the pool to make the
Surrogate-stuff working. This gives back all Items in a Pool of a type
and is used in ca. 80 cases. Each one looks at these Items *without*
context (e.g. a SfxItemSet at an Object would be a context), so if e.g.
a dialog is open that temporarily uses Items of that type you would
also get these - without knowing about it...
To make that work there is still a mechanism to have Items at the Pool,
but now just *registering* (and un-reg) them without any sort/search/
remove needs. Also only for Items that need that, so I evaluated the
GetItemSurrogates calls and added some asserts when GetItemSurrogates
tries to access an unregistered item type which needs to be added.
- Another caveat is that there are about 250 places that directly put
Items to the Pool (not all remove these, that is done at pool deletion,
so some kind of silent 'garbage-collection' is in place). To have an
overview I renamed the accessing methods to separate them from the same
functionality at the SfxItemSet, which had the same names. An
implementation does still add these directly to the pool, there is no
way to cleanup those usages for now. In principle all these should be
changed to hold the data at an SfxItemSet.
I am still hunting problems. But you can build the office, all apps
work (including chart) and you can do speed comparisons already.
There are test throwing errors, so I hunt these now. It is hard to
give an estimation about how much more changes/corrections will be
needed.
Completed adaptions to new registered Items at Pool, that reduces the
failing tests. Still many that I need to hunt.
Added stuff to work around that 'compromize' in ScDocumentPool: It
overloads ::PutImpl of the pool to implement special handling for
a single Item in SC, the ScPatternAttr. In former code that method
was used from SfxItemSet and ::PutImpl at the pool directly, so it
was only used in one place. I am not sure if it was used from
the SfxItemSet functionality, but better offer it for now. To not
waste too much runtime the callbacks depend on the boolean
'NewItemCallback' at the SfxPoolItem, it gets set for that single
Item in SC and only then the callbacks trigger. I hope to get rid
of those again, e.g. newItem_UseDirect is only needed since we have
no 'real' StaticPoolDefaults currently - another thing that needs to
be cleaned up in a next step.
Since usages of impl(Create|Cleanup)ItemEntry and
Direct(Put|Remove)ItemInPoolImpl got more and more similar I decided to
unify that: move impl(Create|Cleanup)ItemEntry to tooling, make it
globally available in svl and use it also directly for
Direct(Put|Remove)ItemInPoolImpl. This slightly increases the failing
tests again, but only since in Direct(Put|Remove)ItemInPoolImpl that
fallback (e.g. tryToGetEqualItem) was used before, thus this is the
same class of errors (SfxPoolItem ptr-compare) as the others which I
will need to find anyways. Also fixed some missing stuff.
Have now idenified and redirected all SfxPoolItem ptr-compares
to be able to debug these - one cause for the remaining errors is
probably that before with bPoolable those often were sufficient, but
are no longer. Used the [loplugin:itemcompare] and a local clang
build to do so, see https://gerrit.libreoffice.org/c/core/+/157172
Stabilized Direct(Put|Remove)ItemInPoolImpl forwards, added parameter
to implCreateItemEntry to signal that it gets called from DirectPool
stuff - currently needed. Hopefully when getting rid of that DirectPool
stuff we can remove that again
Added two more debug functionalities:
- Added a SerialNumber to allow targeted debugging for deterministic
cases
- Added registering & listing of still-allocated SfxPoolItems at
office shutdown
Found PtrComp error in thints.cxx - POC, thanks to
areSfxPoolItemPtrsEqual. Will hopefully help more with other tests
Found some wrong asserts/warnings where I was too careful and not
finding something/succeeding is OK, fixes some UnitTests for SC
For SC I now just tried to replace all areSfxPoolItemPtrsEqual with
the full-ptr-content compare SfxPoolItem::areSame. I also needed to
experiment/adapt the newItem_Callback solution but got it working.
Did that replacement now for SW too, found some places where the
direct ptr compare is OK.
Continued for the rest of occurrences, now all 160 places evaluated.
Also done some cleanups.
Massive cleanups of stuff no longer needed with this paradigm change.
Also decided to keep tryToGetEqualItem/ITEM_CLASSIC_MODE for now.
It is used for *one* Item (ScPatternAttr/ATTR_PATTERN) in SC that
already needs many exceptions. Also useful for testing if errors
come up on this change to test if it is related to this.
Added forwarding of target Pool for ::Clone in SvxSetItem and
SvxSetItem, simplified SfxStateCache::SetState_Impl and returned
to simple ptr compares in SfxPoolItem::areSame to not do the test
in areSfxPoolItemPtrsEqual.
Debugged through UITest_calc_tests9 and found that in tdf133629
where BoxStyle is applied to fully selected empty calc the Item-
reuse fallback has to be used not only for ATTR_PATTERN, see
comment @implCreateItemEntry. Maybe more...
Problem with test_tdf156611_insert_hyperlink_like_excel. Found that
in ScEditShell::GetFirstURLFieldFromCell the correct SvxURLField
is found and returned as ptr, but it's usage crashes. That is due to
the SfxItemSet aEditSet used there gets destroyed at function return
what again deletes the SvxFieldItem that is holding the SvxURLField
that gets returned.
This shows a more general problem: There is no 'SfxPoolItemHolder'
that safely holds a single SfxPoolItem - like a SfxItemSet for a
single Item (if Items would be shared_ptrs, that would be a safe
return value).
That will be needed in the future, but for now use another solution:
Since I see no reason why EE_FEATURE_FIELD should not be shareable
I wil change this for ow in the SfxItemInfo for EditCharAttribField.
That way the Item returned will be shared (RefCnt > 1) and thus not
be deleted.
I changed the return value for GetURLField() and
GetFirstURLFieldFromCell() in ScEditShell: At least for
GetFirstURLFieldFromCell the return type/value was not safe: The
SvxFieldItem accessed there and held in the local temporary
SfxItemSet may be deleted with it, so return value can be
corrupted/deleted. To avoid that, return a Clone of SvxFieldData
as a unique_ptr.
With all that UnitTest debugging and hunting and to get the paradigm
change working to no longer rely on shared/pooled items I lost a
little bit focus on speed, so I made an optimization round for the
two central methods implCreateItemEntry/implCleanupItemEntry to
get back to the speed improvements that I detected when starting this
change. It was mainly lost due to that 'strange' chained pool stuff
we have, so I added to detect the target pool (the one at which the
WhichID is registered) directly and only once. Next thing to cleanup
will/should be the pool and it's concept, all this is not needed
and really costs runtime.
Since implCreateItemEntry/implCleanupItemEntry are executed millions
of times, each cycle counts here.
Had an error in the last changes: pool::*_Impl methods use index
instead of WhichID - most of them. Another bad trap, I really need
to cleanup pool stuff next.
Change-Id: I6295f332325b33268ec396ed46f8d0a1026e2d69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157559
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
commit 5bd2931b57a6cb4ac1f39d7ddae874ac693cfab0
tdf#102063 Notebookbar wont appear on launch
introduced some Query hack to SfxDispatcher::Update_Impl what
causes many updates on lots of different actions.
It breaks multi-view state of notebookbar in LOK case,
so don't do that. It should be reviewed for regular case too.
Change-Id: I8f26bddc6cff991c56a1172893d83b90fb225acd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158937
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
|
|
Change-Id: I45bc0bf74f4ebeeb4155006e67309cd476ebc3c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158388
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I432a3af50b6089faa80a28804d95d816af6cd278
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154936
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
(cherry picked from commit 5f13751cefd725cb2a38e66c9484046e6141c6c2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158150
Tested-by: Jenkins
|
|
Change-Id: Ic21ff7bf48f07f7277979d52e99d2c5c268de83f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157825
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
or anything
Change-Id: Ibfedb7dce6503b5593111380c53fc0ef6c7e93af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157680
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Ife54845e020977cdb80a7fcc1fa63333afc17b32
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157169
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
Change-Id: I15df992e410f741a22d1f140b85e57a97195a5f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157020
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
|
|
Change-Id: I00f228451574ca9f9e352d233c7f326c88e90a95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156892
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Added a counter for SfxItemSet usages, similar to the
already added one for SfxPoolItems to allow quick info
about evtl. problems/drawbacks of changes.
Replaced enum SfxItemKind in favour of settable boolean flags
directly at SfxPoolItem. These are organized as bitfield, do
not need more space as the enum and allow to be set separately
and multiple ones at the same time.
Flags for PoolDefault/StaticDefault/DeleteOnIdle use this now
and are quickly accessible booleans. It is not a problem that
theoretically the flags for PoolDefault/StaticDefault could now
both be set - this is internal to SfxItem stuff and not accessible
from normal code, so can be managed.
Added for debug build a bitfield boolean m_bDeleted
that will be set in the SfxPoolItem destructor. Of course
it's usability will depend on the freed space not yet being
re-used, but will hopefully help in the debugger to detect
reasons for failure (would have helped at least me before).
Added for replacement of virtual method IsVoidItem() another
bitfield bool m_bIsVoidItem that is set in the constructors
of SfxVoidItem. Also had to add some constructors to do that
which were defaulted before. This is mainly because the base
class SfxPoolItem does *not* have a copy-constructor that
copies the members (flags/RefCnt/WhichID) and we should keep
that 'indirect reset' when Cloning. isVoidItem() is now a simple
boolean member access - the bitfield does the needed masking.
This spares one entry in the virtual function table of
SfxPoolItem which is derived more than 500 times.
Used the results of the experiment at
https://gerrit.libreoffice.org/c/core/+/156774 to change
some accesses to IsVoidItem() to use SfxItemState instead.
This is for preparation of splitting up the two usages of
SfxVoidItems, see commit text in the experiment.
If this shows problems in the future those six places documented
there may have to be changed back to use the new isVoidItem(),
but should also check the ptr this time to be non-zero.
Removed SFX_ITEMS_SPECIAL that is no more used anywhere.
Change-Id: Ib687ca2362d72a4651c75aee0c67029088f68947
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156805
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Remove pinned icons from thumbnail view item and pushed it down
to the recent documents view item. This avoids that the pinned
icon will be shown in a simple thumbnail view, e.g., in the
thumbnail view of the side pane in base.
In addition, fixed an error with the number of elements in the
thumbnail view in the start center when items are pinned, i.e.,
removed a spurious new line.
Change-Id: I76026bfa9239f709aa60ff12efabe28cb09f0d76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156625
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
nobody cares if child window slot is missing
Change-Id: I24978daa9a2770e8f0bd44b5b816f94b8d01da0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156407
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This patch corrects the tooltip only being shown when the mouse pointer
is in the top third of the window when using gtk3.
Change-Id: I9d705c064bc4654ed660842215ffd59edc14891b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156358
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
avoid some unnecessary casting
Change-Id: Id3c4d8b91ec04beb1fed61050066e2b79d01d2df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156288
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
avoid some unnecessary casting
Change-Id: I86d48cb463f4e9a1661025fa6e1f4f8c03d61eaf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156287
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This change is not about speed improvements but diverse
preparations to make changes/reading/understanding easier.
It does not change speed AFAIK.
Added a global static debug-only counter to allow getting
an overview over number of all allocated SfxPoolItem's
and the still alloated ones at office shutdown. The values
are used in Application::~Application to make a short info
statement. It allows to be able to quickly detect if an
error in future changes may lead to memory losses - these
would show in dramaitically higher numbers then (hopefully)
immediately.
Moved SfxVoidItem to own source/header.
Added container library interface support to SfxItemSet,
adapted already some methods to use it - not all possible,
I will commit & get status from gerrit 1st if all still works
and then continue.
Changed INVALID_POOL_ITEM from -1 to use a global unique
incarnation of an isolated derivation from SfxPoolItem. It
allows to avoid the (-1) pointer hack. Since still just
pointers are compared it's not worse. NOTE: That way, more
'special' SfxPoolItem's may be used for more States - a
candidate is e.g. SfxVoidItem(0) which represents ::DISABLED
state -- unfortunately not only, it is also used (mainly for
UI stuff) with 'real' WhichIDs - hard to sort out, will have
to stay that way for now AFAIK.
Changed INVALID_POOL_ITEM stuff to use a static extern
incarnated item in combination with a inline method
to return it, called GetGlobalStaticInvalidItemInstance().
Isolated create/cleanup of a SfxPoolItem entry in
SfxItemSet to further modularize/simplify that. It is
currently from constructor & destructor but already shows
that PoolDefaults are handled differently - probably an
error. Still, for now, do no change in behaviour (yet).
Got regular 'killed by the Kill-Wrapper' messages from
gerrit, seems to have to do with UITest_sw_findReplace.
That python/c++ scripting stuff is hard to debug, but
finally I identified the problem has to do with
the INVALID_POOL_ITEM change. It was in
SfxItemSet::InvalidateAllItems() where still a (-1)
was used -> chaos in detecting invalid items.
Change-Id: I595e1f25ab660c35c4f2d19c233d1dfadfe25214
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155675
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Set the character name as a11y name for the `SvXCharView`.
Also add a check for the string to be non-empty in
`SvxCharView::GetDecimalValueAndCharName`, since
`SfxCharmapContainer::updateRecentCharControl` sets the
text to an empty string, and calling
`OUString::iterateCodePoint` on that empts string
would trigger an assert now that
`SvxCharView::SetText` tries to retrieve the character
name right away.
This makes NVDA on Windows announce the focused
character by its name in the Special Characters dialog
and the Special Characters toolbar group button.
Orca with the gtk3 VCL plugin now announces the
focused character in the Special Characters dialog,
but not yet in the toolbar group button.
Change-Id: I79c8e0c2de6e817a467a405dc7d9e103cba07dfe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155757
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
It will be reused in an upcoming commit to set the a11y
name for the `SvxCharView`.
Change-Id: Ib5938e5363571e547ee00cac8432f919b60cd97a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155756
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
special characters control
This patch makes a tooltip show when the mouse pointer is over a
character window in the special characters control. It also adds a
label that is used to display character information of the highlighted
character. Code for creating the character information text shown in
the tooltip and label was referenced from SvxCharacterMap.
Change-Id: I4b62e63b27310cbe9e9661ff51c2db206e9e3507
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155547
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
This reverts commit 0f3b36bd2749f360df84d1594c01e619ba0f4930.
There are some odd things gone in with some of these changes that I do understand. Reverting until I have worked it out.
Change-Id: Ifa383ee7ed2db4f81e2b0ac593e652288a07514f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155596
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id1e32a696dd97d1bded467834e5fbd14345d02c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155619
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
of the insert special character dialog. The character popdown uses
multiple rows instead.
Change-Id: If3c5578a018a31dbdb0a0d9785f18b570e13112f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155502
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
to attempt to make it obvious in code what kind of coordinate
system we are dealing with.
The idea is that by doing this, the compile-time type checking
will flush out inconsistencies between different code.
I started with vcl::Window::OutputToAbsoluteScreenPixel
and worked outwards from there.
Change-Id: Ia967d7a0bb38886695f3a761b85c8b9340ddb1c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154676
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I0d9e04b0a0452f66cb9703d9f34fe6cb44d724c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154506
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
(cherry picked from commit b62f9f484a0fc9215e34153daac4a8bdb9698d4b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155034
Tested-by: Jenkins
|
|
Change-Id: Ibfc98a49022aa09ebf5315e5d3328308c1e51d66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154997
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This reverts commit 71e5f7e43471cc479ea1e818c813170a389964e6,
and adds SheetRightToLeft in a different place.
Change-Id: Id7001d06b247713de2e4dfe5076d156988e932d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152808
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
(cherry picked from commit f44aed75f1c1f64c07651376fd2f638f61e0c3b1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154928
Tested-by: Aron Budea <aron.budea@collabora.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
This patch adds the method set_item_help_id for weld::Menu (similarly to what we already have for weld::Toolbar). This way, it is possible to define help IDs for each entry in context menus that are created during runtime.
This is necessary to fix various bug tickets that request F1 to redirect to the corresponding help page when a context menu item has focus. This currently works for context menus created from XML files, but fails for context menus created during runtime.
Besides implementing the new method, this patch fixes bug 147911 (see changes in file templatedlglocalview.cxx) to showcase how set_item_help_id can be used.
NOTE: Pressing F1 in context menus only work with "gen" and "win"... unfortunately it does not work in kf5 and gtk3 due to a separate bug (see bug 156376).
Change-Id: Ic9bb1bca3e646cb4d0b879d8672c5dcc9c19c4c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154699
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Instead of using a different function to get the character width, use
the same function used for getting the character widths elsewhere.
Change-Id: I21428f34bb0f3a60fa17f5e8ecc3420545356337
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154609
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
It was added in
commit c706fde1c4ecc6974bcf32ce33aacf3093355ae1
Resolves: tdf#156067 merge special char dialog/popup logic
But is never assigned a useful value
Change-Id: I476b00a96c53298414239509b2ca5452f0bf08c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153743
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I95ab7581dec35b113cb657ce8e5ee27c89c73593
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153746
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
around dealing with operator[] on map data-types
Change-Id: Idd6654948ae2d03d634fcf30a8d98530a78ab4ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153740
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
there was some cut and paste done to create the popup
at some point, so put it back together and reuse the
"delete recent" etc which is missing from the popup case
Change-Id: Idc33d83ea04b46b0255e77bcecf565dc8174e426
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153647
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Ib71dcdb6b02f3c1e9e1c552a718cb03e7cd9a4b4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153532
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
(cherry picked from commit 0407d4290617dc717abed3ea48f1abf3cf1d750f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153602
Tested-by: Jenkins
|
|
Although the state of the uno items was changing,
the notebookbar was not refreshing to display the new state.
Change-Id: Ifda5e6dcfa1d569ba75d0c94cdf0bc94c63977d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153360
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
|
|
The UNO command "SheetRightToLeft" can be disabled
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: I54742c9d52eb52e36154e0aac2cdf440771eb177
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152502
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit fc8270f06eca5ba2ba25673a424b36d9e352f62a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152546
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153267
Tested-by: Jenkins
|
|
The UNO command state has changed to Point (row, tab)
and Point (col, tab), Otherwise, if the row or column
has the same value for all sheets, the state cache will
not report any changes to the client side.
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: I2080f5e664825d81c4fa4dbb2c5d782f188dae64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151344
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151975
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152908
Tested-by: Jenkins
|
|
Change-Id: I879e4d93e1da222d9acabb776552ca1cf819574b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152136
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
GetLineCount was a sal_uInt16 value, that allows only 65535 lines to be
counted. This is changed to sal_Int32 and also the underlying data type
for the lines number is changed from sal_uLong to sal_Int32, but not for
pages number. With this change, the maximum possible line number is now
increased to 2^31-1 = 2,147,483,647.
Change-Id: Ibee2d24e638204133f0ef085564016543f73d351
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143173
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
|
|
Thumbnails don't change their size so overlay must not too
Change-Id: I83ff2bb60ec619686b583180ebabe194c4a77b23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152193
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
found with a lightly tweaked version of the loplugin:stringadd
and some hand-holding.
Change-Id: I146aadcaf665e98fea89a9cad2df4dc3935622f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152275
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
* Add the missing entry to Accelerators.xcu
* Handle vnd.sun.star.findbar:-command the same as .uno commands
Change-Id: I69d441d63a6b0478a07c9ef10665b7d59d3334b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151322
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
|
|
Change-Id: I364f13308adf8b3257e53da2bc6576088bb958f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150867
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Instead of doing two lookups, we can just call insert and
then update the mapped-to value if the insert actually succeeded.
Change-Id: I3df3b98f0debe6bf74c739dd5850e7714d9c2789
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151030
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
After commit 271f17a6022c64cbbe9befbc66a9eaaa0567d569 (tdf#155017: make
sure that the correct shell is popped from SfxDispatcher, 2023-04-26).
This restores the previous logic for a hypothetical case of a pop without
POP_UNTIL scheduled for a shell, which was not on the stack (so that it
wasn't removed in the code added in the commit mentioned above); I haven't
a reproducer, but it definitely can happen, given how things work here. So
I try to avoid breaking it even further :-)
Change-Id: Ied0a1406881fbefe3cf069f816c50da03a41dcd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151034
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Honestly, I don't quite understand the idea of using the stack of shells
in SfxDispatcher, when the order of addition of shells there does not
match the order of removal.
After opening the bugdoc, SfxDispatcher has these shells in xImp->aStack
(from top to bottom):
[8] SwWebView
[7] SwWebTableShell
[6] SwWebTextShell
[5] SwWebListShell
[4] FmFormShell
[3] SwWebDocShell
[2] SfxViewFrame
[1] SwModule
[0] SfxApplication
SfxViewFrame dtor calls ReleaseObjectShell_Impl.
* First of all, it calls PopShellAndSubShells_Impl for SfxViewShell;
* Then it calls SfxDispatcher::Pop for SfxObjectShell;
* Then it calls SfxDispatcher::RemoveShell_Impl for SfxModule;
* Then SfxObjectShell is destroyed;
* And finally, SfxDispatcher::SetDisableFlags is called.
PopShellAndSubShells_Impl (for SfxViewShell) finds the passed SwWebView
at the top of the stack (pos. 8), and removes it.
SfxDispatcher::Pop for SfxObjectShell queues removal of the passed
SwWebDocShell *without* SfxDispatcherPopFlags::POP_UNTIL mode.
SfxDispatcher::RemoveShell_Impl first calls Flush, which actually
executes the queued actions. At this point, an SwWebTableShell (pos. 7)
is the top of the stack; SfxDispatcher::FlushImpl will pop it, and stop
(because there was no SfxDispatcherPopFlags::POP_UNTIL at the previous
step), so the intended removal of SwWebDocShell (which is at pos. 3)
will not happen. Then RemoveShell_Impl will proceed searching for the
specific shell (SwModule), and removing specifically that (at pos. 1).
At the moment of destruction of object shell, the dispatcher's stack
looks like this:
[5] SwWebTextShell
[4] SwWebListShell
[3] FmFormShell
[2] SwWebDocShell <-- The problem is here
[1] SfxViewFrame
[0] SfxApplication
and pos.2 points to a destructed object.
Finally, SetDisableFlags iterates all the shells still in the stack,
setting their flags - and obviously accessing already destroyed object.
In debug builds, this crashes reliably; in release builds, where dtors
do not fill memory, the access of the just-destroyed objects likely
often goes unnoticed.
In different documents, the order and the set of shells there is
different, e.g. an empty Writer document would have view shell just
above object shell, resulting in correct removal of the object shell.
I don't know what strategy is intended here. I decided to implement a
small change, that makes sure that without POP_UNTIL, popping a shell
removes exactly that shell that was requested for removal.
Change-Id: I670d024056a5b32d5485f00a4799a8b0bacb6485
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151003
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
suggested by mike kaganski
Change-Id: I5f5f254142767aca45a6101abdd84a0163ca6a34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150936
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|