summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-02-06 01:23:43 (UTC)
committer zautrix <zautrix>2005-02-06 01:23:43 (UTC)
commit118f5aab05c9ace5612d5c4fd69e7c5a59bed67b (patch) (unidiff)
treee097f3fecb6e2ae692b91ac29e58e6d5a51154c8 /korganizer
parent659f07aa44f44aebb74c83e7319021cfeb87f275 (diff)
downloadkdepimpi-118f5aab05c9ace5612d5c4fd69e7c5a59bed67b.zip
kdepimpi-118f5aab05c9ace5612d5c4fd69e7c5a59bed67b.tar.gz
kdepimpi-118f5aab05c9ace5612d5c4fd69e7c5a59bed67b.tar.bz2
better week choose
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp72
-rw-r--r--korganizer/koagendaview.h1
-rw-r--r--korganizer/mainwindow.cpp62
-rw-r--r--korganizer/mainwindow.h7
-rw-r--r--korganizer/navigatorbar.cpp39
5 files changed, 71 insertions, 110 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 36c66ea..0d36946 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -404,78 +404,49 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
404 mAllDayFrame = new QHBox(mSplitterAgenda); 404 mAllDayFrame = new QHBox(mSplitterAgenda);
405 mAllDayFrame->setFocusPolicy(NoFocus); 405 mAllDayFrame->setFocusPolicy(NoFocus);
406 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 406 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
407 agendaFrame->setFocusPolicy(NoFocus); 407 agendaFrame->setFocusPolicy(NoFocus);
408 408
409#endif 409#endif
410 410
411 // Create all-day agenda widget 411 // Create all-day agenda widget
412 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 412 mDummyAllDayLeft = new QVBox( mAllDayFrame );
413 413
414 mExpandButton = new QPushButton(mDummyAllDayLeft); 414 mExpandButton = new QPushButton(mDummyAllDayLeft);
415 mExpandButton->setPixmap( mNotExpandedPixmap ); 415 mExpandButton->setPixmap( mNotExpandedPixmap );
416 int widebut = mExpandButton->sizeHint().width(); 416 int widebut = mExpandButton->sizeHint().width();
417 if ( QApplication::desktop()->width() < 480 ) 417 if ( QApplication::desktop()->width() < 480 )
418 widebut = widebut*2; 418 widebut = widebut*2;
419 else 419 else
420 widebut = (widebut*3) / 2; 420 widebut = (widebut*3) / 2;
421 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 421 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
422 // QSizePolicy::Fixed ) ); 422 // QSizePolicy::Fixed ) );
423 mExpandButton->setFixedSize( widebut, widebut); 423 mExpandButton->setFixedSize( widebut, widebut);
424 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 424 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
425 mExpandButton->setFocusPolicy(NoFocus); 425 mExpandButton->setFocusPolicy(NoFocus);
426 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 426 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
427 mAllDayAgenda->setFocusPolicy(NoFocus); 427 mAllDayAgenda->setFocusPolicy(NoFocus);
428 QVBox *dummyAllDayRight = new QVBox(mAllDayFrame); 428 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
429
430 mDummyAllDayRightL = new QLabel ( dummyAllDayRight );
431 QPushButton *dummyAllDayRightB = new QPushButton(dummyAllDayRight);
432 new QLabel ( dummyAllDayRight );
433 mDummyAllDayRightL->setSizePolicy( QSizePolicy( QSizePolicy::Minimum,QSizePolicy::Fixed ) );
434 dummyAllDayRightB->setFlat( true );
435 dummyAllDayRightB->setFocusPolicy(NoFocus);
436 dummyAllDayRightB->setFixedHeight( (dummyAllDayRightB->sizeHint().height()/4)*3 );
437
438 QPopupMenu * wpo = new QPopupMenu (this);
439 QPopupMenu * all = new QPopupMenu (this);
440 //wpo->insertItem( i18n("W#"), 0 );
441 int first = 1;
442 int i;
443 for ( i = 1; i < 50; ++i ) {
444 if ( !(i%10) ) {
445 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
446 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeekNum ( int ) ) );
447 first = i;
448 wpo = new QPopupMenu (this);
449 }
450 wpo->insertItem( QString::number(i), i );
451 }
452 for ( i = 50; i < 53; ++i ) {
453 wpo->insertItem( QString::number(i), i);
454 }
455 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
456 dummyAllDayRightB->setPopup( all );
457 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeekNum ( int ) ) );
458 429
459 // Create event context menu for all day agenda 430 // Create event context menu for all day agenda
460 mAllDayAgendaPopup = eventPopup(); 431 mAllDayAgendaPopup = eventPopup();
461 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 432 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
462 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 433 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
463 434
464 // Create agenda frame 435 // Create agenda frame
465 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,3,3); 436 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,3,3);
466 // QHBox *agendaFrame = new QHBox(splitterAgenda); 437 // QHBox *agendaFrame = new QHBox(splitterAgenda);
467 438
468 // create event indicator bars 439 // create event indicator bars
469 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 440 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
470 agendaLayout->addWidget(mEventIndicatorTop,0,1); 441 agendaLayout->addWidget(mEventIndicatorTop,0,1);
471 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 442 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
472 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 443 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
473 agendaFrame); 444 agendaFrame);
474 agendaLayout->addWidget(mEventIndicatorBottom,2,1); 445 agendaLayout->addWidget(mEventIndicatorBottom,2,1);
475 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 446 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
476 agendaLayout->addWidget(dummyAgendaRight,0,2); 447 agendaLayout->addWidget(dummyAgendaRight,0,2);
477 448
478 // Create time labels 449 // Create time labels
479 mTimeLabels = new TimeLabels(24,agendaFrame); 450 mTimeLabels = new TimeLabels(24,agendaFrame);
480 agendaLayout->addWidget(mTimeLabels,1,0); 451 agendaLayout->addWidget(mTimeLabels,1,0);
481 connect(mTimeLabels,SIGNAL( scaleChanged()), 452 connect(mTimeLabels,SIGNAL( scaleChanged()),
@@ -566,62 +537,49 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
566 /* 537 /*
567 connect(mAgenda,SIGNAL(startDragSignal(Event *)), 538 connect(mAgenda,SIGNAL(startDragSignal(Event *)),
568 SLOT(startDrag(Event *))); 539 SLOT(startDrag(Event *)));
569 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)), 540 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)),
570 SLOT(startDrag(Event *))); 541 SLOT(startDrag(Event *)));
571 */ 542 */
572 // synchronize selections 543 // synchronize selections
573 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 544 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
574 mAllDayAgenda, SLOT( deselectItem() ) ); 545 mAllDayAgenda, SLOT( deselectItem() ) );
575 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 546 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
576 mAgenda, SLOT( deselectItem() ) ); 547 mAgenda, SLOT( deselectItem() ) );
577 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 548 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
578 SIGNAL( incidenceSelected( Incidence * ) ) ); 549 SIGNAL( incidenceSelected( Incidence * ) ) );
579 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 550 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
580 SIGNAL( incidenceSelected( Incidence * ) ) ); 551 SIGNAL( incidenceSelected( Incidence * ) ) );
581 connect( mAgenda, SIGNAL( resizedSignal() ), 552 connect( mAgenda, SIGNAL( resizedSignal() ),
582 SLOT( updateConfig( ) ) ); 553 SLOT( updateConfig( ) ) );
583 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ), 554 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ),
584 SLOT( addToCalSlot(Incidence *, Incidence * ) ) ); 555 SLOT( addToCalSlot(Incidence *, Incidence * ) ) );
585 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ), 556 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ),
586 SLOT( addToCalSlot(Incidence * , Incidence *) ) ); 557 SLOT( addToCalSlot(Incidence * , Incidence *) ) );
587 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 558 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
588 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 559 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
589 560
590 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 561
591 QFontMetrics fm ( dlf );
592 QString dayTest = "30";
593 int wid = fm.width( dayTest );
594 int maxWid = dummyAllDayRight->width()-2;
595 int fontPoint = dlf.pointSize();
596 while ( wid > maxWid ) {
597 --fontPoint;
598 dlf.setPointSize( fontPoint );
599 QFontMetrics f( dlf );
600 wid = f.width( dayTest );
601 }
602 mDummyAllDayRightL->setFont( dlf );
603 mDummyAllDayRightL->setAlignment( AlignHCenter );
604} 562}
605 563
606void KOAgendaView::toggleAllDay() 564void KOAgendaView::toggleAllDay()
607{ 565{
608 if ( mSplitterAgenda->firstHandle() ) 566 if ( mSplitterAgenda->firstHandle() )
609 mSplitterAgenda->firstHandle()->toggle(); 567 mSplitterAgenda->firstHandle()->toggle();
610} 568}
611void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld ) 569void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld )
612{ 570{
613 calendar()->addIncidence( inc ); 571 calendar()->addIncidence( inc );
614 572
615 if ( incOld ) { 573 if ( incOld ) {
616 if ( incOld->type() == "Todo" ) 574 if ( incOld->type() == "Todo" )
617 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED ); 575 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED );
618 else 576 else
619 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED); 577 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED);
620 } 578 }
621 579
622} 580}
623 581
624KOAgendaView::~KOAgendaView() 582KOAgendaView::~KOAgendaView()
625{ 583{
626 delete mAgendaPopup; 584 delete mAgendaPopup;
627 delete mAllDayAgendaPopup; 585 delete mAllDayAgendaPopup;
@@ -1087,74 +1045,48 @@ void KOAgendaView::changeEventDisplay(Event *, int)
1087 fillAgenda(); 1045 fillAgenda();
1088} 1046}
1089 1047
1090void KOAgendaView::fillAgenda(const QDate &) 1048void KOAgendaView::fillAgenda(const QDate &)
1091{ 1049{
1092 // qDebug("KOAgendaView::fillAgenda "); 1050 // qDebug("KOAgendaView::fillAgenda ");
1093 fillAgenda(); 1051 fillAgenda();
1094} 1052}
1095 1053
1096void KOAgendaView::fillAgenda() 1054void KOAgendaView::fillAgenda()
1097{ 1055{
1098 if ( globalFlagBlockStartup ) 1056 if ( globalFlagBlockStartup )
1099 return; 1057 return;
1100 if ( globalFlagBlockAgenda == 1 ) 1058 if ( globalFlagBlockAgenda == 1 )
1101 return; 1059 return;
1102 //if ( globalFlagBlockAgenda == 2 ) 1060 //if ( globalFlagBlockAgenda == 2 )
1103 //globalFlagBlockAgenda = 0; 1061 //globalFlagBlockAgenda = 0;
1104 // globalFlagBlockPainting = false; 1062 // globalFlagBlockPainting = false;
1105 if ( globalFlagBlockAgenda == 0 ) 1063 if ( globalFlagBlockAgenda == 0 )
1106 globalFlagBlockAgenda = 1; 1064 globalFlagBlockAgenda = 1;
1107 // clearView(); 1065 // clearView();
1108 //qDebug("fillAgenda()++++ "); 1066 //qDebug("fillAgenda()++++ ");
1109 globalFlagBlockAgendaItemPaint = 1; 1067 globalFlagBlockAgendaItemPaint = 1;
1110 1068
1111 int weekNum = 0;
1112 QDate seda = mSelectedDates.first();
1113 QDate d = QDate ( seda.year(), 1,1);
1114 seda = seda.addDays( 1-seda.dayOfWeek() );//we are on monday
1115 if ( seda.addDays(6).year() != seda.year() ) {
1116 if ( seda.year() != d.year() ) {
1117 if ( d.dayOfWeek() > 4 )
1118 d = QDate ( seda.year(), 1,1);
1119 else
1120 weekNum = 1;
1121 } else {
1122 QDate dd( seda.year()+1, 1,1);
1123 if ( dd.dayOfWeek() <= 4 )
1124 weekNum = 1;
1125 }
1126 }
1127 if ( weekNum == 0 ){
1128 int dow = d.dayOfWeek();
1129 if ( dow <= 4 )
1130 d = d.addDays( 1-dow );
1131 else // 5,6,7
1132 d = d.addDays( 8-dow );
1133 // we have the first week of the year.we are on monday
1134 weekNum = d.daysTo( seda ) / 7 +1;
1135 }
1136 mDummyAllDayRightL->setText( QString::number( weekNum) );
1137 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1069 mAllDayAgenda->changeColumns(mSelectedDates.count());
1138 mAgenda->changeColumns(mSelectedDates.count()); 1070 mAgenda->changeColumns(mSelectedDates.count());
1139 qApp->processEvents(); 1071 qApp->processEvents();
1140 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1072 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1141 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1073 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1142 setHolidayMasks(); 1074 setHolidayMasks();
1143 1075
1144 //mAgenda->hideUnused(); 1076 //mAgenda->hideUnused();
1145 //mAllDayAgenda->hideUnused(); 1077 //mAllDayAgenda->hideUnused();
1146 1078
1147 // mAgenda->blockNextRepaint( false ); 1079 // mAgenda->blockNextRepaint( false );
1148 // mAgenda->viewport()->repaint(); 1080 // mAgenda->viewport()->repaint();
1149 // mAgenda->blockNextRepaint( true ); 1081 // mAgenda->blockNextRepaint( true );
1150 mMinY.resize(mSelectedDates.count()); 1082 mMinY.resize(mSelectedDates.count());
1151 mMaxY.resize(mSelectedDates.count()); 1083 mMaxY.resize(mSelectedDates.count());
1152 1084
1153 QPtrList<Event> dayEvents; 1085 QPtrList<Event> dayEvents;
1154 1086
1155 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1087 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1156 // Therefore, gtodoset all of them. 1088 // Therefore, gtodoset all of them.
1157 QPtrList<Todo> todos = calendar()->todos(); 1089 QPtrList<Todo> todos = calendar()->todos();
1158 1090
1159 mAgenda->setDateList(mSelectedDates); 1091 mAgenda->setDateList(mSelectedDates);
1160 1092
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index ba9bc93..4a058ce 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -195,49 +195,48 @@ class KOAgendaView : public KOEventView {
195 195
196 void startDrag(Event *); 196 void startDrag(Event *);
197 197
198 void readSettings(); 198 void readSettings();
199 void readSettings(KConfig *); 199 void readSettings(KConfig *);
200 void writeSettings(KConfig *); 200 void writeSettings(KConfig *);
201 201
202 void setContentsPos(int y); 202 void setContentsPos(int y);
203 203
204 void setExpandedButton( bool expanded ); 204 void setExpandedButton( bool expanded );
205 void scrollOneHourUp(); 205 void scrollOneHourUp();
206 void scrollOneHourDown(); 206 void scrollOneHourDown();
207 void addToCalSlot(Incidence *, Incidence *); 207 void addToCalSlot(Incidence *, Incidence *);
208 208
209 signals: 209 signals:
210 void showDateView( int, QDate ); 210 void showDateView( int, QDate );
211 void newTodoSignal( QDateTime ,bool ); 211 void newTodoSignal( QDateTime ,bool );
212 void toggleExpand(); 212 void toggleExpand();
213 void selectWeekNum( int ); 213 void selectWeekNum( int );
214 void todoMoved( Todo *, int ); 214 void todoMoved( Todo *, int );
215 void incidenceChanged(Incidence * , int ); 215 void incidenceChanged(Incidence * , int );
216 // void cloneIncidenceSignal(Incidence *); 216 // void cloneIncidenceSignal(Incidence *);
217 217
218 protected: 218 protected:
219 QLabel * mDummyAllDayRightL;
220 KOAgendaButton* getNewDaylabel(); 219 KOAgendaButton* getNewDaylabel();
221 bool mBlockUpdating; 220 bool mBlockUpdating;
222 int mUpcomingWidth; 221 int mUpcomingWidth;
223 /** Fill agenda beginning with date startDate */ 222 /** Fill agenda beginning with date startDate */
224 void fillAgenda(const QDate &startDate); 223 void fillAgenda(const QDate &startDate);
225 void resizeEvent( QResizeEvent* e ); 224 void resizeEvent( QResizeEvent* e );
226 /** Fill agenda using the current set value for the start date */ 225 /** Fill agenda using the current set value for the start date */
227 void fillAgenda(); 226 void fillAgenda();
228 227
229 /** Create labels for the selected dates. */ 228 /** Create labels for the selected dates. */
230 void createDayLabels(); 229 void createDayLabels();
231 230
232 /** 231 /**
233 Set the masks on the agenda widgets indicating, which days are holidays. 232 Set the masks on the agenda widgets indicating, which days are holidays.
234 */ 233 */
235 void setHolidayMasks(); 234 void setHolidayMasks();
236 235
237 protected slots: 236 protected slots:
238 void slotDaylabelClicked( int ); 237 void slotDaylabelClicked( int );
239 /** Update event belonging to agenda item */ 238 /** Update event belonging to agenda item */
240 void updateEventDates(KOAgendaItem *item, int mode = -1); 239 void updateEventDates(KOAgendaItem *item, int mode = -1);
241 //void updateMovedTodo(); 240 //void updateMovedTodo();
242 241
243 void updateEventIndicatorTop(int newY); 242 void updateEventIndicatorTop(int newY);
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9e32c18..1c74307 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -263,49 +263,51 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
263 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 263 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
264 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 264 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
265 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 265 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
266 mSyncManager->setDefaultFileName( defaultFileName()); 266 mSyncManager->setDefaultFileName( defaultFileName());
267 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 267 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
268 mSyncManager->fillSyncMenu(); 268 mSyncManager->fillSyncMenu();
269 269
270 270
271 271
272 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 272 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
273 if ( showWarning ) { 273 if ( showWarning ) {
274 KMessageBox::information( this, 274 KMessageBox::information( this,
275 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 275 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
276 qApp->processEvents(); 276 qApp->processEvents();
277 mView->dialogManager()->showSyncOptions(); 277 mView->dialogManager()->showSyncOptions();
278 } 278 }
279 279
280 //US listen for result adressed from Ka/Pi 280 //US listen for result adressed from Ka/Pi
281#ifndef DESKTOP_VERSION 281#ifndef DESKTOP_VERSION
282 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 282 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
283#endif 283#endif
284#ifndef DESKTOP_VERSION 284#ifndef DESKTOP_VERSION
285 infrared = 0; 285 infrared = 0;
286#endif 286#endif
287 287 updateWeek( mView->startDate() );
288 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
289 SLOT( updateWeekNum( const KCal::DateList & ) ) );
288 mBRdisabled = false; 290 mBRdisabled = false;
289 //toggleBeamReceive(); 291 //toggleBeamReceive();
290} 292}
291MainWindow::~MainWindow() 293MainWindow::~MainWindow()
292{ 294{
293 //qDebug("MainWindow::~MainWindow() "); 295 //qDebug("MainWindow::~MainWindow() ");
294 //save toolbar location 296 //save toolbar location
295 delete mCalendar; 297 delete mCalendar;
296 delete mSyncManager; 298 delete mSyncManager;
297#ifndef DESKTOP_VERSION 299#ifndef DESKTOP_VERSION
298 if ( infrared ) 300 if ( infrared )
299 delete infrared; 301 delete infrared;
300#endif 302#endif
301 303
302 304
303} 305}
304 306
305void MainWindow::disableBR(bool b) 307void MainWindow::disableBR(bool b)
306{ 308{
307#ifndef DESKTOP_VERSION 309#ifndef DESKTOP_VERSION
308 if ( b ) { 310 if ( b ) {
309 if ( infrared ) { 311 if ( infrared ) {
310 toggleBeamReceive(); 312 toggleBeamReceive();
311 mBRdisabled = true; 313 mBRdisabled = true;
@@ -533,48 +535,72 @@ void MainWindow::initActions()
533 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 535 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
534#endif 536#endif
535 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 537 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
536 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 538 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
537 menuBar1->insertItem( i18n("Help"), helpMenu ); 539 menuBar1->insertItem( i18n("Help"), helpMenu );
538 } else { 540 } else {
539 QPEMenuBar *menuBar1; 541 QPEMenuBar *menuBar1;
540 menuBar1 = new QPEMenuBar( iconToolBar ); 542 menuBar1 = new QPEMenuBar( iconToolBar );
541 QPopupMenu *menuBar = new QPopupMenu( this ); 543 QPopupMenu *menuBar = new QPopupMenu( this );
542 menuBar1->insertItem( i18n("ME"), menuBar); 544 menuBar1->insertItem( i18n("ME"), menuBar);
543 menuBar->insertItem( i18n("File"), importMenu ); 545 menuBar->insertItem( i18n("File"), importMenu );
544 menuBar->insertItem( i18n("View"), viewMenu ); 546 menuBar->insertItem( i18n("View"), viewMenu );
545 menuBar->insertItem( i18n("Actions"), actionMenu ); 547 menuBar->insertItem( i18n("Actions"), actionMenu );
546 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 548 menuBar->insertItem( i18n("Synchronize"), syncMenu );
547 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 549 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
548 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 550 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
549 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 551 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
550 menuBar->insertItem( i18n("Help"), helpMenu ); 552 menuBar->insertItem( i18n("Help"), helpMenu );
551 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 553 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
552 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 554 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
553 } 555 }
554 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 556 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
555 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 557 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
556 558
559 menuBarWeek = new QPEMenuBar( iconToolBar );
560 QPopupMenu * wpo = new QPopupMenu (this);
561 QPopupMenu * all = new QPopupMenu (this);
562 //wpo->insertItem( i18n("W#"), 0 );
563 int first = 1;
564 int i;
565 for ( i = 1; i < 50; ++i ) {
566 if ( !(i%10) ) {
567 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
568 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
569 first = i;
570 wpo = new QPopupMenu (this);
571 }
572 wpo->insertItem( QString::number(i), i );
573 }
574 for ( i = 50; i < 53; ++i ) {
575 wpo->insertItem( QString::number(i), i);
576 }
577 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
578 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
579 menuBarWeek->insertItem( "00",all,1);
580 menuBarWeek->setMaximumSize( menuBarWeek->sizeHint( ));
581
582 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
557 // ****************** 583 // ******************
558 QAction *action; 584 QAction *action;
559 QIconSet icon; 585 QIconSet icon;
560 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 586 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
561 configureToolBarMenu->setCheckable( true ); 587 configureToolBarMenu->setCheckable( true );
562 588
563 QString pathString = ""; 589 QString pathString = "";
564 if ( !p->mToolBarMiniIcons ) { 590 if ( !p->mToolBarMiniIcons ) {
565 if ( QApplication::desktop()->width() < 480 ) 591 if ( QApplication::desktop()->width() < 480 )
566 pathString += "icons16/"; 592 pathString += "icons16/";
567 } else 593 } else
568 pathString += "iconsmini/"; 594 pathString += "iconsmini/";
569 configureAgendaMenu->setCheckable( true ); 595 configureAgendaMenu->setCheckable( true );
570 int iii ; 596 int iii ;
571 for ( iii = 1;iii<= 10 ;++iii ){ 597 for ( iii = 1;iii<= 10 ;++iii ){
572 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 598 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
573 } 599 }
574 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 600 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
575 601
576 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 602 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
577 this, SLOT( showConfigureAgenda( ) ) ); 603 this, SLOT( showConfigureAgenda( ) ) );
578 604
579 icon = loadPixmap( pathString + "configure" ); 605 icon = loadPixmap( pathString + "configure" );
580 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 606 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
@@ -1295,51 +1321,85 @@ void MainWindow::aboutKnownBugs()
1295 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1321 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1296 i18n("\nor report them in the bugtracker on\n") + 1322 i18n("\nor report them in the bugtracker on\n") +
1297 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1323 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1298 QMessageBox::NoIcon, 1324 QMessageBox::NoIcon,
1299 QMessageBox::Ok, 1325 QMessageBox::Ok,
1300 QMessageBox::NoButton, 1326 QMessageBox::NoButton,
1301 QMessageBox::NoButton); 1327 QMessageBox::NoButton);
1302 msg->exec(); 1328 msg->exec();
1303 delete msg; 1329 delete msg;
1304 1330
1305} 1331}
1306 1332
1307QString MainWindow::defaultFileName() 1333QString MainWindow::defaultFileName()
1308{ 1334{
1309 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1335 return locateLocal( "data", "korganizer/mycalendar.ics" );
1310} 1336}
1311QString MainWindow::syncFileName() 1337QString MainWindow::syncFileName()
1312{ 1338{
1313#ifdef DESKTOP_VERSION 1339#ifdef DESKTOP_VERSION
1314 return locateLocal( "tmp", "synccalendar.ics" ); 1340 return locateLocal( "tmp", "synccalendar.ics" );
1315#else 1341#else
1316 return QString( "/tmp/synccalendar.ics" ); 1342 return QString( "/tmp/synccalendar.ics" );
1317#endif 1343#endif
1318} 1344}
1345void MainWindow::updateWeek(QDate seda)
1346{
1347 int weekNum = 0;
1348 QDate d = QDate ( seda.year(), 1,1);
1349 seda = seda.addDays( 1-seda.dayOfWeek() );//we are on monday
1350 if ( seda.addDays(6).year() != seda.year() ) {
1351 if ( seda.year() != d.year() ) {
1352 if ( d.dayOfWeek() > 4 )
1353 d = QDate ( seda.year(), 1,1);
1354 else
1355 weekNum = 1;
1356 } else {
1357 QDate dd( seda.year()+1, 1,1);
1358 if ( dd.dayOfWeek() <= 4 )
1359 weekNum = 1;
1360 }
1361 }
1362 if ( weekNum == 0 ){
1363 int dow = d.dayOfWeek();
1364 if ( dow <= 4 )
1365 d = d.addDays( 1-dow );
1366 else // 5,6,7
1367 d = d.addDays( 8-dow );
1368 // we have the first week of the year.we are on monday
1369 weekNum = d.daysTo( seda ) / 7 +1;
1370 }
1371 //qDebug("weeknum %s ", QString::number( weekNum).latin1());
1372 menuBarWeek-> changeItem(1, QString::number( weekNum) );
1319 1373
1374}
1375void MainWindow::updateWeekNum(const DateList &selectedDates)
1376{
1377 updateWeek( selectedDates.first() );
1378}
1320void MainWindow::processIncidenceSelection( Incidence *incidence ) 1379void MainWindow::processIncidenceSelection( Incidence *incidence )
1321{ 1380{
1381
1322 if ( !incidence ) { 1382 if ( !incidence ) {
1323 enableIncidenceActions( false ); 1383 enableIncidenceActions( false );
1324 1384
1325 mNewSubTodoAction->setEnabled( false ); 1385 mNewSubTodoAction->setEnabled( false );
1326 setCaptionToDates(); 1386 setCaptionToDates();
1327 return; 1387 return;
1328 1388
1329 } 1389 }
1330 1390
1331 //KGlobal::locale()->formatDateTime(nextA, true); 1391 //KGlobal::locale()->formatDateTime(nextA, true);
1332 QString startString = ""; 1392 QString startString = "";
1333 if ( incidence->type() != "Todo" ) { 1393 if ( incidence->type() != "Todo" ) {
1334 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1394 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1335 if ( incidence->doesFloat() ) { 1395 if ( incidence->doesFloat() ) {
1336 startString += ": "+incidence->dtStartDateStr( true ); 1396 startString += ": "+incidence->dtStartDateStr( true );
1337 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1397 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1338 1398
1339 } else { 1399 } else {
1340 startString = ": "+incidence->dtStartStr(true); 1400 startString = ": "+incidence->dtStartStr(true);
1341 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1401 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1342 1402
1343 } 1403 }
1344 1404
1345 } else { 1405 } else {
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 8dd55ac..076ab94 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -2,141 +2,146 @@
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qtextstream.h> 8#include <qtextstream.h>
9#include <qregexp.h> 9#include <qregexp.h>
10 10
11#include <libkcal/incidence.h> 11#include <libkcal/incidence.h>
12#include "simplealarmclient.h" 12#include "simplealarmclient.h"
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15#include <qcopchannel_qws.h> 15#include <qcopchannel_qws.h>
16#endif 16#endif
17class QAction; 17class QAction;
18class CalendarView; 18class CalendarView;
19class KSyncProfile; 19class KSyncProfile;
20#ifdef DESKTOP_VERSION 20#ifdef DESKTOP_VERSION
21 21
22#define QPEToolBar QToolBar 22#define QPEToolBar QToolBar
23#define QPEMenuBar QMenuBar 23#define QPEMenuBar QMenuBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26class QPEMenuBar;
26 27
27 28
28namespace KCal { 29namespace KCal {
29class CalendarLocal; 30class CalendarLocal;
30} 31}
31 32
32using namespace KCal; 33using namespace KCal;
33 34
34class MainWindow : public QMainWindow 35class MainWindow : public QMainWindow
35{ 36{
36 Q_OBJECT 37 Q_OBJECT
37 public: 38 public:
38 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
39 ~MainWindow(); 40 ~MainWindow();
40 bool beamReceiveEnabled(); 41 bool beamReceiveEnabled();
41 static QString defaultFileName(); 42 static QString defaultFileName();
42 static QString syncFileName(); 43 static QString syncFileName();
43 static QString resourcePath(); 44 static QString resourcePath();
44 public slots: 45 public slots:
46 void updateWeekNum(const KCal::DateList &);
47 void updateWeek(QDate);
45 virtual void showMaximized (); 48 virtual void showMaximized ();
46 void configureAgenda( int ); 49 void configureAgenda( int );
47 void recieve( const QCString& msg, const QByteArray& data ); 50 void recieve( const QCString& msg, const QByteArray& data );
48 protected slots: 51 protected slots:
49 void setCaptionToDates(); 52 void setCaptionToDates();
50 void about(); 53 void about();
51 void licence(); 54 void licence();
52 void faq(); 55 void faq();
53 void usertrans(); 56 void usertrans();
54 void features(); 57 void features();
55 void synchowto(); 58 void synchowto();
56 void kdesynchowto(); 59 void kdesynchowto();
57 void multisynchowto(); 60 void multisynchowto();
58 void whatsNew(); 61 void whatsNew();
59 void keyBindings(); 62 void keyBindings();
60 void aboutAutoSaving();; 63 void aboutAutoSaving();;
61 void aboutKnownBugs(); 64 void aboutKnownBugs();
62 65
63 void processIncidenceSelection( Incidence * ); 66 void processIncidenceSelection( Incidence * );
64 67
65 void importQtopia(); 68 void importQtopia();
66 void importBday(); 69 void importBday();
67 void importOL(); 70 void importOL();
68 void importIcal(); 71 void importIcal();
69 void importFile( QString, bool ); 72 void importFile( QString, bool );
70 void quickImportIcal(); 73 void quickImportIcal();
71 74
72 void slotModifiedChanged( bool ); 75 void slotModifiedChanged( bool );
73 76
74 void save(); 77 void save();
75 void saveStopTimer(); 78 void saveStopTimer();
76 void configureToolBar( int ); 79 void configureToolBar( int );
77 void printSel(); 80 void printSel();
78 void printCal(); 81 void printCal();
79 void saveCalendar(); 82 void saveCalendar();
80 void loadCalendar(); 83 void loadCalendar();
81 void exportVCalendar(); 84 void exportVCalendar();
82 void fillFilterMenu(); 85 void fillFilterMenu();
83 void selectFilter( int ); 86 void selectFilter( int );
84 void exportToPhone( int ); 87 void exportToPhone( int );
85 void toggleBeamReceive(); 88 void toggleBeamReceive();
86 void disableBR(bool); 89 void disableBR(bool);
87 90 signals:
91 void selectWeek ( int );
88 private slots: 92 private slots:
89 void showConfigureAgenda(); 93 void showConfigureAgenda();
90 void getFile( bool ); 94 void getFile( bool );
91 void syncFileRequest(); 95 void syncFileRequest();
92 96
93 protected: 97 protected:
94 void displayText( QString, QString); 98 void displayText( QString, QString);
95 void enableIncidenceActions( bool ); 99 void enableIncidenceActions( bool );
96 100
97 private: 101 private:
98 bool mBRdisabled; 102 bool mBRdisabled;
99#ifndef DESKTOP_VERSION 103#ifndef DESKTOP_VERSION
100 QCopChannel* infrared; 104 QCopChannel* infrared;
101#endif 105#endif
102 QAction* brAction; 106 QAction* brAction;
103 KSyncManager* mSyncManager; 107 KSyncManager* mSyncManager;
104 bool mClosed; 108 bool mClosed;
105 void saveOnClose(); 109 void saveOnClose();
106 bool mFlagKeyPressed; 110 bool mFlagKeyPressed;
107 bool mBlockAtStartup; 111 bool mBlockAtStartup;
108 QPEToolBar *iconToolBar; 112 QPEToolBar *iconToolBar;
109 void initActions(); 113 void initActions();
110 void setDefaultPreferences(); 114 void setDefaultPreferences();
111 void keyPressEvent ( QKeyEvent * ) ; 115 void keyPressEvent ( QKeyEvent * ) ;
112 void keyReleaseEvent ( QKeyEvent * ) ; 116 void keyReleaseEvent ( QKeyEvent * ) ;
113 QPopupMenu *configureToolBarMenu; 117 QPopupMenu *configureToolBarMenu;
114 QPopupMenu *selectFilterMenu; 118 QPopupMenu *selectFilterMenu;
115 QPopupMenu *configureAgendaMenu, *syncMenu; 119 QPopupMenu *configureAgendaMenu, *syncMenu;
116 CalendarLocal *mCalendar; 120 CalendarLocal *mCalendar;
117 CalendarView *mView; 121 CalendarView *mView;
118 QAction *mNewSubTodoAction; 122 QAction *mNewSubTodoAction;
123 QPEMenuBar *menuBarWeek;
119 124
120 QAction *mShowAction; 125 QAction *mShowAction;
121 QAction *mEditAction; 126 QAction *mEditAction;
122 QAction *mDeleteAction; 127 QAction *mDeleteAction;
123 QAction *mCloneAction; 128 QAction *mCloneAction;
124 QAction *mMoveAction; 129 QAction *mMoveAction;
125 QAction *mBeamAction; 130 QAction *mBeamAction;
126 QAction *mCancelAction; 131 QAction *mCancelAction;
127 132
128 QAction *mToggleNav; 133 QAction *mToggleNav;
129 QAction *mToggleFilter; 134 QAction *mToggleFilter;
130 QAction *mToggleAllday; 135 QAction *mToggleAllday;
131 136
132 137
133 void closeEvent( QCloseEvent* ce ); 138 void closeEvent( QCloseEvent* ce );
134 SimpleAlarmClient mAlarmClient; 139 SimpleAlarmClient mAlarmClient;
135 QTimer mSaveTimer; 140 QTimer mSaveTimer;
136 //bool mBlockSaveFlag; 141 //bool mBlockSaveFlag;
137 bool mCalendarModifiedFlag; 142 bool mCalendarModifiedFlag;
138 QPixmap loadPixmap( QString ); 143 QPixmap loadPixmap( QString );
139}; 144};
140 145
141 146
142#endif 147#endif
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp
index 24de01f..657f98d 100644
--- a/korganizer/navigatorbar.cpp
+++ b/korganizer/navigatorbar.cpp
@@ -51,154 +51,119 @@
51 51
52NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name ) 52NavigatorBar::NavigatorBar( const QDate & date, QWidget *parent, const char *name )
53 : QWidget( parent, name ) 53 : QWidget( parent, name )
54{ 54{
55 QBoxLayout *topLayout = new QHBoxLayout( this ); 55 QBoxLayout *topLayout = new QHBoxLayout( this );
56 56
57 // Set up the control buttons and date label 57 // Set up the control buttons and date label
58 mCtrlFrame = new QFrame( this ); 58 mCtrlFrame = new QFrame( this );
59 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised); 59 mCtrlFrame->setFrameStyle(QFrame::Panel|QFrame::Raised);
60 mCtrlFrame->setLineWidth(1); 60 mCtrlFrame->setLineWidth(1);
61 61
62 topLayout->addWidget( mCtrlFrame ); 62 topLayout->addWidget( mCtrlFrame );
63 63
64 QFont tfont = font(); 64 QFont tfont = font();
65 if ( QApplication::desktop()->width() >= 480 ) 65 if ( QApplication::desktop()->width() >= 480 )
66 tfont.setPointSize(tfont.pointSize()+2); 66 tfont.setPointSize(tfont.pointSize()+2);
67 tfont.setBold(true); 67 tfont.setBold(true);
68 68
69 bool isRTL = KOGlobals::self()->reverseLayout(); 69 bool isRTL = KOGlobals::self()->reverseLayout();
70#ifndef DESKTOP_VERSION 70#ifndef DESKTOP_VERSION
71 bool isDesktop = false; 71 bool isDesktop = false;
72#else 72#else
73 bool isDesktop = true; 73 bool isDesktop = true;
74#endif 74#endif
75 bool insertWeek = (QString ( name ) == QString("useBigPixmaps")) ; 75 if ( QString ( name ) == QString("useBigPixmaps") && QApplication::desktop()->width() > 320 )
76 if ( insertWeek && QApplication::desktop()->width() > 320 )
77 isDesktop = true; 76 isDesktop = true;
78 // Create backward navigation buttons 77 // Create backward navigation buttons
79 mPrevYear = new QPushButton( mCtrlFrame ); 78 mPrevYear = new QPushButton( mCtrlFrame );
80 mPrevYear->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow" ) ); 79 mPrevYear->setPixmap( SmallIcon( isDesktop ? "2leftarrowB" : "2leftarrow" ) );
81 QToolTip::add( mPrevYear, i18n("Previous Year") ); 80 QToolTip::add( mPrevYear, i18n("Previous Year") );
82 81
83 mPrevMonth = new QPushButton( mCtrlFrame ); 82 mPrevMonth = new QPushButton( mCtrlFrame );
84 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") ); 83 mPrevMonth->setPixmap( SmallIcon( isDesktop ? "1leftarrowB" : "1leftarrow") );
85 QToolTip::add( mPrevMonth, i18n("Previous Month") ); 84 QToolTip::add( mPrevMonth, i18n("Previous Month") );
86 85
87 // Create forward navigation buttons 86 // Create forward navigation buttons
88 mNextMonth = new QPushButton( mCtrlFrame ); 87 mNextMonth = new QPushButton( mCtrlFrame );
89 mNextMonth->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") ); 88 mNextMonth->setPixmap( SmallIcon( isDesktop ? "1rightarrowB" : "1rightarrow") );
90 QToolTip::add( mNextMonth, i18n("Next Month") ); 89 QToolTip::add( mNextMonth, i18n("Next Month") );
91 90
92 QPushButton * selWeek = 0;
93 if ( insertWeek ) {
94 selWeek = new QPushButton( mCtrlFrame );
95 QToolTip::add( selWeek, i18n("Select Week") );
96 selWeek->setFocusPolicy(NoFocus);
97 }
98
99 mNextYear = new QPushButton( mCtrlFrame ); 91 mNextYear = new QPushButton( mCtrlFrame );
100 mNextYear->setPixmap( SmallIcon( isDesktop ? "2rightarrowB": "2rightarrow") ); 92 mNextYear->setPixmap( SmallIcon( isDesktop ? "2rightarrowB": "2rightarrow") );
101 QToolTip::add( mNextYear, i18n("Next Year") ); 93 QToolTip::add( mNextYear, i18n("Next Year") );
102 mSelectMonth = new QPushButton( mCtrlFrame ); 94 mSelectMonth = new QPushButton( mCtrlFrame );
103 // Create month name label 95 // Create month name label
104 //selectMonth->setFont( tfont ); 96 //selectMonth->setFont( tfont );
105 // selectMonth->setAlignment( AlignCenter ); 97 // selectMonth->setAlignment( AlignCenter );
106 //mDateLabel = new QLabel( selectMonth ); 98 //mDateLabel = new QLabel( selectMonth );
107 //mDateLabel->setFont( tfont ); 99 //mDateLabel->setFont( tfont );
108 //mDateLabel->setAlignment( AlignCenter ); 100 //mDateLabel->setAlignment( AlignCenter );
109 if ( QString ( name ) == QString("useBigPixmaps") ) { 101 if ( QString ( name ) == QString("useBigPixmaps") ) {
110 mNextMonth->setFlat( true); 102 mNextMonth->setFlat( true);
111 mNextYear->setFlat( true); 103 mNextYear->setFlat( true);
112 mSelectMonth->setFlat( true); 104 mSelectMonth->setFlat( true);
113 mPrevYear->setFlat( true); 105 mPrevYear->setFlat( true);
114 mPrevMonth->setFlat( true); 106 mPrevMonth->setFlat( true);
115 if ( insertWeek )
116 selWeek->setFlat( true);
117 } 107 }
118 mSelectMonth->setFont( tfont ); 108 mSelectMonth->setFont( tfont );
119 // Set minimum width to width of widest month name label 109 // Set minimum width to width of widest month name label
120 int i; 110 int i;
121 int maxwidth = 0; 111 int maxwidth = 0;
122 QFontMetrics fm ( mSelectMonth->font() ); 112 QFontMetrics fm ( mSelectMonth->font() );
123 int width = fm.width("September '00" ); 113 int width = fm.width("September '00" );
124// for( i = 1; i <= KOGlobals::self()->calendarSystem()->monthsInYear(date); 114// for( i = 1; i <= KOGlobals::self()->calendarSystem()->monthsInYear(date);
125// ++i ) { 115// ++i ) {
126// //int width = fm.width( KOGlobals::self()->calendarSystem()->monthName(i, 116// //int width = fm.width( KOGlobals::self()->calendarSystem()->monthName(i,
127// // KOGlobals::self()->calendarSystem()->year(date) ) + " 2000" ); 117// // KOGlobals::self()->calendarSystem()->year(date) ) + " 2000" );
128// int width = fm.width("September 2000" ); 118// int width = fm.width("September 2000" );
129// if ( width > maxwidth ) maxwidth = width; 119// if ( width > maxwidth ) maxwidth = width;
130// } 120// }
131 maxwidth = width+2; 121 maxwidth = width+2;
132 int size = fm.height()+2; 122 int size = fm.height()+2;
133 if ( QApplication::desktop()->width() >= 480 ) { 123 if ( QApplication::desktop()->width() >= 480 ) {
134 size += 6; 124 size += 6;
135 maxwidth+= 6; 125 maxwidth+= 6;
136 } 126 }
137 127
138 if ( insertWeek ) {
139 QPopupMenu * wpo = new QPopupMenu (this);
140 QPopupMenu * all = new QPopupMenu (this);
141 //wpo->insertItem( i18n("W#"), 0 );
142 int first = 1;
143 for ( i = 1; i < 50; ++i ) {
144 if ( !(i%10) ) {
145 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
146 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
147 first = i;
148 wpo = new QPopupMenu (this);
149 }
150 wpo->insertItem( QString::number(i), i );
151 }
152 for ( i = 50; i < 53; ++i ) {
153 wpo->insertItem( QString::number(i), i);
154 }
155 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
156 selWeek->setPopup( all );
157 selWeek->setFixedWidth( (size/5)*4 );
158 selWeek->setFixedHeight( size );
159 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
160 }
161 mSelectMonth->setFixedWidth( maxwidth ); 128 mSelectMonth->setFixedWidth( maxwidth );
162 mSelectMonth->setFixedHeight( size ); 129 mSelectMonth->setFixedHeight( size );
163 mPrevYear->setFixedHeight( size ); 130 mPrevYear->setFixedHeight( size );
164 mPrevMonth->setFixedHeight( size ); 131 mPrevMonth->setFixedHeight( size );
165 mNextMonth->setFixedHeight( size ); 132 mNextMonth->setFixedHeight( size );
166 mNextYear->setFixedHeight ( size ); 133 mNextYear->setFixedHeight ( size );
167 // set up control frame layout 134 // set up control frame layout
168 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 ); 135 QBoxLayout *ctrlLayout = new QHBoxLayout( mCtrlFrame, 1 );
169 ctrlLayout->addWidget( mPrevYear, 3 ); 136 ctrlLayout->addWidget( mPrevYear, 3 );
170 ctrlLayout->addWidget( mPrevMonth, 3 ); 137 ctrlLayout->addWidget( mPrevMonth, 3 );
171 //ctrlLayout->addStretch( 1 ); 138 //ctrlLayout->addStretch( 1 );
172 // ctrlLayout->addSpacing( 1 ); 139 // ctrlLayout->addSpacing( 1 );
173 // ctrlLayout->addWidget( mDateLabel ); 140 // ctrlLayout->addWidget( mDateLabel );
174 ctrlLayout->addWidget( mSelectMonth ); 141 ctrlLayout->addWidget( mSelectMonth );
175 // ctrlLayout->addSpacing( 1 ); 142 // ctrlLayout->addSpacing( 1 );
176 // ctrlLayout->addStretch( 1 ); 143 // ctrlLayout->addStretch( 1 );
177 ctrlLayout->addWidget( mNextMonth, 3 ); 144 ctrlLayout->addWidget( mNextMonth, 3 );
178 ctrlLayout->addWidget( mNextYear, 3 ); 145 ctrlLayout->addWidget( mNextYear, 3 );
179 if ( insertWeek )
180 ctrlLayout->addWidget( selWeek );
181 146
182 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) ); 147 connect( mPrevYear, SIGNAL( clicked() ), SIGNAL( goPrevYear() ) );
183 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) ); 148 connect( mPrevMonth, SIGNAL( clicked() ), SIGNAL( goPrevMonth() ) );
184 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) ); 149 connect( mNextMonth, SIGNAL( clicked() ), SIGNAL( goNextMonth() ) );
185 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) ); 150 connect( mNextYear, SIGNAL( clicked() ), SIGNAL( goNextYear() ) );
186 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) ); 151 connect( mSelectMonth, SIGNAL( clicked() ),SLOT( selectMonth() ) );
187 mPrevYear->setFocusPolicy(NoFocus); 152 mPrevYear->setFocusPolicy(NoFocus);
188 mPrevMonth->setFocusPolicy(NoFocus); 153 mPrevMonth->setFocusPolicy(NoFocus);
189 mNextMonth->setFocusPolicy(NoFocus); 154 mNextMonth->setFocusPolicy(NoFocus);
190 mNextYear->setFocusPolicy(NoFocus); 155 mNextYear->setFocusPolicy(NoFocus);
191 mSelectMonth->setFocusPolicy(NoFocus); 156 mSelectMonth->setFocusPolicy(NoFocus);
192 157
193} 158}
194 159
195NavigatorBar::~NavigatorBar() 160NavigatorBar::~NavigatorBar()
196{ 161{
197} 162}
198 163
199void NavigatorBar::selectMonth() 164void NavigatorBar::selectMonth()
200{ 165{
201 166
202 int month; 167 int month;
203 KPopupFrame* popup = new KPopupFrame(this); 168 KPopupFrame* popup = new KPopupFrame(this);
204 int size = 12; 169 int size = 12;