Add tablet tester from Drawpile
ClosedPublic

Authored by alvinhochun on May 5 2018, 6:25 PM.

Details

Summary

This adds the tablet tester from Drawpile (original by Calle Laakkonen) into Krita. I made a few changes to make it compile. It can be accessed from the Tablet page of the config dialog.

With the tablet tester, users with tablet issues can provide a screenshot and copy the log output for support requests, which would be easier than obtaining a tablet log with the existing setup (e.g. not needing to download DebugView on Windows).

However, the log output is a bit less detailed than the existing tablet log. Perhaps we should look into hooking the existing tablet logger to the tablet tester.


Working branch: https://github.com/KDE/krita/compare/master...alvinhochun:alvin/D12710-tablet-tester
Current patch contains changes up to
c0cf285 Improve logging of tablet proximity events

Diff Detail

Repository
R37 Krita
Lint
Lint Skipped
Unit
Unit Tests Skipped
alvinhochun created this revision.May 5 2018, 6:25 PM
Restricted Application added a subscriber: woltherav. · View Herald TranscriptMay 5 2018, 6:25 PM
alvinhochun requested review of this revision.May 5 2018, 6:25 PM

I should also add that this is not a replacement of the tablet log since it bypasses KisInputManager completely.

alvinhochun updated this revision to Diff 33690.May 5 2018, 7:38 PM
alvinhochun edited the summary of this revision. (Show Details)
rempt added a subscriber: rempt.May 7 2018, 7:34 AM

We actually used to have a tablet testing application, but that just used Qt's tablet implementation instead of ours.

Hi, @alvinhochun!

I have tested the tester on Linux and for some reason, when I enter/leave proximity of the stylus (not eraser) it says: "Eraser taken away", which seems to be wrong.

Here is the full log:
https://phabricator.kde.org/P206

That is interesting. Is it the same output in Drawpile? Because it should be now that Drawpile borrows the tablet code from Krita.

FWIW the proximity events are separate from the normal tablet hover events, and I suspected that Krita doesn't even use them for it's intended propose at all...

dkazakov requested changes to this revision.May 12 2018, 1:58 PM

Hi, @alvinhochun!

That is interesting. Is it the same output in Drawpile? Because it should be now that Drawpile borrows the tablet code from Krita.

I have tested Drawpile and all non-proximity events look exactly the same as in your patch. They are correct.

FWIW the proximity events are separate from the normal tablet hover events, and I suspected that Krita doesn't even use them for it's intended propose at all...

We use proximity events quite extensively to block driver-generated mouse events flow when the stylus is painting. Failing proximity events is one of the driver bugs that prevent people from painting in Krita.

I will mark the patch an "needs changes" because of these proximity events issue.

This revision now requires changes to proceed.May 12 2018, 1:58 PM

Should I make improvements based on this specific code from Drawpile, or revive the old tablet tester that @rempt mentioned, or better write a new tablet tester to suit Krita's needs?

Should I make improvements based on this specific code from Drawpile, or revive the old tablet tester that @rempt mentioned, or better write a new tablet tester to suit Krita's needs?

I think there are two options:

  1. Just fix this very implementation to handle Proximity events correctly. Looking at the code, the logic in TabletTestDialog::eventFilter() is oversimplified. Just handling the event properties correctly would fix the issue.
  2. Connect our own debugger to this tester widget. This would make the messages look consistent with the main logging framework in KisTabletDebugger, but it would need a bit more work :)
alvinhochun edited the summary of this revision. (Show Details)

Improved the logging of proximity events.

dkazakov accepted this revision.May 17 2018, 5:39 PM

The patch works perfectly fine now, thank you very much! Please push! :)

This revision is now accepted and ready to land.May 17 2018, 5:39 PM
This revision was automatically updated to reflect the committed changes.