20 #include <KNotification> 
   21 #include <KCalendarSystem> 
   29     m_DateTable.setParent( DateTableFrame ); 
 
   33     previousYear->setAutoRaise( 
true );
 
   34     nextYear->setAutoRaise( 
true );
 
   35     previousMonth->setAutoRaise( 
true );
 
   36     nextMonth->setAutoRaise( 
true );
 
   37     if ( QApplication::isRightToLeft() ) {
 
   38         nextYear->setIcon( KIcon( QLatin1String( 
"arrow-left-double" ) ) );
 
   39         previousYear->setIcon( KIcon( QLatin1String( 
"arrow-right-double" ) ) );
 
   40         nextMonth->setIcon( KIcon( QLatin1String( 
"arrow-left" ) ) );
 
   41         previousMonth->setIcon( KIcon( QLatin1String( 
"arrow-right" ) ) );
 
   43         nextYear->setIcon( KIcon( QLatin1String( 
"arrow-right-double" ) ) );
 
   44         previousYear->setIcon( KIcon( QLatin1String( 
"arrow-left-double" ) ) );
 
   45         nextMonth->setIcon( KIcon( QLatin1String( 
"arrow-right" ) ) );
 
   46         previousMonth->setIcon( KIcon( QLatin1String( 
"arrow-left" ) ) );
 
   50     connect( &m_DateTable, SIGNAL( 
dateChanged( 
const QDate& ) ), SLOT( dateChangedSlot( 
const QDate& ) ) );
 
   51     connect( nextMonth, SIGNAL( clicked() ), SLOT( nextMonthClicked() ) );
 
   52     connect( previousMonth, SIGNAL( clicked() ), SLOT( previousMonthClicked() ) );
 
   53     connect( nextYear, SIGNAL( clicked() ), SLOT( nextYearClicked() ) );
 
   54     connect( previousYear, SIGNAL( clicked() ), SLOT( previousYearClicked() ) );
 
   55     connect( selectMonth, SIGNAL( activated( 
int ) ), SLOT( monthChanged( 
int ) ) );
 
   56     connect( selectYear, SIGNAL( valueChanged( 
int ) ), SLOT( yearChanged( 
int ) ) );
 
   58     m_DateTable.setCalendar(); 
 
   64     selectMonth->setCurrentIndex( 
date().month() - 1 );
 
   65     selectYear->setValue( 
date().year() );
 
   73     return m_DateTable.date();
 
   76 const KCalendarSystem *GenericCalendarWidget::calendar()
 const {
 
   77     return m_DateTable.calendar();
 
   80 void GenericCalendarWidget::populateMonthNames() {
 
   83     for ( 
int m = 1; m <= calendar()->monthsInYear( 
date() ); m++ ) {
 
   84         selectMonth->addItem( calendar()->monthName( m, calendar()->year( 
date() ) ) );
 
   88 void GenericCalendarWidget::dateChangedSlot( 
const QDate &date_ ) {
 
   91     if( m_Date != date_ ) {
 
   93         selectMonth->setCurrentIndex( 
date().month() - 1 );
 
   94         selectYear->setValue( 
date().year() );
 
   98     kDebug() << 
"Date = " << m_Date;
 
  103 void GenericCalendarWidget::nextMonthClicked()
 
  105     if ( ! 
setDate( calendar()->addMonths( 
date(), 1 ) ) ) {
 
  106         KNotification::beep();
 
  108     m_DateTable.setFocus();
 
  111 void GenericCalendarWidget::previousMonthClicked()
 
  113     kDebug() << 
"Previous month clicked!";
 
  114     if ( ! 
setDate( calendar()->addMonths( 
date(), -1 ) ) ) {
 
  115         KNotification::beep();
 
  117     m_DateTable.setFocus();
 
  120 void GenericCalendarWidget::nextYearClicked()
 
  122     if ( ! 
setDate( calendar()->addYears( 
date(), 1 ) ) ) {
 
  123         KNotification::beep();
 
  125     m_DateTable.setFocus();
 
  128 void GenericCalendarWidget::previousYearClicked()
 
  130     if ( ! 
setDate( calendar()->addYears( 
date(), -1 ) ) ) {
 
  131         KNotification::beep();
 
  133     m_DateTable.setFocus();
 
  136 void GenericCalendarWidget::yearChanged( 
int year ) {
 
  138         KNotification::beep();
 
  140     m_DateTable.setFocus();
 
  143 void GenericCalendarWidget::monthChanged( 
int month ) {
 
  144     kDebug() << 
"Month = " << month;
 
  146         KNotification::beep();
 
  148     m_DateTable.setFocus();
 
  164     if( date_ == 
date() )
 
  166     return m_DateTable.setDate( date_ );