Krita Source Code Documentation
Loading...
Searching...
No Matches
KisInputConfigurationPageItem Class Reference

A collapsible widget displaying an action, its description and associated shortcuts. More...

#include <kis_input_configuration_page_item.h>

+ Inheritance diagram for KisInputConfigurationPageItem:

Public Slots

void setExpanded (bool expand)
 

Signals

void inputConfigurationChanged ()
 

Public Member Functions

 KisInputConfigurationPageItem (QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
 
void setAction (KisAbstractInputAction *action)
 
void setWarningEnabled (bool enabled, QString additionalToolTipText=QString())
 
 ~KisInputConfigurationPageItem () override
 

Private Slots

void deleteShortcut ()
 

Private Attributes

KisAbstractInputActionm_action {nullptr}
 
const QString m_defaultToolTipText
 
KisActionShortcutsModelm_shortcutsModel {nullptr}
 
Ui::KisInputConfigurationPageItem * ui {nullptr}
 

Detailed Description

A collapsible widget displaying an action, its description and associated shortcuts.

This is used in KisInputConfigurationPage to display a list of actions and the associated shortcuts, depending on the current profile.

Definition at line 26 of file kis_input_configuration_page_item.h.

Constructor & Destructor Documentation

◆ KisInputConfigurationPageItem()

KisInputConfigurationPageItem::KisInputConfigurationPageItem ( QWidget * parent = nullptr,
Qt::WindowFlags f = Qt::WindowFlags() )

Definition at line 25 of file kis_input_configuration_page_item.cpp.

26 : QWidget(parent, f)
27 , m_defaultToolTipText(i18n("Conflict found for a Shortcut in this Action."))
28{
29 ui = new Ui::KisInputConfigurationPageItem;
30 this->setContentsMargins(0,0,0,0);
31 ui->setupUi(this);
32
34 ui->shortcutsView->setModel(m_shortcutsModel);
35 ui->shortcutsView->setItemDelegateForColumn(0, new KisInputTypeDelegate(ui->shortcutsView));
36 ui->shortcutsView->setItemDelegateForColumn(1, new KisInputEditorDelegate(ui->shortcutsView));
37 ui->shortcutsView->setItemDelegateForColumn(2, new KisInputModeDelegate(ui->shortcutsView));
38 ui->shortcutsView->header()->setSectionResizeMode(QHeaderView::Stretch);
39 setExpanded(false);
40
41 ui->warningConflictButton->setIcon(KisIconUtils::loadIcon("warning"));
42 ui->warningConflictButton->setFlat(true);
43 ui->warningConflictButton->hide();
44 connect(ui->warningConflictButton, &QPushButton::clicked, [&]() {
45 QToolTip::showText(QCursor::pos(), ui->warningConflictButton->toolTip());
46 });
47
48 connect(m_shortcutsModel, &KisActionShortcutsModel::dataChanged, this, [&]() {
50 });
51
52 QAction *deleteAction = new QAction(KisIconUtils::loadIcon("edit-delete"), i18n("Delete Shortcut"), ui->shortcutsView);
53 connect(deleteAction, SIGNAL(triggered(bool)), SLOT(deleteShortcut()));
54 ui->shortcutsView->addAction(deleteAction);
55 ui->shortcutsView->setContextMenuPolicy(Qt::ActionsContextMenu);
56
57 connect(ui->collapseButton, SIGNAL(clicked(bool)), SLOT(setExpanded(bool)));
58}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A QAbstractListModel subclass that lists shortcuts associated with an action from a profile.
Ui::KisInputConfigurationPageItem * ui
A delegate providing editors for the keys/buttons/etc. of KisShortcutConfiguration.
A delegate providing editors for the mode property of KisShortcutConfiguration.
A delegate providing editors for the type property of KisShortcutConfiguration.
QIcon loadIcon(const QString &name)

References connect(), deleteShortcut(), inputConfigurationChanged(), KisIconUtils::loadIcon(), m_shortcutsModel, setExpanded(), and ui.

◆ ~KisInputConfigurationPageItem()

KisInputConfigurationPageItem::~KisInputConfigurationPageItem ( )
override

Definition at line 60 of file kis_input_configuration_page_item.cpp.

61{
62 delete ui;
63}

References ui.

Member Function Documentation

◆ deleteShortcut

void KisInputConfigurationPageItem::deleteShortcut ( )
privateslot

Definition at line 103 of file kis_input_configuration_page_item.cpp.

104{
105 int row = ui->shortcutsView->selectionModel()->currentIndex().row();
106
107 if (m_shortcutsModel->canRemoveRow(row)) {
108 m_shortcutsModel->removeRow(row, QModelIndex());
110 } else {
111 QMessageBox shortcutMessage;
112 shortcutMessage.setText(i18n("Deleting last shortcut for this action!"));
113 shortcutMessage.setInformativeText(i18n("It is not allowed to erase some default shortcuts. Modify it instead."));
114 shortcutMessage.exec();
115 }
116}

References KisActionShortcutsModel::canRemoveRow(), inputConfigurationChanged(), m_shortcutsModel, and ui.

◆ inputConfigurationChanged

void KisInputConfigurationPageItem::inputConfigurationChanged ( )
signal

◆ setAction()

void KisInputConfigurationPageItem::setAction ( KisAbstractInputAction * action)

Definition at line 65 of file kis_input_configuration_page_item.cpp.

66{
67 m_action = action;
68 ui->collapseButton->setText(action->name());
69 ui->descriptionLabel->setText(action->description());
72 qobject_cast<KisInputModeDelegate *>(ui->shortcutsView->itemDelegateForColumn(2))->setAction(action);
73}
void setProfile(KisInputProfile *profile)
void setAction(KisAbstractInputAction *action)
static KisInputProfileManager * instance()

References KisAbstractInputAction::description, KisInputProfileManager::instance(), m_action, m_shortcutsModel, KisAbstractInputAction::name, KisActionShortcutsModel::setAction(), KisActionShortcutsModel::setProfile(), and ui.

◆ setExpanded

void KisInputConfigurationPageItem::setExpanded ( bool expand)
slot

Definition at line 89 of file kis_input_configuration_page_item.cpp.

90{
91 if (expand) {
92 ui->descriptionLabel->setVisible(true);
93 ui->shortcutsView->setVisible(true);
94 ui->collapseButton->setArrowType(Qt::DownArrow);
95 }
96 else {
97 ui->descriptionLabel->setVisible(false);
98 ui->shortcutsView->setVisible(false);
99 ui->collapseButton->setArrowType(Qt::RightArrow);
100 }
101}
void expand(ExpansionStrategy &expansionStrategy, KoUpdater *progressUpdater)

References expand(), and ui.

◆ setWarningEnabled()

void KisInputConfigurationPageItem::setWarningEnabled ( bool enabled,
QString additionalToolTipText = QString() )

Definition at line 75 of file kis_input_configuration_page_item.cpp.

76{
77 ui->warningConflictButton->setVisible(enabled);
78 if (!enabled) {
79 ui->warningConflictButton->setToolTip(m_defaultToolTipText);
80 } else if (!additionalToolTipText.isEmpty()) {
81 const QString toolTipText =
82 "<html>" +
83 ui->warningConflictButton->toolTip() + "<br>" + additionalToolTipText +
84 "</html>";
85 ui->warningConflictButton->setToolTip(toolTipText);
86 }
87}

References m_defaultToolTipText, and ui.

Member Data Documentation

◆ m_action

KisAbstractInputAction* KisInputConfigurationPageItem::m_action {nullptr}
private

Definition at line 48 of file kis_input_configuration_page_item.h.

48{nullptr};

◆ m_defaultToolTipText

const QString KisInputConfigurationPageItem::m_defaultToolTipText
private

Definition at line 51 of file kis_input_configuration_page_item.h.

◆ m_shortcutsModel

KisActionShortcutsModel* KisInputConfigurationPageItem::m_shortcutsModel {nullptr}
private

Definition at line 49 of file kis_input_configuration_page_item.h.

49{nullptr};

◆ ui

Ui::KisInputConfigurationPageItem* KisInputConfigurationPageItem::ui {nullptr}
private

Definition at line 47 of file kis_input_configuration_page_item.h.

47{nullptr};

The documentation for this class was generated from the following files: