| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code was there to do it, but it was using minimumValue instead of
maximumValue to test if the '+' should be allowed.
Task-number: QTBUG-20691
[ChangeLog][QtWidgets][QSpinBox] Entering positive values with the '+'
prefix is now allowed.
Change-Id: Iff62d073e350dc9a33b7e06e4b492048c74437c4
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|
|
|
|
|
|
| |
Found by: Tomaz Canabrava <tcanabrava@kde.org>
Change-Id: Ia1b5b00819cf4b145d1384aacbd54ed9a23aa6a3
Reviewed-by: Dirk Hohndel
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We want to make sure that there's a constant propagation from the static
variable that is filled in with the current code-generation options.
With most compilers in debug mode, we'd carry dead code. With MSVC, even
inlining is really bad even in release mode, and it doesn't perform
constant propagation even with __forceinline.
Change-Id: I7a95ff6622b864771243990bb5e205b2df0c33fc
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|\
| |
| |
| | |
refs/staging/stable
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure
mkspecs/macx-ios-clang/features/default_post.prf
tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-33794
Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
it's bogus in the first place that the meta files contain windows paths,
but straightening that out is a prohibitive effort. so instead generate
additional s/// commands which take care of these paths.
fwiw, the generated s///i command is a gnu extension. but as we are
doing this on windows only where we are using our built-in sed command
anyway, this should be fine.
Task-number: QTBUG-33794
Change-Id: I46fcc598db12816ee56b5371ab184f6277eb3a22
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
And that connectNotify and disconnectNotify might be called from
another thread
Task-number: QTBUG-34829
Change-Id: Id118b97b92e9aa085a1d4368282294f90cfb1706
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a consequence of us wanting to show the OS X transient scrollbars
as soon as the user touches the trackpad with two fingers.
Task-number: QTBUG-35120
Change-Id: Icf63b0ec8c32ac66108822804bb06a0762547ef1
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For example QIcon can return pixmaps with non-integer devicePixelRatio,
if there is no pixmap that exactly matches the requested size.
Task-number: QTBUG-35125
Change-Id: I76bfa2766979a454c24b1abcf9e18930f5671c1e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In some cases the classLoader is not able to resolve fully-qualified
names that contains forward slashes. Unlike FindClass() which expects
the fully-qualified name to contain slashes, the classLoader expects
the binary name, i.e., with '.' as separator.
This caused a crash in QtMultimedia when accessing a nested class.
Task-number: QTBUG-35298
Change-Id: I77728352fbab930ae1914bc1cb2189e458e179e2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: If237f08683290105413dc47923e23a496765bb22
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently there is no way to always hide the statusbar
on iOS other than showing a window in fullscreen. This
patch will check if the statusbar is (initially) hidden
from the Info.plist, and respect that in the application.
SubAttack is an example of an app that (because
of styling issues with MainWindow margins) manually
sets the geometry larger than fullsreen, and calls
showNormal(). In that case we still want the statusbar to be
hidden.
Change-Id: Ia365d14971978360d0b39621ff0f8f82f74b57e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Going through the platform window failed when the parent wasn't created
yet. We can still get the window state of an yet-to-be-created top level
window.
Change-Id: Iaa61ddc50df037ac0bd2fd0884884c2bfce1dd9a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I038df8034ee00868eeee18b1ed09f7a70e3dd77a
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
false"
This reverts commit 2eb1e28a90eaf82f4405dc65584021f16415014b,
which makes several of the OpenGL examples crash on startup.
(textures, hellogl_es2)
Change-Id: Id47d2df6f57b2396c333e478b3c062f4cb4becb5
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Qt defaults to creating a QWindow as offscreen surface
if QPlatformIntegration::createPlatformOffscreenSurface
returns 0. Using an offscreen surface is often done
in a background thread, which is problematic, since then
a QIOSWindow will also be created in a background thread.
According to Apple docs, working with a UIView from other
threads than the main thread should not be done. In our
case, we instead hit an assert in QApplication that
checks for the same.
As a quick fix for Qt 5.2, we remove the offending call that
causes the assert, since we anyway will call the same function
lazily when becoming first responder.
Task-number: QTBUG-35378
Change-Id: Id35462f99783a9748c688b163f6497de9bfff73e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The drag and drop event filters do not play nicely with touch events
or virtual keyboards.
Task-number: QTBUG-35348
Change-Id: Id4d079ae72882f48750d394f13e10700d60e4532
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Prevent the cocoa platform plugin from sending expose
events for windows that are off-screen or has invalid
geometry.
Differentiate between initial exposes and geometry
update exposes, in order that e.g. geometry updates
that happen before setVisible() don't trigger expose
events. After the initial expose geometry updates
to and from invalid geometry will trigger obscure
and expose events.
Task-number: QTBUG-35143
Task-number: QTBUG-35091
Change-Id: Ibbff20c69974f098ea7635e9ca38620597840a05
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It turns out we cannot rely on QGuiApplication::focusWindow() to
be non-zero at all times (e.g when pop-ups are closing etc).
So instead use m_focusView.qwindow which points to a
valid QWindow. This window is the same as QGuiApplication::focusWindow
most of the time, except when a focus window closes.
For those cases we get a new call to scrollRootView immediately
after with m_focusView updated to reflect the new focusWindow.
Task-number: QTBUG-35339
Change-Id: Icb3a8d3140af1f1904495a9289c8c26ab79e70f6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
An application will sometimes crash if the keyboard
is told to hide while the application is about to
quit. This patch will ensure that we set m_qioswindow
(and [UIView qwindow]) to 0 when the window is destroyed.
We also check this pointer before telling QUIView to
resign first responder when closing the keyboard. The
latter will fix the crash.
Task-number: QTBUG-35356
Change-Id: I934088beb7e877c5b33d96225cb215a8ffd4dbb2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qdoc intends to prepend all html files related to QML with
a 'qml-' prefix. This doesn't work for basic QML types, as
those nodes do not have valid qml module name information.
This change fixes the issue by removing the requirement
for a qml module name, thereby always using the qml
prefix for a qml (basic) type.
Task-number: QTBUG-35229
Change-Id: If61572b2dc8a39be08140c37aa59646b88e99b29
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QStyleAnimation automatically stopped for hidden QWidgets, but didn't
know anything about QQuickItems and kept animating regardless of their
visibility. This change ensures that style animations stop as soon as
the animation target no longer accepts the animation update eg. it has
become hidden or the window was minimized.
Task-number: QTBUG-35319
Change-Id: Ie48191fd918c626c0d9afe2e7d2390c495efb071
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For enum types that have QFlags versions, qdoc was
outputting the documentation with a hard-coded link
to qflags.html, which only workjed in the single
directory mode. When qdoc outputs modular documentation,
the href for the link should be "../qtcore/qflags.html" .
Now qdoc computes this href correctly before it writes
the docs. The href is no longer hard-coded.
Task-number: QTBUG-35209
Change-Id: Ibdf5b11dbd063726eb77048de78f8874c65752ca
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QIOSInputContext controls QUIViews first responder status
based on whether or not the keyboard should be open.
But since QGuiApplication updates focusObject before
focusWindow (when e.g a popup closes), we sometimes ended up
activating the old window upon a call to becomeFirstResponder.
This in turn led the application to hang because of
recursive dependencies in qioscontext when the focus window
changed.
So the solution for now is to avoid activating the window
when the view becomes first responder. This should be
fine since we now activate the window from
QIOSWindow::requestActivateWindow (ref: 6272a816d1)
Task-number: QTBUG-35340
Change-Id: I3068c14fec18d84d4b0b348a043c4c054e366c75
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1) Revert 880b614 for libstdc++ <= 4.7.3 || (4.8.0 >= ... <= 4.8.2)
2) Fix off-by-one error in reverted code for Median::_bufferSize <= 2.
Task-number: QTBUG-35058
Change-Id: I9d226c2806c1cf06c3d5b9c9f371262d2d69bf2b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a workaround for letting qdoc to successfully
generate documentation for the Qt namespace. qdoc
doesn't properly handle multiple declarations for the
same namespace spread across multiple modules.
Task-number: QTBUG-35230
Change-Id: I449b17e1171d1a4481b9cf07cd48c803feed5be9
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch tells the window system that it should create a mouse enter
event if a window was activated when the mouse was inside. This wasn't
working and was a regression.
Task-number: QTBUG-35109
[ChangeLog][Cocoa] Fix enterEvent not being called on activate.
Change-Id: I4e4662b4a4c58dafa8d0a2c09458ab88f678d243
Reviewed-by: Liang Qi <liang.qi@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can't use latest anymore because the qreal change
is not back compatible and all the apps that used latest
will stop to run when Ministro will upgrade the libs.
Change-Id: I5286e72eccf86b4dead773a637aa28e29d120605
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The definition and usage of QNativeGestureEvent had already been
protected against QT_NO_GESTURES but the implementation had been missed
out before.
Change-Id: Ie039e08257ad5eb7705342e4248b904f6ceca8df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(same thing for center- and delimiter-aligned tabs)
The width of the inline object wasn't taken into account, the code in
QTextEngine::calculateTabWidth only looked at glyph widths.
Change-Id: I303a6561c67870ff2094a685698e642fc1b53b12
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Change highp to mediump. This qualifier is ignored on desktop, and
mediump should be sufficient elsewhere.
Task-number: QTBUG-35353
Change-Id: I79f0ed88717d45dada5dcb781e75b10e72db4bd0
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Link fixed for OpenSSL
Task-number: QTBUG-34749
Change-Id: Ic72858c730400124fb3f09d887c827d93500338f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: If42fd83a68543d59b5a3a6b89e2c402aa452b251
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The functions fromBytesToWord() and fromWordToBytes() are called when
building on 64bit BigEndian platforms. It fails because those
functions are disabled on the source code. Enabling those functions for
64bit BigEndian platforms fixes the problem.
Task-number: QTBUG-35228
Change-Id: I5ccacd4fb5051df05f67c8da879b3a9e49953861
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
During show() of a QAbstractScrollArea we might get resize events, which
results in laying out the children of the scroll area. One of these
children are the scrollbars, and raising them to the top means creating
them, which in turn means creating all parents, including the abstract
scroll area itself. Creating the abstract scroll area means creating
a platform window, which might send synchronous resize events as a
result of creating the window, and we end up recursing.
Change-Id: I1a2813f03091d6c42e51834315835551cb2fd621
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-33839
Change-Id: I542fb894c31ce38509a70a71bd0ea1bc84bb2a03
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a platform window is created from a QWindow without setting a valid
size or position on the QWindow, the platform window is expected to
apply sane defaults. We use the baseclass initialGeometry() function
for this, similar to other platform plugins.
The default geometry unless otherwise set and/or calculated based on
size hints is that of the screen's available geometry.
An improvement to this is to detect whenever we apply the screen
geometry, and also apply the appropriate window state, but that
needs more testing.
Change-Id: I02b12064ce6d55c04fe0cc2cd1d2816ca1113f40
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When sending expose events to Qt, Qt will ask us if we're exposed,
and we need to tell it that we're not, so that clients will not try
to makeCurrent on a CA layer that has a zero width and/or height.
Note that this only works because we flush expose events.
Change-Id: Idfbe03a2f35681084061376a3c650a8da027fda4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-35363
Change-Id: I1b3d883ed10200af8a2d4188fb1725b36eb78022
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make QJsonObject::const_iterator() part of the same doc
group as the non-const variant. Also add a \since
command with the correct value.
Task-number: QTBUG-33052
Change-Id: I97fa2cc44dae93decf2b99a1384e37579b7dac46
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
QtAndroid::findClass uses loadClass methods to find Qt's java classes.
The documentation says that we should use a binary name.
Change-Id: I2146789235435b7052827cde58b7719b7d62dc1d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-34749
Change-Id: I66251e4b40e2930b08ed4bd932aef60aae7ebaa4
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Set dynamically the buffer size when reading pps objects since a pps file
size is not always fix.
Change-Id: I48f80389161bfbce3342e53ceec0b13bb7df0e4c
Reviewed-by: Tony Van Eerd <tvaneerd@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Suppress warnings like:
QFontDatabase: Cannot find font directory '...' - is Qt installed correctly?
occurring for example when using qmlplugindump.
Add option flags (similar to Windows plugin) to the integration
class to be used for QT_DEBUG_BACKINGSTORE and other functionality.
Add a dummy font database with empty populate() function to be
used unless the debug flag for the backing store is used.
Task-number: QTBUG-33674
Task-number: QTCREATORBUG-10685
Change-Id: I7eaff3025de12e6b0471a3430f986b0cd810e22c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt applications require the "hardwareAccelerated" flag set on
some devices or Android versions. The symptoms that this was missing
was problems when handling orientation changes. When the target
SDK version is >= 14, it is true by default, but for lower versions
it is not. There is no reason to set this to false for a Qt
application, since we don't use any of the unsupported 2D drawing
operations in the documentation, so lets just set it to true for
all applications.
Task-number: QTBUG-35293
Change-Id: Ie131a52a2a3fc5a520d0c5dd5d64f79269e9b6b5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sizes gained (measured on 64-bit systems)
BezierEase: shrunk 8 bytes
QRegExpCharClass: shrunk 8 bytes
QRegularExpressionPrivate: shrunk 8 bytes
QTimeLinePrivate: shrunk 8 bytes
QUtcTimeZonePrivate: shrunk 8 bytes
QTextStreamPrivate: shrunk 8 bytes
QDirPrivate: shrunk 8 bytes
QFileDevicePrivate: shrunk 8 bytes
Not done:
QRegExpEngine: 18 bytes in 6 holes (you deserve high memory usage if
you're still using QRegExp)
QTextBoundaryFinder: 8 bytes in 2 holes (public class)
QIODevicePrivate: 6 bytes in 2 holes, but there's no gain in packing
QProcessPrivate: too complex and my copy is modified
QThreadData: awaiting change from Marc
Change-Id: I2a388b5ce17dec0dafcef18ed2e80d0379aa7d1e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Move the EGL initialization code outside of the XLib ifdefs, so it
can be enabled for non-XLib builds as well
Change-Id: Ie025551e4e99bb0b365f025356bd9725f4283b82
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-33244
Change-Id: I95427b1fd6edaafe99738acfec28f6fd37b70cde
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Iff44698dcc941ca244b476f0e6c6a993f2ad75f3
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
|