author | alwin <alwin> | 2005-03-19 18:06:44 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-19 18:06:44 (UTC) |
commit | ff7fd64d755b2cc63f9944b1a17a6a2e186da0b6 (patch) (side-by-side diff) | |
tree | 11c335300ae6e9dd55b62e5558e56a85222d3fb6 /core/pim/datebook/modules/weeklst/datebookweeklst.cpp | |
parent | 93d0e2c50c24c518323d7926df37827d3b562a28 (diff) | |
download | opie-ff7fd64d755b2cc63f9944b1a17a6a2e186da0b6.zip opie-ff7fd64d755b2cc63f9944b1a17a6a2e186da0b6.tar.gz opie-ff7fd64d755b2cc63f9944b1a17a6a2e186da0b6.tar.bz2 |
hopefull speedup the weeklistview.
deleting the main widget 4 times when date changed isn't that usefull.
After 1.2 OPIE this view should completly rewritten or removed.
Diffstat (limited to 'core/pim/datebook/modules/weeklst/datebookweeklst.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/modules/weeklst/datebookweeklst.cpp | 65 |
1 files changed, 43 insertions, 22 deletions
diff --git a/core/pim/datebook/modules/weeklst/datebookweeklst.cpp b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp index 47bc597..6556373 100644 --- a/core/pim/datebook/modules/weeklst/datebookweeklst.cpp +++ b/core/pim/datebook/modules/weeklst/datebookweeklst.cpp @@ -28,4 +28,5 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB, { setFocusPolicy(StrongFocus); + dateset = false; layout = new QVBoxLayout( this ); layout->setMargin(0); @@ -40,5 +41,5 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB, layout->addWidget(scroll); - view=NULL; + m_CurrentView=NULL; Config config("DateBook"); config.setGroup("Main"); @@ -46,4 +47,5 @@ DateBookWeekLst::DateBookWeekLst( bool ap, bool onM, DateBookDBHoliday *newDB, header->dbl->setOn(dbl); } + DateBookWeekLst::~DateBookWeekLst(){ Config config("DateBook"); @@ -59,6 +61,13 @@ void DateBookWeekLst::setDate(const QDate &d) { void DateBookWeekLst::setDbl(bool on) { dbl=on; - redraw(); + bool displayed = false; + if (m_CurrentView) { + displayed = m_CurrentView->toggleDoubleView(on); + } + if (!displayed||dbl) { + getEvents(); + } } + void DateBookWeekLst::redraw() {getEvents();} @@ -83,36 +92,48 @@ QDate DateBookWeekLst::weekDate() const void DateBookWeekLst::getEvents() { + if (!dateset) return; QDate start = weekDate(); //date(); QDate stop = start.addDays(6); + QDate start2; + + QValueList<EffectiveEvent> el = db->getEffectiveEvents(start, stop); + QValueList<EffectiveEvent> el2; - setUpdatesEnabled(false); - if (view) delete view; if (dbl) { - QDate start2=start.addDays(7); - stop=start2.addDays(6); - QValueList<EffectiveEvent> el2 = db->getEffectiveEvents(start2, stop); - view=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); + start2 = start.addDays(7); + stop = start2.addDays(6); + el2 = db->getEffectiveEvents(start2, stop); + } + if (!m_CurrentView) { + if (dbl) { + m_CurrentView=new DateBookWeekLstDblView(el,el2,start,bStartOnMonday,scroll); + } else { + m_CurrentView=new DateBookWeekLstDblView(el,start,bStartOnMonday,scroll); + } + m_CurrentView->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed)); + connect (m_CurrentView, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); + connect (m_CurrentView, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); + connect (m_CurrentView, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); + connect (m_CurrentView, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); + connect (m_CurrentView, SIGNAL(redraw()), this, SLOT(redraw())); + connect (m_CurrentView, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); + connect (m_CurrentView, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), + this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); + scroll->addChild(m_CurrentView); } else { - view=new DateBookWeekLstView(el,start,bStartOnMonday,scroll); + if (dbl) { + m_CurrentView->setEvents(el,el2,start,bStartOnMonday); + } else { + m_CurrentView->setEvents(el,start,bStartOnMonday); + } } - - connect (view, SIGNAL(editEvent(const Event&)), this, SIGNAL(editEvent(const Event&))); - connect (view, SIGNAL(duplicateEvent(const Event &)), this, SIGNAL(duplicateEvent(const Event &))); - connect (view, SIGNAL(removeEvent(const Event &)), this, SIGNAL(removeEvent(const Event &))); - connect (view, SIGNAL(beamEvent(const Event &)), this, SIGNAL(beamEvent(const Event &))); - connect (view, SIGNAL(redraw()), this, SLOT(redraw())); - connect (view, SIGNAL(showDate(int,int,int)), this, SIGNAL(showDate(int,int,int))); - connect (view, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&)), - this, SIGNAL(addEvent(const QDateTime&,const QDateTime&,const QString&,const QString&))); - - scroll->addChild(view); - view->show(); scroll->updateScrollBars(); - setUpdatesEnabled(true); } void DateBookWeekLst::dateChanged(QDate &newdate) { + dateset = true; bdate=newdate; + odebug << "Date changed " << oendl; getEvents(); } |