From: Karai C. <ck...@us...> - 2006-05-24 11:49:20
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv969/krusader_kde3/krusader/Panel Modified Files: krdetailedview.cpp krdetailedview.h Log Message: FIXED: [ 1483172 ] crash at refreshing the view during rename Index: krdetailedview.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.h,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** krdetailedview.h 2 Mar 2006 15:42:02 -0000 1.59 --- krdetailedview.h 24 May 2006 11:49:15 -0000 1.60 *************** *** 107,111 **** virtual void initOperator(); virtual KrViewItem *preAddItem(vfile *vf); ! virtual inline bool preDelItem(KrViewItem *item) { return true; } // nothing special to do void newColumn( KrDetailedViewProperties::ColumnType type ); void selectColumns(); --- 107,112 ---- virtual void initOperator(); virtual KrViewItem *preAddItem(vfile *vf); ! virtual bool preDelItem(KrViewItem *item); ! void newColumn( KrDetailedViewProperties::ColumnType type ); void selectColumns(); Index: krdetailedview.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.cpp,v retrieving revision 1.157 retrieving revision 1.158 diff -C2 -d -r1.157 -r1.158 *** krdetailedview.cpp 30 Apr 2006 19:18:30 -0000 1.157 --- krdetailedview.cpp 24 May 2006 11:49:14 -0000 1.158 *************** *** 271,274 **** --- 271,289 ---- } + bool KrDetailedView::preDelItem(KrViewItem *item) { + /* KDE HACK START - the renaming item is not disappeared after delete */ + /* solution: we send an ESC key event to terminate the rename */ + if( item ) { + QListViewItem * viewItem = dynamic_cast<QListViewItem*>( item ); + if( viewItem == currentlyRenamedItem ) { + currentlyRenamedItem = 0; + QKeyEvent escEvent( QEvent::KeyPress, Key_Escape, 27, 0 ); + QApplication::sendEvent( renameLineEdit(), &escEvent ); + } + } + /* KDE HACK END */ + return true; + } + void KrDetailedView::addItems( vfs *v, bool addUpDir ) { QListViewItem * item = firstChild(); *************** *** 352,356 **** void KrDetailedView::clear() { ! op()->emitSelectionChanged(); /* to avoid rename crash at refresh */ KListView::clear(); KrView::clear(); --- 367,380 ---- void KrDetailedView::clear() { ! /* KDE HACK START - the renaming item is not disappeared after clear */ ! /* solution: we send an ESC key event to terminate the rename */ ! if( currentlyRenamedItem ) { ! currentlyRenamedItem = 0; ! QKeyEvent escEvent( QEvent::KeyPress, Key_Escape, 27, 0 ); ! QApplication::sendEvent( renameLineEdit(), &escEvent ); ! } ! /* KDE HACK END */ ! ! op()->emitSelectionChanged(); /* to avoid rename crash at refresh */ KListView::clear(); KrView::clear(); *************** *** 1050,1056 **** item->setText( COLUMN( Extention ), QString::null ); repaintItem( item ); - currentlyRenamedItem = item; } renameLineEdit()->setBackgroundMode(Qt::FixedColor); renameLineEdit()->setPaletteBackgroundColor(Qt::white); --- 1074,1080 ---- item->setText( COLUMN( Extention ), QString::null ); repaintItem( item ); } + currentlyRenamedItem = item; renameLineEdit()->setBackgroundMode(Qt::FixedColor); renameLineEdit()->setPaletteBackgroundColor(Qt::white); *************** *** 1094,1097 **** --- 1118,1124 ---- void KrDetailedView::inplaceRenameFinished( QListViewItem * it, int ) { + if( currentlyRenamedItem == 0 ) + return; + if ( !it ) { // major failure - call developers krOut << "Major failure at inplaceRenameFinished(): item is null" << endl; |