1515 : QWidget(parent)
1516{
1517 setObjectName(name);
1518
1519 QGridLayout * l = new QGridLayout(this);
1520 l->setContentsMargins(0, 0, 0, 0);
1522 l->addWidget(
m_page, 0, 0);
1523
1526 m_page->pressureCurve->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
1527 m_page->pressureCurve->setCurve(curve);
1528
1529 m_page->chkUseRightMiddleClickWorkaround->setChecked(
1530 cfg.useRightMiddleTabletButtonWorkaround());
1531
1532#if defined Q_OS_WIN && (defined QT5_HAS_WINTAB_SWITCH || QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
1533# if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
1534 QString actualTabletProtocol = "<unknown>";
1535 using QWindowsApplication = QNativeInterface::Private::QWindowsApplication;
1536 if (auto nativeWindowsApp = dynamic_cast<QWindowsApplication *>(QGuiApplicationPrivate::platformIntegration())) {
1537 actualTabletProtocol = nativeWindowsApp->isWinTabEnabled() ? "WinTab" : "Windows Ink";
1538 }
1539 m_page->grpTabletApi->setTitle(i18n(
"Tablet Input API (currently active API: \"%1\")", actualTabletProtocol));
1540# endif
1541 m_page->radioWintab->setChecked(!cfg.useWin8PointerInput());
1542 m_page->radioWin8PointerInput->setChecked(cfg.useWin8PointerInput());
1543
1545 connect(
m_page->radioWintab, SIGNAL(toggled(
bool)),
m_page->btnResolutionSettings, SLOT(setEnabled(
bool)));
1546 m_page->btnResolutionSettings->setEnabled(
m_page->radioWintab->isChecked());
1547#else
1548 m_page->grpTabletApi->setVisible(
false);
1549#endif
1551
1552#ifdef Q_OS_WIN
1553 m_page->chkUseTimestampsForBrushSpeed->setText(i18n(
"Use tablet driver timestamps for brush speed (may cause severe artifacts when using WinTab tablet API)"));
1554#else
1555 m_page->chkUseTimestampsForBrushSpeed->setText(i18n(
"Use tablet driver timestamps for brush speed"));
1556#endif
1557 m_page->chkUseTimestampsForBrushSpeed->setChecked(cfg.readEntry(
"useTimestampsForBrushSpeed",
false));
1558
1559 m_page->intMaxAllowedBrushSpeed->setRange(1, 100);
1560 m_page->intMaxAllowedBrushSpeed->setValue(cfg.readEntry(
"maxAllowedSpeedValue", 30));
1562
1563
1564
1565 return i18np("Maximum brush speed: {n} px/ms", "Maximum brush speed: {n} px/ms", value);
1566 });
1567
1568 m_page->intBrushSpeedSmoothing->setRange(3, 100);
1569 m_page->intBrushSpeedSmoothing->setValue(cfg.readEntry(
"speedValueSmoothing", 3));
1571
1572
1573
1574 return i18np("Brush speed smoothing: {n} sample", "Brush speed smoothing: {n} samples", value);
1575 });
1576
1577 m_page->tiltDirectionOffsetAngle->setDecimals(0);
1578 m_page->tiltDirectionOffsetAngle->setRange(-180, 180);
1579
1580 m_page->tiltDirectionOffsetAngle->setAngle(-cfg.readEntry(
"tiltDirectionOffset", 0.0));
1581 m_page->tiltDirectionOffsetAngle->setPrefix(i18n(
"Pen tilt direction offset: "));
1583}
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
@ FlipOptionsMode_MenuButton
The flip options are shown as a menu accessible via a options button.
void slotResolutionSettings()
WdgTabletSettings * m_page
void install(QSpinBox *spinBox, std::function< QString(int)> messageFn)