Age | Commit message (Collapse) | Author |
|
Change-Id: If927a834f5b5d722fc36cce40e161597af6234ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116972
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Added new cursor FatCross to calc. Change mouse cursor to
FatCross while hovering over the spreadsheet in calc instead
of earlier Arrow.
Co-authored-by: Mesut Çifci <mesutcifci97@gmail.com>
Change-Id: I672a058cc702eab0cba6ac953534def915766859
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114679
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
|
|
Change-Id: I31297142761255b1f357fc9677a644b7a93c921a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111128
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
when calling a function, and passing only one arg, but the
function has defaulted args, we were ignoring this case.
Change-Id: I86517f18e30531127664088ddc09ef96dbd8bdf5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115033
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I0701b15a28ab3583586c0c8018c511e100b41a93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114948
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Rather use a proper alpha channel if we need transparency.
This is another small step towards merged alpha in our vcl
layer.
I suspect the intent in a lot of this code was to save memory.
Which have been a thing way back then, but these days our
backends mostly end up doing a copy-and-convert to a real
alpha channel anyway, so the existing code is actually
now a pessimisation.
Change-Id: I4a2bcbb2f76b841f05bc00580f364492829c69de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114808
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Regression from commit cb09533c4a007e7cfde69046bcaeb47117d30a86
("tdf#141269 Incorrect transparency after roundtrip").
Change-Id: Ic20db743e6f364fe14305ccb9f4b74d95a7040aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114527
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I656f06a74d9f0180ae460264563d6a935c7d2c60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114377
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia2172bcab60f32c9d9d4f6ca0230484343eef69b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114321
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Revert "convert internal bitmap formats transparency->alpha"
This reverts commit c181e510c5f5e74f1f6824b64637849aace9ae63.
and later fix up of
Revert "tdf#141504 qt5: ugly images"
This reverts commit e7424ff25a724ea5bb54b2282d5c3cbf74c92053.
a lot of places are still working int transparency values
and not opacity
Change-Id: I31342cdb76629acbaebfcdfa385407d3291fe06f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114150
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Handle SalFrame::Show's bNoActivate. The missing implementation
became visible with commit 001cf630f14109b4200b218161418350562713fa
("register navigator individually in each module that it exists in")
Change-Id: I5edf43bdf2b0460410fdd846c7698d00299088bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114116
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Adds the used font backend and the QPA platform name, so we don't
need to ask / verify all time (and less chance of wrong info).
Examples:
- qt5 (qfont+xcb) => QFont text rendering + X11 backend
- kf5 (cairo+wayland) => Cairo text rendering + Wayland backend
Change-Id: I1102dd6d83b0ed48318ac5c31c8ca09d4fdd73eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113945
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
This was hiding tdf#141623, when I decided to implement the override
to run the kf5 VCL plugin with the qfont text rendering.
Change-Id: Id1fcd363bd77a756cb27e3a171c872ce792da5ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113956
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The QFont based rendering path directly uses the widgets size to
initialize the QImage buffer image, so do the same for the Cairo
surface, instead of the arbitrarily size of 640x480.
Change-Id: I91326dab67cbbb5e75b78b02c34eaca61ad26482
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113955
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
See tdf#42949 for motivation
Change-Id: Ifc253bf800bb1468b5774663a93f4fb30bec81d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113657
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
This is an effort to make SalGraphicsImpl mandatory for all
backends.
This introduces Qt5GraphicsBackend: a subclass of SalGraphicsImpl,
which now handles graphic rendering.
Change-Id: I42aece59d0c692ca1dd33e30f31c5bcceab02008
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113734
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
regression from
commit c181e510c5f5e74f1f6824b64637849aace9ae63
Date: Thu Jan 7 09:46:07 2021 +0200
convert internal bitmap formats transparency->alpha
Change-Id: I858ba2c986bdac6f7e26145efde253485e8b2281
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113660
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
LO gets a Qt signal on all clipboard changes. For X11 you get one
signal when you set the clipboard. Anything else normally signals
lost of clipboard ownership.
But on Wayland LO somehow gets a second notification without any
actual change. AFAIK it's not triggered by any LO actions and
isOwner still indicates, that LO has the ownership. This breaks
the single notification assumption, the code was relying on.
Initially I found it quite tricky to find a rule to identify the
ignorable change signals.
Change-Id: I744cdd3c4254533b01d909309ecc3967d789361e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113617
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Tested-by: Jenkins
|
|
This changes all backends to use PixelFormat as the input to
the SalBitmap::Create method (and all the backends). This is the
first part as we need to make sure to also limit the use of
GetBitCount method and also use of it in SalGraphics.
Change-Id: I8d2b6adfcb8fe3dd78010538411f338c9a1c3996
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113603
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
We removed 4-bit support for bitmaps, but the qt5 backend still has
(special) support this bitmap format, which now can safely be
removed and make the backend a lot simpler.
Change-Id: I12309909a9ee3079cef7c4e59154ac48151e18d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113619
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
since we have already removed the 4-bit internal bitmap formats.
Change-Id: Ie481aaa8e25642a47e30beb6f37e2d3beda304e9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113412
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ifd8f58771ea6f9212a0dca7d4550c86ebecd9333
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111814
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I92e9db7abdfe5912335fd94e42422e8556d71091
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111769
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This allows the VCL backends the apply the extra alpha transformation
as it sees fit, rather than it being done manually elsewhere (and
even if the backend doesn't implement it, at least do it in one
place in the function).
With the document from tdf#136223, going from slide 2 to slide 3,
this easily saves 10-30% of CPU cycles. As an additional bonus,
using AlphaMask::BlendWith() rather than AlphaMask::Replace()
makes edges of shapes noticeably more smooth.
Change-Id: I036dc9b887d6def0c7cdad3982becabdc7cd5206
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111247
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
At least with Skia this is faster than GraphicObject trying
to handle it manually, even in raster mode.
Change-Id: If77d108751f5621878d4ea87a996c2ea0253d111
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111246
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I8e08c4e5c5b92df4cbdb8ea32f40dbde25f7afd3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111433
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Image formats and graphics APIs use alpha, not transparency,
so change our internal formats and data structures to work directly
with alpha, so we don't need to modify data before we push it to
graphics APIs.
Change-Id: I537f77f79e83876be11d787901df42710d190842
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108919
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
So my initiak code had a single case with fallthrough to the
default, but that is totally bogus for multiple cases. I honestly
have no idea, if that ever was correct. I also don't know, if
simply returning an empty QVariant is the correct error handling,
but the fallthroughs were definitly wrong.
Change-Id: I1880a960164eccbb6a5a3832c4ae9aaeda065d43
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110946
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Qt reports the unscaled pixel values to the IM, so simply divide
all values reported by SalEvent::ExtTextInputPos by the window's
scale factor. This correctly positions the IM window on a scaled
LO window.
Change-Id: Ia639ee3e5fc0e47f7017896b34730bbda7f06a16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110945
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
because of the side effects
using a bare GtkGrid as m_pSocket in vcl/unx/gtk3/gtk3gtkobject.cxx
is perhaps a poor choice, getting its xid causes poor side effects
wrt events belonging to its child widgets getting delivered to
the SalFrame widget, so duplicate scrolling after showing a opengl
slide and/or showing a video and lots of flickering
we're (generally at least) not using the xid under gtk3 so don't set it
unless it's explicitly asked for. Happily the gtk Player::createPlayerWindow
doesn't use its arg[0] xid in any case, so don't bother setting it for
that backend.
Change-Id: I1c59a607a332635091782c3b49de10647558f301
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109941
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
with an eye to making it on-demand
Change-Id: If6cefd68a336dc6afe23591c857bd71034215b54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109929
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
to reduce the churn, we leave the existing constructor in place,
and add a clang plugin to detect when the value passed to the
existing constructor may contain transparency/alpha data.
i.e. we leave expressions like Color(0xffffff) alone, but
warn about any non-constant expression, and any expression
like Color(0xff000000)
Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id13869138a622e62d9ffebf2c89bddccda6aff01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108238
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...for LIBO_INTERNAL_ONLY. These had been missed by
1b43cceaea2084a0489db68cd0113508f34b6643 "Make many OUString functions take
std::u16string_view parameters" because they did not match the multi-overload
pattern that was addressed there, but they nevertheless benefit from being
changed just as well (witness e.g. the various resulting changes from copy() to
subView()).
This showed a conversion from OStringChar to std::string_view to be missing
(while the corresponding conversion form OUStringChar to std::u16string_view was
already present).
The improvement to loplugin:stringadd became necessary to fix
> [CPT] compilerplugins/clang/test/stringadd.cxx
> error: 'error' diagnostics expected but not seen:
> File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 43 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:42): simplify by merging with the preceding assignment [loplugin:stringadd]
> File ~/lo/core/compilerplugins/clang/test/stringadd.cxx Line 61 (directive at ~/lo/core/compilerplugins/clang/test/stringadd.cxx:60): simplify by merging with the preceding assignment [loplugin:stringadd]
> 2 errors generated.
Change-Id: Ie40de0616a66e60e289c1af0ca60aed6f9ecc279
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107602
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...in preparation of potential future changes from using OString to using
std::string_view, where OString has an undocumented feature of allowing
construction from a null pointer.
This is mostly the result of a manual audit of potentially problematic getenv
calls across the code base. But there can be other problematic places too, like
the xmlGetProp call in tools/source/xml/XmlWalker.cxx. To identify those,
rtl_{string,uString}_newFromStr aborts now in non-production debug builds when a
null pointer is passed(and all places that hit with a full `make check
screenshot` have been addressed here). Once we are confident that all
problematic places have been identified, we should drop support for the
undocumented feature (see the TODO in sal/rtl/strtmpl.cxx).
Change-Id: I595cc6d4f1cda74add2a3db171323f817d362b08
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107430
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
My qt5-qtbase-devel-5.15.2-2.fc33.x86_64 /usr/include/qt5/QtCore/qnamespace.h
states
> #if QT_DEPRECATED_SINCE(5, 15) // commented as such since 4.7.0
> MidButton Q_DECL_ENUMERATOR_DEPRECATED_X("MidButton is deprecated. Use MiddleButton instead") = MiddleButton,
> #endif
so lets assume that the MiddleButton replacement is available since at least
Qt 4.7.0 and use it unconditionally here. (Both occurrences had been introduced
with 1426437be0530a8ba5749c7e76c5ce0e9053af2f "QT5 implement some mouse
handling".)
Change-Id: I1db088407a4974b64ef90da75e3c13ede7647422
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106862
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Tested-by: Jenkins
|
|
This is in the spirit of tdf#108151, based on the information Qt
provides for the IM setting. I don't know how correct it is,
especially looking at Caolans comment 3 in that bug report
regarding the assumed validity of GtkIMContextInfo. OTOH it seems
to work well enough for my simple tests.
Some BG info: while the QInputMethod object is a global one, it's
"bound" to the focused window. So you'll get change events, when
you change the input window, with the correct IM settings for the
new one, be it a real window or just the menu bar.
To prevent unneeded flushes of buffers and language lookup, this
caches the current IM language of a window.
The language is not affected just by changing keyboard mappings,
which the bug reporter requested! It just works with a configured
input method, like fcitx or ibus (which can have keyboard mappings
too, which work correctly).
Change-Id: Ia9133edf4d1ce77d29adbfe57c180db15db0a560
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106354
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Take the frame border/padding into account when calculating
the content rectangle (i.e. the area that can safely be
drawn into without overlapping the actual frame) when
calculating dimensions in 'getNativeControlRegion' regardless
of the exact 'DrawFrameFlags' being passed.
Previously, gtk3 and qt5 only did this when the
'DrawFrameFlags::NoDraw' flag was passed in addition,
but the actual drawing routine 'drawNativeControl'
does not make any such distinction, so the frame ended
up at a place that was still in the "content rectangle"
as calculated previously (which was the same as the bounding
rect).
Returning the actual content rect is a prerequisite
for making 'VclScrolledWindow' take the width of a natively
drawn frame into account, which will be done in a
follow-up commit.
Change-Id: I8d3a3fbd387108a24a0478e3465c8950e6d59735
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106155
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
<caolan> that "SalPoint" doesn't really seem to to have a purpose
except to highlight that "Point" is assumed to use LONG under windows
and can be passed unchanged to those windows drawing apis
<caolan> so I guess remove SalPoint entirely, use Point instead,
and convert to "POINT" under windows ?
Change-Id: Ic15a7f4516e2075a228fa65cac4e8494d5b3abaa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105634
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I58fb6477222a26455f5db0a7d972c46f290c085c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105261
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia8e2a7ce75bfded98e85fa583d1404710069d335
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105249
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
If this crashes LO too often, we can revert it. It helped me to
debug tdf#137804. Then we might need to work with exceptions or
some other way to notifiy the creator of the Qt5Painter, that
the constructor has failed. Much more work to handle all sites
using Qt5Painter...
Change-Id: I81cd18770dc93d8dd1542972cd4fc220dd0dce09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104894
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
For a test I added a SAL_WARN, but that created many more debug
messages then expected, just when opening the print dialog. So
this just handles the crash like the CairoTextRender variant of
DrawTextLayout does, by returning early.
Change-Id: Ie5b58ebbba02dace0e777b60fcbc3b9f46ea9d66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104893
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The default background color of the frame is APPBACKGROUND, which
is matched to GetWorkspaceColor(). That color is visible in Writer
as the default document workspace background.
Originally I just saw the dark background of the button box in the
start center, and thought the workspace color in Qt is wrong and
changed it in the reverted commit, missing the change of the color
around the Writer document.
Now that the button boxes's background color isn't fixed via the
"branding" setting, we also must react to changed style settings,
so we override the DataChanged function.
This also reverts commit e0c72e31c1d455c26110c35e8780d420e17cdea6.
Regressed-by: a927e0964ba0442d53fffb22c577e54bcf183ed7
Change-Id: I62396355054523baef1197a8a8af61c2f0d29ef3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104740
Tested-by: Jenkins
Reviewed-by: Thorsten Wagner <thorsten.wagner.4@gmail.com>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Store the origin of the Qt5FontFace and therefore the type of the
font ID and use either QFont::fromString or QFontDatabase::font to
generate the correct QFont instance.
Interestingly the QFont::fromString worked with the minimal font
string, ignoring the font style, but now fails with error messages
when including the point size. Guess Qt supports partial font
strings, as long as they match the segment types from the start.
Change-Id: I6b30423a5ae9abd8ee50d6087a3ec61d85f6320f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104652
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I0835f66b8ce478f645ca2e5c376bef9a0740c8c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104637
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
partly to flush some use of "long" out the codebase,
but also to make it obvious which units are being used
for angle values.
Change-Id: I1dc22494ca42c4677a63f685d5903f2b89886dc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104548
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This was uncovered by the fix for tdf#136555. The current color
for the start center button bar is too dark.
Regressed-by: a927e0964ba0442d53fffb22c577e54bcf183ed7
Change-Id: I36356117f03255cfbf1fa24a6391cb81cf1883db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104578
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: I6a4a0f90239686ff1c94e1a550540223324184e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104540
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ice1055021e8568634e9a66ba89d3bb4ef4e731df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104522
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|