00001 #include "datepicker.h"
00002
00003 DatePicker::DatePicker ( QDate entrydate ) : QDialog ( 0, 0, TRUE )
00004 {
00005 setCaption ( "Select Date" );
00006 date = entrydate;
00007 day = date.day();
00008 month = date.month();
00009 year = date.year();
00010
00011 daylabel = new QLabel ( "Day", this );
00012 monthlabel = new QLabel ( "Month", this );
00013 yearlabel = new QLabel ( "Year", this );
00014
00015 daybox = new QComboBox ( this, "daybox" );
00016 connect ( daybox, SIGNAL ( activated(int) ), this, SLOT ( setDay(int) ) );
00017 displayDays ( daybox );
00018 monthbox = new QComboBox ( this, "monthbox" );
00019 connect ( monthbox, SIGNAL ( activated(int) ), this, SLOT ( setMonth(int) ) );
00020 displayMonths ( monthbox );
00021 yearbox = new QComboBox ( this, "yearbox" );
00022 connect ( yearbox, SIGNAL ( activated(int) ), this, SLOT ( setYear(int) ) );
00023 displayYears ( yearbox );
00024
00025 layout = new QGridLayout ( this, 2, 3, 5, 5, "datepickerlayout" );
00026 layout->addWidget ( daylabel, 0, 2 );
00027 layout->addWidget ( monthlabel, 0, 1 );
00028 layout->addWidget ( yearlabel, 0, 0 );
00029 layout->addWidget ( daybox, 1, 2 );
00030 layout->addWidget ( monthbox, 1, 1 );
00031 layout->addWidget ( yearbox, 1, 0 );
00032 }
00033
00034 void DatePicker::displayDays ( QComboBox *daybox )
00035 {
00036 int counter;
00037 int days = date.daysInMonth();
00038 for ( counter = 1; counter <= days; counter++ )
00039 daybox->insertItem ( QString::number ( counter ) );
00040 daybox->setCurrentItem ( ( date.day() ) - 1 );
00041 }
00042
00043 void DatePicker::displayMonths ( QComboBox *monthbox )
00044 {
00045 int counter;
00046 for ( counter = 1; counter <= 12; counter++ )
00047 monthbox->insertItem ( QString::number ( counter ) );
00048 monthbox->setCurrentItem ( ( date.month() ) - 1 );
00049 }
00050
00051 void DatePicker::displayYears ( QComboBox *yearbox )
00052 {
00053 int counter;
00054 int indexcounter = 0;
00055 int yearindex = 0;
00056 int year = date.year();
00057 for ( counter = ( year - 1 ); counter <= ( year + 1 ); counter++ )
00058 {
00059 yearbox->insertItem ( QString::number ( counter ) );
00060 if ( date.year() == counter )
00061 yearindex = indexcounter;
00062 indexcounter ++;
00063 }
00064 yearbox->setCurrentItem ( yearindex );
00065 }
00066
00067 void DatePicker::setDay ( int index )
00068 {
00069 day = daybox->text ( index ).toInt();
00070 }
00071
00072 void DatePicker::setMonth ( int index )
00073 {
00074 month = monthbox->text( index ).toInt();
00075 }
00076
00077 void DatePicker::setYear ( int index )
00078 {
00079 year = yearbox->text ( index ).toInt();
00080 }
00081
00082 int DatePicker::getDay ()
00083 { return day; }
00084
00085 int DatePicker::getMonth ()
00086 { return month; }
00087
00088 int DatePicker::getYear ()
00089 { return year; }
00090
00091
00092
00093
00094
00095