summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookweekheader.ui198
-rw-r--r--core/pim/datebook/datebookweekheaderimpl.cpp64
-rw-r--r--core/pim/datebook/datebookweekheaderimpl.h12
3 files changed, 252 insertions, 22 deletions
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
@@ -29,10 +29,10 @@
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>281</width>
- <height>30</height>
+ <width>249</width>
+ <height>26</height>
</rect>
</property>
<property>
<name>layoutMargin</name>
@@ -46,11 +46,81 @@
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>0</number>
</property>
<widget>
+ <class>QToolButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>backmonth</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ <property stdset="1">
+ <name>pixmap</name>
+ <pixmap></pixmap>
+ </property>
+ <property stdset="1">
+ <name>toggleButton</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRepeat</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRaise</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>toggleButton</name>
+ <bool>false</bool>
+ </property>
+ <property>
+ <name>toolTip</name>
+ <string></string>
+ </property>
+ </widget>
+ <widget>
+ <class>QToolButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>backweek</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ <property stdset="1">
+ <name>pixmap</name>
+ <pixmap></pixmap>
+ </property>
+ <property stdset="1">
+ <name>toggleButton</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRepeat</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRaise</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>toggleButton</name>
+ <bool>false</bool>
+ </property>
+ <property>
+ <name>toolTip</name>
+ <string></string>
+ </property>
+ </widget>
+ <widget>
<class>QSpinBox</class>
<property stdset="1">
<name>name</name>
<cstring>spinYear</cstring>
@@ -108,10 +178,31 @@
<name>value</name>
<number>1</number>
</property>
</widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer1_1</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Horizontal</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
<widget>
- <class>QLabel</class>
+ <class>QToolButton</class>
<property stdset="1">
<name>name</name>
<cstring>labelDate</cstring>
</property>
@@ -131,33 +222,114 @@
<property stdset="1">
<name>text</name>
<string>00. Jan-00. Jan</string>
</property>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer1_2</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Horizontal</enum>
+ </property>
<property stdset="1">
- <name>alignment</name>
- <set>AlignCenter</set>
+ <name>sizeType</name>
+ <enum>Expanding</enum>
</property>
<property>
- <name>hAlign</name>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget>
+ <class>QToolButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>forwardweek</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ <property stdset="1">
+ <name>pixmap</name>
+ <pixmap></pixmap>
+ </property>
+ <property stdset="1">
+ <name>autoRepeat</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRaise</name>
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget>
+ <class>QToolButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>forwardmonth</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ <property stdset="1">
+ <name>pixmap</name>
+ <pixmap></pixmap>
+ </property>
+ <property stdset="1">
+ <name>autoRepeat</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>autoRaise</name>
+ <bool>true</bool>
</property>
</widget>
</hbox>
</widget>
<connections>
<connection>
- <sender>spinYear</sender>
- <signal>valueChanged(int)</signal>
+ <sender>backmonth</sender>
+ <signal>clicked()</signal>
+ <receiver>DateBookWeekHeaderBase</receiver>
+ <slot>prevMonth()</slot>
+ </connection>
+ <connection>
+ <sender>backweek</sender>
+ <signal>clicked()</signal>
+ <receiver>DateBookWeekHeaderBase</receiver>
+ <slot>prevWeek()</slot>
+ </connection>
+ <connection>
+ <sender>forwardweek</sender>
+ <signal>clicked()</signal>
+ <receiver>DateBookWeekHeaderBase</receiver>
+ <slot>nextWeek()</slot>
+ </connection>
+ <connection>
+ <sender>forwardmonth</sender>
+ <signal>clicked()</signal>
<receiver>DateBookWeekHeaderBase</receiver>
- <slot>yearChanged( int )</slot>
+ <slot>nextMonth()</slot>
</connection>
<connection>
- <sender>spinWeek</sender>
- <signal>valueChanged(int)</signal>
+ <sender>labelDate</sender>
+ <signal>clicked()</signal>
<receiver>DateBookWeekHeaderBase</receiver>
- <slot>weekChanged( int )</slot>
+ <slot>pickDate()</slot>
</connection>
<slot access="public">yearChanged( int )</slot>
<slot access="public">nextWeek()</slot>
<slot access="public">prevWeek()</slot>
<slot access="public">weekChanged( int )</slot>
+ <slot access="public">nextMonth()</slot>
+ <slot access="public">prevMonth()</slot>
+ <slot access="public">pickDate()</slot>
</connections>
</UI>
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
@@ -17,11 +17,17 @@
** not clear to you.
**
**********************************************************************/
#include "datebookweekheaderimpl.h"
+#include "datebookweekheader.h"
+#include "datebookweek.h"
#include <qlabel.h>
#include <qspinbox.h>
#include <qdatetime.h>
+#include <qpe/resource.h>
+#include <qpe/datebookmonth.h>
+
+#include <qtoolbutton.h>
/*
* Constructs a DateBookWeekHeader which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
@@ -32,8 +38,15 @@ DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent,
bStartOnMonday( startOnMonday )
{
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();
}
/*
* Destroys the object and frees any allocated resources
@@ -42,31 +55,65 @@ 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
*/
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 );
}
/*
* public slot
*/
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 );
}
/*
* public slot
@@ -75,8 +122,14 @@ 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;
week = w;
@@ -88,9 +141,10 @@ void DateBookWeekHeader::setDate( int y, int w )
QString s = QString::number( d.day() ) + ". " + d.monthName( d.month() )
+ "-";
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
@@ -38,12 +38,16 @@ public:
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)
{