diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-02-09 14:11:55 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-04-15 17:40:43 +0200 |
commit | d0e2a4d3e12b2a75e085a0c8b498a31b4b312715 (patch) | |
tree | 185a8bbae098cdbed914ed4d8285e71ae1010c8f | |
parent | c1276e62ff75e71e87c281c9a93c8491ab306b58 (diff) |
Qt Designer: Add icon theme enums to the action editor
Rename the old string-based editor to XDG an add a new editor
for the enumerations.
Task-number: QTBUG-121823
Pick-to: 6.7
Change-Id: Iac32aaa75b558f564bb0add4a4747b5ac656eb6f
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
-rw-r--r-- | src/designer/src/lib/shared/newactiondialog.cpp | 19 | ||||
-rw-r--r-- | src/designer/src/lib/shared/newactiondialog.ui | 50 |
2 files changed, 53 insertions, 16 deletions
diff --git a/src/designer/src/lib/shared/newactiondialog.cpp b/src/designer/src/lib/shared/newactiondialog.cpp index 7c27e3ae2..2aea8bb57 100644 --- a/src/designer/src/lib/shared/newactiondialog.cpp +++ b/src/designer/src/lib/shared/newactiondialog.cpp @@ -61,6 +61,20 @@ NewActionDialog::NewActionDialog(ActionEditor *parent) : connect(m_ui->keysequenceResetToolButton, &QAbstractButton::clicked, this, &NewActionDialog::slotResetKeySequence); + // Clear XDG icon once a theme enum is chosen and vv. + auto *iconThemeEnumEditor = m_ui->iconThemeEnumEditor; + auto *iconThemeEditor = m_ui->iconThemeEditor; + connect(iconThemeEnumEditor, &IconThemeEnumEditor::edited, + this, [iconThemeEditor](int i) { + if (i >= 0) + iconThemeEditor->reset(); + }); + connect(iconThemeEditor, &IconThemeEditor::edited, + this, [iconThemeEnumEditor](const QString &t) { + if (!t.isEmpty()) + iconThemeEnumEditor->reset(); + }); + const auto menuRoles = QMetaEnum::fromType<QAction::MenuRole>(); for (int i = 0; i < menuRoles.keyCount(); i++) { const auto key = menuRoles.key(i); @@ -133,7 +147,9 @@ ActionData NewActionDialog::actionData() const rc.name = actionName(); rc.toolTip = m_ui->tooltipEditor->text(); rc.icon = m_ui->iconSelector->icon(); - rc.icon.setTheme(m_ui->iconThemeEditor->theme()); + const int themeEnum = m_ui->iconThemeEnumEditor->themeEnum(); + rc.icon.setThemeEnum(themeEnum); + rc.icon.setTheme(themeEnum == -1 ? m_ui->iconThemeEditor->theme() : QString{}); rc.checkable = m_ui->checkableCheckBox->checkState() == Qt::Checked; rc.keysequence = PropertySheetKeySequenceValue(m_ui->keySequenceEdit->keySequence()); rc.menuRole.value = m_ui->menuRole->currentData().toInt(); @@ -145,6 +161,7 @@ void NewActionDialog::setActionData(const ActionData &d) m_ui->editActionText->setText(d.text); m_ui->editObjectName->setText(d.name); m_ui->iconSelector->setIcon(d.icon.unthemed()); + m_ui->iconThemeEnumEditor->setThemeEnum(d.icon.themeEnum()); m_ui->iconThemeEditor->setTheme(d.icon.theme()); m_ui->tooltipEditor->setText(d.toolTip); m_ui->keySequenceEdit->setKeySequence(d.keysequence.value()); diff --git a/src/designer/src/lib/shared/newactiondialog.ui b/src/designer/src/lib/shared/newactiondialog.ui index 733690d20..7fd99842b 100644 --- a/src/designer/src/lib/shared/newactiondialog.ui +++ b/src/designer/src/lib/shared/newactiondialog.ui @@ -1,5 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> -<comment> + <comment> * Copyright (C) 2016 The Qt Company Ltd. * SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 </comment> @@ -9,8 +10,8 @@ <rect> <x>0</x> <y>0</y> - <width>395</width> - <height>372</height> + <width>381</width> + <height>291</height> </rect> </property> <property name="windowTitle"> @@ -86,20 +87,20 @@ </item> </layout> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QLabel" name="iconThemeLabel"> <property name="text"> - <string>Icon th&eme:</string> + <string>Icon &XDG theme:</string> </property> <property name="buddy"> <cstring>iconThemeEditor</cstring> </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <widget class="qdesigner_internal::IconThemeEditor" name="iconThemeEditor" native="true"/> </item> - <item row="4" column="0"> + <item row="5" column="0"> <widget class="QLabel" name="iconLabel"> <property name="text"> <string>&Icon:</string> @@ -109,7 +110,7 @@ </property> </widget> </item> - <item row="4" column="1"> + <item row="5" column="1"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="qdesigner_internal::IconSelector" name="iconSelector" native="true"/> @@ -129,14 +130,14 @@ </item> </layout> </item> - <item row="5" column="1"> + <item row="6" column="1"> <widget class="QCheckBox" name="checkableCheckBox"> <property name="text"> <string/> </property> </widget> </item> - <item row="5" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="checkableLabel"> <property name="text"> <string>&Checkable:</string> @@ -146,7 +147,7 @@ </property> </widget> </item> - <item row="6" column="0"> + <item row="7" column="0"> <widget class="QLabel" name="shortcutLabel"> <property name="text"> <string>&Shortcut:</string> @@ -156,10 +157,10 @@ </property> </widget> </item> - <item row="6" column="1"> + <item row="7" column="1"> <layout class="QHBoxLayout" name="keysequenceLayout"> <item> - <widget class="QKeySequenceEdit" name="keySequenceEdit" native="true"> + <widget class="QKeySequenceEdit" name="keySequenceEdit"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> <horstretch>0</horstretch> @@ -177,7 +178,7 @@ </item> </layout> </item> - <item row="7" column="0"> + <item row="8" column="0"> <widget class="QLabel" name="label"> <property name="text"> <string>&Menu role:</string> @@ -187,9 +188,22 @@ </property> </widget> </item> - <item row="7" column="1"> + <item row="8" column="1"> <widget class="QComboBox" name="menuRole"/> </item> + <item row="3" column="0"> + <widget class="QLabel" name="iconThemeEnumLabel"> + <property name="text"> + <string>Icon &theme:</string> + </property> + <property name="buddy"> + <cstring>iconThemeEnumEditor</cstring> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="qdesigner_internal::IconThemeEnumEditor" name="iconThemeEnumEditor" native="true"/> + </item> </layout> </item> <item> @@ -243,6 +257,12 @@ <header>iconselector_p.h</header> <container>1</container> </customwidget> + <customwidget> + <class>qdesigner_internal::IconThemeEnumEditor</class> + <extends>QWidget</extends> + <header>iconselector_p.h</header> + <container>1</container> + </customwidget> </customwidgets> <tabstops> <tabstop>editActionText</tabstop> |