Bug 342921

Summary: Default shortcut Shift + Z doesn’t work for Undo Polygon Selection Tool
Product: [Applications] krita Reporter: eliotJ <testowy_s>
Component: UsabilityAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: halla, manson_jabba
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description eliotJ 2015-01-16 15:57:37 UTC
Default shortcut Shift + Z doesn’t work for “Undo Polygon Selection Tool”. This bug exists probably only at Windows platform. On IRC raghukamath reported it’s working on Linux version.

I have tested on Krita v2.8.91.0 (64bit), git 1039534
Comment 1 Raghavendra kamath 2015-01-27 11:59:06 UTC
*** Bug 342485 has been marked as a duplicate of this bug. ***
Comment 2 Halla Rempt 2015-01-30 11:08:38 UTC
Yes, I can confirm that it doesn't work -- shift-z seems broken for all polygon tools.
Comment 3 Halla Rempt 2015-01-30 11:09:23 UTC
That's to say, it works for polyline, but causes a crash if you go back too far:

hread 1 (Thread 0x7f1a9ac2e7c0 (LWP 2949)):
[KCrash Handler]
#5  0x00007f1a91eaf187 in raise () at /lib64/libc.so.6
#6  0x00007f1a91eb0538 in abort () at /lib64/libc.so.6
#7  0x00007f1a931ab2b4 in qt_message_output(QtMsgType, char const*) (msgType=msgType@entry=QtFatalMsg, buf=<optimized out>) at global/qglobal.cpp:2359
#8  0x00007f1a931ab439 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, msg=msg@entry=0x7f1a93318880 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=ap@entry=0x7fffd73d95f8) at global/qglobal.cpp:2405
#9  0x00007f1a931abc44 in qFatal(char const*, ...) (msg=msg@entry=0x7f1a93318880 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qglobal.cpp:2588
#10 0x00007f1a931abcae in qt_assert_x(char const*, char const*, char const*, int) (where=where@entry=0x7f1a9a703a6b "QVector<T>::at", what=what@entry=0x7f1a9a5f6d66 "index out of range", file=file@entry=0x7f1a9a5f6314 "/usr/include/QtCore/qvector.h", line=line@entry=351) at global/qglobal.cpp:2062
#11 0x00007f1a9a4b08ff in KisToolPolylineBase::undoSelection() (i=-1, this=0x6062008) at /usr/include/QtCore/qvector.h:351
#12 0x00007f1a9a4b08ff in KisToolPolylineBase::undoSelection() (this=0x6061f00) at /home/boud/kde/src/2.9/krita/ui/tool/kis_tool_polyline_base.cpp:159
#13 0x00007f1a9a4b19bd in KisToolPolylineBase::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x6061f00, _c=2949, _id=0, _a=0xffffffffffffffff) at /home/boud/kde/build/2.9/krita/ui/kis_tool_polyline_base.moc:48
#14 0x00007f1a932cb1fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=0x60618a0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffd73d9920) at kernel/qobject.cpp:3576
#15 0x00007f1a93cbf622 in QAction::triggered(bool) () at /usr/lib64/libQtGui.so.4
#16 0x00007f1a93cc0fd3 in QAction::activate(QAction::ActionEvent) () at /usr/lib64/libQtGui.so.4
#17 0x00007f1a93cc112c in QAction::event(QEvent*) () at /usr/lib64/libQtGui.so.4
#18 0x00007f1a9490821f in KAction::event(QEvent*) () at /usr/lib64/libkdeui.so.5
#19 0x00007f1a93cc576c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#20 0x00007f1a93ccbcad in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#21 0x00007f1a9a55ef97 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x60618a0, event=0x7fffd73d9cd0) at /home/boud/kde/src/2.9/krita/ui/KisApplication.cpp:488
#22 0x00007f1a932b72ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7fffd73daa60, receiver=0x60618a0, event=0x7fffd73d9cd0) at kernel/qcoreapplication.cpp:953
#23 0x00007f1a93cf69d6 in  () at /usr/lib64/libQtGui.so.4
#24 0x00007f1a93cf6b0c in  () at /usr/lib64/libQtGui.so.4
#25 0x00007f1a93cccfe3 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#26 0x00007f1a9a55ef97 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x12d68a0, event=0x7fffd73da020) at /home/boud/kde/src/2.9/krita/ui/KisApplication.cpp:488
#27 0x00007f1a932b72ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7fffd73daa60, receiver=0x12d68a0, event=0x7fffd73da020) at kernel/qcoreapplication.cpp:953
#28 0x00007f1a93d5fab7 in  () at /usr/lib64/libQtGui.so.4
#29 0x00007f1a93d5fe59 in  () at /usr/lib64/libQtGui.so.4
#30 0x00007f1a93d3ba5f in QApplication::x11ProcessEvent(_XEvent*) () at /usr/lib64/libQtGui.so.4
#31 0x00007f1a93d62f30 in  () at /usr/lib64/libQtGui.so.4
#32 0x00007f1a932b5e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffd73da810, flags=...) at kernel/qeventloop.cpp:149
#33 0x00007f1a932b6165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffd73da810, flags=...) at kernel/qeventloop.cpp:204
#34 0x00007f1a932bb5b9 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1225
#35 0x0000000000402a71 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/boud/kde/src/2.9/krita/main.cc:170
Comment 4 Halla Rempt 2015-01-30 11:28:46 UTC
Git commit 3aa90c0cd29eb5677bb125ca363144e71372f2f6 by Boudewijn Rempt.
Committed on 30/01/2015 at 11:15.
Pushed by rempt into branch 'calligra/2.9'.

Don't crash when undoing points

M  +13   -6    krita/ui/tool/kis_tool_polyline_base.cpp

http://commits.kde.org/calligra/3aa90c0cd29eb5677bb125ca363144e71372f2f6
Comment 5 Halla Rempt 2015-01-30 11:28:47 UTC
Git commit a930122190f2854ce5bc4028fb3698c1adbf8f85 by Boudewijn Rempt.
Committed on 30/01/2015 at 11:28.
Pushed by rempt into branch 'calligra/2.9'.

M  +11   -3    krita/ui/tool/kis_tool_polyline_base.cpp
M  +1    -0    krita/ui/tool/kis_tool_polyline_base.h

http://commits.kde.org/calligra/a930122190f2854ce5bc4028fb3698c1adbf8f85