summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp23
1 files changed, 21 insertions, 2 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
@@ -55,12 +55,13 @@
#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>
@@ -83,12 +84,13 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f )
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") );
@@ -178,13 +180,13 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f )
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();
@@ -216,13 +218,30 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f )
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)" ) {