-rw-r--r-- | korganizer/koagenda.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 0aef929..ffa2678 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp | |||
@@ -429,46 +429,52 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) | |||
429 | startItemAction(viewportPos); | 429 | startItemAction(viewportPos); |
430 | startX = viewportPos.x(); | 430 | startX = viewportPos.x(); |
431 | startY = viewportPos.y(); | 431 | startY = viewportPos.y(); |
432 | block = true; | 432 | block = true; |
433 | } | 433 | } |
434 | } | 434 | } |
435 | } | 435 | } |
436 | } else { | 436 | } else { |
437 | selectItem(0); | 437 | selectItem(0); |
438 | mActionItem = 0; | 438 | mActionItem = 0; |
439 | if (me->button() == RightButton ) { | 439 | if (me->button() == RightButton ) { |
440 | blockNewEvent = true; | 440 | blockNewEvent = true; |
441 | //qDebug("right "); | 441 | block = false; |
442 | int x,y; | ||
443 | viewportToContents(viewportPos.x(),viewportPos.y(),x,y); | ||
444 | int gx,gy; | ||
445 | contentsToGrid(x,y,gx,gy); | ||
446 | mStartCellX = gx; | ||
447 | mStartCellY = gy; | ||
448 | mCurrentCellX = gx; | ||
449 | mCurrentCellY = gy; | ||
450 | mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) ); | ||
451 | |||
452 | } else { | 442 | } else { |
453 | blockNewEvent = false; | 443 | blockNewEvent = false; |
454 | setCursor(arrowCursor); | 444 | setCursor(arrowCursor); |
455 | startSelectAction(viewportPos); | 445 | startSelectAction(viewportPos); |
456 | } | 446 | } |
457 | } | 447 | } |
458 | break; | 448 | break; |
459 | 449 | ||
460 | case QEvent::MouseButtonRelease: | 450 | case QEvent::MouseButtonRelease: |
461 | //qDebug("QEvent::MouseButtonRelease: "); | 451 | //qDebug("QEvent::MouseButtonRelease: %d",blockNewEvent ); |
462 | if (me->button() == RightButton && block ) { | 452 | if (me->button() == RightButton && blockNewEvent && !block) { |
453 | int x,y; | ||
454 | viewportToContents(viewportPos.x(),viewportPos.y(),x,y); | ||
455 | int gx,gy; | ||
456 | contentsToGrid(x,y,gx,gy); | ||
457 | if ( mCurrentCellY < mStartCellY +1 ) { | ||
458 | //qDebug("mCurrentCellY %d mStartCellY %d ", mCurrentCellY,mStartCellY); | ||
459 | mCurrentCellX = gx; | ||
460 | mCurrentCellY = gy; | ||
461 | mStartCellX = gx; | ||
462 | mStartCellY = gy; | ||
463 | mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) ); | ||
464 | break; | ||
465 | } else { | ||
466 | blockNewEvent = false; | ||
467 | } | ||
468 | } else if (me->button() == RightButton && block ) { | ||
463 | if (object != viewport()) { | 469 | if (object != viewport()) { |
464 | mClickedItem = (KOAgendaItem *)object; | 470 | mClickedItem = (KOAgendaItem *)object; |
465 | if (mActionItem ) { | 471 | if (mActionItem ) { |
466 | endItemAction(); | 472 | endItemAction(); |
467 | } | 473 | } |
468 | if (mClickedItem) { | 474 | if (mClickedItem) { |
469 | selectItem(mClickedItem); | 475 | selectItem(mClickedItem); |
470 | emit showIncidencePopupSignal(mClickedItem->incidence()); | 476 | emit showIncidencePopupSignal(mClickedItem->incidence()); |
471 | } | 477 | } |
472 | } | 478 | } |
473 | break; | 479 | break; |
474 | } | 480 | } |
@@ -480,27 +486,26 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) | |||
480 | mScrollUpTimer.stop(); | 486 | mScrollUpTimer.stop(); |
481 | mScrollDownTimer.stop(); | 487 | mScrollDownTimer.stop(); |
482 | mActionItem->resetMove(); | 488 | mActionItem->resetMove(); |
483 | placeSubCells( mActionItem ); | 489 | placeSubCells( mActionItem ); |
484 | // emit startDragSignal( mActionItem->incidence() ); | 490 | // emit startDragSignal( mActionItem->incidence() ); |
485 | setCursor( arrowCursor ); | 491 | setCursor( arrowCursor ); |
486 | mActionItem = 0; | 492 | mActionItem = 0; |
487 | mActionType = NOP; | 493 | mActionType = NOP; |
488 | mItemMoved = 0; | 494 | mItemMoved = 0; |
489 | return true; | 495 | return true; |
490 | } | 496 | } |
491 | endItemAction(); | 497 | endItemAction(); |
492 | } else if ( mActionType == SELECT ) { | 498 | } else if ( mActionType == SELECT ) { |
493 | if (me->button() == RightButton ) { | 499 | if (me->button() == RightButton ) { |
494 | |||
495 | } else { | 500 | } else { |
496 | endSelectAction( !blockNewEvent ); | 501 | endSelectAction( !blockNewEvent ); |
497 | } | 502 | } |
498 | } | 503 | } |
499 | break; | 504 | break; |
500 | 505 | ||
501 | case QEvent::MouseMove: | 506 | case QEvent::MouseMove: |
502 | if (object != viewport()) { | 507 | if (object != viewport()) { |
503 | KOAgendaItem *moveItem = (KOAgendaItem *)object; | 508 | KOAgendaItem *moveItem = (KOAgendaItem *)object; |
504 | //qDebug("moveItem %d ",moveItem ); | 509 | //qDebug("moveItem %d ",moveItem ); |
505 | if (!moveItem->incidence()->isReadOnly() /*&& | 510 | if (!moveItem->incidence()->isReadOnly() /*&& |
506 | !moveItem->incidence()->recurrence()->doesRecur()*/ ) | 511 | !moveItem->incidence()->recurrence()->doesRecur()*/ ) |