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
@@ -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;
@@ -85,34 +86,81 @@ protected:
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