Bug 426906

Summary: Attempting to change Google Calendar colour crashes Kontact
Product: [Applications] kontact Reporter: Keith <keithhacks-kdebug>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: ehelmke, hubblebug, link, lukasz, nils.van-zuijlen, scheffle, supamaxy
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 21.08.2
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi

Description Keith 2020-09-23 13:56:55 UTC
Application: kontact (5.15.1 (20.08.1))

Qt Version: 5.15.0
Frameworks Version: 5.74.0
Operating System: Linux 5.4.0-45-generic x86_64
Windowing system: X11
Distribution: KDE neon User Edition 5.19

-- Information about the crash:
- What I was doing when the application crashed:
I right-clicked on a folder in my Google Calendar account and clicked Change Folder Colour. As soon as I hit OK on the picker dialog, Kontact crashed.

The crash can be reproduced every time.

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f1cd3ecb969 in QColor::operator=(QColor const&) (this=0x8, color=...) at painting/qcolor.cpp:2929
#5  0x00007f1c26255c9a in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) (coll=..., color=..., preferences=...) at ./src/helper.cpp:59
#6  0x00007f1c26591a34 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) (collection=..., color=...) at ./src/kohelper.cpp:52
#7  0x00007f1c26547c1b in AkonadiCollectionView::assignColor() (this=0x55a0aecf2d40) at ./src/akonadicollectionview.cpp:670
#8  0x00007f1cd38e15ae in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc239c2270, r=0x55a0aecf2d40, this=0x55a0afadcb80) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#9  doActivate<false>(QObject*, int, void**) (sender=0x55a0afadc670, signal_index=4, argv=0x7ffc239c2270) at kernel/qobject.cpp:3886
#10 0x00007f1cd38da977 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55a0afadc670, m=m@entry=0x7f1cd48f4280 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffc239c2270) at kernel/qobject.cpp:3946
#11 0x00007f1cd43dd7f6 in QAction::triggered(bool) (this=this@entry=0x55a0afadc670, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#12 0x00007f1cd43dfec8 in QAction::activate(QAction::ActionEvent) (this=0x55a0afadc670, event=<optimized out>) at kernel/qaction.cpp:1161
#13 0x00007f1cd456a712 in QMenuPrivate::activateCausedStack(QVector<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) (this=this@entry=0x55a0afcd20f0, causedStack=..., action=action@entry=0x55a0afadc670, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1353
#14 0x00007f1cd4571dbe in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (this=this@entry=0x55a0afcd20f0, action=action@entry=0x55a0afadc670, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1430
#15 0x00007f1cd4573052 in QMenu::mouseReleaseEvent(QMouseEvent*) (this=0x55a0afcd20b0, e=0x7ffc239c2950) at widgets/qmenu.cpp:2927
#16 0x00007f1cd4426db6 in QWidget::event(QEvent*) (this=this@entry=0x55a0afcd20b0, event=event@entry=0x7ffc239c2950) at kernel/qwidget.cpp:8671
#17 0x00007f1cd457565b in QMenu::event(QEvent*) (this=0x55a0afcd20b0, e=0x7ffc239c2950) at widgets/qmenu.cpp:3049
#18 0x00007f1cd43e3cc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a0ae6dc490, receiver=receiver@entry=0x55a0afcd20b0, e=e@entry=0x7ffc239c2950) at kernel/qapplication.cpp:3671
#19 0x00007f1cd43ecec3 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55a0afcd20b0, e=0x7ffc239c2950) at kernel/qapplication.cpp:3115
#20 0x00007f1cd38aa6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a0afcd20b0, event=0x7ffc239c2950) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#21 0x00007f1cd43ebfd7 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (receiver=0x55a0afcd20b0, event=event@entry=0x7ffc239c2950, alienWidget=0x0, nativeWidget=0x55a0afcd20b0, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2603
#22 0x00007f1cd4442a86 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x55a0afcd2570, event=0x7ffc239c2dd0) at /usr/include/c++/9/bits/atomic_base.h:413
#23 0x00007f1cd44454dc in QWidgetWindow::event(QEvent*) (event=0x7ffc239c2dd0, this=0x55a0afcd2570) at kernel/qwidgetwindow.cpp:295
#24 QWidgetWindow::event(QEvent*) (this=0x55a0afcd2570, event=0x7ffc239c2dd0) at kernel/qwidgetwindow.cpp:238
#25 0x00007f1cd43e3cc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a0ae6dc490, receiver=receiver@entry=0x55a0afcd2570, e=e@entry=0x7ffc239c2dd0) at kernel/qapplication.cpp:3671
#26 0x00007f1cd43ecc70 in QApplication::notify(QObject*, QEvent*) (this=0x7ffc239c4260, receiver=0x55a0afcd2570, e=0x7ffc239c2dd0) at kernel/qapplication.cpp:3417
#27 0x00007f1cd38aa6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a0afcd2570, event=0x7ffc239c2dd0) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#28 0x00007f1cd3cd9f78 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=e@entry=0x55a0afee42c0) at kernel/qguiapplication.cpp:2214
#29 0x00007f1cd3cdb5b5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55a0afee42c0) at kernel/qguiapplication.cpp:1946
#30 0x00007f1cd3cb32cb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1175
#31 0x00007f1cbf51d99e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#32 0x00007f1cca759fbd in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007f1cca75a240 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007f1cca75a2e3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f1cd3904e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a0ae73ead0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#36 0x00007f1cd38a91bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc239c3180, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#37 0x00007f1cd456f938 in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) (this=0x55a0afcd20f0, p=..., action=action@entry=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#38 0x00007f1cd456fa63 in QMenu::exec(QPoint const&, QAction*) (this=<optimized out>, p=..., action=action@entry=0x0) at /usr/include/c++/9/bits/std_function.h:396
#39 0x00007f1c4dc618be in Akonadi::EntityTreeView::contextMenuEvent(QContextMenuEvent*) (this=0x55a0afe2a360, event=0x7ffc239c38e0) at /usr/include/x86_64-linux-gnu/qt5/QtGui/qevent.h:565
#40 0x00007f1cd4426db6 in QWidget::event(QEvent*) (this=this@entry=0x55a0afe2a360, event=event@entry=0x7ffc239c38e0) at kernel/qwidget.cpp:8671
#41 0x00007f1cd44d7062 in QFrame::event(QEvent*) (this=0x55a0afe2a360, e=0x7ffc239c38e0) at widgets/qframe.cpp:550
#42 0x00007f1cd4661322 in QAbstractItemView::viewportEvent(QEvent*) (this=this@entry=0x55a0afe2a360, event=event@entry=0x7ffc239c38e0) at itemviews/qabstractitemview.cpp:1745
#43 0x00007f1cd46d19bf in QTreeView::viewportEvent(QEvent*) (this=0x55a0afe2a360, event=0x7ffc239c38e0) at itemviews/qtreeview.cpp:1314
#44 0x00007f1cd38aa413 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1187
#45 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (receiver=receiver@entry=0x55a0afe2b1a0, event=event@entry=0x7ffc239c38e0) at kernel/qcoreapplication.cpp:1176
#46 0x00007f1cd43e3cb2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a0ae6dc490, receiver=receiver@entry=0x55a0afe2b1a0, e=e@entry=0x7ffc239c38e0) at kernel/qapplication.cpp:3665
#47 0x00007f1cd43edaec in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55a0afe2b1a0, e=0x7ffc239c38e0) at kernel/qapplication.cpp:3277
#48 0x00007f1cd38aa6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a0afe2b1a0, event=0x7ffc239c38e0) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#49 0x00007f1cd44426ac in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x55a0af573060, event=0x7ffc239c3da0) at kernel/qwidgetwindow.cpp:683
#50 0x00007f1cd44454dc in QWidgetWindow::event(QEvent*) (event=0x7ffc239c3da0, this=0x55a0af573060) at kernel/qwidgetwindow.cpp:295
#51 QWidgetWindow::event(QEvent*) (this=0x55a0af573060, event=0x7ffc239c3da0) at kernel/qwidgetwindow.cpp:238
#52 0x00007f1cd43e3cc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a0ae6dc490, receiver=receiver@entry=0x55a0af573060, e=e@entry=0x7ffc239c3da0) at kernel/qapplication.cpp:3671
#53 0x00007f1cd43ecc70 in QApplication::notify(QObject*, QEvent*) (this=0x7ffc239c4260, receiver=0x55a0af573060, e=0x7ffc239c3da0) at kernel/qapplication.cpp:3417
#54 0x00007f1cd38aa6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a0af573060, event=0x7ffc239c3da0) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#55 0x00007f1cd3cd9f78 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=e@entry=0x55a0afec6730) at kernel/qguiapplication.cpp:2214
#56 0x00007f1cd3cdb5b5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55a0afec6730) at kernel/qguiapplication.cpp:1946
#57 0x00007f1cd3cb32cb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1175
#58 0x00007f1cbf51d99e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#59 0x00007f1cca759fbd in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007f1cca75a240 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007f1cca75a2e3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#62 0x00007f1cd3904e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a0ae73ead0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#63 0x00007f1cd38a91bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc239c4140, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#64 0x00007f1cd38b1354 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#65 0x000055a0acf6d5f6 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:230
[Inferior 1 (process 2545669) detached]

Possible duplicates by query: bug 106534.

Reported using DrKonqi
Comment 1 Maksym Shalenyi 2020-10-27 15:50:59 UTC
Created attachment 132797 [details]
New crash information added by DrKonqi

kontact (5.15.1 (20.08.1)) using Qt 5.15.1

- What I was doing when the application crashed:

The application (Kontact) has crashed when I tried to change a google calendar color.

-- Backtrace (Reduced):
#4  0x00007f8723d36845 in QColor::operator=(QColor const&) () from /lib64/libQt5Gui.so.5
#5  0x00007f867f6348e4 in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) () from /lib64/libKF5EventViews.so.5
#6  0x00007f868cc78300 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) () from /lib64/libkorganizerprivate.so.5
#7  0x00007f868cc4a8e3 in AkonadiCollectionView::assignColor() () from /lib64/libkorganizerprivate.so.5
#8  0x00007f87237e6266 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
Comment 2 scheffle 2020-10-30 16:58:38 UTC
Created attachment 132891 [details]
New crash information added by DrKonqi

kontact (5.15.2 (20.08.2)) using Qt 5.15.0

- What I was doing when the application crashed:

I wanted to change the color of a carddav calendar group. After the color picker opened and I picked my color kontact crashed.

-- Backtrace (Reduced):
#4  0x00007f57dfd2d969 in QColor::operator=(QColor const&) (this=0x8, color=...) at painting/qcolor.cpp:2929
#5  0x00007f57452f4cda in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) (coll=..., color=..., preferences=...) at ./src/helper.cpp:59
#6  0x00007f5730d22a04 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) (collection=..., color=...) at ./src/kohelper.cpp:52
#7  0x00007f5730cd8c1b in AkonadiCollectionView::assignColor() (this=0x5593f2012cf0) at ./src/akonadicollectionview.cpp:670
#8  0x00007f57df7435ae in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd72f224c0, r=0x5593f2012cf0, this=0x5593f21f7230) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
Comment 3 Nils 2020-11-18 10:05:50 UTC
Created attachment 133430 [details]
New crash information added by DrKonqi

kontact (5.15.3 (20.08.3)) using Qt 5.15.1

- What I was doing when the application crashed:

I was attempting to change the color of a CalDav Folder

-- Backtrace (Reduced):
#4  0x00007fcdf770c4c5 in QColor::operator=(QColor const&) () at /usr/lib/libQt5Gui.so.5
#5  0x00007fcd6535ad2c in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) () at /usr/lib/libKF5EventViews.so.5
#6  0x00007fcd641fe783 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) () at /usr/lib/libkorganizerprivate.so.5
[...]
#9  0x00007fcdf7c05f63 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007fcdf7c08845 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
Comment 4 Łukasz Żarnowiecki 2021-03-29 09:30:11 UTC
Created attachment 137150 [details]
New crash information added by DrKonqi

kontact (5.16.3 (20.12.3)) using Qt 5.15.2

- What I was doing when the application crashed:

I changed color of my nextcloud calendar.  At the same time I noticed that I have calendars that have same colors.  This is the reason I wanted to change color, but not sure if this useful

-- Backtrace (Reduced):
#4  0x00007f71d95be7f5 in QColor::operator=(QColor const&) (this=0x8, color=...) at painting/qcolor.cpp:2932
#5  0x00007f713d3feefc in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) () at /usr/lib/libKF5EventViews.so.5
#6  0x00007f7196733a13 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) () at /usr/lib/libkorganizerprivate.so.5
[...]
#8  0x00007f71d902ed86 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc53d5e690, r=0x5607e5647610, this=0x5607e57101e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#9  doActivate<false>(QObject*, int, void**) (sender=0x5607e570fcd0, signal_index=4, argv=argv@entry=0x7ffc53d5e690) at kernel/qobject.cpp:3886
Comment 5 Kevin 2021-04-25 17:45:15 UTC
Created attachment 137911 [details]
New crash information added by DrKonqi

kontact (5.16.3 (20.12.3)) using Qt 5.15.2

- What I was doing when the application crashed:
Attempting to change Google calendar folder color in Calendar portion of Kontact.

-- Backtrace (Reduced):
#6  0x00007f3a7023beb5 in QColor::operator= (this=this@entry=0x8, color=...) at painting/qcolor.cpp:2932
#7  0x00007f3a0d4b71a9 in Akonadi::CollectionColorAttribute::setColor (this=this@entry=0x0, color=...) at /usr/src/debug/akonadi-server-20.12.3-1.3.x86_64/src/core/attributes/collectioncolorattribute.cpp:21
#8  0x00007f39e9e30cc4 in EventViews::setResourceColor (coll=..., color=..., preferences=...) at /usr/src/debug/eventviews-20.12.3-1.3.x86_64/src/helper.cpp:43
#9  0x00007f39d5b80bb0 in KOHelper::setResourceColor (collection=..., color=...) at /usr/src/debug/korganizer-20.12.3-1.3.x86_64/src/kohelper.cpp:36
#10 0x00007f39d5b52e73 in AkonadiCollectionView::assignColor (this=0x55be48ebcc10) at /usr/src/debug/korganizer-20.12.3-1.3.x86_64/src/akonadicollectionview.cpp:663
Comment 6 Emanuel Helmke 2021-07-28 19:43:22 UTC
Created attachment 140378 [details]
New crash information added by DrKonqi

kontact (5.16.2 (20.12.2)) using Qt 5.15.2

- What I was doing when the application crashed:

Tried to change the color of my Posteo calendar, could still select the color in the color picker and confirm with OK, then the crash.

-- Backtrace (Reduced):
#4  0x00007ff54f332c39 in QColor::operator=(QColor const&) () from /lib64/libQt5Gui.so.5
#5  0x00007ff4700ebb4c in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) () from /lib64/libKF5EventViews.so.5
#6  0x00007ff471723474 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) () from /lib64/libkorganizerprivate.so.5
#7  0x00007ff4716f4bcb in AkonadiCollectionView::assignColor() () from /lib64/libkorganizerprivate.so.5
#8  0x00007ff54ed71c99 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
Comment 7 Link Dupont 2021-09-15 14:41:35 UTC
Created attachment 141560 [details]
New crash information added by DrKonqi

kontact (5.16.2 (20.12.2)) using Qt 5.15.2

- What I was doing when the application crashed:

Clicked OK in the color selection dialog when trying to change the color of the calendar.

-- Backtrace (Reduced):
#4  0x00007f77a47d51f9 in QColor::operator=(QColor const&) () from /lib64/libQt5Gui.so.5
#5  0x00007f76d022ab4c in EventViews::setResourceColor(Akonadi::Collection const&, QColor const&, QSharedPointer<EventViews::Prefs> const&) () from /lib64/libKF5EventViews.so.5
#6  0x00007f76a2487474 in KOHelper::setResourceColor(Akonadi::Collection const&, QColor const&) () from /lib64/libkorganizerprivate.so.5
#7  0x00007f76a2458bcb in AkonadiCollectionView::assignColor() () from /lib64/libkorganizerprivate.so.5
#8  0x00007f77a42113a9 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
Comment 8 Allen Winter 2021-09-16 16:46:53 UTC
Git commit 4b3204f06d4efbc40d1c7dea96b6ec0603dd81fa by Allen Winter.
Committed on 16/09/2021 at 16:44.
Pushed by winterz into branch 'release/21.08'.

src/helper.cpp - fix crash in setResourceColor

don't crash on empty collection ColorAttribute
FIXED-IN: 21.08.2

M  +10   -8    src/helper.cpp

https://invent.kde.org/pim/eventviews/commit/4b3204f06d4efbc40d1c7dea96b6ec0603dd81fa