From: Karai C. <ck...@us...> - 2006-03-02 15:42:09
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19102/krusader_kde3/krusader/Panel Modified Files: krdetailedview.cpp krdetailedview.h Log Message: FIXED: single click doesn't work in TC selection mode Index: krdetailedview.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.h,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** krdetailedview.h 13 Oct 2005 15:49:45 -0000 1.58 --- krdetailedview.h 2 Mar 2006 15:42:02 -0000 1.59 *************** *** 169,172 **** --- 169,173 ---- QPoint contextMenuPoint; QListViewItem *currentlyRenamedItem; + QListViewItem *pressedItem; }; Index: krdetailedview.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.cpp,v retrieving revision 1.151 retrieving revision 1.152 diff -C2 -d -r1.151 -r1.152 *** krdetailedview.cpp 24 Feb 2006 08:30:12 -0000 1.151 --- krdetailedview.cpp 2 Mar 2006 15:42:02 -0000 1.152 *************** *** 89,93 **** KrDetailedView::KrDetailedView( QWidget *parent, bool &left, KConfig *cfg, const char *name ) : ! KListView( parent, name ), KrView( cfg ), _currDragItem( 0L ), currentlyRenamedItem( 0 ) { setWidget( this ); _nameInKConfig=QString( "KrDetailedView" ) + QString( ( left ? "Left" : "Right" ) ) ; --- 89,94 ---- KrDetailedView::KrDetailedView( QWidget *parent, bool &left, KConfig *cfg, const char *name ) : ! KListView( parent, name ), KrView( cfg ), _currDragItem( 0L ), currentlyRenamedItem( 0 ), ! pressedItem( 0 ) { setWidget( this ); _nameInKConfig=QString( "KrDetailedView" ) + QString( ( left ? "Left" : "Right" ) ) ; *************** *** 482,485 **** --- 483,488 ---- void KrDetailedView::contentsMousePressEvent( QMouseEvent * e ) { bool callDefaultHandler = true, processEvent = true, selectionChanged = false; + pressedItem = 0; + QListViewItem * oldCurrent = currentItem(); QListViewItem *newCurrent = itemAt( contentsToViewport( e->pos() ) ); *************** *** 608,612 **** --- 611,628 ---- if( name.isEmpty() || _dict.find( name ) == 0 ) // is the file still valid? newCurrent = 0; // if not, don't do any crash... + } else { + // emitting the missing signals from QListView::contentsMousePressEvent(); + // the right click signal is not emitted as it is used for selection + + QPoint vp = contentsToViewport( e->pos() ); + + if( !newCurrent || ( newCurrent && newCurrent->isEnabled() ) ) { + emit pressed( pressedItem = newCurrent ); + emit pressed( newCurrent, viewport()->mapToGlobal( vp ), 0 ); + } + + emit mouseButtonPressed( e->button(), newCurrent, viewport()->mapToGlobal( vp ), 0 ); } + // if (i != 0) // comment in, if click sould NOT select // setSelected(i, FALSE); *************** *** 629,632 **** --- 645,667 ---- contextMenuTimer.stop(); KListView::contentsMouseReleaseEvent( e ); + + if( pressedItem ) { + QPoint vp = contentsToViewport( e->pos() ); + QListViewItem *newCurrent = itemAt( vp ); + + if( pressedItem == newCurrent ) { + // emitting the missing signals from QListView::contentsMouseReleaseEvent(); + // the right click signal is not emitted as it is used for selection + + if( !newCurrent || ( newCurrent && newCurrent->isEnabled() ) ) { + emit clicked( newCurrent ); + emit clicked( newCurrent, viewport()->mapToGlobal( vp ), 0 ); + } + + emit mouseButtonClicked( e->button(), newCurrent, viewport()->mapToGlobal( vp ), 0 ); + } + + pressedItem = 0; + } } *************** *** 673,676 **** --- 708,716 ---- contextMenuTimer.stop(); } + // emitting the missing signals from QListView::contentsMouseMoveEvent(); + if( newItem ) + emit onItem( newItem ); + else + emit onViewport(); } else *************** *** 1134,1137 **** --- 1174,1178 ---- void KrDetailedView::slotMouseClicked( int button, QListViewItem * item, const QPoint&, int ) { + pressedItem = 0; // if the signals are emitted, don't emit twice at contentsMouseReleaseEvent if ( button == Qt::MidButton ) emit middleButtonClicked( item ); |