Diffstat (limited to 'core/pim/datebook/datebookday.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/datebookday.h | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/core/pim/datebook/datebookday.h b/core/pim/datebook/datebookday.h index 531fded..db0f3b6 100644 --- a/core/pim/datebook/datebookday.h +++ b/core/pim/datebook/datebookday.h @@ -48,16 +48,17 @@ public slots: signals: void sigColWidthChanged(); void sigCapturedKey( const QString &txt ); protected slots: void slotChangeClock( bool ); protected: virtual void paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected ); virtual void paintFocus( QPainter *p, const QRect &cr ); + virtual void resizeEvent( QResizeEvent *e ); void keyPressEvent( QKeyEvent *e ); void initHeader(); private: bool ampm; }; class DateBookDay; @@ -68,51 +69,98 @@ class DateBookDayWidget : public QWidget public: DateBookDayWidget( const EffectiveEvent &e, DateBookDay *db ); ~DateBookDayWidget(); const QRect &geometry() { return geom; } void setGeometry( const QRect &r ); const EffectiveEvent &event() const { return ev; } - + signals: void deleteMe( const Event &e ); void editMe( const Event &e ); void beamMe( const Event &e ); protected: void paintEvent( QPaintEvent *e ); void mousePressEvent( QMouseEvent *e ); private: const EffectiveEvent ev; DateBookDay *dateBook; QString text; QRect geom; }; +//Marker for current time in the dayview +class DateBookDayTimeMarker : public QWidget +{ + Q_OBJECT + +public: + DateBookDayTimeMarker( DateBookDay *db ); + ~DateBookDayTimeMarker(); + + const QRect &geometry() { return geom; } + void setGeometry( const QRect &r ); + void setTime( const QTime &t ); + +signals: + +protected: + void paintEvent( QPaintEvent *e ); + +private: + QRect geom; + QTime time; + DateBookDay *dateBook; +}; + +//reimplemented the compareItems function so that it sorts DayWidgets by geometry heights +class WidgetListClass : public QList<DateBookDayWidget> +{ + private: + + int compareItems( QCollection::Item s1, QCollection::Item s2 ) + { + //hmm, don't punish me for that ;) + if (reinterpret_cast<DateBookDayWidget*>(s1)->geometry().height() > reinterpret_cast<DateBookDayWidget*>(s2)->geometry().height()) + { + return -1; + } else + { + return 1; + } + } + + +}; + class DateBookDay : public QVBox { Q_OBJECT public: DateBookDay( bool ampm, bool startOnMonday, DateBookDB *newDb, QWidget *parent, const char *name ); void selectedDates( QDateTime &start, QDateTime &end ); QDate date() const; DateBookDayView *dayView() const { return view; } void setStartViewTime( int startHere ); int startViewTime() const; + void setSelectedWidget( DateBookDayWidget * ); + DateBookDayWidget * getSelectedWidget( void ); public slots: void setDate( int y, int m, int d ); void setDate( QDate ); void redraw(); void slotWeekChanged( bool bStartOnMonday ); + void updateView(); //updates TimeMarker and DayWidget-colors signals: void removeEvent( const Event& ); void editEvent( const Event& ); void beamEvent( const Event& ); void newEvent(); void sigNewEvent( const QString & ); @@ -126,13 +174,15 @@ private slots: private: void getEvents(); void relayoutPage( bool fromResize = false ); DateBookDayWidget *intersects( const DateBookDayWidget *item, const QRect &geom ); QDate currDate; DateBookDayView *view; DateBookDayHeader *header; DateBookDB *db; - QList<DateBookDayWidget> widgetList; + WidgetListClass widgetList; //reimplemented QList for sorting widgets by height int startTime; + DateBookDayWidget *selectedWidget; //actual selected widget (obviously) + DateBookDayTimeMarker *timeMarker; //marker for current time }; #endif |