9#include "ui_kis_input_configuration_page.h"
37 ui =
new Ui::KisInputConfigurationPage;
57 ui->configurationItemsArea->addWidget(item);
58 m_d->actionInputConfigurationMap.insert(action, item);
63 Qt::UniqueConnection);
66 ui->configurationItemsArea->addStretch(20);
70 connect(scroller, SIGNAL(stateChanged(QScroller::State)),
97 if (conflictingShortcuts.isEmpty()) {
101 struct ShortcutInfo {
105 QMap<QString, ShortcutInfo> conflictingShortcutsMap;
109 if (
m_d->actionInputConfigurationMap.contains(shortcut->
action())) {
110 ShortcutInfo &shortcutInfo = conflictingShortcutsMap[shortcut->
getInputText()];
111 shortcutInfo.shortcutObjects.append(shortcut);
113 shortcutInfo.actionTexts.append(shortcut->
action()->
name() +
" → " + subActionName);
115 qWarning() <<
"KisInputConfigurationPageItem does not exist for the specified action:"
119 qWarning() <<
"Action not set for the given shortcut.";
123 QMap<KisAbstractInputAction *, QSet<QString>> infoTexts;
124 Q_FOREACH (
const ShortcutInfo &shortcutInfo, conflictingShortcutsMap) {
125 const QString text =
"<b>" + shortcutInfo.shortcutObjects.first()->getInputText() +
"</b>" +
"<br> "
126 + shortcutInfo.actionTexts.join(
"<br> ");
128 infoTexts[shortcut->
action()] << text;
132 QMapIterator<KisAbstractInputAction *, QSet<QString>> it(infoTexts);
133 while (it.hasNext()) {
135 QSetIterator<QString> it2(it.value());
136 if (!it2.hasNext()) {
139 QString text =
"<ul> <li>" + it2.next() +
"</li>";
140 while (it2.hasNext()) {
141 text +=
"<li>" + it2.next() +
"</li>";
144 m_d->actionInputConfigurationMap[it.key()]->setWarningEnabled(
true, text);
155 if (profileDir.exists()) {
156 QStringList entries = profileDir.entryList(
QStringList() <<
"*.profile", QDir::Files | QDir::NoDotAndDotDot);
157 Q_FOREACH(
const QString & file, entries) {
158 profileDir.remove(file);
165 ui->profileComboBox->setCurrentItem(
"Krita Default");
QList< QString > QStringList
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setCurrentInputProfile(const QString &name)
A dialog that provides facilities to edit all the available profiles.
A collapsible widget displaying an action, its description and associated shortcuts.
void setWarningEnabled(bool enabled, QString additionalToolTipText=QString())
void setAction(KisAbstractInputAction *action)
void inputConfigurationChanged()
QScopedPointer< Private > m_d
void slotScrollerStateChanged(QScroller::State state)
Ui::KisInputConfigurationPage * ui
KisInputConfigurationPage(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
void changeCurrentProfile(const QString &newProfile)
void updateSelectedProfile()
void editProfilesButtonClicked()
~KisInputConfigurationPage()
A class encapsulating all settings for a single shortcut.
KisAbstractInputAction * action() const
QString getInputText() const
static QString saveLocation(const QString &type, const QString &suffix=QString(), bool create=true)
QIcon loadIcon(const QString &name)
QMap< KisAbstractInputAction *, KisInputConfigurationPageItem * > actionInputConfigurationMap