-rw-r--r-- | core/pim/datebook/datebook.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp index 7dd93a6..e10842a 100644 --- a/core/pim/datebook/datebook.cpp +++ b/core/pim/datebook/datebook.cpp @@ -53,16 +53,17 @@ #include <qlabel.h> #include <qlayout.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qpushbutton.h> #include <qregexp.h> #include <qtextcodec.h> #include <qtextstream.h> +#include <qtimer.h> #include <qtl.h> #include <qwidgetstack.h> #include <qwindowsystem_qws.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> @@ -81,16 +82,17 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f ) presetTime( -1 ), startTime( 8 ), // an acceptable default rowStyle( 0 ), bJumpToCurTime(FALSE), syncing(FALSE), inSearch(FALSE), alarmCounter(0) { + bool needEvilHack= false; // if we need an Evil Hack QTime t; t.start(); db = new DateBookDBHack; qDebug("loading db t=%d", t.elapsed() ); loadSettings(); setCaption( tr("Calendar") ); setIcon( Resource::loadPixmap( "datebook_icon" ) ); @@ -176,17 +178,17 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f ) config.setGroup("Main"); int current=config.readNumEntry("defaultview", DAY); QActionGroup *ag = new QActionGroup(this); a = new QAction( tr( "Day" ), QString::null, 0, 0, 0, true ); if (current==DAY) a->setOn(true), viewDay(); ag->insert(a); a = new QAction( tr( "Week" ), QString::null, 0, 0, 0, true ); - if (current==WEEK) a->setOn(true), viewWeek(); + if (current==WEEK) a->setOn(true), /*viewWeek(),*/ needEvilHack = true; ag->insert(a); a = new QAction( tr( "WeekLst" ), QString::null, 0, 0, 0, true ); if (current==WEEKLST) a->setOn(true), viewWeekLst(); ag->insert(a); a = new QAction( tr( "Month" ), QString::null, 0, 0, 0, true ); if (current==MONTH) a->setOn(true), viewMonth(); ag->insert(a); @@ -215,16 +217,33 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f ) connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) ); qDebug("olle\n"); #endif #endif qDebug("done t=%d", t.elapsed() ); + /* + * Here is a problem description: + * When Weekview is the default view + * a DateBookWeekView get's created + * redraw() get's called. So what? + * Remember that we're still in the c'tor + * and no final layout has happened? Ok + * now all Events get arranged. Their x + * position get's determined by a QHeader + * position. But the QHeader isn't layouted or + * at the right position. redraw() is a slot + * so we'll call it then via a singleShot + * from view() + */ + if( needEvilHack ){ + QTimer::singleShot( 500, this, SLOT(viewWeek()) ); + } } void DateBook::receive( const QCString &msg, const QByteArray &data ) { QDataStream stream( data, IO_ReadOnly ); if ( msg == "timeChange(QString)" ) { // update active view! if ( dayAction->isOn() ) |