-rw-r--r-- | korganizer/kotodoview.cpp | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index ccc4b01..0a315cb 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -202,35 +202,46 @@ void KOTodoListView::contentsDropEvent(QDropEvent *e) e->ignore(); } } #endif } void KOTodoListView::contentsMousePressEvent(QMouseEvent* e) { -#ifndef KORG_NODND + QPoint p(contentsToViewport(e->pos())); QListViewItem *i = itemAt(p); - mMousePressed = false; + bool rootClicked = true; if (i) { // if the user clicked into the root decoration of the item, don't // try to start a drag! - if (p.x() > header()->sectionPos(header()->mapToIndex(0)) + + int X = p.x(); + //qDebug("%d %d %d", X, header()->sectionPos(0), treeStepSize() ); + if (X > header()->sectionPos(0) + treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) + itemMargin() || - p.x() < header()->sectionPos(header()->mapToIndex(0))) { - if (e->button()==Qt::LeftButton) { - mPressPos = e->pos(); - mMousePressed = true; + X < header()->sectionPos(0)) { + rootClicked = false; } } +#ifndef KORG_NODND + mMousePressed = false; + if (! rootClicked ) { + mPressPos = e->pos(); + mMousePressed = true; } #endif + //qDebug("KOTodoListView::contentsMousePressEvent %d", rootClicked); +#ifndef DESKTOP_VERSION + if (!( e->button() == RightButton && rootClicked) ) + QListView::contentsMousePressEvent(e); +#else QListView::contentsMousePressEvent(e); +#endif } void KOTodoListView::paintEvent(QPaintEvent* e) { emit paintNeeded(); QListView::paintEvent( e); } void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e) { @@ -1058,28 +1069,36 @@ void KOTodoView::changedCategories(int index) } } void KOTodoView::itemDoubleClicked(QListViewItem *item) { if ( pendingSubtodo != 0 ) { topLevelWidget()->setCaption(i18n("Reparenting aborted!")); } pendingSubtodo = 0; + int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); + //qDebug("ROW %d ", row); if (!item) { newTodo(); return; + } else { + if ( row == 1 ) { + mActiveItem = (KOTodoViewItem *) item; + newSubTodo(); + return; + } } if ( KOPrefs::instance()->mEditOnDoubleClick ) editItem( item ); else showItem( item , QPoint(), 0 ); } void KOTodoView::itemClicked(QListViewItem *item) { - + //qDebug("KOTodoView::itemClicked %d", item); if (!item) { if ( pendingSubtodo != 0 ) { topLevelWidget()->setCaption(i18n("Reparenting aborted!")); } pendingSubtodo = 0; return; } KOTodoViewItem *todoItem = (KOTodoViewItem *)item; |