Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_mouse_input_editor.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the KDE project
3 * SPDX-FileCopyrightText: 2013 Arjen Hiemstra <ahiemstra@heimr.nl>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
9
10#include <QWidgetAction>
11#include <QMenu>
12#include <QTimer>
13
14#include "kis_icon_utils.h"
15
16#include "ui_kis_mouse_input_editor.h"
17
19{
20public:
21 Private() { }
22
23 Ui::KisMouseInputEditor *ui {nullptr};
24};
25
27 : QPushButton(parent), d(new Private)
28{
29 QWidget *popup = new QWidget();
30
31 d->ui = new Ui::KisMouseInputEditor;
32 d->ui->setupUi(popup);
33 d->ui->mouseButton->setType(KisInputButton::MouseType);
34
35 d->ui->clearModifiersButton->setIcon(KisIconUtils::loadIcon("edit-clear"));
36 d->ui->clearMouseButton->setIcon(KisIconUtils::loadIcon("edit-clear"));
37
38 QWidgetAction *action = new QWidgetAction(this);
39 action->setDefaultWidget(popup);
40
41 QMenu *menu = new QMenu(this);
42 menu->addAction(action);
43 setMenu(menu);
44
45 QTimer::singleShot(0, this, SLOT(showMenu()));
46
47 connect(d->ui->mouseButton, SIGNAL(dataChanged()), SLOT(updateLabel()));
48 connect(d->ui->modifiersButton, SIGNAL(dataChanged()), SLOT(updateLabel()));
49 connect(d->ui->clearMouseButton, SIGNAL(clicked(bool)), d->ui->mouseButton, SLOT(clear()));
50 connect(d->ui->clearModifiersButton, SIGNAL(clicked(bool)), d->ui->modifiersButton, SLOT(clear()));
51}
52
54{
55 delete d->ui;
56 delete d;
57}
58
60{
61 return d->ui->modifiersButton->keys();
62}
63
65{
66 d->ui->modifiersButton->setKeys(newKeys);
68}
69
70Qt::MouseButtons KisMouseInputEditor::buttons() const
71{
72 return d->ui->mouseButton->buttons();
73}
74
75void KisMouseInputEditor::setButtons(Qt::MouseButtons newButtons)
76{
77 d->ui->mouseButton->setButtons(newButtons);
79}
80
82{
84 d->ui->modifiersButton->keys(),
85 d->ui->mouseButton->buttons()));
86}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
@ MouseType
Detect and store any combination of pressed mouse buttons.
Qt::MouseButtons buttons() const
QList< Qt::Key > keys() const
void setButtons(Qt::MouseButtons newButtons)
KisMouseInputEditor(QWidget *parent=nullptr)
void setKeys(const QList< Qt::Key > &newKeys)
static QString buttonsInputToText(const QList< Qt::Key > &keys, Qt::MouseButtons buttons)
QIcon loadIcon(const QString &name)