summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaview.cpp
Unidiff
Diffstat (limited to 'korganizer/koagendaview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 218396d..072d464 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -73,159 +73,160 @@ extern int globalFlagBlockAgenda;
73extern int globalFlagBlockStartup; 73extern int globalFlagBlockStartup;
74extern int globalFlagBlockAgendaItemPaint; 74extern int globalFlagBlockAgendaItemPaint;
75extern int globalFlagBlockAgendaItemUpdate; 75extern int globalFlagBlockAgendaItemUpdate;
76extern int globalFlagBlockLabel; 76extern int globalFlagBlockLabel;
77using namespace KOrg; 77using namespace KOrg;
78 78
79 79
80 80
81TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) : 81TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) :
82 QScrollView(parent,name,f) 82 QScrollView(parent,name,f)
83{ 83{
84 myPix.resize( 1, 1 ); 84 myPix.resize( 1, 1 );
85 mRows = rows; 85 mRows = rows;
86 86
87 mRedrawNeeded = true; 87 mRedrawNeeded = true;
88 setMinimumHeight( 20 ); 88 setMinimumHeight( 20 );
89 mCellHeight = KOPrefs::instance()->mHourSize*4; 89 mCellHeight = KOPrefs::instance()->mHourSize*4;
90 90
91 enableClipper(true); 91 enableClipper(true);
92 92
93 setHScrollBarMode(AlwaysOff); 93 setHScrollBarMode(AlwaysOff);
94 setVScrollBarMode(AlwaysOff); 94 setVScrollBarMode(AlwaysOff);
95 95
96 resizeContents(50,mRows * mCellHeight); 96 resizeContents(50,mRows * mCellHeight);
97 97
98 viewport()->setBackgroundMode( PaletteBackground ); 98 viewport()->setBackgroundMode( PaletteBackground );
99} 99}
100 100
101void TimeLabels::setCellHeight(int height) 101void TimeLabels::setCellHeight(int height)
102{ 102{
103 mCellHeight = height; 103 mCellHeight = height;
104} 104}
105 105
106/* 106/*
107 Optimization so that only the "dirty" portion of the scroll view 107 Optimization so that only the "dirty" portion of the scroll view
108 is redrawn. Unfortunately, this is not called by default paintEvent() method. 108 is redrawn. Unfortunately, this is not called by default paintEvent() method.
109*/ 109*/
110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) 110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
111{ 111{
112 112
113 // if ( globalFlagBlockAgenda ) 113 // if ( globalFlagBlockAgenda )
114 // return; 114 // return;
115 // bug: the parameters cx, cy, cw, ch are the areas that need to be 115 // bug: the parameters cx, cy, cw, ch are the areas that need to be
116 // redrawn, not the area of the widget. unfortunately, this 116 // redrawn, not the area of the widget. unfortunately, this
117 // code assumes the latter... 117 // code assumes the latter...
118 118
119 // now, for a workaround... 119 // now, for a workaround...
120 // these two assignments fix the weird redraw bug 120 // these two assignments fix the weird redraw bug
121 mRedrawNeeded = true;
121 if ( mRedrawNeeded ) { 122 if ( mRedrawNeeded ) {
122 cx = contentsX() + 2; 123 cx = contentsX() + frameWidth()*2;
123 cw = contentsWidth() - 2; 124 cw = contentsWidth() ;
124 // end of workaround 125 // end of workaround
125 126
126 int cell = ((int)(cy/mCellHeight)); 127 int cell = ((int)(cy/mCellHeight));
127 int y = cell * mCellHeight; 128 int y = cell * mCellHeight;
128 QFontMetrics fm = fontMetrics(); 129 QFontMetrics fm = fontMetrics();
129 QString hour; 130 QString hour;
130 QString suffix; 131 QString suffix;
131 int tW = fm.width("24:00i"); 132 int tW = fm.width("24:00i");
132 int timeHeight = fm.height(); 133 int timeHeight = fm.height();
133 //timeHeight -= (timeHeight/4-2); 134 //timeHeight -= (timeHeight/4-2);
134 int borderWidth = 0; 135 int borderWidth = 0;
135 QFont nFont = p->font(); 136 QFont nFont = p->font();
136 137
137 if (!KGlobal::locale()->use12Clock()) 138 if (!KGlobal::locale()->use12Clock())
138 suffix = "00"; 139 suffix = "00";
139 else 140 else
140 borderWidth = 0; 141 borderWidth = 0;
141 if ( timeHeight > mCellHeight ) { 142 if ( timeHeight > mCellHeight ) {
142 timeHeight = mCellHeight-1; 143 timeHeight = mCellHeight-1;
143 int pointS = nFont.pointSize(); 144 int pointS = nFont.pointSize();
144 while ( pointS > 4 ) { 145 while ( pointS > 4 ) {
145 nFont.setPointSize( pointS ); 146 nFont.setPointSize( pointS );
146 fm = QFontMetrics( nFont ); 147 fm = QFontMetrics( nFont );
147 if ( fm.height() < mCellHeight ) 148 if ( fm.height() < mCellHeight )
148 break; 149 break;
149 -- pointS; 150 -- pointS;
150 } 151 }
151 fm = QFontMetrics( nFont ); 152 fm = QFontMetrics( nFont );
152 borderWidth = 4; 153 borderWidth = 4;
153 timeHeight = fm.height(); 154 timeHeight = fm.height();
154 } 155 }
155 timeHeight -= (timeHeight/4-2); 156 //timeHeight -= (timeHeight/4-2);
156 QFont sFont = nFont; 157 QFont sFont = nFont;
157 sFont.setPointSize( sFont.pointSize()/2+2 ); 158 sFont.setPointSize( sFont.pointSize()/2+2 );
158 QFontMetrics fmS( sFont ); 159 QFontMetrics fmS( sFont );
159 int sHei = fmS.height(); 160 int sHei = fmS.height();
160 sHei -= (sHei/4-2); 161 //sHei -= (sHei/4-2);
161 int startW = this->width() - frameWidth(); 162 int startW = this->width() - frameWidth()-1;
162 while (y < cy + ch) { 163 while (y < cy + ch) {
163 p->drawLine(cx,y,cx+tW,y); 164 p->drawLine(cx,y,cx+tW,y);
164 hour.setNum(cell); 165 hour.setNum(cell);
165 166
166 // handle 24h and am/pm time formats 167 // handle 24h and am/pm time formats
167 if (KGlobal::locale()->use12Clock()) { 168 if (KGlobal::locale()->use12Clock()) {
168 if (cell > 11) suffix = "pm"; 169 if (cell > 11) suffix = "pm";
169 else 170 else
170 suffix = "am"; 171 suffix = "am";
171 if (cell == 0) hour.setNum(12); 172 if (cell == 0) hour.setNum(12);
172 if (cell > 12) hour.setNum(cell - 12); 173 if (cell > 12) hour.setNum(cell - 12);
173 } 174 }
174 175
175 // center and draw the time label 176 // center and draw the time label
176 int timeWidth = fm.width(hour+"i"); 177 int timeWidth = fm.width(hour);
177 int tw2 = fm.width(suffix); 178 int tw2 = fm.width(suffix);
178 int offset = startW - timeWidth - tw2 ; 179 int offset = startW - timeWidth - tw2 ;
179 p->setFont( nFont ); 180 p->setFont( nFont );
180 p->drawText(cx - borderWidth + offset, y+ timeHeight, hour); 181 p->drawText( offset, y+ timeHeight, hour);
181 p->setFont( sFont ); 182 p->setFont( sFont );
182 offset = startW - tw2-1; 183 offset = startW - tw2+1;
183 p->drawText(cx - borderWidth + offset, y+ sHei, suffix); 184 p->drawText( offset, y+ sHei, suffix);
184 185
185 // increment indices 186 // increment indices
186 y += mCellHeight; 187 y += mCellHeight;
187 cell++; 188 cell++;
188 } 189 }
189 } else { 190 } else {
190 //qDebug("NO redraw "); 191 //qDebug("NO redraw ");
191 } 192 }
192 // double buffer not yet implemented 193 // double buffer not yet implemented
193 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP); 194 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP);
194 //mRedrawNeeded = false; 195 //mRedrawNeeded = false;
195} 196}
196 197
197/** 198/**
198 Calculates the minimum width. 199 Calculates the minimum width.
199*/ 200*/
200int TimeLabels::minimumWidth() const 201int TimeLabels::minimumWidth() const
201{ 202{
202 return mMiniWidth; 203 return mMiniWidth;
203} 204}
204 205
205/** updates widget's internal state */ 206/** updates widget's internal state */
206void TimeLabels::updateConfig() 207void TimeLabels::updateConfig()
207{ 208{
208 mRedrawNeeded = true; 209 mRedrawNeeded = true;
209 // set the font 210 // set the font
210 // config->setGroup("Fonts"); 211 // config->setGroup("Fonts");
211 // QFont font = config->readFontEntry("TimeBar Font"); 212 // QFont font = config->readFontEntry("TimeBar Font");
212 setFont(KOPrefs::instance()->mTimeBarFont); 213 setFont(KOPrefs::instance()->mTimeBarFont);
213 QString test = "88:88"; 214 QString test = "88:88";
214 if (KGlobal::locale()->use12Clock()) 215 if (KGlobal::locale()->use12Clock())
215 test += "i"; 216 test += "i";
216 mMiniWidth = fontMetrics().width(test) + frameWidth()*2 +1 ; 217 mMiniWidth = fontMetrics().width(test) + frameWidth()*2 +1 ;
217 // update geometry restrictions based on new settings 218 // update geometry restrictions based on new settings
218 setFixedWidth(minimumWidth()); 219 setFixedWidth(minimumWidth());
219 220
220 // update HourSize 221 // update HourSize
221 mCellHeight = KOPrefs::instance()->mHourSize*4; 222 mCellHeight = KOPrefs::instance()->mHourSize*4;
222 resizeContents(50,mRows * mCellHeight); 223 resizeContents(50,mRows * mCellHeight);
223} 224}
224 225
225/** update time label positions */ 226/** update time label positions */
226void TimeLabels::positionChanged() 227void TimeLabels::positionChanged()
227{ 228{
228 int adjustment = mAgenda->contentsY(); 229 int adjustment = mAgenda->contentsY();
229 setContentsPos(0, adjustment); 230 setContentsPos(0, adjustment);
230} 231}
231 232
@@ -373,98 +374,97 @@ void EventIndicator::enableColumn(int column, bool enable)
373 mEnabled[column] = enable; 374 mEnabled[column] = enable;
374} 375}
375 376
376 377
377//////////////////////////////////////////////////////////////////////////// 378////////////////////////////////////////////////////////////////////////////
378//////////////////////////////////////////////////////////////////////////// 379////////////////////////////////////////////////////////////////////////////
379//////////////////////////////////////////////////////////////////////////// 380////////////////////////////////////////////////////////////////////////////
380 381
381KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : 382KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
382 KOEventView (cal,parent,name) 383 KOEventView (cal,parent,name)
383{ 384{
384 mBlockUpdating = true; 385 mBlockUpdating = true;
385 mStartHour = 8; 386 mStartHour = 8;
386 mSelectedDates.append(QDate::currentDate()); 387 mSelectedDates.append(QDate::currentDate());
387 388
388 mLayoutDayLabels = 0; 389 mLayoutDayLabels = 0;
389 mDayLabelsFrame = 0; 390 mDayLabelsFrame = 0;
390 mDayLabels = 0; 391 mDayLabels = 0;
391 bool isRTL = KOGlobals::self()->reverseLayout(); 392 bool isRTL = KOGlobals::self()->reverseLayout();
392 QPixmap expandPix; 393 QPixmap expandPix;
393 if ( KOPrefs::instance()->mVerticalScreen ) { 394 if ( KOPrefs::instance()->mVerticalScreen ) {
394 expandPix = SmallIcon( "1updownarrow" ); 395 expandPix = SmallIcon( "1updownarrow" );
395 } else { 396 } else {
396 expandPix = SmallIcon("1leftrightarrow" ); 397 expandPix = SmallIcon("1leftrightarrow" );
397 } 398 }
398 399
399 QBoxLayout *topLayout = new QVBoxLayout(this); 400 QBoxLayout *topLayout = new QVBoxLayout(this);
400 401
401 // Create day name labels for agenda columns 402 // Create day name labels for agenda columns
402 // Create agenda splitter 403 // Create agenda splitter
403 404
404 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this); 405 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this);
405 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 406 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
406 topLayout->addWidget( mSplitterAgenda ); 407 topLayout->addWidget( mSplitterAgenda );
407 mAllDayFrame = new QHBox(mSplitterAgenda); 408 mAllDayFrame = new QHBox(mSplitterAgenda);
408 mAllDayFrame->setFocusPolicy(NoFocus); 409 mAllDayFrame->setFocusPolicy(NoFocus);
409 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 410 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
410 agendaFrame->setFocusPolicy(NoFocus); 411 agendaFrame->setFocusPolicy(NoFocus);
411 412
412 // Create all-day agenda widget 413 // Create all-day agenda widget
413 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 414 mDummyAllDayLeft = new QVBox( mAllDayFrame );
414 415
415 mExpandButton = new QPushButton(mDummyAllDayLeft); 416 mExpandButton = new QPushButton(mDummyAllDayLeft);
416 mExpandButton->setPixmap( expandPix ); 417 mExpandButton->setPixmap( expandPix );
417 int widebut = mExpandButton->sizeHint().width()+4; 418 int widebut = mExpandButton->sizeHint().width()+4;
418 int heibut = mExpandButton->sizeHint().height()+4; 419 int heibut = mExpandButton->sizeHint().height()+4;
419 if ( heibut > widebut ) 420 if ( heibut > widebut )
420 widebut = heibut ; 421 widebut = heibut ;
421 if ( QApplication::desktop()->width() < 480 ) 422
422 widebut = widebut*3/2;
423 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 423 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
424 // QSizePolicy::Fixed ) ); 424 // QSizePolicy::Fixed ) );
425 mExpandButton->setFixedSize( widebut, widebut); 425 mExpandButton->setFixedSize( widebut, widebut);
426 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 426 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
427 mExpandButton->setFocusPolicy(NoFocus); 427 mExpandButton->setFocusPolicy(NoFocus);
428 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 428 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
429 mAllDayAgenda->setFocusPolicy(NoFocus); 429 mAllDayAgenda->setFocusPolicy(NoFocus);
430 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame); 430 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
431 431
432 // Create event context menu for all day agenda 432 // Create event context menu for all day agenda
433 mAllDayAgendaPopup = eventPopup(); 433 mAllDayAgendaPopup = eventPopup();
434 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 434 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
435 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 435 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
436 436
437 // Create agenda frame 437 // Create agenda frame
438 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3); 438 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3);
439 // QHBox *agendaFrame = new QHBox(splitterAgenda); 439 // QHBox *agendaFrame = new QHBox(splitterAgenda);
440 440
441 // create event indicator bars 441 // create event indicator bars
442 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 442 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
443#ifndef DESKTOP_VERSION 443#ifndef DESKTOP_VERSION
444 // FIX 444 // FIX
445 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 445 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
446#endif 446#endif
447 mDayLabelsFrame = new QHBox(agendaFrame); 447 mDayLabelsFrame = new QHBox(agendaFrame);
448 //topLayout->addWidget(mDayLabelsFrame); 448 //topLayout->addWidget(mDayLabelsFrame);
449 mDayLabels = new QFrame (mDayLabelsFrame); 449 mDayLabels = new QFrame (mDayLabelsFrame);
450 mLayoutDayLabels = new QHBoxLayout(mDayLabels); 450 mLayoutDayLabels = new QHBoxLayout(mDayLabels);
451 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2); 451 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2);
452 agendaLayout->addWidget(mEventIndicatorTop,1,1); 452 agendaLayout->addWidget(mEventIndicatorTop,1,1);
453 453
454 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 454 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
455 agendaFrame); 455 agendaFrame);
456 agendaLayout->addWidget(mEventIndicatorBottom,3,1); 456 agendaLayout->addWidget(mEventIndicatorBottom,3,1);
457 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 457 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
458 agendaLayout->addWidget(dummyAgendaRight,1,2); 458 agendaLayout->addWidget(dummyAgendaRight,1,2);
459 459
460 // Create time labels 460 // Create time labels
461 mTimeLabels = new TimeLabels(24,agendaFrame); 461 mTimeLabels = new TimeLabels(24,agendaFrame);
462 agendaLayout->addWidget(mTimeLabels,2,0); 462 agendaLayout->addWidget(mTimeLabels,2,0);
463 connect(mTimeLabels,SIGNAL( scaleChanged()), 463 connect(mTimeLabels,SIGNAL( scaleChanged()),
464 this,SLOT(updateConfig())); 464 this,SLOT(updateConfig()));
465 465
466 // Create agenda 466 // Create agenda
467 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); 467 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame);
468 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2); 468 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2);
469 agendaLayout->setColStretch(1,1); 469 agendaLayout->setColStretch(1,1);
470 mAgenda->setFocusPolicy(NoFocus); 470 mAgenda->setFocusPolicy(NoFocus);
@@ -672,97 +672,97 @@ void KOAgendaView::createDayLabels()
672 int selCount = mSelectedDates.count(); 672 int selCount = mSelectedDates.count();
673 QString dayTest = "Mon 20"; 673 QString dayTest = "Mon 20";
674 //QString dayTest = "Mon 20"; 674 //QString dayTest = "Mon 20";
675 int wid = fm.width( dayTest ); 675 int wid = fm.width( dayTest );
676 //maxWid -= ( selCount * 3 ); //working for QLabels 676 //maxWid -= ( selCount * 3 ); //working for QLabels
677 maxWid -= ( selCount * 3 ); //working for QPushButton 677 maxWid -= ( selCount * 3 ); //working for QPushButton
678 if ( maxWid < 0 ) 678 if ( maxWid < 0 )
679 maxWid = 20; 679 maxWid = 20;
680 int needWid = wid * selCount; 680 int needWid = wid * selCount;
681 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 681 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
682 //if ( needWid > maxWid ) 682 //if ( needWid > maxWid )
683 // qDebug("DAYLABELS TOOOOOOO BIG "); 683 // qDebug("DAYLABELS TOOOOOOO BIG ");
684 while ( needWid > maxWid ) { 684 while ( needWid > maxWid ) {
685 dayTest = dayTest.left( dayTest.length() - 1 ); 685 dayTest = dayTest.left( dayTest.length() - 1 );
686 wid = fm.width( dayTest ); 686 wid = fm.width( dayTest );
687 needWid = wid * selCount; 687 needWid = wid * selCount;
688 } 688 }
689 int maxLen = dayTest.length(); 689 int maxLen = dayTest.length();
690 int fontPoint = dlf.pointSize(); 690 int fontPoint = dlf.pointSize();
691 if ( maxLen < 2 ) { 691 if ( maxLen < 2 ) {
692 int fontPoint = dlf.pointSize(); 692 int fontPoint = dlf.pointSize();
693 while ( fontPoint > 4 ) { 693 while ( fontPoint > 4 ) {
694 --fontPoint; 694 --fontPoint;
695 dlf.setPointSize( fontPoint ); 695 dlf.setPointSize( fontPoint );
696 QFontMetrics f( dlf ); 696 QFontMetrics f( dlf );
697 wid = f.width( "30" ); 697 wid = f.width( "30" );
698 needWid = wid * selCount; 698 needWid = wid * selCount;
699 if ( needWid < maxWid ) 699 if ( needWid < maxWid )
700 break; 700 break;
701 } 701 }
702 maxLen = 2; 702 maxLen = 2;
703 } 703 }
704 //qDebug("Max len %d ", dayTest.length() ); 704 //qDebug("Max len %d ", dayTest.length() );
705 705
706 QFontMetrics tempF( dlf ); 706 QFontMetrics tempF( dlf );
707 newHight = tempF.height(); 707 newHight = tempF.height();
708 mDayLabels->setFont( dlf ); 708 mDayLabels->setFont( dlf );
709 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 709 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
710 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 710 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
711 //mLayoutDayLabels->addSpacing( 2 ); 711 //mLayoutDayLabels->addSpacing( 2 );
712 // QFont lFont = dlf; 712 // QFont lFont = dlf;
713 bool appendLabels = false; 713 bool appendLabels = false;
714 KOAgendaButton *dayLabel; 714 KOAgendaButton *dayLabel;
715 dayLabel = mDayLabelsList.first(); 715 dayLabel = mDayLabelsList.first();
716 if ( !dayLabel ) { 716 if ( !dayLabel ) {
717 appendLabels = true; 717 appendLabels = true;
718 dayLabel = getNewDaylabel(); 718 dayLabel = getNewDaylabel();
719 } 719 }
720 dayLabel->setFixedWidth( mTimeLabels->width()+2 ); 720 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() );
721 dayLabel->setFont( dlf ); 721 dayLabel->setFont( dlf );
722 dayLabel->setNum( -1 ); 722 dayLabel->setNum( -1 );
723 //dayLabel->setAlignment(QLabel::AlignHCenter); 723 //dayLabel->setAlignment(QLabel::AlignHCenter);
724 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 724 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
725 dayLabel->show(); 725 dayLabel->show();
726 DateList::ConstIterator dit; 726 DateList::ConstIterator dit;
727 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 727 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
728 int counter = -1; 728 int counter = -1;
729 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 729 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
730 ++counter; 730 ++counter;
731 QDate date = *dit; 731 QDate date = *dit;
732 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 732 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
733 if ( ! appendLabels ) { 733 if ( ! appendLabels ) {
734 dayLabel = mDayLabelsList.next(); 734 dayLabel = mDayLabelsList.next();
735 if ( !dayLabel ) 735 if ( !dayLabel )
736 appendLabels = true; 736 appendLabels = true;
737 } 737 }
738 if ( appendLabels ) { 738 if ( appendLabels ) {
739 dayLabel = getNewDaylabel(); 739 dayLabel = getNewDaylabel();
740 } 740 }
741 dayLabel->setMinimumWidth( 1 ); 741 dayLabel->setMinimumWidth( 1 );
742 dayLabel->setMaximumWidth( 10240 ); 742 dayLabel->setMaximumWidth( 10240 );
743 dayLabel->setFont( dlf ); 743 dayLabel->setFont( dlf );
744 dayLabel->show(); 744 dayLabel->show();
745 dayLabel->setAutoRepeat( false ); 745 dayLabel->setAutoRepeat( false );
746 dayLabel->setNum( counter ); 746 dayLabel->setNum( counter );
747 QString str; 747 QString str;
748 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 748 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
749 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 749 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
750 switch ( maxLen ) { 750 switch ( maxLen ) {
751 case 2: 751 case 2:
752 str = QString::number( date.day() ); 752 str = QString::number( date.day() );
753 break; 753 break;
754 754
755 case 3: 755 case 3:
756 str = dayName.left( 1 ) +QString::number( date.day()); 756 str = dayName.left( 1 ) +QString::number( date.day());
757 757
758 break; 758 break;
759 case 4: 759 case 4:
760 str = dayName.left( 1 ) + " " +QString::number( date.day()); 760 str = dayName.left( 1 ) + " " +QString::number( date.day());
761 761
762 break; 762 break;
763 case 5: 763 case 5:
764 str = dayName.left( 2 ) + " " +QString::number( date.day()); 764 str = dayName.left( 2 ) + " " +QString::number( date.day());
765 765
766 break; 766 break;
767 case 6: 767 case 6:
768 str = dayName.left( 3 ) + " " +QString::number( date.day()); 768 str = dayName.left( 3 ) + " " +QString::number( date.day());
@@ -783,98 +783,98 @@ void KOAgendaView::createDayLabels()
783 addString = i18n("Day before yesterday"); 783 addString = i18n("Day before yesterday");
784 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 784 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
785 addString = i18n("Day after tomorrow"); 785 addString = i18n("Day after tomorrow");
786 if ( !addString.isEmpty() ) { 786 if ( !addString.isEmpty() ) {
787 str = addString+", " + str; 787 str = addString+", " + str;
788 } else { 788 } else {
789 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer); 789 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer);
790 } 790 }
791 } 791 }
792 dayLabel->setText(str); 792 dayLabel->setText(str);
793 //dayLabel->setAlignment(QLabel::AlignHCenter); 793 //dayLabel->setAlignment(QLabel::AlignHCenter);
794 if (date == QDate::currentDate()) { 794 if (date == QDate::currentDate()) {
795 QFont bFont = dlf; 795 QFont bFont = dlf;
796 bFont.setBold( true ); 796 bFont.setBold( true );
797 dayLabel->setFont(bFont); 797 dayLabel->setFont(bFont);
798 } 798 }
799 //dayLayout->addWidget(dayLabel); 799 //dayLayout->addWidget(dayLabel);
800 800
801#ifndef KORG_NOPLUGINS 801#ifndef KORG_NOPLUGINS
802 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 802 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
803 CalendarDecoration *it; 803 CalendarDecoration *it;
804 for(it = cds.first(); it; it = cds.next()) { 804 for(it = cds.first(); it; it = cds.next()) {
805 QString text = it->shortText( date ); 805 QString text = it->shortText( date );
806 if ( !text.isEmpty() ) { 806 if ( !text.isEmpty() ) {
807 QLabel *label = new QLabel(text,mDayLabels); 807 QLabel *label = new QLabel(text,mDayLabels);
808 label->setAlignment(AlignCenter); 808 label->setAlignment(AlignCenter);
809 dayLayout->addWidget(label); 809 dayLayout->addWidget(label);
810 } 810 }
811 } 811 }
812 812
813 for(it = cds.first(); it; it = cds.next()) { 813 for(it = cds.first(); it; it = cds.next()) {
814 QWidget *wid = it->smallWidget(mDayLabels,date); 814 QWidget *wid = it->smallWidget(mDayLabels,date);
815 if ( wid ) { 815 if ( wid ) {
816 // wid->setHeight(20); 816 // wid->setHeight(20);
817 dayLayout->addWidget(wid); 817 dayLayout->addWidget(wid);
818 } 818 }
819 } 819 }
820#endif 820#endif
821 } 821 }
822 if ( ! appendLabels ) { 822 if ( ! appendLabels ) {
823 dayLabel = mDayLabelsList.next(); 823 dayLabel = mDayLabelsList.next();
824 if ( !dayLabel ) 824 if ( !dayLabel )
825 appendLabels = true; 825 appendLabels = true;
826 } 826 }
827 if ( appendLabels ) { 827 if ( appendLabels ) {
828 dayLabel = getNewDaylabel(); 828 dayLabel = getNewDaylabel();
829 } 829 }
830 //dayLabel->hide();//test only 830 //dayLabel->hide();//test only
831 831 qDebug("fremwidd %d ", mAgenda->frameWidth());
832 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; 832 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()- (mAgenda->frameWidth()*2) ) % mSelectedDates.count() ;
833 if ( offset < 0 ) offset = 0; 833 if ( offset < 0 ) offset = 0;
834 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 834 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
835 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); 835 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
836 dayLabel->setFont( dlf ); 836 dayLabel->setFont( dlf );
837 dayLabel->setAutoRepeat( true ); 837 dayLabel->setAutoRepeat( true );
838 dayLabel->show(); 838 dayLabel->show();
839 dayLabel->setNum( -2 ); 839 dayLabel->setNum( -2 );
840 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 840 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
841 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 841 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);
842 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 842 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
843 if ( !appendLabels ) { 843 if ( !appendLabels ) {
844 dayLabel = mDayLabelsList.next(); 844 dayLabel = mDayLabelsList.next();
845 while ( dayLabel ) { 845 while ( dayLabel ) {
846 //qDebug("!dayLabel %d",dayLabel ); 846 //qDebug("!dayLabel %d",dayLabel );
847 dayLabel->hide(); 847 dayLabel->hide();
848 dayLabel = mDayLabelsList.next(); 848 dayLabel = mDayLabelsList.next();
849 } 849 }
850 } 850 }
851 851
852 mDayLabelsFrame->setFixedHeight( newHight + 4 ); 852 mDayLabelsFrame->setFixedHeight( newHight + 4 );
853} 853}
854 854
855int KOAgendaView::maxDatesHint() 855int KOAgendaView::maxDatesHint()
856{ 856{
857 // Not sure about the max number of events, so return 0 for now. 857 // Not sure about the max number of events, so return 0 for now.
858 return 0; 858 return 0;
859} 859}
860 860
861int KOAgendaView::currentDateCount() 861int KOAgendaView::currentDateCount()
862{ 862{
863 return mSelectedDates.count(); 863 return mSelectedDates.count();
864} 864}
865 865
866QPtrList<Incidence> KOAgendaView::selectedIncidences() 866QPtrList<Incidence> KOAgendaView::selectedIncidences()
867{ 867{
868 QPtrList<Incidence> selected; 868 QPtrList<Incidence> selected;
869 Incidence *incidence; 869 Incidence *incidence;
870 870
871 incidence = mAgenda->selectedIncidence(); 871 incidence = mAgenda->selectedIncidence();
872 if (incidence) selected.append(incidence); 872 if (incidence) selected.append(incidence);
873 873
874 incidence = mAllDayAgenda->selectedIncidence(); 874 incidence = mAllDayAgenda->selectedIncidence();
875 if (incidence) selected.append(incidence); 875 if (incidence) selected.append(incidence);
876 876
877 return selected; 877 return selected;
878} 878}
879 879
880DateList KOAgendaView::selectedDates() 880DateList KOAgendaView::selectedDates()