bitcoin-core / gui-qml

Bitcoin GUI (experimental QML-based fork)
MIT License
113 stars 41 forks source link

Make Icons available through QML Icon Themes #115

Open jarolrod opened 2 years ago

jarolrod commented 2 years ago

Currently, with the way our Image Provider is set up, every Icon will need an entry under 1.Makefile.qt.include

QML_RES_ICONS = \
  qml/res/icons/sun.png\
  ...

2.bitcoin_qml.qrc

 <qresource prefix="/icons">
        ...
        <file alias="sun">res/icons/sun.png</file>

3.imageprovider.cpp

if (id == "sun") {
        *size = requested_size;
        return QIcon(":/icons/sun").pixmap(requested_size);
}

Then access to the Icon will require explicitly stating its URL, for example: icon.source: "image://images/sun"

We should instead make use of QML's Icon Themes. Instead of maintaining all these different entries in order to serve one icon, we could have an index.theme file which lists all entries. Then Icons are available by name, for example: icon.name: "sun"

Useful skills:

Qt5/6, QML

Want to work on this issue?

For guidance on contributing, please read CONTRIBUTING.md before opening your pull request.

shaavan commented 2 years ago

Let me try giving it a shot!

jarolrod commented 2 months ago

@promag do you think this is better than the imageprovider we use?

jarolrod commented 1 month ago

TODO when migration to cmake and QT6 is done