00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "datebookweekheaderimpl.h"
00032 #include "datebookweek.h"
00033
00034 #include <opie2/odebug.h>
00035 #include <opie2/oresource.h>
00036
00037 #include <qpe/datebookmonth.h>
00038
00039 #include <qtoolbutton.h>
00040
00041
00042
00043
00044
00045 DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, const char* name, WFlags fl )
00046 : DateBookWeekHeaderBase( parent, name, fl ),
00047 bStartOnMonday( startOnMonday )
00048 {
00049 setBackgroundMode( PaletteButton );
00050 labelDate->setBackgroundMode( PaletteButton );
00051 backmonth->setPixmap( Opie::Core::OResource::loadPixmap( "fastback", Opie::Core::OResource::SmallIcon ) );
00052 backweek->setPixmap( Opie::Core::OResource::loadPixmap( "back", Opie::Core::OResource::SmallIcon ) );
00053 forwardweek->setPixmap( Opie::Core::OResource::loadPixmap( "forward", Opie::Core::OResource::SmallIcon ) );
00054 forwardmonth->setPixmap( Opie::Core::OResource::loadPixmap( "fastforward", Opie::Core::OResource::SmallIcon ) );
00055 }
00056
00057
00058
00059
00060 DateBookWeekHeader::~DateBookWeekHeader()
00061 {
00062
00063 }
00064
00065 void DateBookWeekHeader::pickDate()
00066 {
00067 static QPopupMenu *m1 = 0;
00068 static DateBookMonth *picker = 0;
00069 if ( !m1 ) {
00070 m1 = new QPopupMenu( this );
00071 picker = new DateBookMonth( m1, 0, TRUE );
00072 m1->insertItem( picker );
00073 connect( picker, SIGNAL( dateClicked(int,int,int) ), this, SLOT( setDate(int,int,int) ) );
00074
00075 }
00076 picker->setDate( date.year(), date.month(), date.day() );
00077 m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height())));
00078 picker->setFocus();
00079 }
00080
00081 void DateBookWeekHeader::nextMonth()
00082 {
00083 owarn << "nextMonth()" << oendl;
00084 setDate(date.addDays(28));
00085 }
00086 void DateBookWeekHeader::prevMonth()
00087 {
00088 owarn << "prevMonth()" << oendl;
00089 setDate(date.addDays(-28));
00090 }
00091 void DateBookWeekHeader::nextWeek()
00092 {
00093 owarn << "nextWeek()" << oendl;
00094 setDate(date.addDays(7));
00095 }
00096 void DateBookWeekHeader::prevWeek()
00097 {
00098 owarn << "prevWeek()" << oendl;
00099 setDate(date.addDays(-7));
00100 }
00101
00102 void DateBookWeekHeader::setDate( int y, int m, int d )
00103 {
00104 setDate(QDate(y,m,d));
00105 }
00106
00107 void DateBookWeekHeader::setDate(const QDate &d) {
00108 int year,week,dayofweek;
00109 date=d;
00110 dayofweek=d.dayOfWeek();
00111 if(bStartOnMonday)
00112 dayofweek--;
00113 else if( dayofweek == 7 )
00114
00115 dayofweek = 0;
00116
00117 date=date.addDays(-dayofweek);
00118 calcWeek(date,week,year,bStartOnMonday);
00119 QDate start=date;
00120 QDate stop=start.addDays(6);
00121 labelDate->setText( QString::number(start.day()) + "." +
00122 Calendar::nameOfMonth( start.month()) + "-" +
00123 QString::number(stop.day()) + "." +
00124 Calendar::nameOfMonth( stop.month()) +" ("+
00125 tr("w")+":"+QString::number( week ) +")");
00126 date = d;
00127 emit dateChanged(date);
00128 }
00129
00130 void DateBookWeekHeader::setStartOfWeek( bool onMonday )
00131 {
00132 bStartOnMonday = onMonday;
00133 setDate( date );
00134 }