From c98faafefdf2e9b9e16dcf2b1d57525f38282296 Mon Sep 17 00:00:00 2001 From: umopapisdn Date: Tue, 25 Mar 2003 23:44:32 +0000 Subject: Revamped the userinterface of the header for weekview to look more like the other views. --- (limited to 'core') diff --git a/core/pim/datebook/datebookweekheader.ui b/core/pim/datebook/datebookweekheader.ui index f7b20f8..591b625 100644 --- a/core/pim/datebook/datebookweekheader.ui +++ b/core/pim/datebook/datebookweekheader.ui @@ -30,8 +30,8 @@ 0 0 - 281 - 30 + 249 + 26 @@ -47,9 +47,79 @@ spacing - 6 + 0 + QToolButton + + name + backmonth + + + text + + + + pixmap + + + + toggleButton + false + + + autoRepeat + true + + + autoRaise + true + + + toggleButton + false + + + toolTip + + + + + QToolButton + + name + backweek + + + text + + + + pixmap + + + + toggleButton + false + + + autoRepeat + true + + + autoRaise + true + + + toggleButton + false + + + toolTip + + + + QSpinBox name @@ -109,8 +179,29 @@ 1 + + + name + Spacer1_1 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + - QLabel + QToolButton name labelDate @@ -132,32 +223,113 @@ text 00. Jan-00. Jan + + + + name + Spacer1_2 + + + orientation + Horizontal + - alignment - AlignCenter + sizeType + Expanding - hAlign + sizeHint + + 20 + 20 + + + + + QToolButton + + name + forwardweek + + + text + + + + pixmap + + + + autoRepeat + true + + + autoRaise + true + + + + QToolButton + + name + forwardmonth + + + text + + + + pixmap + + + + autoRepeat + true + + + autoRaise + true - spinYear - valueChanged(int) + backmonth + clicked() + DateBookWeekHeaderBase + prevMonth() + + + backweek + clicked() + DateBookWeekHeaderBase + prevWeek() + + + forwardweek + clicked() + DateBookWeekHeaderBase + nextWeek() + + + forwardmonth + clicked() DateBookWeekHeaderBase - yearChanged( int ) + nextMonth() - spinWeek - valueChanged(int) + labelDate + clicked() DateBookWeekHeaderBase - weekChanged( int ) + pickDate() yearChanged( int ) nextWeek() prevWeek() weekChanged( int ) + nextMonth() + prevMonth() + pickDate() diff --git a/core/pim/datebook/datebookweekheaderimpl.cpp b/core/pim/datebook/datebookweekheaderimpl.cpp index e7c7208..5f555d5 100644 --- a/core/pim/datebook/datebookweekheaderimpl.cpp +++ b/core/pim/datebook/datebookweekheaderimpl.cpp @@ -18,9 +18,15 @@ ** **********************************************************************/ #include "datebookweekheaderimpl.h" +#include "datebookweekheader.h" +#include "datebookweek.h" #include #include #include +#include +#include + +#include /* * Constructs a DateBookWeekHeader which is a child of 'parent', with the @@ -33,6 +39,13 @@ DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, { setBackgroundMode( PaletteButton ); labelDate->setBackgroundMode( PaletteButton ); + + backmonth->setPixmap( Resource::loadPixmap("fastback") ); + backweek->setPixmap( Resource::loadPixmap("back") ); + forwardweek->setPixmap( Resource::loadPixmap("forward") ); + forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); + spinYear->hide(); + spinWeek->hide(); } /* @@ -43,6 +56,24 @@ DateBookWeekHeader::~DateBookWeekHeader() // no need to delete child widgets, Qt does it all for us } +void DateBookWeekHeader::pickDate() +{ + static QPopupMenu *m1 = 0; + static DateBookMonth *picker = 0; + QDate currDate = dateFromWeek( week, year, bStartOnMonday ); + if ( !m1 ) { + m1 = new QPopupMenu( this ); + picker = new DateBookMonth( m1, 0, TRUE ); + m1->insertItem( picker ); + connect( picker, SIGNAL( dateClicked( int, int, int ) ), + this, SLOT( setDate( int, int, int ) ) ); +// connect( m1, SIGNAL( aboutToHide() ), +// this, SLOT( gotHide() ) ); + } + picker->setDate( currDate.year(), currDate.month(), currDate.day() ); + m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); + picker->setFocus(); +} /* * public slot */ @@ -50,13 +81,27 @@ void DateBookWeekHeader::yearChanged( int y ) { setDate( y, week ); } +void DateBookWeekHeader::nextMonth() +{ + QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week + calcWeek( mydate.addDays(28), week, year, bStartOnMonday ); // Add 4 weeks. + setDate( year, week ); // update view +} +void DateBookWeekHeader::prevMonth() +{ + QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week + calcWeek( mydate.addDays(-28), week, year, bStartOnMonday ); // Subtract 4 weeks + setDate( year, week ); // update view +} /* * public slot */ void DateBookWeekHeader::nextWeek() { - if ( week < 52 ) - week++; + QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week + calcWeek( mydate.addDays(7), week, year, bStartOnMonday); // Add 1 week +// if ( week < 52 ) +// week++; setDate( year, week ); } /* @@ -64,8 +109,10 @@ void DateBookWeekHeader::nextWeek() */ void DateBookWeekHeader::prevWeek() { - if ( week > 1 ) - week--; + QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week + calcWeek( mydate.addDays(-7), week, year, bStartOnMonday); // Add 1 week +// if ( week > 1 ) +// week--; setDate( year, week ); } /* @@ -76,6 +123,12 @@ void DateBookWeekHeader::weekChanged( int w ) setDate( year, w ); } +void DateBookWeekHeader::setDate( int y, int m, int d ) +{ + calcWeek( QDate(y,m,d), week, year, bStartOnMonday ); + setDate( year, week ); +} + void DateBookWeekHeader::setDate( int y, int w ) { year = y; @@ -89,7 +142,8 @@ void DateBookWeekHeader::setDate( int y, int w ) + "-"; d = d.addDays( 6 ); s += QString::number( d.day() ) + ". " + d.monthName( d.month() ); - labelDate->setText( s ); + s += " ("+tr("week")+":"+QString::number( w )+")"; + labelDate->setText( s ); emit dateChanged( y, w ); } diff --git a/core/pim/datebook/datebookweekheaderimpl.h b/core/pim/datebook/datebookweekheaderimpl.h index 2abef46..2e5a6ca 100644 --- a/core/pim/datebook/datebookweekheaderimpl.h +++ b/core/pim/datebook/datebookweekheaderimpl.h @@ -39,10 +39,14 @@ signals: void dateChanged( int y, int w ); public slots: - void yearChanged( int ); - void nextWeek(); - void prevWeek(); - void weekChanged( int ); + void pickDate(); + void yearChanged( int ); + void nextMonth(); + void prevMonth(); + void nextWeek(); + void prevWeek(); + void weekChanged( int ); + void setDate( int y, int m, int d); protected slots: void keyPressEvent(QKeyEvent *e) -- cgit v0.9.0.2