| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Connect the internal private API to the QApplication public
attribute. This allows the enabling/disabling of the splitview
functionality from apps without any hacks.
Task-number: QTBUG-16572
Reviewed-by: Tomi Vihria
|
|
|
|
|
|
|
|
| |
Use correct native theme graphic for dialog backgrounds. In the past,
native menu background graphic was used for dialogs and menus.
Task-number: QTBUG-9924
Reviewed-by: Tomi Vihria
|
|
|
|
|
|
|
|
|
|
|
| |
In Symbian dialogs have layout (on LeftToRight UIs)
where icon is on the right and text on left.
Whereas, Qt by default has icon on the left and text on the right.
Fix Qt dialogs to behave like native ones on Symbian.
Task-number: QTBUG-9924
Reviewed-by: Tomi Vihria
|
|
|
|
|
|
|
|
| |
StandardIcon enum comparison should be done with bitwise operation,
not with value.
Task-number: QTBUG-20240
Reviewed-by: Tomi Vihria
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
QS60Style: provide more standard icons
Update QtOpenGL section in Symbian platform notes.
The qmlshadersplugin deployment must be scoped same as its building
Do not try to open VKB if it is already open in Symbian
Introduce QPixmap::fromSymbianRSgImage(RSgImage*) to GL engine
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add custom standard icons for Symbian iconography. Additionally,
map few existing standard icon enums to new icons.
Task-number: QT-5116
Reviewed-by: Miikka Heikkinen
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If QEvent::RequestSoftwareInputPanel was handled when there was already
an active virtual keyboard that had a child dialog open such as symbol
or writing language selection dialog, the VKB would be brought to
foreground on top of the child dialog, causing several problems, such
as options menu and letter keys no longer working in VKB.
Fixed by checking if VKB is already open before opening it again.
Task-number: QT-5133
Reviewed-by: Sami Merila
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Fix QWidget::palettePropagation2() autotest on Symbian (part 2)
Fix QWidget::palettePropagation2() autotest on Symbian
|
| |
| |
| |
| |
| |
| |
| | |
Add also include to QS60Style to avoid build failure.
Task-number: QT-5011
Reviewed-by: Miikka Heikkinen
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Autotest fails since calling QApplication::setPalette() clears away
QPalette hash (class specific palette information). QS60Style tries
to re-set theme-specific hash after updating application palette with
real theme background, but does not take into account that application
might have defined own custom palette hash data.
As a fix, store the previously set palette hash information and restore
it after calling QApplication::setPalette(). Additionally, remove the
palette change event sending, since QApplication will post that event
anyway when palette is updated.
Task-number: QT-5011
Reviewed-by: Miikka Heikkinen
|
|\ \
| |/
|/|
| |
| |
| |
| | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fix text color in some cases of QML and QStaticText
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts 518c2a58ed6fdfd7449cb4476aa8ea0d32ad16e3 which caused a
regression.
When writing systems are mixed and an underline is set on the font,
QPainter will set a pen with the current color and a new width on
itself before drawing the decoration. This would cause the recorder
in QStaticText to mark the pen as dirty, saving the current pen
color in all subsequent text items. The effect was e.g. that in QML
the cached color would override the current one, making it impossible
to change the color on the text without forcing a relayout somehow.
The right fix is to only mark the pen as dirty when its color actually
changes.
Task-number: QTBUG-20159
Reviewed-by: Jiang Jiang
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Qt::DialableCharactersOnly and Qt::ImhFormattedNumbersOnly now use
numeric mode virtual keyboard as they are supposed to. '*' and '#' keys
can be used to enter the non-digit characters allowed in these modes.
Task-number: QT-5085
Reviewed-by: Sami Merila
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When using "splitview" (virtual keyboard with non-fullscreen
editing mode), it is currently auto-translating the cursor to the
center of the screen if possible.
It would be preferable, if the translation would only be minimal,
just enough for cursor to be visible. This makes scrolling of
input widget (i.e. large editor) easier to use, as text flows
naturally (row-by-row) and not in "jumps" like it used to do.
Additionally, limit the translation to the end of input widget
boundary.
Task-number: QTBUG-20034
Reviewed-by: Miikka Heikkinen
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-19996
Reviewed-by: Sami Merila
|
|\ \ |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-water-staging:
Fixes to how resize event and layout request are posted.
Fixed move a QGraphicsWidget and invalidate its layout at the same time
Fix infinite recursion when changing geometry on Mac
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also fixed how the relayout is initiated. This is because we needed
to react differently to *posted* layout requests than to sent layout
requests. (sent ones should activate the layout, posted ones should
also resize the widget).
We therefore introduced the private slot _q_relayout() in order to
be able to make the distinction between posted and sent layout
requests. (Instead of posting we now invokeMethod with a queued
connection. In order to make it behave as it was compressed we also
have to refcount the number of calls to invokeMethod.)
(Note that refCount is 16 bits only, so it should not overflow
in sane cases. In the insane cases, the worst thing that will happen
is that it'll relayout the layout one extra time).
Make sure we resize QGraphicsWidget to be within its min,max sizes
when we change one of its constraints. (e.g. we change minimumSize to
something bigger than the current size). This did not work if the
widget did not have a layout.
Send a resize event whenever a QGraphicsWidget changes its size.
This did not happen before, because in the cases where a Layout Request
was sent, we did not send a resize event. This patch changes that, so
that when we send a resize event, we do not send a Layout Request
event.
This means that a Layout Request event is now *only* sent in order to
tell a widget to relayout its children (but the widgets size was not
changed, that's why we cannot send a resize event in that case)
Also includes a unit test, and a fix to make sure that we send a resize
event when we resize due to the sizehint changing followed by a setPos
command.
Added autotests for this. (and changed some)
Many thanks to John Tapsell and Stanislav Ionascu for help.
(autotests were provided by them).
My poor explanation did not convince Frederik 100%, but he is
"convinced enough" :)
Reviewed-by: Frederik Gladhorn
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QGraphicsWidget::setGeometry() could sometimes call
QGraphicsLayoutItem::setGeometry() with an uninitialized rectangle.
This happened in the specific case where the widget had a layout that
was not active, and where setPos was called on the widget.
This would in turn cause it to enter setGeometry() where it would act as
expected. However, due to the fact that we sent a LayoutRequest event
at the end of that function, it could result in that
QGraphicsLayout::activate() would call setGeometry again.
Now, we would actually enter setGeometry, where wd->inSetPos == 1.
Then, we would not enter the "if (!wd->inSetPos)" block nor the
"if (moved)" block. It would then end up calling
QGraphicsLayoutItem::setGeometry(newGeom), where newGeom was
uninitialized.
Bug happens only when
QGraphicsLayout::setInstantInvalidatePropagation(true) was used,
because that was the condition for sending the layout request from
setGeometry()
Tracked down and written by Stanislav Ionascu.
Reviewed-by: Jan-Arve Sæther
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some complex widgets might get a negatively sized rectangle when
calling QWidgetPrivate:setGeometry_sys_helper(), triggering a infinite
recursion. Normalizing the rectangle size before checking for size
change is enough to break this infinite recursion.
Reviewed-by: Richard
Task-number: QTBUG-17333
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Fix dialog position adjustment regression in Symbian
SSL readbuffer 16->32 kB
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Last word inputted was duplicated after input method hints changed
Simplify texture pooling logic in GL graphics system.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Reset input context in Symbian when another window is opened.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
KERN-EXEC 3 panic in QCoeFepInputContext::translateInputWidget()
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Close context menus during orientation change.
Have -small-screen enabled in certain examples on Symbian always.
|
| |\ \ \ \ \ \ \ \
| | | |_|_|_|_|_|/
| | |/| | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Avoid buffer overrun in QMacPixmapData resizing
Fix glyph metrics with QStaticText/Freetype/raster and light/no hinting
Missing glyphs transforming QStaticText on X11/raster with subpixel AA
Fixed clipping errors for non-extended paint engines.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Shouldn't use size bigger than the original (source) pixels buffer
or the new one (just allocated).
Task-number: QTBUG-18547
Reviewed-by: aavit
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This is a back-port of part of cad70d64d0bbada. In the raster engine's
drawCachedGlyphs(), which is used by QStaticText, we would use the wrong
metrics to lay out the glyphs, because loadGlyphMetrics() would assume
full hinting. A visible effect of this was that the baseline of rotated
text became wavy.
Task-number: QTBUG-18185
Reviewed-by: Jiang Jiang
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Static text took an untested and broken code path for the combo of
subpixel AA, X11, raster engine and transformation. This would cause
missing glyphs. The reason was that QStaticText took an unused code path
which turned out not to work. The workaround is to use gray AA on
transformed text, like we already do for the GL engine. In Qt 4.8, the
static text code path has been rewritten to use the Freetype cache
instead of the image glyph cache, so the bug will be fixed more properly
there.
Reviewed-by: Samuel
|
| | | |_|_|_|_|/
| | |/| | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Partially revert change a33ef62469fd71bec for the non-extended paint
engine path.
Task-number: QTBUG-19525
Reviewed-by: Andy Shaw
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Increase SSL readbuffer 1 -> 16 kB
Fix pixel metrics for Symbian VGA devices
Revert "Fix QNetworkConfigurationManager usage outside main thread first"
Fix tst_QGraphicsItem::sorting() test case for Symbian
|
| |\ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Fix QHeaderView test case for VGA Symbian devices.
Fix for BCM2727 chip detection on Symbian
Fix QMenuBar autotest failures for Symbian
|
| |\ \ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
QToolButton autotest trigger() fails in E6
Documented Symbian peculiarity about QDesktopWidget::availableGeometry
Fix non-Symbian builds broken by previous commit.
Fix SYMBIAN_VERSION_* ifdeffing
Predictive text is not committed when writing in a QLineEdit
|
| |\ \ \ \ \ \ \ \ \ \
| | |_|_|_|/ / / / / /
| |/| | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Fixed more CI-errors caused by qmlshadersplugin addition.
Fixed CI-errors caused by qmlshadersplugin addition.
Fixing Linux compatibility issues for Symbian
Update the detection of is_using_gnupoc for S3.
Backported QML ShaderEffectItem from QML2.0 into Qt Quick 1.1
Revert "Fixing Linux compatibility issues for Symbian"
sockets: limit buffer size of the internal sockets in proxy engines
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Clicking at the edge of a glyph means lookup for the left glyph.
Reviewed-by: TrustMe
(cherry picked from commit 31110bf84bb06d57983501fa65fe0db3f7c61927)
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Reviewed-by: TrustMe
|
| |\ \ \ \ \ \ \ \ \ \ |
|
| | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fix ligature offset in multi-line text
Make selection work across ligatures
|
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
Task-number: QTBUG-19260
Reviewed-by: TrustMe
|
| | |/ / / / / / / / / /
| |/| | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
We need to find out the closest element in the ligature to
the point we clicked (or tapped), currently we do this by
dividing the width of that ligature glyph evenly by the number
of characters it covered. We only support Common and Greek script
at this point, ligatures in other scripts are still handled as a
whole.
Task-number: QTBUG-19260
Reviewed-by: Eskil
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Reviewed-by: Eskil
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
For widgets like QPlainTextEdit, selection across ligatures (typically
'fi', 'ffi', 'fl', etc.) end up highlighting the entire ligature
glyphs, this patch fixed that by dividing width inside the ligature so
that selection will not expand past the actual selected characters.
Since cursor position already considered this, we merely adopted the
algorithm and made it a separated helper function for all necessary
cases. Dividing width directly looks like a temporary workaround but
works well enough so far for cursor positions.
Task-number: QTBUG-11969
Reviewed-by: Eskil
(cherry picked from commit 99fd5825dfb4d50cff93165995701a65b7a8e4ed)
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
When QML application changes orientation, it usually switches to a new
layout that lays out widgets differently (ie. in portrait, one vertical
column; in landscape, horizontal multi-column layout).
This easily breaks splitview translation logic, since it tries to ensure
the visibility of the input widget before the new layout has been
applied.
Additionally, the logic failed, when connected signal was fired, since
it assumed that the new translation would have translated the view above
from where it started from (i.e. window below the translated view would
have been exposed) and thus, it didn't do anything.
As a fix, when translation logic seems to indicate that the translation
would fail (and thus previously wouldn't do anything), reset the
existing translation and try again.
Task-number: QTBUG-16785
Reviewed-by: Miikka Heikkinen
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Reviewed-by: TRUSTME
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Orientation change causes unnecessary resize to top
level window on Symbian. This causes recreation of
EGL surfaces which is not wanted.
Task-number: QTBUG-19911
Reviewed-by: Sami Merila
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
This reverts commit fcfc19878a0a1a48194a786bba64da11606077d2.
I am happy that this commit fixed three bugs at once. But
Actually, I am not sure if QTBUG-15513 should be fixed at
this point. Fact is that the patch as it is would have changed
the point->pixels calculation back to how it was in Qt 4.6.
This means that the fonts which are defined with pointSize
would now (in Qt 4.7.4) suddenly be bigger than they were
in Qt 4.7.3. Imho this is unacceptable, as it would break
all layouts which were developed for Qt 4.7 apps, when
point size (instead of pixle size) was used.
I will need to fix QTBUG-17844 without fixing QTBUG-13009
If QTBUG-13009 will be fixed for 4.8 will be discussed.
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Reviewed-by: Jani Hautakangas
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
As QTBUG-19880 highlighted, the old S60 naming is not suitable for
these classes anymore.
Task-number: QTBUG-19913
Reviewed-by: Jani Hautakangas
|
|\ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
When drawing such pixmaps (used by both the openvg and opengl graphics
systems) onto another pixmap or to a QImage, the performance was
sub-optimal due to missing and accidentally disabled support
specific to QVolatileImage. This is now fixed and drawing pixmaps into
a QImage is also made optimal by using the QS60PaintEngine for
QImage too. This will cause a 5-7x (or even up to 12x on certain
hardware and platform) increase in offscreen pixmap drawing
performance.
Task-number: QTBUG-19880
Reviewed-by: Jani Hautakangas
|