Add a spinbox to specify the number of pen buttons
It was only after building this feature, that it makes no sense as we don't interact with libwacom yet. Oops?
This commit is contained in:
parent
c36610633a
commit
fa14e7d125
3 changed files with 37 additions and 3 deletions
|
@ -44,6 +44,20 @@ void DeviceManager::setPad(bool pad)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DeviceManager::penButtons() const
|
||||||
|
{
|
||||||
|
return m_penButtons;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeviceManager::setPenButtons(int num)
|
||||||
|
{
|
||||||
|
if (m_penButtons != num)
|
||||||
|
{
|
||||||
|
m_penButtons = num;
|
||||||
|
Q_EMIT penButtonsChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DeviceManager::recreateDevice()
|
void DeviceManager::recreateDevice()
|
||||||
{
|
{
|
||||||
destroyDevice();
|
destroyDevice();
|
||||||
|
@ -78,9 +92,15 @@ void DeviceManager::recreateDevice()
|
||||||
libevdev_enable_event_type(dev, EV_KEY);
|
libevdev_enable_event_type(dev, EV_KEY);
|
||||||
if (!m_pad)
|
if (!m_pad)
|
||||||
{
|
{
|
||||||
|
if (m_penButtons >= 1) {
|
||||||
libevdev_enable_event_code(dev, EV_KEY, BTN_TOOL_PEN, NULL);
|
libevdev_enable_event_code(dev, EV_KEY, BTN_TOOL_PEN, NULL);
|
||||||
|
}
|
||||||
|
if (m_penButtons >= 2) {
|
||||||
libevdev_enable_event_code(dev, EV_KEY, BTN_TOOL_RUBBER, NULL);
|
libevdev_enable_event_code(dev, EV_KEY, BTN_TOOL_RUBBER, NULL);
|
||||||
|
}
|
||||||
|
if (m_penButtons >= 3) {
|
||||||
libevdev_enable_event_code(dev, EV_KEY, BTN_TOUCH, NULL);
|
libevdev_enable_event_code(dev, EV_KEY, BTN_TOUCH, NULL);
|
||||||
|
}
|
||||||
libevdev_enable_event_code(dev, EV_KEY, BTN_STYLUS, NULL);
|
libevdev_enable_event_code(dev, EV_KEY, BTN_STYLUS, NULL);
|
||||||
|
|
||||||
libevdev_enable_event_type(dev, EV_ABS);
|
libevdev_enable_event_type(dev, EV_ABS);
|
||||||
|
|
|
@ -14,6 +14,7 @@ class DeviceManager : public QObject {
|
||||||
Q_PROPERTY(QString name WRITE setName READ name NOTIFY nameChanged)
|
Q_PROPERTY(QString name WRITE setName READ name NOTIFY nameChanged)
|
||||||
Q_PROPERTY(bool direct WRITE setDirect READ direct NOTIFY directChanged)
|
Q_PROPERTY(bool direct WRITE setDirect READ direct NOTIFY directChanged)
|
||||||
Q_PROPERTY(bool pad WRITE setPad READ pad NOTIFY padChanged)
|
Q_PROPERTY(bool pad WRITE setPad READ pad NOTIFY padChanged)
|
||||||
|
Q_PROPERTY(int penButtons WRITE setPenButtons READ penButtons NOTIFY penButtonsChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~DeviceManager() override;
|
~DeviceManager() override;
|
||||||
|
@ -27,6 +28,9 @@ public:
|
||||||
bool pad() const;
|
bool pad() const;
|
||||||
void setPad(bool pad);
|
void setPad(bool pad);
|
||||||
|
|
||||||
|
int penButtons() const;
|
||||||
|
void setPenButtons(int num);
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void recreateDevice();
|
void recreateDevice();
|
||||||
void testButton();
|
void testButton();
|
||||||
|
@ -35,6 +39,7 @@ Q_SIGNALS:
|
||||||
void nameChanged();
|
void nameChanged();
|
||||||
void directChanged();
|
void directChanged();
|
||||||
void padChanged();
|
void padChanged();
|
||||||
|
void penButtonsChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void destroyDevice();
|
void destroyDevice();
|
||||||
|
@ -49,4 +54,5 @@ private:
|
||||||
QString m_name;
|
QString m_name;
|
||||||
bool m_direct = false;
|
bool m_direct = false;
|
||||||
bool m_pad = false;
|
bool m_pad = false;
|
||||||
|
int m_penButtons = 3;
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,6 +33,14 @@ Kirigami.ApplicationWindow {
|
||||||
onTextChanged: deviceManager.name = text
|
onTextChanged: deviceManager.name = text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FormCard.FormSpinBoxDelegate {
|
||||||
|
label: "Pen Buttons"
|
||||||
|
from: 0
|
||||||
|
to: 3
|
||||||
|
value: deviceManager.penButtons
|
||||||
|
onValueChanged: deviceManager.penButtons = value
|
||||||
|
}
|
||||||
|
|
||||||
FormCard.FormDelegateSeparator {}
|
FormCard.FormDelegateSeparator {}
|
||||||
|
|
||||||
FormCard.FormCheckDelegate {
|
FormCard.FormCheckDelegate {
|
||||||
|
|
Loading…
Add table
Reference in a new issue