From: <ck...@us...> - 2008-02-11 20:29:49
|
Revision: 2723 http://krusader.svn.sourceforge.net/krusader/?rev=2723&view=rev Author: ckarai Date: 2008-02-11 12:28:36 -0800 (Mon, 11 Feb 2008) Log Message: ----------- FIXED: menu key doesn't work for KrTreeWidget Modified Paths: -------------- trunk/krusader_kde4/krusader/DiskUsage/diskusage.cpp trunk/krusader_kde4/krusader/DiskUsage/diskusage.h trunk/krusader_kde4/krusader/DiskUsage/dufilelight.cpp trunk/krusader_kde4/krusader/DiskUsage/dulines.cpp trunk/krusader_kde4/krusader/DiskUsage/dulines.h trunk/krusader_kde4/krusader/DiskUsage/dulistview.cpp trunk/krusader_kde4/krusader/DiskUsage/dulistview.h trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp trunk/krusader_kde4/krusader/GUI/krtreewidget.h trunk/krusader_kde4/krusader/Locate/locate.cpp trunk/krusader_kde4/krusader/Locate/locate.h trunk/krusader_kde4/krusader/MountMan/kmountmangui.cpp trunk/krusader_kde4/krusader/MountMan/kmountmangui.h trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp trunk/krusader_kde4/krusader/Search/krsearchdialog.h trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.cpp trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.h Modified: trunk/krusader_kde4/krusader/DiskUsage/diskusage.cpp =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/diskusage.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/diskusage.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -768,7 +768,7 @@ return currentDirectory; } -void DiskUsage::rightClickMenu( File *fileItem, KMenu *addPopup, QString addPopupName ) +void DiskUsage::rightClickMenu( const QPoint & pos, File *fileItem, KMenu *addPopup, QString addPopupName ) { KMenu popup( this ); @@ -843,7 +843,7 @@ QAction * menu = popup.addMenu( &viewPopup ); menu->setText( i18n( "View" ) ); - QAction * res = popup.exec(QCursor::pos()); + QAction * res = popup.exec( pos ); if( actionHash.contains( res ) ) executeAction( actionHash[ res ], fileItem ); Modified: trunk/krusader_kde4/krusader/DiskUsage/diskusage.h =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/diskusage.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/diskusage.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -93,7 +93,7 @@ QString getToolTip( File * ); - void rightClickMenu( File *, KMenu * = 0, QString = QString() ); + void rightClickMenu( const QPoint &, File *, KMenu * = 0, QString = QString() ); void changeDirectory( Directory *dir ); Modified: trunk/krusader_kde4/krusader/DiskUsage/dufilelight.cpp =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/dufilelight.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/dufilelight.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -120,7 +120,7 @@ filelightPopup.insertItem( i18n("Minimum font size"), this, SLOT( minFontSize() ) ); - diskUsage->rightClickMenu( file, &filelightPopup, i18n( "Filelight" ) ); + diskUsage->rightClickMenu( event->globalPos(), file, &filelightPopup, i18n( "Filelight" ) ); return; }else if( event->button() == Qt::LeftButton ) { Modified: trunk/krusader_kde4/krusader/DiskUsage/dulines.cpp =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/dulines.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/dulines.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -227,8 +227,8 @@ connect( header(), SIGNAL( sectionResized( int, int, int ) ), this, SLOT( sectionResized( int ) ) ); connect( header(), SIGNAL( sectionAutoResize ( int, QHeaderView::ResizeMode ) ), this, SLOT( sectionResized( int ) ) ); - connect( this, SIGNAL( itemRightClicked ( QTreeWidgetItem*, int ) ), - this, SLOT( slotRightClicked(QTreeWidgetItem *) ) ); + connect( this, SIGNAL( itemRightClicked ( QTreeWidgetItem*, const QPoint &, int ) ), + this, SLOT( slotRightClicked(QTreeWidgetItem *, const QPoint &) ) ); connect( diskUsage, SIGNAL( changed( File * ) ), this, SLOT( slotChanged( File * ) ) ); connect( diskUsage, SIGNAL( deleted( File * ) ), this, SLOT( slotDeleted( File * ) ) ); @@ -484,7 +484,7 @@ KrTreeWidget::keyPressEvent( e ); } -void DULines::slotRightClicked( QTreeWidgetItem *item ) +void DULines::slotRightClicked( QTreeWidgetItem *item, const QPoint &pos ) { File * file = 0; @@ -495,7 +495,7 @@ int lid = linesPopup.insertItem( i18n("Show file sizes"), this, SLOT( slotShowFileSizes() ) ); linesPopup.setItemChecked( lid, showFileSize ); - diskUsage->rightClickMenu( file, &linesPopup, i18n( "Lines" ) ); + diskUsage->rightClickMenu( pos, file, &linesPopup, i18n( "Lines" ) ); } void DULines::slotShowFileSizes() Modified: trunk/krusader_kde4/krusader/DiskUsage/dulines.h =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/dulines.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/dulines.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -54,7 +54,7 @@ public slots: void slotDirChanged( Directory *dirEntry ); void sectionResized( int ); - void slotRightClicked(QTreeWidgetItem *); + void slotRightClicked(QTreeWidgetItem *, const QPoint &); void slotChanged( File * ); void slotDeleted( File * ); void slotShowFileSizes(); Modified: trunk/krusader_kde4/krusader/DiskUsage/dulistview.cpp =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/dulistview.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/dulistview.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -100,8 +100,8 @@ connect( diskUsage, SIGNAL( changed( File * ) ), this, SLOT( slotChanged( File * ) ) ); connect( diskUsage, SIGNAL( deleted( File * ) ), this, SLOT( slotDeleted( File * ) ) ); - connect( this, SIGNAL( itemRightClicked ( QTreeWidgetItem*, int ) ), - this, SLOT( slotRightClicked(QTreeWidgetItem *) ) ); + connect( this, SIGNAL( itemRightClicked ( QTreeWidgetItem*, const QPoint &, int ) ), + this, SLOT( slotRightClicked(QTreeWidgetItem *, const QPoint &) ) ); connect( this, SIGNAL( itemExpanded ( QTreeWidgetItem * ) ), this, SLOT( slotExpanded( QTreeWidgetItem * ) ) ); } @@ -209,14 +209,14 @@ delete duItem; } -void DUListView::slotRightClicked( QTreeWidgetItem *item ) +void DUListView::slotRightClicked( QTreeWidgetItem *item, const QPoint & pos ) { File * file = 0; if ( item && item->text( 0 ) != ".." ) file = ((DUListViewItem *)item)->getFile(); - diskUsage->rightClickMenu( file ); + diskUsage->rightClickMenu( pos, file ); } bool DUListView::doubleClicked( QTreeWidgetItem * item ) Modified: trunk/krusader_kde4/krusader/DiskUsage/dulistview.h =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/dulistview.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/DiskUsage/dulistview.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -179,7 +179,7 @@ void slotDirChanged( Directory * ); void slotChanged( File * ); void slotDeleted( File * ); - void slotRightClicked(QTreeWidgetItem *); + void slotRightClicked(QTreeWidgetItem *, const QPoint &); void slotExpanded( QTreeWidgetItem * ); protected: Modified: trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp =================================================================== --- trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -46,21 +46,40 @@ bool KrTreeWidget::event ( QEvent * event ) { switch (event->type()) { + // HACK: QT 4 Context menu key isn't handled properly + case QEvent::ContextMenu: + { + if( currentItem() ) { + QRect r = visualItemRect( currentItem() ); + QPoint p = viewport()->mapToGlobal( QPoint( r.x() + 5, r.y() + 5 ) ); + + emit itemRightClicked( currentItem(), p, currentColumn() ); + return true; + } + } + break; case QEvent::KeyPress: { // HACK: QT 4 Ctrl+A bug fix: Ctrl+A doesn't work if QTreeWidget contains parent / child items QKeyEvent* ke = (QKeyEvent*) event; - if( ke->key() == Qt::Key_A && ke->modifiers() == Qt::ControlModifier ) + switch( ke->key() ) { - QAbstractItemView::SelectionMode mode = selectionMode(); + case Qt::Key_A: + if( ke->modifiers() == Qt::ControlModifier ) + { + QAbstractItemView::SelectionMode mode = selectionMode(); - if( mode == QAbstractItemView::ContiguousSelection || mode == QAbstractItemView::ExtendedSelection || - mode == QAbstractItemView::MultiSelection ) - { - selectAll(); - ke->accept(); - return true; + if( mode == QAbstractItemView::ContiguousSelection || mode == QAbstractItemView::ExtendedSelection || + mode == QAbstractItemView::MultiSelection ) + { + selectAll(); + ke->accept(); + return true; + } } + break; + default: + break; } } break; @@ -178,7 +197,7 @@ QTreeWidget::mousePressEvent( event ); - emit itemRightClicked( item, column ); + emit itemRightClicked( item, event->globalPos(), column ); } else QTreeWidget::mousePressEvent( event ); Modified: trunk/krusader_kde4/krusader/GUI/krtreewidget.h =================================================================== --- trunk/krusader_kde4/krusader/GUI/krtreewidget.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/GUI/krtreewidget.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -48,7 +48,7 @@ QTreeWidgetItem * item( const QModelIndex & ndx ) { return itemFromIndex( ndx ); } signals: - void itemRightClicked( QTreeWidgetItem * it, int column ); + void itemRightClicked( QTreeWidgetItem * it, const QPoint & pos, int column ); protected: virtual bool event ( QEvent * event ); Modified: trunk/krusader_kde4/krusader/Locate/locate.cpp =================================================================== --- trunk/krusader_kde4/krusader/Locate/locate.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Locate/locate.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -185,8 +185,8 @@ resultList->setSelectionMode( QAbstractItemView::ExtendedSelection ); resultList->setDragEnabled( true ); - connect( resultList,SIGNAL(itemRightClicked(QTreeWidgetItem *, int)), - this, SLOT(slotRightClick(QTreeWidgetItem *))); + connect( resultList,SIGNAL(itemRightClicked(QTreeWidgetItem *, const QPoint &, int)), + this, SLOT(slotRightClick(QTreeWidgetItem *, const QPoint &))); connect( resultList,SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotDoubleClick(QTreeWidgetItem *))); connect( resultList,SIGNAL(itemActivated(QTreeWidgetItem *, int)), @@ -373,7 +373,7 @@ collectedErr += QString::fromLocal8Bit( locateProc->readAllStandardError() ); } -void LocateDlg::slotRightClick(QTreeWidgetItem *item) +void LocateDlg::slotRightClick(QTreeWidgetItem *item, const QPoint &pos) { if ( !item ) return; @@ -394,7 +394,7 @@ QAction * actClip = popup.addAction(i18n("Copy selected to clipboard") ); - QAction * result = popup.exec(QCursor::pos()); + QAction * result = popup.exec( pos ); int ret = -1; Modified: trunk/krusader_kde4/krusader/Locate/locate.h =================================================================== --- trunk/krusader_kde4/krusader/Locate/locate.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Locate/locate.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -63,7 +63,7 @@ void processStderr(); void locateFinished(); void locateError(); - void slotRightClick(QTreeWidgetItem *); + void slotRightClick(QTreeWidgetItem *, const QPoint &); void slotDoubleClick(QTreeWidgetItem *); void updateFinished(); Modified: trunk/krusader_kde4/krusader/MountMan/kmountmangui.cpp =================================================================== --- trunk/krusader_kde4/krusader/MountMan/kmountmangui.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/MountMan/kmountmangui.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -79,8 +79,8 @@ // connections connect( mountList, SIGNAL( itemDoubleClicked( QTreeWidgetItem *, int ) ), this, SLOT( doubleClicked( QTreeWidgetItem * ) ) ); - connect( mountList, SIGNAL( itemRightClicked( QTreeWidgetItem *, int ) ), - this, SLOT( clicked( QTreeWidgetItem* ) ) ); + connect( mountList, SIGNAL( itemRightClicked( QTreeWidgetItem *, const QPoint &, int ) ), + this, SLOT( clicked( QTreeWidgetItem*, const QPoint & ) ) ); connect( mountList, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), this, SLOT( changeActive( QTreeWidgetItem * ) ) ); connect( mountList, SIGNAL( itemSelectionChanged() ), this, @@ -340,7 +340,7 @@ } // called when right-clicked on a filesystem -void KMountManGUI::clicked( QTreeWidgetItem *item ) { +void KMountManGUI::clicked( QTreeWidgetItem *item, const QPoint & pos ) { // these are the values that will exist in the menu #define MOUNT_ID 90 #define UNMOUNT_ID 91 @@ -387,7 +387,7 @@ QString mountPoint = system->mntPoint(); - QAction * res = popup.exec( QCursor::pos() ); + QAction * res = popup.exec( pos ); int result = -1; if( res && res->data().canConvert<int>() ) Modified: trunk/krusader_kde4/krusader/MountMan/kmountmangui.h =================================================================== --- trunk/krusader_kde4/krusader/MountMan/kmountmangui.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/MountMan/kmountmangui.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -68,7 +68,7 @@ protected slots: void doubleClicked( QTreeWidgetItem * ); - void clicked( QTreeWidgetItem * ); + void clicked( QTreeWidgetItem *, const QPoint & ); void changeActive(); void changeActive( QTreeWidgetItem * ); void checkMountChange(); // check whether the mount table was changed Modified: trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp =================================================================== --- trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -307,7 +307,7 @@ SLOT( resultClicked(QTreeWidgetItem*) ) ); connect( resultsList, SIGNAL( itemClicked(QTreeWidgetItem*, int) ), this, SLOT( resultClicked(QTreeWidgetItem*) ) ); - connect( resultsList, SIGNAL( itemRightClicked ( QTreeWidgetItem*, int ) ), this, SLOT( rightClickMenu( QTreeWidgetItem* ) ) ); + connect( resultsList, SIGNAL( itemRightClicked ( QTreeWidgetItem*, const QPoint &, int ) ), this, SLOT( rightClickMenu( QTreeWidgetItem*, const QPoint & ) ) ); connect( mainCloseBtn, SIGNAL( clicked() ), this, SLOT( closeDialog() ) ); connect( mainFeedToListBoxBtn, SIGNAL( clicked() ), this, SLOT( feedToListBox() ) ); @@ -578,7 +578,7 @@ } } -void KrSearchDialog::rightClickMenu( QTreeWidgetItem * item ) +void KrSearchDialog::rightClickMenu( QTreeWidgetItem * item, const QPoint &pos ) { // these are the values that will exist in the menu #define EDIT_FILE_ID 110 @@ -596,7 +596,7 @@ QAction *actEdit = popup.addAction(i18n("Edit File (F4)")); QAction *actClip = popup.addAction(i18n("Copy selected to clipboard")); - QAction *result=popup.exec(QCursor::pos()); + QAction *result=popup.exec( pos ); // check out the user's option if( result == actView ) Modified: trunk/krusader_kde4/krusader/Search/krsearchdialog.h =================================================================== --- trunk/krusader_kde4/krusader/Search/krsearchdialog.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Search/krsearchdialog.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -80,7 +80,7 @@ virtual void keyPressEvent(QKeyEvent *e); virtual void closeEvent(QCloseEvent *e); - virtual void rightClickMenu( QTreeWidgetItem* ); + virtual void rightClickMenu( QTreeWidgetItem*, const QPoint & ); virtual void resizeEvent( QResizeEvent *e ); protected slots: Modified: trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.cpp =================================================================== --- trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.cpp 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.cpp 2008-02-11 20:28:36 UTC (rev 2723) @@ -1507,8 +1507,8 @@ /* =============================== Connect table ================================ */ - connect( syncList,SIGNAL(itemRightClicked(QTreeWidgetItem *, int)), - this, SLOT(rightMouseClicked(QTreeWidgetItem *))); + connect( syncList,SIGNAL(itemRightClicked(QTreeWidgetItem *, const QPoint &, int)), + this, SLOT(rightMouseClicked(QTreeWidgetItem *, const QPoint &))); connect( syncList,SIGNAL(itemActivated(QTreeWidgetItem *, int)), this, SLOT(doubleClicked(QTreeWidgetItem *))); @@ -1690,7 +1690,7 @@ } } -void SynchronizerGUI::rightMouseClicked(QTreeWidgetItem *itemIn) +void SynchronizerGUI::rightMouseClicked(QTreeWidgetItem *itemIn, const QPoint &pos) { // these are the values that will exist in the menu #define EXCLUDE_ID 90 @@ -1786,7 +1786,7 @@ actHash[ myact ] = SYNCH_WITH_KGET_ID; } - QAction * res = popup.exec(QCursor::pos()); + QAction * res = popup.exec( pos ); int result=-1; if( actHash.contains( res ) ) Modified: trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.h =================================================================== --- trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.h 2008-02-11 00:23:07 UTC (rev 2722) +++ trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.h 2008-02-11 20:28:36 UTC (rev 2723) @@ -138,7 +138,7 @@ inline bool wasSynchronization() {return wasSync;} public slots: - void rightMouseClicked(QTreeWidgetItem *); + void rightMouseClicked(QTreeWidgetItem *, const QPoint &); void doubleClicked(QTreeWidgetItem *); void compare(); void synchronize(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |