SfxItemPool::GetItemState() can already return a pointer to a set item so that
doesn't need to be obtained again through SfxItemPool::Get()
tdf#103493 'LotroPlan 3.8.ods'
https://bugs.documentfoundation.org/attachment.cgi?id=128252
Incl. Self Called
Before:
10,210,820,257 1,162,295,513 34,670,201
After:
9,887,701,235 1,384,985,151 34,670,201
Only ~3% and 0.5% of the overall load time, but..
Change-Id: Icbed8a7982a27472fdfb1dbe4fd2061ab1e601bd
When e.g. inserting a Writer doc in a Calc doc ("Insert - Object - OLE Object...
- Create new - LibreOffice 5.3 Text" in Calc), the resulting .ods contains the
size of the embedded Writer doc in two places. First as
<draw:frame svg:width=... svg:height=... ...>
in content.xml, where the size is apparently the original rectangle's size,
before it got aligned in SetVisArea. And a second time as
<config:config-item config:name="ViewAreaWidth" config:type="long">...</config:config-item>
<config:config-item config:name="ViewAreaHeight" config:type="long">...</config:config-item>
in Object 1/settings.xml, where the size is apparently the aligned size.
When the document is loaded again, at first the first size is used to display
the inner Writer doc. But when the inner Writer doc is double-clicked (to make
it editable), now the second size is used, and because they don't match, the
whole document is erroneously considered modified
(ScTabViewShell::ActivateObject -> SfxInPlaceClient::SetObjArea ->
SfxInPlaceClient::Invalidate -> ScClient::ViewChanged ->
ScDocShell::SetDrawModified -> ScDocShell::SetModified ->
SfxObjectShell::SetModified), causing e.g. the "Save" icon to become "active".
It is unclear to me whether these calls to AlignToPixel still serve any real
purpose; lets see whether removing them causes any issues...
Change-Id: I755dd9e8b2406f0b4b41d0f3d1281d6ad4b1b238
...as reported by -fsanitize=vptr when doing "Format - Page..." in Writer
(though both types have a Size member at the same location, so didn't cause any
real problems):
> sw/source/ui/misc/pgfnote.cxx:283:32: runtime error: downcast of address 0x604000e23f50 which does not point to an object of type 'const SvxSizeItem'
> 0x604000e23f50: note: object is of type 'SwFormatFrameSize'
> 94 01 00 3d 90 ae ee 90 ff 7e 00 00 06 00 00 00 58 00 00 be d0 2f 00 00 00 00 00 00 e0 3d 00 00
> ^~~~~~~~~~~~~~~~~~~~~~~
> vptr for 'SwFormatFrameSize'
> #0 0x7efd1c8d01e2 in SwFootNotePage::ActivatePage(SfxItemSet const&) sw/source/ui/misc/pgfnote.cxx:283:32
> #1 0x7efd1c8cbf07 in SwFootNotePage::Reset(SfxItemSet const*) sw/source/ui/misc/pgfnote.cxx:230:5
> #2 0x7f002e149560 in SfxTabDialog::ActivatePageHdl(TabControl*) sfx2/source/dialog/tabdlg.cxx:1117:19
> #3 0x7f002e1400e3 in SfxTabDialog::LinkStubActivatePageHdl(void*, TabControl*) sfx2/source/dialog/tabdlg.cxx:1035:1
> #4 0x7f0008248f37 in Link<TabControl*, void>::Call(TabControl*) const include/tools/link.hxx:84:45
> #5 0x7f0008204caa in TabControl::ActivatePage() vcl/source/control/tabctrl.cxx:1601:19
Change-Id: I73df2438565a7069153b22140197897df810b2aa
...during CppunitTest_filter_dialogs_test:
> filter/source/xsltdialog/xmlfiltersettingsdialog.cxx:1398:20: runtime error: reference binding to null pointer of type 'ResMgr'
> #0 0x7f144bf5ab10 in XMLFilterListBox::XMLFilterListBox(vcl::Window*, SvxPathControl*) filter/source/xsltdialog/xmlfiltersettingsdialog.cxx:1398:20
> #1 0x7f144bf7abb8 in VclPtr<XMLFilterListBox> VclPtr<XMLFilterListBox>::Create<VclPtr<VclVBox>&, SvxPathControl*>(VclPtr<VclVBox>&, SvxPathControl*&&) include/vcl/vclptr.hxx:138:46
> #2 0x7f144bf50df8 in SvxPathControl::SvxPathControl(vcl::Window*) filter/source/xsltdialog/xmlfiltersettingsdialog.cxx:1312:20
> #3 0x7f144bf7d487 in VclPtr<SvxPathControl> VclPtr<SvxPathControl>::Create<VclPtr<vcl::Window>&>(VclPtr<vcl::Window>&) include/vcl/vclptr.hxx:138:46
> #4 0x7f144bf56a2f in makeSvxPathControl filter/source/xsltdialog/xmlfiltersettingsdialog.cxx:1378:1
> #5 0x7f14d2060a04 in VclBuilder::makeObject(vcl::Window*, rtl::OString const&, rtl::OString const&, std::__debug::map<rtl::OString, rtl::OString, std::less<rtl::OString>, std::allocator<std::pair<rtl::OString const, rtl::OString> > >&) vcl/source/window/builder.cxx:1793:17
> #6 0x7f14d2078ddb in VclBuilder::insertObject(vcl::Window*, rtl::OString const&, rtl::OString const&, std::__debug::map<rtl::OString, rtl::OString, std::less<rtl::OString>, std::allocator<std::pair<rtl::OString const, rtl::OString> > >&, std::__debug::map<rtl::OString, rtl::OString, std::less<rtl::OString>, std::allocator<std::pair<rtl::OString const, rtl::OString> > >&, std::__debug::map<rtl::OString, rtl::OString, std::less<rtl::OString>, std::allocator<std::pair<rtl::OString const, rtl::OString> > >&) vcl/source/window/builder.cxx:1887:25
> #7 0x7f14d208790a in VclBuilder::handleObject(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2856:37
> #8 0x7f14d20215bc in VclBuilder::handleChild(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2114:33
> #9 0x7f14d2087bea in VclBuilder::handleObject(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2859:17
> #10 0x7f14d20215bc in VclBuilder::handleChild(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2114:33
> #11 0x7f14d2087bea in VclBuilder::handleObject(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2859:17
> #12 0x7f14d20215bc in VclBuilder::handleChild(vcl::Window*, xmlreader::XmlReader&) vcl/source/window/builder.cxx:2114:33
> #13 0x7f14d200c59a in VclBuilder::VclBuilder(vcl::Window*, rtl::OUString const&, rtl::OUString const&, rtl::OString const&, com::sun:⭐:uno::Reference<com::sun:⭐:frame::XFrame> const&) vcl/source/window/builder.cxx:206:9
> #14 0x7f1492275862 in ScreenshotTest::dumpDialogToPath(rtl::OString const&) test/source/screenshot_test.cxx:177:24
The existing code apparently depended on any calls to getXSLTDialogResMgr in
xmlfiltersettingsdialog.cxx only happening after pXSLTResMgr had been set up in
the outer XMLFilterDialogComponent::execute in xmlfilterdialogcomponent.cxx.
That is not true when each dialog is opened independently in the screenshot
test, so instead just call CreateResMgr on demand wherever needed.
Change-Id: I9f6dc7c66d4999137352a8d91665b954f4088085
...when doing "Format - Page..." in Writer:
> vcl/source/control/field.cxx:621:20: runtime error: signed integer overflow: 9223372036854775807 * 100 cannot be represented in type 'long'
> #0 0x7f57787c4868 in NumericFormatter::Normalize(long) const vcl/source/control/field.cxx:621:20
> #1 0x7f578a4608dc in SetFieldUnit(MetricField&, FieldUnit, bool) svtools/source/misc/unitconv.cxx:75:32
> #2 0x7f5488952648 in SvxPageDescPage::SvxPageDescPage(vcl::Window*, SfxItemSet const&) cui/source/tabpages/page.cxx:275:5
> #3 0x7f54889c3ea4 in VclPtr<SvxPageDescPage> VclPtr<SvxPageDescPage>::Create<vcl::Window*&, SfxItemSet const&>(vcl::Window*&, SfxItemSet const&) include/vcl/vclptr.hxx:138:46
> #4 0x7f5488925d27 in SvxPageDescPage::Create(vcl::Window*, SfxItemSet const*) cui/source/tabpages/page.cxx:162:12
> #5 0x7f579ea86df4 in SfxTabDialog::ActivatePageHdl(TabControl*) sfx2/source/dialog/tabdlg.cxx:1085:24
> #6 0x7f579ea800e3 in SfxTabDialog::LinkStubActivatePageHdl(void*, TabControl*) sfx2/source/dialog/tabdlg.cxx:1035:1
> #7 0x7f5778b88f37 in Link<TabControl*, void>::Call(TabControl*) const include/tools/link.hxx:84:45
> #8 0x7f5778b44caa in TabControl::ActivatePage() vcl/source/control/tabctrl.cxx:1601:19
and NumericFormatter::mnMax is still SAL_MAX_INT64 (but will be set to a smaller
value a few lines futher down in the SvxPageDescPage ctor). So initialize mnMax
to a substantially smaller value (that is still "large", but avoids this kind of
overflow), and hope that no code relies on the exact initial value.
Change-Id: If3b4db1d20bc59418d1769e9690bc7ecdbf29a50
...when doing "Format - Page..." in Writer:
> cui/source/tabpages/tparea.cxx:268:12: runtime error: load of value 4294967295, which is not a valid value for type 'FillType'
> #0 0x7f89ff653a41 in SvxAreaTabPage::Reset(SfxItemSet const*) cui/source/tabpages/tparea.cxx:268:12
> #1 0x7f8d15524560 in SfxTabDialog::ActivatePageHdl(TabControl*) sfx2/source/dialog/tabdlg.cxx:1117:19
> #2 0x7f8d1551b0e3 in SfxTabDialog::LinkStubActivatePageHdl(void*, TabControl*) sfx2/source/dialog/tabdlg.cxx:1035:1
> #3 0x7f8cef623f37 in Link<TabControl*, void>::Call(TabControl*) const include/tools/link.hxx:84:45
> #4 0x7f8cef5dfcaa in TabControl::ActivatePage() vcl/source/control/tabctrl.cxx:1601:19
Change-Id: I19dd3ed9d362132daa3f3be9fb0e9702a62bdeb0
The sparse chart import moved from assuming that the number of elements
in the list parsed from ooxml is the same as the real number of
elements. For this, the patch relies on a new member that was not always
initialized. This patch fixes a missing initialization. According to
'grep' this should be the last one.
Change-Id: I31d8a653f227100436360deef4a53c9418de9d93
Reviewed-on: https://gerrit.libreoffice.org/30838
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
...after 6e32e575829160b3c51ebbb67231baec7135afd3 "Resolves: tdf#103915 when
global dark theme is set fall back to breeze_dark". No idea whether
bDarkIconTheme=false is the right choice in all three cases, but at least the
test succeeds that way.
Change-Id: I633c4ebff19a1d441baa8270d681a73c8f6c4aa0
This page used not to have exchange support, but it needs it now
since it contains all the fill type subtabs
Change-Id: Ibeefc0ae832b4d53727711a169f1765d28350ec1
Reviewed-on: https://gerrit.libreoffice.org/30843
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
This reverts commit 30fefcf71417f8c8644f5c0d3cb28c8c7f92a6c7.
Thuough it works on my system, others report that it made things worse. A
better fix is comming, hopefully.
When client side request special character, it is very useful to send a
preview of the rendered font character
Conflicts:
desktop/source/lib/init.cxx
Change-Id: I1f5727163dfcc861add121e616bdb17881c28197
Reviewed-on: https://gerrit.libreoffice.org/30784
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
regression from
commit 96e9ffa64706f523d67659a20a0ccce6fbd0cb91 (patch)
loplogin:singlevalfields in include/
I did not notice that the mnItemPadding field was shadowing a
declaration in a superclass
Change-Id: I52cf9945da43fa3d1049b624a6b24bc6d974d445
In the normal course of events, the menu, or its children, has focus when its
popped down, in this case continue to restored the focus to the previous focus
window which had it when the menu appeared.
If some other non-child window of the menu has focus as popdown time, leave
the focus where it is.
Change-Id: Ia860f90350653ad4d8056738dacbc434fb364989
This way when printing documents with odd number of pages
and collated printing is selected the first page of the
second copy is not printed to the empty last page of the firs copy.
Change-Id: Ie4d9f6952e39581690c396665a9894970be54b6b
Reviewed-on: https://gerrit.libreoffice.org/30774
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@documentfoundation.org>
Checked a couple of them:
StandardCheckVisisbilityRedirector is unused since
commit b1f8cf37828d5f37527e54774aa4935610aa6325
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Wed Nov 2 10:57:21 2016 +0200
loplugin:singlevalfields
SfxQueryStatus is unused since
commit 64a708cba9b954afe3331f63c58218eb53b3d0ce
Author: Caolán McNamara <caolanm@redhat.com>
Date: Sat Nov 5 20:28:27 2016 +0000
Revert "Reverts a commit series that cripple windows ci."
Change-Id: If1c9fe26c3ebc573d8c53c8f060b05c27f2711e5
Reviewed-on: https://gerrit.libreoffice.org/30840
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
1. replace 2nd level for-loop with a helper unordered_map that
maps style name to its pointer
2. replace 3rd level for-loop with std::lower_bound, since the
children are inserted sorted (based on natural sort)
...and a few related, minor changes.
Change-Id: I48f59f2e1ca416de1e2957e0d1d3708ed6e67112
Reviewed-on: https://gerrit.libreoffice.org/30744
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
make these less odd and simply return the thing they selected, rather than a
bool that indicates that the rpObj arg was successfully set to non-null, so
there's one flag to check not two which both mean the same thing.
Change-Id: If70e412f98dea8b7114fb77f26a9c59aab93be50
Reviewed-on: https://gerrit.libreoffice.org/30794
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Project: help e852c87f0bef8b19c4d733460bb10910a880e769
New <object> element in online help + cleanups
* Implementation of <object> element in XHP files, with corresponding
transformation in XSLT. Video objects maps to HTML5 <video> and
audio objects into <audio> elements. Generic <object> maps to
HTML5 <object> (WIP)
* CSS file with some cleanup and branding colors, includes the option
to show debug info in .debug class. CSS fonts with recent changes.
* Index.html file with new <div> and better font rendering
* help.js with info on top right about the page displayed
* Cleanup of getbookmark.sh * New README with instructions
Change-Id: I856b99308ee008d8607dd0ba60a446224cc26e58
Reviewed-on: https://gerrit.libreoffice.org/30812
Reviewed-by: Olivier Hallot <olivier.hallot@edx.srv.br>
Tested-by: Olivier Hallot <olivier.hallot@edx.srv.br>
Rotate only the rotated glyphs instead of rotating everything, then
unrotating the upright glyphs. No need for a rotated font either,
rotating the graphics is fine.
Change-Id: I1fce2c9c6a29abb1353a5fc8485a9c0d34edfbf1