Initial implementation of theming

This commit is contained in:
luisangelsm
2026-02-19 17:39:22 +01:00
parent ed28c94f66
commit 044176d6b7
303 changed files with 4634 additions and 2119 deletions

View File

@ -71,6 +71,32 @@ EditShortcutsDialog::EditShortcutsDialog(QWidget *parent)
setWindowTitle(tr("Shortcuts settings"));
setModal(true);
initTheme(this);
}
void EditShortcutsDialog::applyTheme(const Theme &theme)
{
updateGroupIcons(theme);
}
void EditShortcutsDialog::updateGroupIcons(const Theme &theme)
{
// Update icons for all groups based on the mapping
for (int i = 0; i < groupsModel->rowCount(); ++i) {
QModelIndex idx = groupsModel->index(i, 0);
QString groupName = groupsModel->data(idx, Qt::DisplayRole).toString();
if (groupIconMapping.contains(groupName)) {
QIcon newIcon = groupIconMapping[groupName](theme);
groupsModel->updateGroupIcon(i, newIcon);
}
}
}
void EditShortcutsDialog::setGroupIconMapping(const QMap<QString, std::function<QIcon(const Theme &)>> &mapping)
{
groupIconMapping = mapping;
}
void EditShortcutsDialog::addActionsGroup(const QString &name, const QIcon &ico, QList<QAction *> &group)