summaryrefslogtreecommitdiff
path: root/core/pim/datebook/datebookday.h
Side-by-side diff
Diffstat (limited to 'core/pim/datebook/datebookday.h') (more/less context) (show whitespace changes)
-rw-r--r--core/pim/datebook/datebookday.h52
1 files changed, 51 insertions, 1 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
@@ -52,8 +52,9 @@ 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:
@@ -89,8 +90,52 @@ private:
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
@@ -101,14 +146,17 @@ public:
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& );
@@ -130,9 +178,11 @@ private:
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