Commit Graph

23 Commits

Author SHA1 Message Date
Weitian Leung 9518b7e0f1 Avoid adding empty parent icon theme
"Icon Theme/Inherits" may assign an empty value, e.g. Flattr icon
theme

Change-Id: I90713b3eb67e39d6a49a49d1f5b3d7a75a8f30f4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-22 08:03:49 +02:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Albert Astals Cid 4dae1a685c Use QPlatformTheme::SystemIconFallbackThemeName in static QString fallbackTheme()
Instead of QPlatformTheme::SystemIconThemeName

Change-Id: Id318944730cd1b8014380a972eb28fd8aab1f382
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-03 13:24:25 +02:00
Marc Mutz de068472f1 QIconLoader: enable an easy case of transactional processing
It's easy to do the work on the side and then commit. This is strongly
exception safe, but in Qt, we don't care. But transactional code, when
this easy to achieve, is also clearer.

Change-Id: I30f1badec7745d62a09af4eede234cb312b373aa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-02 00:43:50 +02:00
Marc Mutz 87ccab8bd6 QIconLoader: replace an inefficient QList with a QVector
QIconDirInfo is larger than a pointer, so holding it in a
QList is horribly inefficient.

Fix by holding it in a QVector instead.

Change-Id: I6551d2d2941447e600a33c3d68edf46db002d96c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:19:58 +02:00
Marc Mutz 28f7404256 QIconLoader: replace while(!empty()) delete takeLast() with qDeleteAll()
There's no calling back into QIconLoaderEngine from the QIconLoaderEngineEntry
dtors, so don't bother slicing off one element by one from the container as
they are deleted, the more so as m_entires is either move-assigned or deleted
right after these loops.

Change-Id: Ic9ffa442ef0b0c59e19eb91d164183ea5c3bab67
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:18:33 +02:00
Marc Mutz 6244665faa QIconLoader: don't re-evaluate container.size() all the time (II)
Experience shows that the compiler does not recognize the
size() call as a constant expression, so help it along.

Change-Id: I688244f37c555365566cd1a59dc601974316a2e6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:18:23 +02:00
Marc Mutz 5335a71535 QIconLoader: don't re-evaluate container.size() all the time
Experience shows that the compiler does not recognize the
size() call as a constant expression, so help it along.

Change-Id: I60cd1754f8be123c62e3b47f6f721f42a69fe3c5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:18:15 +02:00
Marc Mutz 8f0f7acb67 QIconLoader: remove another unused variable
Change-Id: I2b11944d1964878ff5f6f666f33a97ea842ffea7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:18:07 +02:00
Marc Mutz c07a9d6c63 QIconLoader: remove an unused variable
Change-Id: I4f1fee2da9358f63c4d3c9e46b8d69b4a1b280c7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-08-23 13:17:45 +02:00
Albert Astals Cid 8cf9811ec3 Do not overwrite basePixmap of QIconLoader PixmapEntry
Change-Id: I4799af1d9151ba4b0952369e9620d2fab2b002d9
Reviewed-by: David Sansome <me@davidsansome.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-01-22 16:32:34 +01:00
Frederik Gladhorn 85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
Samuel Rødal 9d7fe3eb3d Fixed crashes relating to SVG icons.
Creating a second QFactoryLoader for the same plugins seems to trigger
an unload of the plugins loaded by the first factory loader. The
QIconEngine created by the SVG icon plugin thus gets an invalid virtual
table pointer, which causes a crash when attempting to call any virtual
function in the QIconEngine (pixmap(), the virtual destructor, etc).

Reusing a single QFactoryLoader instead fixes the crash.

Task-number: QTBUG-30496
Change-Id: I80c5fa8b52ab9b0db68499f8c37fad14a1ac4f3c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-24 06:49:44 +02:00
Kevin Ottens aa5f70c00a Make sure QIconLoader is always initialized
It is necessary to properly initialize the icon loader in all case.
Otherwise some calls might give wrong results if a platform theme plugin
is involved.
For instance, we might miss the actual theme name reported by the
platform theme, eg it's what happen with QStyle::standardPixmap if no
one created a QIcon before its first call.

Also clean up the accesses to the global static and have only
QIconLoader::instance() use it. All other call go through the static
method. This way only instance() needs to call ensureInitialized(),
definitely safer and looks cleaner to me.

Change-Id: Id3ea6816edd5a65586004f69464960abc3602cf8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-22 20:19:28 +02:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
David Sansome c3ffcbd9a2 Scale icons returned by QIcon::fromTheme.
The icon engine behind icons that are loaded from QIcon::fromTheme does
not scale any pixmaps that it returns. When using an icon theme with an
incomplete set of icons (for example, only a "128x128" folder),
QIcon::pixmap will always return 128x128 pixmaps even if you ask for
one of size 22x22.

This is contrary to the QIcon::pixmap documentation that says "The
pixmap might be smaller than requested, but never larger."

This patch uses the same code that is in the main QIcon class in the
PixmapEntry QIconLoaderEngineEntry to scale pixmaps if they are too big.

Change-Id: Ic25a3628ac82cfb899574245f658490a2dd49d54
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2012-10-10 08:45:22 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Olivier Goffart 6c06e14a49 QIcon: move back to QtGui
-  Move the files and tests
git mv src/widgets/kernel/qicon* qrc/gui/image/
git mv tests/auto/widgets/kernel/qicon/ tests/auto/gui/image/

 - update the include of QIcon
git grep -O"sed -i s,QtWidgets/qicon,QtGui/qicon," "QtWidgets/qicon"
git grep -O"sed -i s,QtWidgets/QIcon,QtGui/QIcon," "QtWidgets/QIcon"

 - Adapt QIcon \ingroup documentation
sed -i s/QtWidgets/QtGui/ src/gui/images/qicon*

 - Adapt export macro
sed -i s/Q_WIDGETS_EXPORT/Q_GUI_EXPORT/g src/gui/image/qicon*

 - Update .pri and .pro files

 - Remove the use of QStyle::alignedRect by copying its content (and
   adapt slightly

 - Use QGuiApplication::palette() instead of QApplication::palette()

 - Add a hook in QGuiApplicationPrivate to call the
   QStyle::generatedIconPixmap() from QtWidgets

Another commit follows to adjust QMetaType::Icon and move the QVariant
and QMetaType icon handler back in QtGui

Change-Id: I1b63759f892ebc02dfc30f41bb6e76e0b7451182
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-18 21:42:38 +02:00
Lars Knoll 3e8b53a46c moving some more files around. 2011-05-04 13:08:02 +02:00
Lars Knoll 5a91925514 QGuiApplication is not QPA specific
Rename files to reflect that QGuiApplication is
going to be used everywhere.
2011-05-03 20:31:37 +02:00
Lars Knoll f1f5a80cfe remove QApplication dependencies in gui/image 2011-05-03 16:10:52 +02:00
Lars Knoll ea55f60426 split the HexString template class out of qstylehelper
The class is used in quite a few places and has no relation
to styles. Split it out into it's own file to remove a dependency
between Gui and Widgets.
2011-05-03 13:19:29 +02:00
Qt by Nokia 38be0d1383 Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://qt.gitorious.org/qt/pages/GitIntroductionWithQt

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12
2011-04-27 12:05:43 +02:00