-rw-r--r-- | korganizer/koagenda.cpp | 30 | ||||
-rw-r--r-- | korganizer/koagenda.h | 4 | ||||
-rw-r--r-- | korganizer/koagendaitem.cpp | 5 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 31 | ||||
-rw-r--r-- | korganizer/koagendaview.h | 5 |
5 files changed, 65 insertions, 10 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 0280c74..c339b57 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp | |||
@@ -59,8 +59,9 @@ extern int globalFlagBlockAgenda; | |||
59 | extern int globalFlagBlockAgendaItemPaint; | 59 | extern int globalFlagBlockAgendaItemPaint; |
60 | extern int globalFlagBlockAgendaItemUpdate; | 60 | extern int globalFlagBlockAgendaItemUpdate; |
61 | extern int globalFlagBlockStartup; | 61 | extern int globalFlagBlockStartup; |
62 | 62 | ||
63 | bool KOAgenda::mInvalidPixmap = false; | ||
63 | //////////////////////////////////////////////////////////////////////////// | 64 | //////////////////////////////////////////////////////////////////////////// |
64 | MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name) | 65 | MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name) |
65 | : QFrame(_agenda->viewport(),name), agenda(_agenda) | 66 | : QFrame(_agenda->viewport(),name), agenda(_agenda) |
66 | { | 67 | { |
@@ -177,8 +178,9 @@ KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent, | |||
177 | //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); | 178 | //QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); |
178 | #endif | 179 | #endif |
179 | mHolidayMask = 0; | 180 | mHolidayMask = 0; |
180 | init(); | 181 | init(); |
182 | connect ( this, SIGNAL (contentsMoving ( int , int ) ), this, SLOT ( slotContentMove(int,int)) ); | ||
181 | } | 183 | } |
182 | 184 | ||
183 | /* | 185 | /* |
184 | Create an agenda widget with columns columns and one row. This is used for | 186 | Create an agenda widget with columns columns and one row. This is used for |
@@ -316,10 +318,26 @@ void KOAgenda::init() | |||
316 | addChild(mMarcusBains); | 318 | addChild(mMarcusBains); |
317 | } | 319 | } |
318 | mPopupKind = 0; | 320 | mPopupKind = 0; |
319 | mPopupItem = 0; | 321 | mPopupItem = 0; |
322 | mInvalidPixmap = false; | ||
323 | |||
320 | } | 324 | } |
321 | 325 | ||
326 | void KOAgenda::shrinkPixmap() | ||
327 | { | ||
328 | mPaintPixmap.resize( 20,20); | ||
329 | mInvalidPixmap = true; | ||
330 | } | ||
331 | void KOAgenda::slotContentMove(int,int) | ||
332 | { | ||
333 | if ( mActionType == NOP ) | ||
334 | slotClearSelection(); | ||
335 | if ( mSelectedItem && !mActionItem ) { | ||
336 | deselectItem(); | ||
337 | emit incidenceSelected( 0 ); | ||
338 | } | ||
339 | } | ||
322 | void KOAgenda::clear() | 340 | void KOAgenda::clear() |
323 | { | 341 | { |
324 | KOAgendaItem *item; | 342 | KOAgendaItem *item; |
325 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { | 343 | for ( item=mItems.first(); item != 0; item=mItems.next() ) { |
@@ -921,8 +939,9 @@ void KOAgenda::performItemAction(QPoint viewportPos) | |||
921 | int x,y; | 939 | int x,y; |
922 | gridToContents(moveItem->cellX(),moveItem->cellYTop(),x,y); | 940 | gridToContents(moveItem->cellX(),moveItem->cellYTop(),x,y); |
923 | moveItem->resize(mGridSpacingX * moveItem->cellWidth(), | 941 | moveItem->resize(mGridSpacingX * moveItem->cellWidth(), |
924 | mGridSpacingY * moveItem->cellHeight()); | 942 | mGridSpacingY * moveItem->cellHeight()); |
943 | moveItem->raise(); | ||
925 | moveChild(moveItem,x,y); | 944 | moveChild(moveItem,x,y); |
926 | moveItem = moveItem->nextMultiItem(); | 945 | moveItem = moveItem->nextMultiItem(); |
927 | } | 946 | } |
928 | } else if (mActionType == RESIZETOP) { | 947 | } else if (mActionType == RESIZETOP) { |
@@ -1243,8 +1262,15 @@ void KOAgenda::placeSubCells(KOAgendaItem *placeItem) | |||
1243 | void KOAgenda::drawContents(QPainter* p, int cx, int cy, int cw, int ch) | 1262 | void KOAgenda::drawContents(QPainter* p, int cx, int cy, int cw, int ch) |
1244 | { | 1263 | { |
1245 | if ( globalFlagBlockAgenda ) | 1264 | if ( globalFlagBlockAgenda ) |
1246 | return; | 1265 | return; |
1266 | |||
1267 | if ( mInvalidPixmap ) { | ||
1268 | mInvalidPixmap = false; | ||
1269 | qDebug("InvalidPixmap "); | ||
1270 | QTimer::singleShot( 0, this, SIGNAL( updateViewSignal() )); | ||
1271 | return; | ||
1272 | } | ||
1247 | if ( ! mAllDayMode ) { | 1273 | if ( ! mAllDayMode ) { |
1248 | // currently not working for | 1274 | // currently not working for |
1249 | 1275 | ||
1250 | //qDebug("KOAgenda::drawContents "); | 1276 | //qDebug("KOAgenda::drawContents "); |
@@ -1915,15 +1941,15 @@ void KOAgenda::computeSizes() | |||
1915 | int ch = contentsHeight(); | 1941 | int ch = contentsHeight(); |
1916 | if ( mAllDayMode ) { | 1942 | if ( mAllDayMode ) { |
1917 | QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); | 1943 | QPixmap* paintPixAll = KOAgendaItem::paintPixAllday(); |
1918 | if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) { | 1944 | if ( (paintPixAll->width() < cw || paintPixAll->height() < ch) && cw > 0 && ch > 0 ) { |
1919 | //qDebug("paintPixAll->resize "); | 1945 | qDebug("paintPixAll->resize "); |
1920 | paintPixAll->resize( cw, ch ); | 1946 | paintPixAll->resize( cw, ch ); |
1921 | } | 1947 | } |
1922 | } else { | 1948 | } else { |
1923 | QPixmap* paintPix = KOAgendaItem::paintPix(); | 1949 | QPixmap* paintPix = KOAgendaItem::paintPix(); |
1924 | if ( paintPix->width() < cw || paintPix->height() < ch ) { | 1950 | if ( paintPix->width() < cw || paintPix->height() < ch ) { |
1925 | //qDebug("paintPix->resize "); | 1951 | qDebug("paintPix->resize "); |
1926 | paintPix->resize( cw , ch ); | 1952 | paintPix->resize( cw , ch ); |
1927 | } | 1953 | } |
1928 | } | 1954 | } |
1929 | 1955 | ||
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h index de6acac..5d813b2 100644 --- a/korganizer/koagenda.h +++ b/korganizer/koagenda.h | |||
@@ -74,8 +74,9 @@ class KOAgenda : public QScrollView | |||
74 | const char * name=0, WFlags f=0 ); | 74 | const char * name=0, WFlags f=0 ); |
75 | KOAgenda ( int columns, QWidget * parent=0, | 75 | KOAgenda ( int columns, QWidget * parent=0, |
76 | const char * name=0, WFlags f=0 ); | 76 | const char * name=0, WFlags f=0 ); |
77 | virtual ~KOAgenda(); | 77 | virtual ~KOAgenda(); |
78 | static bool mInvalidPixmap; | ||
78 | 79 | ||
79 | Incidence *selectedIncidence() const; | 80 | Incidence *selectedIncidence() const; |
80 | QDate selectedIncidenceDate() const; | 81 | QDate selectedIncidenceDate() const; |
81 | 82 | ||
@@ -124,10 +125,12 @@ class KOAgenda : public QScrollView | |||
124 | void printSelection(); | 125 | void printSelection(); |
125 | void storePosition(); | 126 | void storePosition(); |
126 | void restorePosition(); | 127 | void restorePosition(); |
127 | void setPopup( KOEventPopupMenu * p ) { mAllAgendaPopup = p; } | 128 | void setPopup( KOEventPopupMenu * p ) { mAllAgendaPopup = p; } |
129 | void shrinkPixmap(); | ||
128 | 130 | ||
129 | public slots: | 131 | public slots: |
132 | void slotContentMove(int,int); | ||
130 | void categoryChanged(Incidence * inc); | 133 | void categoryChanged(Incidence * inc); |
131 | void slotClearSelection(); | 134 | void slotClearSelection(); |
132 | void popupMenu(); | 135 | void popupMenu(); |
133 | void newItem( int ); | 136 | void newItem( int ); |
@@ -169,8 +172,9 @@ class KOAgenda : public QScrollView | |||
169 | 172 | ||
170 | void startDragSignal(Incidence *); | 173 | void startDragSignal(Incidence *); |
171 | void addToCalSignal(Incidence *, Incidence *); | 174 | void addToCalSignal(Incidence *, Incidence *); |
172 | void resizedSignal(); | 175 | void resizedSignal(); |
176 | void updateViewSignal(); | ||
173 | 177 | ||
174 | protected: | 178 | protected: |
175 | KOEventPopupMenu * mAllAgendaPopup; | 179 | KOEventPopupMenu * mAllAgendaPopup; |
176 | QPainter mPixPainter; | 180 | QPainter mPixPainter; |
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index 8675ff6..303a92a 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp | |||
@@ -495,20 +495,17 @@ QPixmap * KOAgendaItem::paintPixAllday() | |||
495 | void KOAgendaItem::repaintItem() | 495 | void KOAgendaItem::repaintItem() |
496 | { | 496 | { |
497 | globalFlagBlockAgendaItemPaint = 0; | 497 | globalFlagBlockAgendaItemPaint = 0; |
498 | globalFlagBlockAgenda = 0; | 498 | globalFlagBlockAgenda = 0; |
499 | //qDebug("AAA "); | ||
500 | repaint( false ); | 499 | repaint( false ); |
501 | //qDebug("BBB "); | ||
502 | } | 500 | } |
503 | void KOAgendaItem::paintEvent ( QPaintEvent *e ) | 501 | void KOAgendaItem::paintEvent ( QPaintEvent *e ) |
504 | { | 502 | { |
505 | qDebug("CCC "); | 503 | |
506 | if ( globalFlagBlockAgendaItemPaint ) | 504 | if ( globalFlagBlockAgendaItemPaint ) |
507 | return; | 505 | return; |
508 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) | 506 | if ( globalFlagBlockAgenda > 0 && globalFlagBlockAgenda < 5 ) |
509 | return; | 507 | return; |
510 | qDebug("DDD "); | ||
511 | int yy; | 508 | int yy; |
512 | if ( mAllDay ) | 509 | if ( mAllDay ) |
513 | yy = y(); | 510 | yy = y(); |
514 | else | 511 | else |
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index f811fba..488d9d4 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp | |||
@@ -75,9 +75,9 @@ extern int globalFlagBlockAgendaItemPaint; | |||
75 | extern int globalFlagBlockAgendaItemUpdate; | 75 | extern int globalFlagBlockAgendaItemUpdate; |
76 | extern int globalFlagBlockLabel; | 76 | extern int globalFlagBlockLabel; |
77 | using namespace KOrg; | 77 | using namespace KOrg; |
78 | 78 | ||
79 | 79 | #define IDLETIMEOUT 3 | |
80 | 80 | ||
81 | TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) : | 81 | TimeLabels::TimeLabels(int rows,QWidget *parent,const char *name,WFlags f) : |
82 | QScrollView(parent,name,f) | 82 | QScrollView(parent,name,f) |
83 | { | 83 | { |
@@ -572,11 +572,34 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : | |||
572 | //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); | 572 | //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); |
573 | 573 | ||
574 | connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) ); | 574 | connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) ); |
575 | connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) ); | 575 | connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) ); |
576 | connect( mAllDayAgenda, SIGNAL( updateViewSignal() ),this, SLOT( fillAgenda()) ); | ||
577 | connect( mAgenda, SIGNAL( updateViewSignal() ), this, SLOT( fillAgenda()) ); | ||
576 | 578 | ||
579 | mIdleTimer = new QTimer ( this );; | ||
580 | connect(mIdleTimer,SIGNAL(timeout()),SLOT(slotIdleTimeout())); | ||
581 | } | ||
582 | void KOAgendaView::slotIdleTimeout() | ||
583 | { | ||
584 | qDebug("SECS TO %d ",mIdleStart.secsTo( QDateTime::currentDateTime() ) ); | ||
585 | int secsfromstart = mIdleStart.secsTo( QDateTime::currentDateTime() ); | ||
586 | mIdleTimer->stop(); | ||
587 | bool isActice = topLevelWidget()->isActiveWindow(); | ||
588 | qDebug("KO: Active Window %d ", isActice); | ||
589 | // we do nothing if we wake up from a suspend | ||
590 | if ( secsfromstart > IDLETIMEOUT + 50 && isActice ) { | ||
591 | qDebug("KO: Wakeup from suspend "); | ||
592 | mIdleTimer->start( IDLETIMEOUT * 1000 ); | ||
593 | return; | ||
594 | } | ||
595 | qDebug("KO: Downsizing Pixmaps "); | ||
596 | mAgenda->shrinkPixmap(); | ||
597 | mAllDayAgenda->shrinkPixmap(); | ||
598 | KOAgendaItem::paintPix()->resize( 20,20); | ||
599 | KOAgendaItem::paintPixAllday()->resize( 20,20); | ||
600 | |||
577 | } | 601 | } |
578 | |||
579 | void KOAgendaView::toggleAllDay() | 602 | void KOAgendaView::toggleAllDay() |
580 | { | 603 | { |
581 | if ( mSplitterAgenda->firstHandle() ) | 604 | if ( mSplitterAgenda->firstHandle() ) |
582 | mSplitterAgenda->firstHandle()->toggle(); | 605 | mSplitterAgenda->firstHandle()->toggle(); |
@@ -1297,8 +1320,10 @@ void KOAgendaView::fillAgenda() | |||
1297 | globalFlagBlockAgenda = 0; | 1320 | globalFlagBlockAgenda = 0; |
1298 | mAllDayAgenda->drawContentsToPainter(); | 1321 | mAllDayAgenda->drawContentsToPainter(); |
1299 | mAgenda->drawContentsToPainter(); | 1322 | mAgenda->drawContentsToPainter(); |
1300 | repaintAgenda(); | 1323 | repaintAgenda(); |
1324 | mIdleTimer->start ( IDLETIMEOUT *1000 ); | ||
1325 | mIdleStart = QDateTime::currentDateTime(); | ||
1301 | onlyOne = false; | 1326 | onlyOne = false; |
1302 | } | 1327 | } |
1303 | void KOAgendaView::repaintAgenda() | 1328 | void KOAgendaView::repaintAgenda() |
1304 | { | 1329 | { |
@@ -1340,9 +1365,9 @@ void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, | |||
1340 | 1365 | ||
1341 | void KOAgendaView::slotShowDateView( int mode , int d ) | 1366 | void KOAgendaView::slotShowDateView( int mode , int d ) |
1342 | { | 1367 | { |
1343 | if ( d >= mSelectedDates.count() ) { | 1368 | if ( d >= mSelectedDates.count() ) { |
1344 | qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() ); | 1369 | qDebug("KOAgendaView::slotShowDateView datecounterror %d %d ", d, mSelectedDates.count() ); |
1345 | 1370 | ||
1346 | } else { | 1371 | } else { |
1347 | QDate day = mSelectedDates[d]; | 1372 | QDate day = mSelectedDates[d]; |
1348 | emit showDateView(mode , day ); | 1373 | emit showDateView(mode , day ); |
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h index a1cf308..effd7a3 100644 --- a/korganizer/koagendaview.h +++ b/korganizer/koagendaview.h | |||
@@ -209,8 +209,9 @@ class KOAgendaView : public KOEventView { | |||
209 | void scrollOneHourUp(); | 209 | void scrollOneHourUp(); |
210 | void scrollOneHourDown(); | 210 | void scrollOneHourDown(); |
211 | void addToCalSlot(Incidence *, Incidence *); | 211 | void addToCalSlot(Incidence *, Incidence *); |
212 | void slotShowDateView( int, int ); | 212 | void slotShowDateView( int, int ); |
213 | void fillAgenda(); | ||
213 | 214 | ||
214 | signals: | 215 | signals: |
215 | void showDateView( int, QDate ); | 216 | void showDateView( int, QDate ); |
216 | void newTodoSignal( QDateTime ,bool ); | 217 | void newTodoSignal( QDateTime ,bool ); |
@@ -227,9 +228,8 @@ class KOAgendaView : public KOEventView { | |||
227 | /** Fill agenda beginning with date startDate */ | 228 | /** Fill agenda beginning with date startDate */ |
228 | void fillAgenda(const QDate &startDate); | 229 | void fillAgenda(const QDate &startDate); |
229 | void resizeEvent( QResizeEvent* e ); | 230 | void resizeEvent( QResizeEvent* e ); |
230 | /** Fill agenda using the current set value for the start date */ | 231 | /** Fill agenda using the current set value for the start date */ |
231 | void fillAgenda(); | ||
232 | 232 | ||
233 | /** Create labels for the selected dates. */ | 233 | /** Create labels for the selected dates. */ |
234 | void createDayLabels(); | 234 | void createDayLabels(); |
235 | 235 | ||
@@ -238,8 +238,9 @@ class KOAgendaView : public KOEventView { | |||
238 | */ | 238 | */ |
239 | void setHolidayMasks(); | 239 | void setHolidayMasks(); |
240 | 240 | ||
241 | protected slots: | 241 | protected slots: |
242 | void slotIdleTimeout(); | ||
242 | void categoryChanged( Incidence * ); | 243 | void categoryChanged( Incidence * ); |
243 | void slotDaylabelClicked( int ); | 244 | void slotDaylabelClicked( int ); |
244 | /** Update event belonging to agenda item */ | 245 | /** Update event belonging to agenda item */ |
245 | void updateEventDates(KOAgendaItem *item, int mode = -1); | 246 | void updateEventDates(KOAgendaItem *item, int mode = -1); |
@@ -253,8 +254,10 @@ class KOAgendaView : public KOEventView { | |||
253 | /** Updates data for selected timespan for all day event*/ | 254 | /** Updates data for selected timespan for all day event*/ |
254 | void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd); | 255 | void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd); |
255 | 256 | ||
256 | private: | 257 | private: |
258 | QTimer* mIdleTimer; | ||
259 | QDateTime mIdleStart; | ||
257 | // view widgets | 260 | // view widgets |
258 | QFrame *mDayLabels; | 261 | QFrame *mDayLabels; |
259 | QHBox *mDayLabelsFrame; | 262 | QHBox *mDayLabelsFrame; |
260 | QBoxLayout *mLayoutDayLabels; | 263 | QBoxLayout *mLayoutDayLabels; |