| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
As QTBUG-19880 highlighted, the old S60 naming is not suitable for
these classes anymore.
Task-number: QTBUG-19913
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original implementation relied on SizeInTwips() for the underlying
bitmap which unfortunately returns 0, leading to incorrect results
from QPixmap::logicalDpiX/Y(). This caused issues in text rendering
onto pixmaps (QTBUG-17628). This fix changes QS60PixmapData to use a
slightly different metrics() implementation (the one VG and GL
PixmapData are using).
Task-number: QTBUG-18154
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From now on the image data coming from CFbsBitmap will not be forced
to RGB32 or ARGB32_Premultiplied in openvg. This allows copy-less
creation and drawing of pixmaps not just from bitmaps with display mode
EColor16MAP and EColor16MU, but also a few other modes, like EColor64K.
Painting into such pixmaps or drawing them via the raster engine is
potentially slower in such cases, which is now reflected in the
fromSymbianCFbsBitmap documentation.
Note that this patch has no effect on extended bitmaps (e.g. skin
graphics), those must always be rasterized first regardless of the
display mode.
Task-number: QTBUG-18027
Reviewed-by: Jani Hautakangas
|
|
|
|
|
| |
Task-number: QTBUG-17288
Reviewed-by: trustme
|
|
|
|
|
| |
Task-number: QTBUG-17288
Reviewed-by: Jani Hautakangas
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
| |
Symbian bitmap formats may have different scanline length
when compared to QImage formats. We need to define scanline
length for intermediate QImage when converting from CFbsBitmap
to QPixmap.
Task-number: QTBUG-14218
Reviewed-by: Jason Barron
|
|
|
|
| |
Reviewed-by: axis
|
|
|
|
|
|
|
| |
instead of friend use static to avoid gcce saying a formerly extern
declaration turned into a static declaration.
Reviewed-by: axis
|
|
|
|
|
|
|
|
| |
This patch fixed the issue by tracking pixmaps and destroying native
bitmaps before FBS connection is closed.
Task-number: QTBUG-9112
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QSymbianBitmapDataAccess is used to provide access to the bitmap heap
in a manner that locks correctly on all platform versions. The
heapWasLocked variable was meant to protect against the case where
the heap is locked recursively. However, it failed to take into
account the case where the same QSymbianBitmapDataAccess object was
used to lock recursively. In this case the variable would be changed
to true on the second lock, which means that the lock would never be
released again.
This was fixed by making the access reference counted instead. Since
the bitmap heap lock is global, the refcount was made global as well.
Task: QTBUG-11129
RevBy: Jason Barron
AutoTest: Works again. It was hanging before this fix.
|
|
|
|
|
|
|
|
|
|
| |
Do not explicitly create instances of QS60PixmapData in this function
because it is possible that we are using another graphics system. The
fromNativeType() function is virtual so the graphics system will create
the right version of the pixmap data for us and ensure that we get into
the right implementation.
Reviewed-by: Aleksandar Sasha Babic
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
| |
QPixmap::copy discarded alpha channel.
This fix also removes usage of member variables CFbsBitGc and
CFbsBitmapDevice. Now those are used only in function scope.
Reviewed-by: Sami Merila
|
|
|
|
|
|
|
|
| |
The image can get corrupted if access to it is not properly
surrounded with beginDataAccess and endDataAccess calls.
Task-number: QTBUG-6050
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
| |
Missing virtual function now implemented
Task-number: QTBUG-5977
Reviewed-by: axis
|
|\ |
|
| |
| |
| |
| |
| |
| | |
The word 'module' was missing.
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Symbian semi-transparent window surface needs backing store pixmap
in argb32 format. Normally QPixmap contains only rgb32 or
argb32_pre pixels. This fix locks semi-transparent window backing
store pixmap to argb32 format.
Reviewed-by: Shane Kearns
|
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 676780d515cedca85829ae962e4f501c5e5b6581.
Conflicts:
src/gui/painting/qblendfunctions.cpp
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPaintDevice and QImage used the functions numColors(), setNumColors(),
and numBytes(). However, this is not consistent with the rest of the Qt
API which uses *Count() and set*Count().
Removed all usage of these functions inside Qt and test-cases.
Reviewed-by: Andreas Aardal Hanssen
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to force use of qreal where possible. This can lead to better
performance on platforms where qreal -> float (i.e. ARM). To achieve
this we:
1. changed from 'double' to 'qreal', where justified
2. using qreal() to intialize constants, where justified
3. adding helper functions that are overloaded for qreal
like qAtan2(), qAcos(), qFabs() ...
4. defining QT_USE_MATH_H_FLOATS for Symbian platform
In addtion we used opportunity to improve code with some small things
5. converting divisions to multiplications
(i.e. '/ 2.0' -> '* qreal(0.5)')
6. defining new constants (i.e. 'Q_PI / 180.0' -> 'Q_PI180')
7. declaring variables as 'const', where justified
Reviewed-by: Andreas Aardal Hanssen
Reviewed-by: Gunnar Sletta
Reviewed-by: Jan-Arve
Reviewed-by: Kim Motoyoshi Kalland
Reviewed-by: Alessandro Portale
Reviewed-by: Janne Koskinen
|
|
|
|
| |
Reviewed-by: Trust Me
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem was caused by S60 closing a handle under our feet when QApplication
is destroyed. To avoid this, we open our own handle for the global lock
instead of using the shared one inside CFbsBitmap.
Also the global unlock/relock is not needed on S60 3.2 so this can be
eliminated and save a few cycles (the function call was a no-op before)
Reviewed-by: Jani Hautakangas
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On every beginDataAccess on the pixmap data, we checked the value of
the pointer to the bits and only updated the image if the pointer had
changed. However, we didn't take into account that the pointer could
be the same, even though the dimensions were different, since
malloc() could return the same memory area. This would lead to
painting into an image that had the wrong dimensions, which again led
to either crashes or image shearing. Fixed by checking the dimensions
before deciding to update the image.
Task: QTBUG-4815
RevBy: Jason Barron
|
| |
| |
| |
| |
| |
| |
| | |
EColor16M is in BGR format so after conversion to QImage RGB
values needs to be swapped.
Reviewed-by: jbarron
|
|/
|
|
| |
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
| |
Gives better performance in the raster paint engine.
For Symbian 9.3 onwards, this can also be used as the native pixmap
format. For 9.2, conversion is required.
Reviewed-by: Sami Merila
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
| |
The previous commit 9c6e466dc09813dd4a641b2cf385f35ac99346f5
included some changes which were not meant to be pushed.
Reviewed-by: TrustMe
|
|
|
|
|
|
| |
Accidentally used git commit -a when should have used only git commit :(
This reverts commit 9c6e466dc09813dd4a641b2cf385f35ac99346f5.
|
|
|
|
| |
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
| |
The reason for scrolling bug was that CFbsBitmapDevice wasn't
informed if CFbsBitmap was resized. However, it seems that
scroll implementation in QRasterPixmapData is faster that
CFbsBitGc->CopyRect so this is also a patch which changes
QS60PixmapData's scroll function to call QRasterPixmapData::scroll().
Reviewed-by: Janne Koskinen
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases the QImage, returned by QS60PixmapData::toImage()
image an invalid pointer. That led to reproducable crashes on 3.1
Device and Emulator when starting a drag in the FridgeMagnets
demo. Jani Hautakangas created this fix and I tested it on
3.1 Device and Emulator confirming that the crash is gone.
Rev-By: Jani Hautakangas
Rev-By: Alessandro Portale
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The intermediate sourceImage was stored to wrong QImage object
(image instead of correct sourceImage). This made subsequent switch-case
statement to fail because destFormat was set to QImage::Format_Invalid
Autotest: Fixes QItemDelegate::decoration autotest
Reviewed-by: Jani Hautakangas
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need a way to support converion to and from multiple native pixmap
types from multiple pixmap backends. Instead of adding more virtual
functions to QPixmapData, make the existing one more generic but pass
an opaque pointer and a type and do some internal casting.
Currently this function is Symbian only, but could easily be extended
to work on other platforms.
Reviewed-by: Aleksandar Babic
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
| |
Fix compilation on systems that support the extended bitmap format.
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables us to convert from and to new Symbian type of
graphics resource, namely SgImage. This only supported with
the OpenVG graphics system.
On other graphics systems this will return null QPixmap.
Conflicts:
src/corelib/global/qglobal.h
src/gui/image/qpixmap.h
src/gui/image/qpixmap_s60.cpp
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
| |
This is done to reduce heap consumption and to give
a possibility to share bitmaps across process. QPixmap
maps to Symbian CFbsBitmap which is stored in Symbian
font and bitmap server.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewed-By: Jason Barron
Reviewed-By: Alessandro Portale
Summary:
QT_NO_CURSOR is now not defined for symbian builds
Existing QCursor APIs are all supported
New public API, QApplication::setNavigationMode, to allow the navigation
mode to be set. I.E. on an S60 3.2 phone, some applications will want a
virtual mouse cursor (web browser), while others are designed for keypad
navigation.
Symbian HAL is used for detecting input capabilities.
Fix DND, code cleanup & comment
QCursor visibility now uses a refcount, and is called from DND and the
setNavigationMode so they are both simpler and don't interfere with each
other.
QApplication::setNavigationMode
New public API for configuring cursor/keypad navi style.
This links in with ongoing work on the 4-way keypad navi branch, but
2-way and 4-way modes both act as 2-way mode until that is integrated
Some of the demos/examples have cursor switched on (those that were not
usable with keypad)
Virtual mouse support for non touch, non mouse phones (tested on N78)
add *.d and .metadata (carbide debug file / workspace dir) to .gitignore
System pointers are unavailable when using sprite workaround, so the
system cursor shapes are compiled into qtgui as resources.
MAC port does this also for shapes that aren't standard on the MAC.
Refactor Drag'n'Drop to use QCursor
Add test case to check all system cursor shapes
Simply a mainwindow containing a label widget for each cursor shape,
with the cursor property set appropriately
QCursor(QBitmap,QBitmap) supported
Fixed problem with the image & mask being inverted when using the
QCursor constructor that takes two mono bitmaps.
add .make.cache files to .gitignore
Correct implementation of QApplication::setOverrideCursor
QApplication::restoreOverrideCursor and QApplication::setOverrideCursor
are now working correctly on Symbian platform.
Performance will be slower compared with other platforms, because the
Symbian window server has a cursor associated with each native window.
Add test case for custom cursors
Create a pixmap cursor and associate it with a widget.
No changes to production code, since test passed 1st time ;)
Add manual test for QCursor
Make cursor independent of construction order
Updated to work around window server issue where contruction order
affects what cursor is displayed in child windows.
Also changed to effectiveWinId following review comments
Also fixed a problem which would make qcursor not link if configured
with QT_NO_CURSOR
Moved some multiply declared extern functions from cpp to _p.h files
Implemented Symbian versions of the cursor functions.
Merged in work I'd done based on tower.
Fill in bits of stub functions based on windows port
Removed QT_NO_CURSOR from list of config options forced on symbian
Recompiled configure.exe
Added stub functions for the missing functions in s60 port
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
| |
|