Bug 262310 - Crash when selecting a single day after scrolling the week view [EventViews::EventIndicator::enableColumn EventViews::AgendaView::updateEventIndicatorTop EventViews::Agenda::lowerYChanged checkScrollBoundaries]
Summary: Crash when selecting a single day after scrolling the week view [EventViews::...
Status: RESOLVED FIXED
Alias: None
Product: korganizer
Classification: Applications
Component: agendaview (weekview) (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-06 15:25 UTC by Christophe Marin
Modified: 2011-01-06 16:19 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Marin 2011-01-06 15:25:38 UTC
Using master

Steps to reproduce: 
- Launch korganizer, select the agenda view
- select a week in the calendar,
- Scroll the view to the bottom,
- Select a single day in the calendar

Screencast attached. The crash can be reproduced every time.

Application: KOrganizer (korganizer), signal: Aborted
[KCrash Handler]
#6  0x00007f0e1ef21a75 in raise () from /lib64/libc.so.6
#7  0x00007f0e1ef22f76 in abort () from /lib64/libc.so.6
#8  0x00007f0e1f7eb8d4 in qt_message_output (msgType=<value optimized out>, buf=<value optimized out>) at global/qglobal.cpp:2282
#9  0x00007f0e1f7eba9d in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f0e1f93c418 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fffeeb6a170) at global/qglobal.cpp:2328
#10 0x00007f0e1f7ebc35 in qFatal (msg=<value optimized out>) at global/qglobal.cpp:2511
#11 0x00007f0e1f7ebc5e in qt_assert_x (where=0x1dc0 <Address 0x1dc0 out of bounds>, what=0x6 <Address 0x6 out of bounds>, file=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, line=580638560) at global/qglobal.cpp:2035
#12 0x00007f0e1920144c in QVector<bool>::operator[] (this=0x967f98, i=1) at /usr/include/QtCore/qvector.h:347
#13 0x00007f0e191f28b5 in EventViews::EventIndicator::enableColumn (this=0x9d93a0, column=1, enable=false) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agendaview.cpp:163
#14 0x00007f0e191fd5b5 in EventViews::AgendaView::updateEventIndicatorTop (this=0x8a6cb0, newY=66) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agendaview.cpp:1628
#15 0x00007f0e191ffc37 in EventViews::AgendaView::qt_metacall (this=0x8a6cb0, _c=QMetaObject::InvokeMetaMethod, _id=30, _a=0x7fffeeb6a410) at /kde/build/KDE/kdepim/calendarviews/eventviews/agendaview.moc:217
#16 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x905540, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6a410) at kernel/qobject.cpp:3272
#17 0x00007f0e191dfe42 in EventViews::Agenda::lowerYChanged (this=0x905540, _t1=66) at /kde/build/KDE/kdepim/calendarviews/eventviews/agenda.moc:311
#18 0x00007f0e191de241 in EventViews::Agenda::checkScrollBoundaries (this=0x905540, v=662) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agenda.cpp:2109
#19 0x00007f0e191df8b6 in EventViews::Agenda::qt_metacall (this=0x905540, _c=QMetaObject::InvokeMetaMethod, _id=24, _a=0x7fffeeb6a590) at /kde/build/KDE/kdepim/calendarviews/eventviews/agenda.moc:216
#20 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x900730, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6a590) at kernel/qobject.cpp:3272
#21 0x00007f0e2090ef5e in QAbstractSlider::valueChanged (this=<value optimized out>, _t1=662) at .moc/release-shared/moc_qabstractslider.cpp:182
#22 0x00007f0e2071d7f0 in QScrollAreaPrivate::updateScrollBars (this=0x9bf0b0) at widgets/qscrollarea.cpp:217
#23 0x00007f0e202f553e in QWidget::event (this=0x902db0, event=0x7fffeeb6ae20) at kernel/qwidget.cpp:8354
#24 0x00007f0e206998f6 in QFrame::event (this=0x902db0, e=0x7fffeeb6ae20) at widgets/qframe.cpp:557
#25 0x00007f0e1f8dcdc7 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x91ef90, event=0x7fffeeb6ae20) at kernel/qcoreapplication.cpp:847
#26 0x00007f0e202a3d11 in QApplicationPrivate::notify_helper (this=0x690ae0, receiver=0x91ef90, e=0x7fffeeb6ae20) at kernel/qapplication.cpp:4441
#27 0x00007f0e202ac24a in QApplication::notify (this=<value optimized out>, receiver=0x91ef90, e=0x7fffeeb6ae20) at kernel/qapplication.cpp:4324
#28 0x00007f0e223dc3b6 in KApplication::notify (this=0x7fffeeb6f550, receiver=0x91ef90, event=0x7fffeeb6ae20) at /usr/src/debug/kdelibs-4.6.40svn1212100/kdeui/kernel/kapplication.cpp:311
#29 0x00007f0e1f8dcc3c in QCoreApplication::notifyInternal (this=0x7fffeeb6f550, receiver=0x91ef90, event=0x7fffeeb6ae20) at kernel/qcoreapplication.cpp:732
#30 0x00007f0e2033eefb in sendEvent (this=0x9cc4a0, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at ../../src/corelib/kernel/qcoreapplication.h:215
#31 QWidgetPrivate::setGeometry_sys (this=0x9cc4a0, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2617
#32 0x00007f0e202f150d in QWidget::setGeometry (this=0x91ef90, r=...) at kernel/qwidget.cpp:6802
#33 0x00007f0e20719abc in QAbstractScrollAreaPrivate::layoutChildren (this=0x9bf0b0) at widgets/qabstractscrollarea.cpp:480
#34 0x00007f0e2071ab8d in QAbstractScrollArea::event (this=0x902db0, e=<value optimized out>) at widgets/qabstractscrollarea.cpp:924
#35 0x00007f0e202a3d44 in QApplicationPrivate::notify_helper (this=0x690ae0, receiver=0x902db0, e=0x7fffeeb6b7e0) at kernel/qapplication.cpp:4445
#36 0x00007f0e202ac24a in QApplication::notify (this=<value optimized out>, receiver=0x902db0, e=0x7fffeeb6b7e0) at kernel/qapplication.cpp:4324
#37 0x00007f0e223dc3b6 in KApplication::notify (this=0x7fffeeb6f550, receiver=0x902db0, event=0x7fffeeb6b7e0) at /usr/src/debug/kdelibs-4.6.40svn1212100/kdeui/kernel/kapplication.cpp:311
#38 0x00007f0e1f8dcc3c in QCoreApplication::notifyInternal (this=0x7fffeeb6f550, receiver=0x902db0, event=0x7fffeeb6b7e0) at kernel/qcoreapplication.cpp:732
#39 0x00007f0e2033eefb in sendEvent (this=0x9bf0b0, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at ../../src/corelib/kernel/qcoreapplication.h:215
#40 QWidgetPrivate::setGeometry_sys (this=0x9bf0b0, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2617
#41 0x00007f0e202f150d in QWidget::setGeometry (this=0x902db0, r=...) at kernel/qwidget.cpp:6802
#42 0x00007f0e202d1922 in setGeometry (this=0xa27850, rect=<value optimized out>) at ../../src/gui/kernel/qwidget.h:1004
#43 QWidgetItem::setGeometry (this=0xa27850, rect=<value optimized out>) at kernel/qlayoutitem.cpp:490
#44 0x00007f0e202b2b33 in QBoxLayout::setGeometry (this=0x9191a0, r=...) at kernel/qboxlayout.cpp:861
#45 0x00007f0e202cdf73 in QLayoutPrivate::doResize (this=0x914aa0, r=...) at kernel/qlayout.cpp:681
#46 0x00007f0e202a3d03 in QApplicationPrivate::notify_helper (this=0x690ae0, receiver=0x916370, e=0x7fffeeb6c190) at kernel/qapplication.cpp:4436
#47 0x00007f0e202ac24a in QApplication::notify (this=<value optimized out>, receiver=0x916370, e=0x7fffeeb6c190) at kernel/qapplication.cpp:4324
#48 0x00007f0e223dc3b6 in KApplication::notify (this=0x7fffeeb6f550, receiver=0x916370, event=0x7fffeeb6c190) at /usr/src/debug/kdelibs-4.6.40svn1212100/kdeui/kernel/kapplication.cpp:311
#49 0x00007f0e1f8dcc3c in QCoreApplication::notifyInternal (this=0x7fffeeb6f550, receiver=0x916370, event=0x7fffeeb6c190) at kernel/qcoreapplication.cpp:732
#50 0x00007f0e2033eefb in sendEvent (this=0x91d590, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at ../../src/corelib/kernel/qcoreapplication.h:215
#51 QWidgetPrivate::setGeometry_sys (this=0x91d590, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2617
#52 0x00007f0e202f150d in QWidget::setGeometry (this=0x916370, r=...) at kernel/qwidget.cpp:6802
#53 0x00007f0e206efbc7 in QSplitterPrivate::setGeo (this=0x935170, sls=0x901970, p=176, s=302, allowCollapse=false) at widgets/qsplitter.cpp:750
#54 0x00007f0e206f236f in QSplitterPrivate::doResize (this=0x935170) at widgets/qsplitter.cpp:549
#55 0x00007f0e202f553e in QWidget::event (this=0x8a2970, event=0x7fffeeb6cce0) at kernel/qwidget.cpp:8354
#56 0x00007f0e202a3d44 in QApplicationPrivate::notify_helper (this=0x690ae0, receiver=0x8a2970, e=0x7fffeeb6cce0) at kernel/qapplication.cpp:4445
#57 0x00007f0e202ac24a in QApplication::notify (this=<value optimized out>, receiver=0x8a2970, e=0x7fffeeb6cce0) at kernel/qapplication.cpp:4324
#58 0x00007f0e223dc3b6 in KApplication::notify (this=0x7fffeeb6f550, receiver=0x8a2970, event=0x7fffeeb6cce0) at /usr/src/debug/kdelibs-4.6.40svn1212100/kdeui/kernel/kapplication.cpp:311
#59 0x00007f0e1f8dcc3c in QCoreApplication::notifyInternal (this=0x7fffeeb6f550, receiver=0x8a2970, event=0x7fffeeb6cce0) at kernel/qcoreapplication.cpp:732
#60 0x00007f0e2033eefb in sendEvent (this=0x935170, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at ../../src/corelib/kernel/qcoreapplication.h:215
#61 QWidgetPrivate::setGeometry_sys (this=0x935170, x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, h=<value optimized out>, isMove=true) at kernel/qwidget_x11.cpp:2617
#62 0x00007f0e202f150d in QWidget::setGeometry (this=0x8a2970, r=...) at kernel/qwidget.cpp:6802
#63 0x00007f0e202d1922 in setGeometry (this=0x938100, rect=<value optimized out>) at ../../src/gui/kernel/qwidget.h:1004
#64 QWidgetItem::setGeometry (this=0x938100, rect=<value optimized out>) at kernel/qlayoutitem.cpp:490
#65 0x00007f0e202c87bc in setGeometry (this=0x90a620, r=..., hSpacing=-290009104, vSpacing=2) at kernel/qgridlayout.cpp:85
#66 QGridLayoutPrivate::distribute (this=0x90a620, r=..., hSpacing=-290009104, vSpacing=2) at kernel/qgridlayout.cpp:959
#67 0x00007f0e202c88a6 in QGridLayout::setGeometry (this=0x9195c0, rect=...) at kernel/qgridlayout.cpp:1455
#68 0x00007f0e202cdf73 in QLayoutPrivate::doResize (this=0x90a620, r=...) at kernel/qlayout.cpp:681
#69 0x00007f0e202cf681 in QLayout::activate (this=0x9195c0) at kernel/qlayout.cpp:1259
#70 0x00007f0e202f9243 in QWidget::setVisible (this=0xb33500, visible=<value optimized out>) at kernel/qwidget.cpp:7574
#71 0x00007f0e191e0a81 in QWidget::show (this=0xb33500) at /usr/include/QtGui/qwidget.h:487
#72 0x00007f0e191f7341 in EventViews::AgendaView::createDayLabels (this=0x8a6cb0, force=false) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agendaview.cpp:999
#73 0x00007f0e191fc00b in EventViews::AgendaView::fillAgenda (this=0x8a6cb0) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agendaview.cpp:1464
#74 0x00007f0e191fb19c in EventViews::AgendaView::showDates (this=0x8a6cb0, start=..., end=...) at /kde/src/KDE/kdepim/calendarviews/eventviews/agenda/agendaview.cpp:1390
#75 0x00007f0e191c81a3 in EventViews::EventView::setDateRange (this=0x8a6cb0, start=..., end=...) at /kde/src/KDE/kdepim/calendarviews/eventviews/eventview.cpp:287
#76 0x00007f0e21210594 in KOAgendaView::setDateRange (this=0x90bc10, start=..., end=...) at /kde/src/KDE/kdepim/korganizer/views/agendaview/koagendaview.cpp:347
#77 0x00007f0e21265c5c in KOViewManager::updateView (this=0x71fef0, start=..., end=...) at /kde/src/KDE/kdepim/korganizer/koviewmanager.cpp:283
#78 0x00007f0e2124e79e in CalendarView::updateView (this=0x741890, start=..., end=..., updateTodos=false) at /kde/src/KDE/kdepim/korganizer/calendarview.cpp:850
#79 0x00007f0e2125771c in CalendarView::showDates (this=0x741890, selectedDates=..., preferredMonth=...) at /kde/src/KDE/kdepim/korganizer/calendarview.cpp:2178
#80 0x00007f0e2125ec01 in CalendarView::qt_metacall (this=0x741890, _c=QMetaObject::InvokeMetaMethod, _id=178, _a=0x7fffeeb6db80) at /kde/build/KDE/kdepim/korganizer/calendarview.moc:601
#81 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x73c1d0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6db80) at kernel/qobject.cpp:3272
#82 0x00007f0e212086fb in DateNavigator::datesSelected (this=0x73c1d0, _t1=..., _t2=...) at /kde/build/KDE/kdepim/korganizer/datenavigator.moc:168
#83 0x00007f0e21207ff2 in DateNavigator::emitSelected (this=0x73c1d0, preferredMonth=...) at /kde/src/KDE/kdepim/korganizer/datenavigator.cpp:316
#84 0x00007f0e2120717e in DateNavigator::selectDates (this=0x73c1d0, dateList=...) at /kde/src/KDE/kdepim/korganizer/datenavigator.cpp:61
#85 0x00007f0e21208168 in DateNavigator::qt_metacall (this=0x73c1d0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffeeb6ddf0) at /kde/build/KDE/kdepim/korganizer/datenavigator.moc:128
#86 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x71eb40, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6ddf0) at kernel/qobject.cpp:3272
#87 0x00007f0e2120d9f9 in DateNavigatorContainer::datesSelected (this=0x71eb40, _t1=...) at /kde/build/KDE/kdepim/korganizer/datenavigatorcontainer.moc:150
#88 0x00007f0e2120d6c8 in DateNavigatorContainer::qt_metacall (this=0x71eb40, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffeeb6df20) at /kde/build/KDE/kdepim/korganizer/datenavigatorcontainer.moc:115
#89 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x722500, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6df20) at kernel/qobject.cpp:3272
#90 0x00007f0e2120b031 in KDateNavigator::datesSelected (this=0x722500, _t1=...) at /kde/build/KDE/kdepim/korganizer/kdatenavigator.moc:140
#91 0x00007f0e2120adb6 in KDateNavigator::qt_metacall (this=0x722500, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffeeb6e040) at /kde/build/KDE/kdepim/korganizer/kdatenavigator.moc:107
#92 0x00007f0e1f8f1e3f in QMetaObject::activate (sender=0x7efd10, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffeeb6e040) at kernel/qobject.cpp:3272
#93 0x00007f0e2127ce59 in KODayMatrix::selected (this=0x7efd10, _t1=...) at /kde/build/KDE/kdepim/korganizer/kodaymatrix.moc:110
#94 0x00007f0e2127b009 in KODayMatrix::mouseReleaseEvent (this=0x7efd10, e=0x7fffeeb6e9f0) at /kde/src/KDE/kdepim/korganizer/kodaymatrix.cpp:555
#95 0x00007f0e202f5558 in QWidget::event (this=0x7efd10, event=0x7fffeeb6e9f0) at kernel/qwidget.cpp:8200
#96 0x00007f0e2127a9c4 in KODayMatrix::event (this=0x7efd10, event=0x7fffeeb6e9f0) at /kde/src/KDE/kdepim/korganizer/kodaymatrix.cpp:485
#97 0x00007f0e202a3d44 in QApplicationPrivate::notify_helper (this=0x690ae0, receiver=0x7efd10, e=0x7fffeeb6e9f0) at kernel/qapplication.cpp:4445
#98 0x00007f0e202acacc in QApplication::notify (this=<value optimized out>, receiver=0x7efd10, e=0x7fffeeb6e9f0) at kernel/qapplication.cpp:4006
#99 0x00007f0e223dc3b6 in KApplication::notify (this=0x7fffeeb6f550, receiver=0x7efd10, event=0x7fffeeb6e9f0) at /usr/src/debug/kdelibs-4.6.40svn1212100/kdeui/kernel/kapplication.cpp:311
#100 0x00007f0e1f8dcc3c in QCoreApplication::notifyInternal (this=0x7fffeeb6f550, receiver=0x7efd10, event=0x7fffeeb6e9f0) at kernel/qcoreapplication.cpp:732
#101 0x00007f0e202a4d45 in sendEvent (receiver=0x7efd10, event=0x7fffeeb6e9f0, alienWidget=0x7efd10, nativeWidget=0x73e2c0, buttonDown=0x7f0e20d73178, lastMouseReceiver=..., spontaneous=true) at ../../src/corelib/kernel/qcoreapplication.h:215
#102 QApplicationPrivate::sendMouseEvent (receiver=0x7efd10, event=0x7fffeeb6e9f0, alienWidget=0x7efd10, nativeWidget=0x73e2c0, buttonDown=0x7f0e20d73178, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3105
#103 0x00007f0e20322e28 in QETWidget::translateMouseEvent (this=0x73e2c0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4438
#104 0x00007f0e203214e9 in QApplication::x11ProcessEvent (this=0x7fffeeb6f550, event=0x7fffeeb6f360) at kernel/qapplication_x11.cpp:3564
#105 0x00007f0e20349af4 in QEventDispatcherX11::processEvents (this=0x62f2a0, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#106 0x00007f0e1f8dc092 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#107 0x00007f0e1f8dc2a5 in QEventLoop::exec (this=0x7fffeeb6f4f0, flags=...) at kernel/qeventloop.cpp:201
#108 0x00007f0e1f8e06eb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#109 0x000000000040895c in main (argc=1, argv=0x7fffeeb6f768) at /kde/src/KDE/kdepim/korganizer/main.cpp:67
Comment 1 Christophe Marin 2011-01-06 15:33:01 UTC
screencast is there: http://dl.free.fr/ovmeqM0EX
Comment 2 Sergio Martins 2011-01-06 15:46:16 UTC
commit 2416d7fb1d5856bd7571075698f841f81ef4fd6d
branch master
Author: Sergio Martins <iamsergio@gmail.com>
Date:   Thu Jan 6 14:42:30 2011 +0000

    Add an assert.
    
    Qt already asserts, but this makes the backtrace nicer to read.
    CCBUG: 262310

diff --git a/calendarviews/eventviews/agenda/agendaview.cpp b/calendarviews/eventviews/agenda/agendaview.cpp
index 29135b8..ceb3544 100644
--- a/calendarviews/eventviews/agenda/agendaview.cpp
+++ b/calendarviews/eventviews/agenda/agendaview.cpp
@@ -160,6 +160,7 @@ void EventIndicator::changeColumns( int columns )
 
 void EventIndicator::enableColumn( int column, bool enable )
 {
+  Q_ASSERT( column < d->mEnabled.count() );
   d->mEnabled[ column ] = enable;
 }
Comment 3 Sergio Martins 2011-01-06 16:19:32 UTC
commit 1c26ffc6cc90a330fad0b818490130c0ebc039d7
branch master
Author: Sergio Martins <iamsergio@gmail.com>
Date:   Thu Jan 6 15:13:37 2011 +0000

    Fix crash. Setting mEnabled and mMinY must be an atomic operation.
    
    Nothing should be executed in between.
    
    BUG: 262310

diff --git a/calendarviews/eventviews/agenda/agendaview.cpp b/calendarviews/eventviews/agenda/agendaview.cpp
index ceb3544..e758019 100644
--- a/calendarviews/eventviews/agenda/agendaview.cpp
+++ b/calendarviews/eventviews/agenda/agendaview.cpp
@@ -257,6 +257,8 @@ class AgendaView::Private : public CalendarSupport::Calendar::CalendarObserver
         QDate::currentDate() is returned */
     static QList<QDate> generateDateList( const QDate &start, const QDate &end );
 
+    void changeColumns( int numColumns );
+
     void insertIncidence( const Akonadi::Item &incidence,
                           const QDate &curDate, bool createSelected );
 
@@ -267,6 +269,18 @@ class AgendaView::Private : public CalendarSupport::Calendar::CalendarObserver
     void calendarIncidenceDeleted( const Akonadi::Item &incidence );
 };
 
+void AgendaView::Private::changeColumns( int numColumns )
+{
+  // mMinY, mMaxY and mEnabled must all have the same size.
+  // Make sure you preserve this order because mEventIndicatorTop->changeColumns()
+  // can trigger a lot of stuff, and code will be executed when mMinY wasn't resized yet.
+  mMinY.resize( numColumns );
+  mMaxY.resize( numColumns );
+  mEventIndicatorTop->changeColumns( numColumns );
+  mEventIndicatorBottom->changeColumns( numColumns );
+}
+
+
 /** static */
 QList<QDate> AgendaView::Private::generateDateList( const QDate &start,
                                                     const QDate &end )
@@ -1459,15 +1473,11 @@ void AgendaView::fillAgenda()
   if ( changes().testFlag( DatesChanged ) ) {
     d->mAllDayAgenda->changeColumns( d->mSelectedDates.count() );
     d->mAgenda->changeColumns( d->mSelectedDates.count() );
-    d->mEventIndicatorTop->changeColumns( d->mSelectedDates.count() );
-    d->mEventIndicatorBottom->changeColumns( d->mSelectedDates.count() );
+    d->changeColumns( d->mSelectedDates.count() );
 
     createDayLabels( false );
     setHolidayMasks();
 
-    d->mMinY.resize( d->mSelectedDates.count() );
-    d->mMaxY.resize( d->mSelectedDates.count() );
-
     d->mAgenda->setDateList( d->mSelectedDates );
   }