summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 99f547a..667ff2a 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -1,469 +1,477 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qhbox.h> 24#include <qhbox.h>
25#include <qvbox.h> 25#include <qvbox.h>
26#include <qlabel.h> 26#include <qlabel.h>
27#include <qframe.h> 27#include <qframe.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#ifndef KORG_NOSPLITTER 29#ifndef KORG_NOSPLITTER
30#include <qsplitter.h> 30#include <qsplitter.h>
31#endif 31#endif
32#include <qfont.h> 32#include <qfont.h>
33#include <qfontmetrics.h> 33#include <qfontmetrics.h>
34#include <qpopupmenu.h> 34#include <qpopupmenu.h>
35#include <qtooltip.h> 35#include <qtooltip.h>
36#include <qpainter.h> 36#include <qpainter.h>
37#include <qpushbutton.h> 37#include <qpushbutton.h>
38#include <qapplication.h> 38#include <qapplication.h>
39 39
40#include <kapplication.h> 40#include <kapplication.h>
41#include <KDGanttMinimizeSplitter.h> 41#include <KDGanttMinimizeSplitter.h>
42#include <kdebug.h> 42#include <kdebug.h>
43#include <kstandarddirs.h> 43#include <kstandarddirs.h>
44#include <kiconloader.h> 44#include <kiconloader.h>
45#include <klocale.h> 45#include <klocale.h>
46#include <kconfig.h> 46#include <kconfig.h>
47#include <kglobal.h> 47#include <kglobal.h>
48#include "calendarview.h" 48#include "calendarview.h"
49#include "koviewmanager.h" 49#include "koviewmanager.h"
50 50
51#include <libkcal/calendar.h> 51#include <libkcal/calendar.h>
52#include <libkcal/icaldrag.h> 52#include <libkcal/icaldrag.h>
53#include <libkcal/dndfactory.h> 53#include <libkcal/dndfactory.h>
54 54
55#include <kcalendarsystem.h> 55#include <kcalendarsystem.h>
56 56
57#include "koglobals.h" 57#include "koglobals.h"
58#ifndef KORG_NOPLUGINS 58#ifndef KORG_NOPLUGINS
59#include "kocore.h" 59#include "kocore.h"
60#endif 60#endif
61#include "koprefs.h" 61#include "koprefs.h"
62#include "koagenda.h" 62#include "koagenda.h"
63#include "koagendaitem.h" 63#include "koagendaitem.h"
64#ifndef KORG_NOPRINTER 64#ifndef KORG_NOPRINTER
65#include "calprinter.h" 65#include "calprinter.h"
66#endif 66#endif
67 67
68#include "koagendaview.h" 68#include "koagendaview.h"
69//#include "koagendaview.moc" 69//#include "koagendaview.moc"
70 70
71//extern bool globalFlagBlockPainting; 71//extern bool globalFlagBlockPainting;
72extern int globalFlagBlockAgenda; 72extern 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 mRedrawNeeded = true;
122 if ( mRedrawNeeded ) { 122 if ( mRedrawNeeded ) {
123 cx = contentsX() + frameWidth()*2; 123 cx = contentsX() + frameWidth()*2;
124 cw = contentsWidth() ; 124 cw = contentsWidth() ;
125 // end of workaround 125 // end of workaround
126 126
127 int cell = ((int)(cy/mCellHeight)); 127 int cell = ((int)(cy/mCellHeight));
128 int y = cell * mCellHeight; 128 int y = cell * mCellHeight;
129 QFontMetrics fm = fontMetrics(); 129 QFontMetrics fm = fontMetrics();
130 QString hour; 130 QString hour;
131 QString suffix; 131 QString suffix;
132 int timeHeight = fm.ascent(); 132 int timeHeight = fm.ascent();
133 QFont nFont = p->font(); 133 QFont nFont = p->font();
134 134
135 if (!KGlobal::locale()->use12Clock()) 135 if (!KGlobal::locale()->use12Clock())
136 suffix = "00"; 136 suffix = "00";
137 137
138 if ( timeHeight > mCellHeight ) { 138 if ( timeHeight > mCellHeight ) {
139 timeHeight = mCellHeight-1; 139 timeHeight = mCellHeight-1;
140 int pointS = nFont.pointSize(); 140 int pointS = nFont.pointSize();
141 while ( pointS > 4 ) { 141 while ( pointS > 4 ) {
142 nFont.setPointSize( pointS ); 142 nFont.setPointSize( pointS );
143 fm = QFontMetrics( nFont ); 143 fm = QFontMetrics( nFont );
144 if ( fm.ascent() < mCellHeight ) 144 if ( fm.ascent() < mCellHeight )
145 break; 145 break;
146 -- pointS; 146 -- pointS;
147 } 147 }
148 fm = QFontMetrics( nFont ); 148 fm = QFontMetrics( nFont );
149 timeHeight = fm.ascent(); 149 timeHeight = fm.ascent();
150 } 150 }
151 //timeHeight -= (timeHeight/4-2); 151 //timeHeight -= (timeHeight/4-2);
152 QFont sFont = nFont; 152 QFont sFont = nFont;
153 sFont.setPointSize( sFont.pointSize()/2 ); 153 sFont.setPointSize( sFont.pointSize()/2 );
154 QFontMetrics fmS( sFont ); 154 QFontMetrics fmS( sFont );
155 int sHei = fmS.ascent() ; 155 int sHei = fmS.ascent() ;
156 //sHei -= (sHei/4-2); 156 //sHei -= (sHei/4-2);
157 int startW = this->width() - 2*frameWidth()-1; 157 int startW = this->width() - frameWidth()-2;
158 int tw2 = fmS.width(suffix); 158 int tw2 = fmS.width(suffix);
159 while (y < cy + ch) { 159 while (y < cy + ch) {
160 p->drawLine(cx,y,cw,y); 160 p->drawLine(cx,y,cw,y);
161 hour.setNum(cell); 161 hour.setNum(cell);
162 162
163 // handle 24h and am/pm time formats 163 // handle 24h and am/pm time formats
164 if (KGlobal::locale()->use12Clock()) { 164 if (KGlobal::locale()->use12Clock()) {
165 if (cell > 11) suffix = "pm"; 165 if (cell > 11) suffix = "pm";
166 else 166 else
167 suffix = "am"; 167 suffix = "am";
168 if (cell == 0) hour.setNum(12); 168 if (cell == 0) hour.setNum(12);
169 if (cell > 12) hour.setNum(cell - 12); 169 if (cell > 12) hour.setNum(cell - 12);
170 tw2 = fmS.width(suffix); 170 tw2 = fmS.width(suffix);
171 } 171 }
172 172
173 // center and draw the time label 173 // center and draw the time label
174 int timeWidth = fm.width(hour); 174 int timeWidth = fm.width(hour);
175 int offset = startW - timeWidth - tw2 ; 175 int offset = startW - timeWidth - tw2 ;
176 p->setFont( nFont ); 176 p->setFont( nFont );
177 p->drawText( offset, y+ timeHeight, hour); 177 p->drawText( offset, y+ timeHeight, hour);
178 p->setFont( sFont ); 178 p->setFont( sFont );
179 offset = startW - tw2+1; 179 offset = startW - tw2+1;
180 p->drawText( offset, y+ sHei, suffix); 180 p->drawText( offset, y+ sHei, suffix);
181 181
182 // increment indices 182 // increment indices
183 y += mCellHeight; 183 y += mCellHeight;
184 cell++; 184 cell++;
185 } 185 }
186 } else { 186 } else {
187 //qDebug("NO redraw "); 187 //qDebug("NO redraw ");
188 } 188 }
189 // double buffer not yet implemented 189 // double buffer not yet implemented
190 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP); 190 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP);
191 //mRedrawNeeded = false; 191 //mRedrawNeeded = false;
192} 192}
193 193
194/** 194/**
195 Calculates the minimum width. 195 Calculates the minimum width.
196*/ 196*/
197int TimeLabels::minimumWidth() const 197int TimeLabels::minimumWidth() const
198{ 198{
199 return mMiniWidth; 199 return mMiniWidth;
200} 200}
201 201
202/** updates widget's internal state */ 202/** updates widget's internal state */
203void TimeLabels::updateConfig() 203void TimeLabels::updateConfig()
204{ 204{
205 mRedrawNeeded = true; 205 mRedrawNeeded = true;
206 // set the font 206 // set the font
207 // config->setGroup("Fonts"); 207 // config->setGroup("Fonts");
208 // QFont font = config->readFontEntry("TimeBar Font"); 208 // QFont font = config->readFontEntry("TimeBar Font");
209 setFont(KOPrefs::instance()->mTimeBarFont); 209 setFont(KOPrefs::instance()->mTimeBarFont);
210 QString test = "20oo"; 210 QString test = "20";
211 if (KGlobal::locale()->use12Clock()) 211 if (KGlobal::locale()->use12Clock())
212 test = "12mi"; 212 test = "12";
213 mMiniWidth = fontMetrics().width(test) + frameWidth()*2 +1 ; 213 mMiniWidth = fontMetrics().width(test);
214 if (KGlobal::locale()->use12Clock())
215 test = "pm";
216 else
217 test = "00";
218 QFont sFont = font();
219 sFont.setPointSize( sFont.pointSize()/2 );
220 QFontMetrics fmS( sFont );
221 mMiniWidth += fmS.width( test ) + frameWidth()*2 +4 ;
214 // update geometry restrictions based on new settings 222 // update geometry restrictions based on new settings
215 setFixedWidth( mMiniWidth ); 223 setFixedWidth( mMiniWidth );
216 224
217 // update HourSize 225 // update HourSize
218 mCellHeight = KOPrefs::instance()->mHourSize*4; 226 mCellHeight = KOPrefs::instance()->mHourSize*4;
219 resizeContents(50,mRows * mCellHeight); 227 resizeContents(50,mRows * mCellHeight);
220} 228}
221 229
222/** update time label positions */ 230/** update time label positions */
223void TimeLabels::positionChanged() 231void TimeLabels::positionChanged()
224{ 232{
225 int adjustment = mAgenda->contentsY(); 233 int adjustment = mAgenda->contentsY();
226 setContentsPos(0, adjustment); 234 setContentsPos(0, adjustment);
227} 235}
228 236
229/** */ 237/** */
230void TimeLabels::setAgenda(KOAgenda* agenda) 238void TimeLabels::setAgenda(KOAgenda* agenda)
231{ 239{
232 mAgenda = agenda; 240 mAgenda = agenda;
233} 241}
234 242
235void TimeLabels::contentsMousePressEvent ( QMouseEvent * e) 243void TimeLabels::contentsMousePressEvent ( QMouseEvent * e)
236{ 244{
237 mMouseDownY = e->pos().y(); 245 mMouseDownY = e->pos().y();
238 mOrgCap = topLevelWidget()->caption(); 246 mOrgCap = topLevelWidget()->caption();
239} 247}
240 248
241void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e ) 249void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e )
242{ 250{
243 int diff = mMouseDownY - e->pos().y(); 251 int diff = mMouseDownY - e->pos().y();
244 if ( diff < 10 && diff > -10 ) 252 if ( diff < 10 && diff > -10 )
245 return; 253 return;
246 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ; 254 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ;
247 if ( tSize < 4 ) 255 if ( tSize < 4 )
248 tSize = 4; 256 tSize = 4;
249 if ( tSize > 22 ) 257 if ( tSize > 22 )
250 tSize = 22; 258 tSize = 22;
251 tSize = (tSize-2)/2; 259 tSize = (tSize-2)/2;
252 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize)); 260 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize));
253 261
254} 262}
255void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e ) 263void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e )
256{ 264{
257 topLevelWidget()->setCaption( mOrgCap ); 265 topLevelWidget()->setCaption( mOrgCap );
258 int diff = mMouseDownY - e->pos().y(); 266 int diff = mMouseDownY - e->pos().y();
259 if ( diff < 10 && diff > -10 ) 267 if ( diff < 10 && diff > -10 )
260 return; 268 return;
261 int tSize = KOPrefs::instance()->mHourSize + (diff/10); 269 int tSize = KOPrefs::instance()->mHourSize + (diff/10);
262 if ( tSize < 4 ) 270 if ( tSize < 4 )
263 tSize = 4; 271 tSize = 4;
264 if ( tSize > 22 ) 272 if ( tSize > 22 )
265 tSize = 22; 273 tSize = 22;
266 tSize = (tSize/2)*2; 274 tSize = (tSize/2)*2;
267 if ( tSize == KOPrefs::instance()->mHourSize ) 275 if ( tSize == KOPrefs::instance()->mHourSize )
268 return; 276 return;
269 KOPrefs::instance()->mHourSize = tSize; 277 KOPrefs::instance()->mHourSize = tSize;
270 emit scaleChanged(); 278 emit scaleChanged();
271} 279}
272 280
273/** This is called in response to repaint() */ 281/** This is called in response to repaint() */
274void TimeLabels::paintEvent(QPaintEvent*) 282void TimeLabels::paintEvent(QPaintEvent*)
275{ 283{
276 284
277 // kdDebug() << "paintevent..." << endl; 285 // kdDebug() << "paintevent..." << endl;
278 // this is another hack! 286 // this is another hack!
279 // QPainter painter(this); 287 // QPainter painter(this);
280 //QString c 288 //QString c
281 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight()); 289 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight());
282} 290}
283 291
284//////////////////////////////////////////////////////////////////////////// 292////////////////////////////////////////////////////////////////////////////
285 293
286EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name) 294EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name)
287 : QFrame(parent,name) 295 : QFrame(parent,name)
288{ 296{
289 mColumns = 1; 297 mColumns = 1;
290 mTopBox = 0; 298 mTopBox = 0;
291 mLocation = loc; 299 mLocation = loc;
292 mTopLayout = 0; 300 mTopLayout = 0;
293 mPaintWidget = 0; 301 mPaintWidget = 0;
294 mXOffset = 0; 302 mXOffset = 0;
295 if (mLocation == Top) mPixmap = SmallIcon("1uparrow"); 303 if (mLocation == Top) mPixmap = SmallIcon("1uparrow");
296 else mPixmap = SmallIcon("1downarrow"); 304 else mPixmap = SmallIcon("1downarrow");
297 mEnabled.resize(mColumns); 305 mEnabled.resize(mColumns);
298 mEnabled.fill( false ); 306 mEnabled.fill( false );
299 setMinimumHeight(mPixmap.height()); 307 setMinimumHeight(mPixmap.height());
300} 308}
301 309
302EventIndicator::~EventIndicator() 310EventIndicator::~EventIndicator()
303{ 311{
304} 312}
305 313
306void EventIndicator::drawContents(QPainter *p) 314void EventIndicator::drawContents(QPainter *p)
307{ 315{
308 316
309 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl; 317 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl;
310 KDGanttSplitterHandle* han = 0; 318 KDGanttSplitterHandle* han = 0;
311 if ( mPaintWidget ) 319 if ( mPaintWidget )
312 han = mPaintWidget->firstHandle(); 320 han = mPaintWidget->firstHandle();
313 if ( ! han ) { 321 if ( ! han ) {
314 int i; 322 int i;
315 for(i=0;i<mColumns;++i) { 323 for(i=0;i<mColumns;++i) {
316 if (mEnabled[i]) { 324 if (mEnabled[i]) {
317 int cellWidth = contentsRect().right()/mColumns; 325 int cellWidth = contentsRect().right()/mColumns;
318 int xOffset = KOGlobals::self()->reverseLayout() ? 326 int xOffset = KOGlobals::self()->reverseLayout() ?
319 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 : 327 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 :
320 i*cellWidth + (cellWidth -mPixmap.width()) /2; 328 i*cellWidth + (cellWidth -mPixmap.width()) /2;
321 p->drawPixmap(QPoint(1+xOffset,0),mPixmap); 329 p->drawPixmap(QPoint(1+xOffset,0),mPixmap);
322 } 330 }
323 } 331 }
324 } else { 332 } else {
325 han->repaint(); 333 han->repaint();
326 //mPaintWidget->setBackgroundColor( red ); 334 //mPaintWidget->setBackgroundColor( red );
327 335
328 QPainter pa( han ); 336 QPainter pa( han );
329 int i; 337 int i;
330 bool setColor = false; 338 bool setColor = false;
331 for(i=0;i<mColumns;++i) { 339 for(i=0;i<mColumns;++i) {
332 if (mEnabled[i]) { 340 if (mEnabled[i]) {
333 setColor = true; 341 setColor = true;
334 342
335 int cellWidth = contentsRect().right()/mColumns; 343 int cellWidth = contentsRect().right()/mColumns;
336 int xOffset = KOGlobals::self()->reverseLayout() ? 344 int xOffset = KOGlobals::self()->reverseLayout() ?
337 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 : 345 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 :
338 i*cellWidth + cellWidth/2 -mPixmap.width()/2; 346 i*cellWidth + cellWidth/2 -mPixmap.width()/2;
339 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap); 347 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap);
340 //qDebug("222draw pix %d ",xOffset ); 348 //qDebug("222draw pix %d ",xOffset );
341 349
342 } 350 }
343 351
344 } 352 }
345 pa.end(); 353 pa.end();
346 354
347 } 355 }
348} 356}
349 357
350void EventIndicator::setXOffset( int x ) 358void EventIndicator::setXOffset( int x )
351{ 359{
352 mXOffset = x; 360 mXOffset = x;
353} 361}
354void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w ) 362void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w )
355{ 363{
356 mPaintWidget = w; 364 mPaintWidget = w;
357 setMaximumHeight(0); 365 setMaximumHeight(0);
358 setMinimumHeight(0); 366 setMinimumHeight(0);
359} 367}
360void EventIndicator::changeColumns(int columns) 368void EventIndicator::changeColumns(int columns)
361{ 369{
362 mColumns = columns; 370 mColumns = columns;
363 mEnabled.resize(mColumns); 371 mEnabled.resize(mColumns);
364 372
365 update(); 373 update();
366} 374}
367 375
368void EventIndicator::enableColumn(int column, bool enable) 376void EventIndicator::enableColumn(int column, bool enable)
369{ 377{
370 mEnabled[column] = enable; 378 mEnabled[column] = enable;
371} 379}
372 380
373 381
374//////////////////////////////////////////////////////////////////////////// 382////////////////////////////////////////////////////////////////////////////
375//////////////////////////////////////////////////////////////////////////// 383////////////////////////////////////////////////////////////////////////////
376//////////////////////////////////////////////////////////////////////////// 384////////////////////////////////////////////////////////////////////////////
377 385
378KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : 386KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
379 KOEventView (cal,parent,name) 387 KOEventView (cal,parent,name)
380{ 388{
381 mBlockUpdating = true; 389 mBlockUpdating = true;
382 mStartHour = 8; 390 mStartHour = 8;
383 mSelectedDates.append(QDate::currentDate()); 391 mSelectedDates.append(QDate::currentDate());
384 392
385 mLayoutDayLabels = 0; 393 mLayoutDayLabels = 0;
386 mDayLabelsFrame = 0; 394 mDayLabelsFrame = 0;
387 mDayLabels = 0; 395 mDayLabels = 0;
388 bool isRTL = KOGlobals::self()->reverseLayout(); 396 bool isRTL = KOGlobals::self()->reverseLayout();
389 QPixmap expandPix; 397 QPixmap expandPix;
390 if ( KOPrefs::instance()->mVerticalScreen ) { 398 if ( KOPrefs::instance()->mVerticalScreen ) {
391 expandPix = SmallIcon( "1updownarrow" ); 399 expandPix = SmallIcon( "1updownarrow" );
392 } else { 400 } else {
393 expandPix = SmallIcon("1leftrightarrow" ); 401 expandPix = SmallIcon("1leftrightarrow" );
394 } 402 }
395 403
396 QBoxLayout *topLayout = new QVBoxLayout(this); 404 QBoxLayout *topLayout = new QVBoxLayout(this);
397 405
398 // Create day name labels for agenda columns 406 // Create day name labels for agenda columns
399 // Create agenda splitter 407 // Create agenda splitter
400 408
401 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this); 409 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this);
402 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 410 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
403 topLayout->addWidget( mSplitterAgenda ); 411 topLayout->addWidget( mSplitterAgenda );
404 mAllDayFrame = new QHBox(mSplitterAgenda); 412 mAllDayFrame = new QHBox(mSplitterAgenda);
405 mAllDayFrame->setFocusPolicy(NoFocus); 413 mAllDayFrame->setFocusPolicy(NoFocus);
406 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 414 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
407 agendaFrame->setFocusPolicy(NoFocus); 415 agendaFrame->setFocusPolicy(NoFocus);
408 416
409 // Create all-day agenda widget 417 // Create all-day agenda widget
410 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 418 mDummyAllDayLeft = new QVBox( mAllDayFrame );
411 419
412 mExpandButton = new QPushButton(mDummyAllDayLeft); 420 mExpandButton = new QPushButton(mDummyAllDayLeft);
413 mExpandButton->setPixmap( expandPix ); 421 mExpandButton->setPixmap( expandPix );
414 int widebut = mExpandButton->sizeHint().width()+4; 422 int widebut = mExpandButton->sizeHint().width()+4;
415 int heibut = mExpandButton->sizeHint().height()+4; 423 int heibut = mExpandButton->sizeHint().height()+4;
416 if ( heibut > widebut ) 424 if ( heibut > widebut )
417 widebut = heibut ; 425 widebut = heibut ;
418 426
419 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 427 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
420 // QSizePolicy::Fixed ) ); 428 // QSizePolicy::Fixed ) );
421 mExpandButton->setFixedSize( widebut, widebut); 429 mExpandButton->setFixedSize( widebut, widebut);
422 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 430 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
423 mExpandButton->setFocusPolicy(NoFocus); 431 mExpandButton->setFocusPolicy(NoFocus);
424 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 432 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
425 mAllDayAgenda->setFocusPolicy(NoFocus); 433 mAllDayAgenda->setFocusPolicy(NoFocus);
426 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame); 434 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
427 435
428 // Create event context menu for all day agenda 436 // Create event context menu for all day agenda
429 mAllDayAgendaPopup = eventPopup(); 437 mAllDayAgendaPopup = eventPopup();
430 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 438 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
431 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 439 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
432 440
433 // Create agenda frame 441 // Create agenda frame
434 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3); 442 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3);
435 // QHBox *agendaFrame = new QHBox(splitterAgenda); 443 // QHBox *agendaFrame = new QHBox(splitterAgenda);
436 444
437 // create event indicator bars 445 // create event indicator bars
438 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 446 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
439#ifndef DESKTOP_VERSION 447#ifndef DESKTOP_VERSION
440 // FIX 448 // FIX
441 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 449 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
442#endif 450#endif
443 mDayLabelsFrame = new QHBox(agendaFrame); 451 mDayLabelsFrame = new QHBox(agendaFrame);
444 //topLayout->addWidget(mDayLabelsFrame); 452 //topLayout->addWidget(mDayLabelsFrame);
445 mDayLabels = new QFrame (mDayLabelsFrame); 453 mDayLabels = new QFrame (mDayLabelsFrame);
446 mLayoutDayLabels = new QHBoxLayout(mDayLabels); 454 mLayoutDayLabels = new QHBoxLayout(mDayLabels);
447 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2); 455 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2);
448 agendaLayout->addWidget(mEventIndicatorTop,1,1); 456 agendaLayout->addWidget(mEventIndicatorTop,1,1);
449 457
450 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 458 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
451 agendaFrame); 459 agendaFrame);
452 agendaLayout->addWidget(mEventIndicatorBottom,3,1); 460 agendaLayout->addWidget(mEventIndicatorBottom,3,1);
453 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 461 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
454 agendaLayout->addWidget(dummyAgendaRight,1,2); 462 agendaLayout->addWidget(dummyAgendaRight,1,2);
455 463
456 // Create time labels 464 // Create time labels
457 mTimeLabels = new TimeLabels(24,agendaFrame); 465 mTimeLabels = new TimeLabels(24,agendaFrame);
458 agendaLayout->addWidget(mTimeLabels,2,0); 466 agendaLayout->addWidget(mTimeLabels,2,0);
459 connect(mTimeLabels,SIGNAL( scaleChanged()), 467 connect(mTimeLabels,SIGNAL( scaleChanged()),
460 this,SLOT(updateConfig())); 468 this,SLOT(updateConfig()));
461 469
462 // Create agenda 470 // Create agenda
463 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); 471 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame);
464 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2); 472 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2);
465 agendaLayout->setColStretch(1,1); 473 agendaLayout->setColStretch(1,1);
466 mAgenda->setFocusPolicy(NoFocus); 474 mAgenda->setFocusPolicy(NoFocus);
467 // Create event context menu for agenda 475 // Create event context menu for agenda
468 mAgendaPopup = eventPopup(); 476 mAgendaPopup = eventPopup();
469 477