Add UNO API property tester for read-only properties 'double', 'long',
'short' and 'string'.
Change-Id: I7177e133972058b0272a3cf8493521fbfbcade32
Reviewed-on: https://gerrit.libreoffice.org/52142
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jens Carl <j.carl43@gmx.de>
and SmSymDefineDialog
There's a whole bunch of interrelated stuff which needs to work at the same
time.
add menu support, keyboard support, better mouse support,
a gtk scrollable adaptor to support pseudo scrolling drawing bodge,
plugable uitest support for custom widgets, plugable a11y support
for custom widgets via the existing atk_object_wrapper_new wrapper
for XAccessible
In this specific case, change SvxCharacterMap from something that has an
internal scrollbar to a scrolledwindow where the scrollbar is external, which
drops the need for the a11y impl of SvxCharacterMap to emulate being a scrolled
window and internal table and just needs the table a11y impl
Change-Id: Ia2743d6958021c525a1900154dcbb69ae33fc400
Reviewed-on: https://gerrit.libreoffice.org/52084
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
I happened to come across a SEGV caused by a null ToolBox::mpData once, as
below. Interestingly, some ToolBox member functions like GetItemPos and
GetItemCount do take a potential null mpData (after a call to dispose) into
account.
> #0 0x00007fffebc1b93c in std::__cxx1998::vector<ImplToolItem, std::allocator<ImplToolItem> >::size() const (this=0x20) at /usr/include/c++/7/bits/stl_vector.h:671
> #1 0x00007fffebc172ce in ToolBox::SetItemBits(unsigned short, ToolBoxItemBits) (this=0x7ffec6449230, nItemId=16, nBits=ToolBoxItemBits::DROPDOWN) at /data/sbergman/lo-ro/source/vcl/source/window/toolbox2.cxx:889
> #2 0x00007ffff07ccc42 in SvxClipBoardControl::StateChanged(unsigned short, SfxItemState, SfxPoolItem const*) (this=0x7ffec6420390, nSID=5312, eState=SfxItemState::DEFAULT, pState=0xad4cf60) at /data/sbergman/lo-ro/source/svx/source/mnuctrls/clipboardctl.cxx:116
> #3 0x00007ffff1d69c4f in SfxToolBoxControl::statusChanged(com::sun::star::frame::FeatureStateEvent const&) (this=0x7ffec6420390, rEvent=...) at /data/sbergman/lo-ro/source/sfx2/source/toolbox/tbxitem.cxx:521
> #4 0x00007ffff193e163 in SfxDispatchController_Impl::addStatusListener(com::sun::star::uno::Reference<com::sun::star::frame::XStatusListener> const&, com::sun::star::util::URL const&) (this=0xaa3da80, aListener=uno::Reference to (SvxClipBoardControl *) 0x7ffec64203b8, aURL=...) at /data/sbergman/lo-ro/source/sfx2/source/control/unoctitm.cxx:865
> #5 0x00007ffff193ddfc in SfxOfficeDispatch::addStatusListener(com::sun::star::uno::Reference<com::sun::star::frame::XStatusListener> const&, com::sun::star::util::URL const&) (this=0xaffa990, aListener=uno::Reference to (SvxClipBoardControl *) 0x7ffec64203b8, aURL=...) at /data/sbergman/lo-ro/source/sfx2/source/control/unoctitm.cxx:250
> #6 0x00007fffee75c7e4 in svt::ToolboxController::bindListener() (this=0x7ffec6420390) at /data/sbergman/lo-ro/source/svtools/source/uno/toolboxcontroller.cxx:529
> #7 0x00007fffee75c056 in svt::ToolboxController::update() (this=0x7ffec6420390) at /data/sbergman/lo-ro/source/svtools/source/uno/toolboxcontroller.cxx:227
> #8 0x00007fffc11ddef6 in framework::ToolBarManager::UpdateControllers() (this=0x7ffec6142930) at /data/sbergman/lo-ro/source/framework/source/uielement/toolbarmanager.cxx:364
> #9 0x00007fffc11e995e in framework::ToolBarManager::AsyncUpdateControllersHdl(Timer*) (this=0x7ffec6142930) at /data/sbergman/lo-ro/source/framework/source/uielement/toolbarmanager.cxx:1852
> #10 0x00007fffc11dc748 in framework::ToolBarManager::LinkStubAsyncUpdateControllersHdl(void*, Timer*) (instance=0x7ffec6142930, data=0x7ffec6142b00) at /data/sbergman/lo-ro/source/framework/source/uielement/toolbarmanager.cxx:1839
> #11 0x00007fffec264928 in Link<Timer*, void>::Call(Timer*) const (this=0x7ffec6142b20, data=0x7ffec6142b00) at /data/sbergman/lo-ro/source/include/tools/link.hxx:84
> #12 0x00007fffec264787 in Timer::Invoke() (this=0x7ffec6142b00) at /data/sbergman/lo-ro/source/vcl/source/app/timer.cxx:76
> #13 0x00007fffec21cdd2 in Scheduler::ProcessTaskScheduling() () at /data/sbergman/lo-ro/source/vcl/source/app/scheduler.cxx:448
> #14 0x00007fffec21bfed in Scheduler::CallbackTaskScheduling() () at /data/sbergman/lo-ro/source/vcl/source/app/scheduler.cxx:270
> #15 0x00007fffcdfaa036 in SalTimer::CallCallback() (this=0x199ae40) at /data/sbergman/lo-ro/source/vcl/inc/saltimer.hxx:55
> #16 0x00007fffcdfa920d in sal_gtk_timeout_dispatch(_GSource*, int (*)(void*), void*) (pSource=0x7e1abe0) at /data/sbergman/lo-ro/source/vcl/unx/gtk3/gtk3gtkdata.cxx:692
> #17 0x00007ffff5aa7b77 in g_main_dispatch (context=0x63d8d0) at /usr/src/debug/glib2-2.54.3-2.fc27.x86_64/glib/gmain.c:3142
> #18 0x00007ffff5aa7b77 in g_main_context_dispatch (context=context@entry=0x63d8d0) at /usr/src/debug/glib2-2.54.3-2.fc27.x86_64/glib/gmain.c:3795
> #19 0x00007ffff5aa7f20 in g_main_context_iterate (context=context@entry=0x63d8d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /usr/src/debug/glib2-2.54.3-2.fc27.x86_64/glib/gmain.c:3868
> #20 0x00007ffff5aa7fac in g_main_context_iteration (context=0x63d8d0, may_block=1) at /usr/src/debug/glib2-2.54.3-2.fc27.x86_64/glib/gmain.c:3929
> #21 0x00007fffcdfa78f4 in GtkSalData::Yield(bool, bool) (this=0x63ae70, bWait=true, bHandleAllCurrentEvents=false) at /data/sbergman/lo-ro/source/vcl/unx/gtk3/gtk3gtkdata.cxx:459
> #22 0x00007fffcdfabf07 in GtkInstance::DoYield(bool, bool) (this=0x6e6a90, bWait=true, bHandleAllCurrentEvents=false) at /data/sbergman/lo-ro/source/vcl/unx/gtk/gtkinst.cxx:412
> #23 0x00007fffec2515ca in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /data/sbergman/lo-ro/source/vcl/source/app/svapp.cxx:472
> #24 0x00007fffec24c2c4 in Application::Yield() () at /data/sbergman/lo-ro/source/vcl/source/app/svapp.cxx:537
> #25 0x00007fffec24c24e in Application::Execute() () at /data/sbergman/lo-ro/source/vcl/source/app/svapp.cxx:452
> #26 0x00007ffff774d617 in desktop::Desktop::Main() (this=0x7fffffff2950) at /data/sbergman/lo-ro/source/desktop/source/app/app.cxx:1623
> #27 0x00007fffec260825 in ImplSVMain() () at /data/sbergman/lo-ro/source/vcl/source/app/svmain.cxx:198
> #28 0x00007fffec262498 in SVMain() () at /data/sbergman/lo-ro/source/vcl/source/app/svmain.cxx:236
> #29 0x00007ffff77bba98 in soffice_main() () at /data/sbergman/lo-ro/source/desktop/source/app/sofficemain.cxx:166
> #30 0x000000000040086d in sal_main () at /data/sbergman/lo-ro/source/desktop/source/app/main.c:48
> #31 0x0000000000400847 in main (argc=4, argv=0x7fffffff2c98) at /data/sbergman/lo-ro/source/desktop/source/app/main.c:47
Change-Id: I622b4128de0a6be294b59caf2bb2d6f7b529c349
Reviewed-on: https://gerrit.libreoffice.org/52086
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Reported problem is that nothing happens for paste. Direct cause is that
BITMAP is selected as the format, and Excel advertises BITMAP, but when
we try to import that, it fails. There are 3 interesting commits in the
recent history for this topic:
- commit c47db038f9 (fdo#52547 SOT: Prefer
embedding image data to embedding linked image., 2014-02-07) was a
bugfix due to newer firefox
- commit 538c13f3d1 (fdo#78801 fdo#52547
Paste preference is image, then html, then text., 2014-05-28) was a
regression fix from the previous fix
- commit a96a7ce51a (fdo#81835 Don't
prefer GDI Metafiles to RTF/HTML, 2014-08-05), was a regression fix
from the previous fixes
Going back to the original state shows that the Excel -> Writer use-case
used to be RTF.
Restore the old Excel -> Writer (RTF) behavior by:
- going back to the original state, ignoring the enum class conversions
- re-fix fdo#52547: prefer bitmap over html, but leave everything else
unchanged
- fdo#78801 needs no fix in this case
- fdo#81835 needs no fix in this case
- tdf#115574 selects RTF -> table shows up
After all these complications, the actual fix is surprisingly simple.
Change-Id: I2d728afa7d1dd7888fa43525366c197d806eea6c
Reviewed-on: https://gerrit.libreoffice.org/52120
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
...that had been added with f0215dcc9e "unotools:
assert if TempFile::GetURL() fails due to missing file UCP". But when SRCDIR is
a read-only tree, JunitTest_sc_unoapi_2 fails with that assert firing when
TempFile::GetURL is called from SfxMedium::CreateTempFile
(sfx2/source/doc/docfile.cxx), which in turn is prepared to handle an empty
return value from GetURL, and the test succeeds after removing the assert. So
it looks like that assert was not precise enough to only fire in the scenarios
where it was intended to fire.
Change-Id: I333e9026ee14e9d1140b1b475793a5b15ededd70
Reviewed-on: https://gerrit.libreoffice.org/52085
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Apply the following extra requirements of Hungarian orthography
for sorting words and sentences:
– expand simplified double consonants;
– ignore spaces and hyphens;
– prefer lower case homonyms.
Note: automatic sorting is better this way, but it's still not error-free.
Important advantage, that now it's *possible* to fix all errors
in a semi-automatic way, using soft hyphens. Inserting them in bad
or ambiguous character positions will fix all automatic sortings later.
Example with consonant "gy", simplified form of long "gygy" is the
ambiguous "ggy" (it can be "g" and "gy", too, as in "meggyőz"):
= Bad = = Now = = Good (corrected, "|" signs soft hyphen) =
megbíz megbíz megbíz
meggyíz megzavar meg|győz
meggyőz megye megzavar
megzavar meggyíz megye
megye meggyőz meggyíz
megyünk megyünk megyünk
Change-Id: Ia84f264ad9ea4cdebe5f3ea22212a9594b4fe44d
Reviewed-on: https://gerrit.libreoffice.org/51973
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
The intent of the test is to trigger PDF export. On Windows, GDI printing
is used, so no use to run it (and it would provide a sane PDF with 2 white
paths).
Change-Id: I808807ce0d339cccbb3d097f486d2562e7b2819f
Reviewed-on: https://gerrit.libreoffice.org/52072
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Inserting the 0x02 placeholder as the first entry in the line
interferes with the aesthetic tab code. lcl_text
has code to ignore that placeholder, but lcl_utext
doesn't. Ignoring at lcl_utext has the same affect as
not processing it at all. Only .docx adds 0x02, so
it should be fairly safe to avoid the 0x02 completely.
Nothing was detected missing by skipping the placeholder.
All of the code was inherited from OOo.
Change-Id: Ie8840e5946fec89f270fef5523c88ee5051ca8ef
Reviewed-on: https://gerrit.libreoffice.org/51912
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
The part to detect a hit on a TableObjectText
in Draw/Impress for a non-selected Table was
setting the HitType to SdrHitKind::TextEditObj.
This prevents the latter happeing check for URL
(see below). Not directly setting to TextEditObj
is okay, this is determined and set later. I
checked various possible changes to keep the
behaviour as for 'normal' SdrObjects, so please
be careful when doing changes in the HitTest code
Change-Id: I326a73b88fc56fd902b5052cc3a2ddecf3c3ba61
Reviewed-on: https://gerrit.libreoffice.org/52016
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
...as the SwTextBlocks ctor internally calls SwDOCXReader::MakeEntries ->
BeginPutDoc which wants to open the document read-write. That would fail if
SRCDIR is a read-only tree.
Change-Id: I433b80bcec53c8ca4282d1f45c941153a4064eb9
Reviewed-on: https://gerrit.libreoffice.org/52053
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>