Use "qrcode" icon from ForkAwesome

It fits better than "view-barcode" from the icon theme. This also tests
using ForkAwesome icons via the custom icon engine. Unfortunately this
does not seem to work within the Plasmoid so far.
This commit is contained in:
Martchus 2021-09-15 20:36:34 +02:00
parent 1d239cca51
commit f384d2a496
6 changed files with 20 additions and 7 deletions

View File

@ -47,7 +47,8 @@ if(NOT BUNDLED_QT_FORK_AWESOME_PATH)
else()
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${BUNDLED_QT_FORK_AWESOME_PATH}" OR IS_DIRECTORY "${BUNDLED_QT_FORK_AWESOME_PATH}")
add_subdirectory("${BUNDLED_QT_FORK_AWESOME_PATH}" qtforkawesome)
set(qtforkawesome${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES}_DIR "${CMAKE_CURRENT_BINARY_DIR}/qtforkawesome")
set(qtforkawesome${CONFIGURATION_PACKAGE_SUFFIX_QTFORKAWESOME}_DIR "${CMAKE_CURRENT_BINARY_DIR}/qtforkawesome/qtforkawesome")
set(qtforkawesomeiconengine${CONFIGURATION_PACKAGE_SUFFIX_QTFORKAWESOME}_DIR "${CMAKE_CURRENT_BINARY_DIR}/qtforkawesome/iconengineplugin")
else()
message(FATAL_ERROR "Specified directory for qtforkawesome sources \"${BUNDLED_QT_FORK_AWESOME_PATH}\" does not exist.")
endif()

View File

@ -264,11 +264,11 @@ void SyncthingApplet::updateStatusIconAndTooltip()
emit connectionStatusChanged();
}
QIcon SyncthingApplet::loadForkAwesomeIcon(const QString &name) const
QIcon SyncthingApplet::loadForkAwesomeIcon(const QString &name, int size) const
{
const auto icon = QtForkAwesome::iconFromId(name);
return QtForkAwesome::isIconValid(icon)
? QIcon(IconManager::instance().forkAwesomeRenderer().pixmap(icon, QSize(32, 32), QGuiApplication::palette().color(QPalette::WindowText)))
? QIcon(IconManager::instance().forkAwesomeRenderer().pixmap(icon, QSize(size, size), QGuiApplication::palette().color(QPalette::WindowText)))
: QIcon();
}

View File

@ -119,7 +119,7 @@ public Q_SLOTS:
void showDirectoryErrors(unsigned int directoryIndex);
void copyToClipboard(const QString &text);
void updateStatusIconAndTooltip();
QIcon loadForkAwesomeIcon(const QString &name) const;
QIcon loadForkAwesomeIcon(const QString &name, int size = 32) const;
QString formatFileSize(quint64 fileSizeInByte) const;
Q_SIGNALS:

View File

@ -357,7 +357,13 @@ ColumnLayout {
}
PlasmaComponents3.ToolButton {
id: showOwnIdButton
icon.name: "view-barcode"
// use PlasmaCore.IconItem for the icon because I wouldn't know how to show the QIcon otherwise
contentItem: PlasmaCore.IconItem {
source: plasmoid.nativeInterface.loadForkAwesomeIcon("qrcode", 64)
}
// set preferred size so the tool button is displayed consistently with the previous one despite using PlasmaCore.IconItem
Layout.preferredWidth: settingsButton.width
Layout.preferredHeight: settingsButton.height
onClicked: {
plasmoid.nativeInterface.showOwnDeviceId()
plasmoid.expanded = false

View File

@ -112,6 +112,13 @@ use_syncthingmodel()
find_package(syncthingwidgets ${META_APP_VERSION} REQUIRED)
use_syncthingwidgets()
# link against the qtforkawesomeiconengine plugin when static linkage is enabled
include(3rdParty)
if (STATIC_LINKAGE)
find_package(qtforkawesomeiconengine${CONFIGURATION_PACKAGE_SUFFIX_QTFORKAWESOME} 0.0.1 REQUIRED)
use_qt_fork_awesome_icon_engine()
endif ()
# link also explicitly against the following Qt modules
list(APPEND ADDITIONAL_QT_MODULES Network)

View File

@ -116,8 +116,7 @@ TrayWidget::TrayWidget(TrayMenu *parent)
m_cornerFrame->setLayout(cornerFrameLayout);
auto *viewIdButton = new QPushButton(m_cornerFrame);
viewIdButton->setToolTip(tr("View own device ID"));
viewIdButton->setIcon(
QIcon::fromTheme(QStringLiteral("view-barcode"), QIcon(QStringLiteral(":/icons/hicolor/scalable/actions/view-barcode.svg"))));
viewIdButton->setIcon(QIcon(QStringLiteral("qrcode.fa")));
viewIdButton->setFlat(true);
cornerFrameLayout->addWidget(viewIdButton);
auto *restartButton = new QPushButton(m_cornerFrame);