*** kdelibs-3.4.2/kio/kfile/kfileiconview.cpp 2005-08-22 13:18:20.000000000 +0200 --- kdelibs-helio/kio/kfile/kfileiconview.cpp 2005-08-22 13:19:37.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include <kfileitem.h> #include <kiconeffect.h> #include <kglobalsettings.h> + #include <kdesktopfile.h> #include <kurldrag.h> #include <kio/previewjob.h> *************** *** 279,284 **** --- 280,286 ---- sig->activateMenu( 0, pos ); return; } + KFileIconViewItem *i = (KFileIconViewItem*) item; sig->activateMenu( i->fileInfo(), pos ); } *************** *** 335,340 **** --- 337,350 ---- void KFileIconView::insertItem( KFileItem *i ) { + if ( i->mimetype() == "application/x-desktop" ) + { + KDesktopFile df( i->url().path(), true ); + if ( df.readType() == "Link" ) + { + i->setName( df.readName() ); + } + } KFileView::insertItem( i ); QIconView* qview = static_cast<QIconView*>( this ); *************** *** 342,347 **** --- 352,358 ---- // we disable updates on the IconView for a while. qview->setUpdatesEnabled( false ); KFileIconViewItem *item = new KFileIconViewItem( qview, i ); + initItem( item, i, true ); qview->setUpdatesEnabled( true ); *************** *** 353,375 **** void KFileIconView::slotActivate( QIconViewItem *item ) { ! if ( !item ) ! return; ! const KFileItem *fi = ( (KFileIconViewItem*)item )->fileInfo(); ! if ( fi ) ! sig->activate( fi ); } void KFileIconView::selected( QIconViewItem *item ) { ! if ( !item || (KApplication::keyboardMouseState() & (ShiftButton | ControlButton)) != 0 ) ! return; ! ! if ( KGlobalSettings::singleClick() ) { const KFileItem *fi = ( (KFileIconViewItem*)item )->fileInfo(); ! if ( fi && (fi->isDir() || !onlyDoubleClickSelectsFiles()) ) ! sig->activate( fi ); ! } } void KFileIconView::setCurrentItem( const KFileItem *item ) --- 364,414 ---- void KFileIconView::slotActivate( QIconViewItem *item ) { ! if ( !item ) ! return; ! ! const KFileItem *fi = ( (KFileIconViewItem*)item )->fileInfo(); ! ! if ( fi->mimetype() == "application/x-desktop" ) ! { ! KDesktopFile df( fi->url().path(), true ); ! if ( df.readType() == "Link" ) ! { ! KURL lu( df.readURL() ); ! if ( lu.isLocalFile() ) ! { ! fi = new KFileItem( KURL( df.readURL() ), "inode/directory", S_IFDIR ); ! } ! } ! } ! if ( fi ) ! sig->activate( fi ); } void KFileIconView::selected( QIconViewItem *item ) { ! if ( !item || (KApplication::keyboardMouseState() & (ShiftButton | ControlButton)) != 0 ) ! return; ! const KFileItem *fi = ( (KFileIconViewItem*)item )->fileInfo(); ! if ( fi->mimetype() == "application/x-desktop" ) ! { ! KDesktopFile df( fi->url().path(), true ); ! if ( df.readType() == "Link" ) ! { ! KURL lu( df.readURL() ); ! if ( lu.isLocalFile() ) ! { ! fi = new KFileItem( KURL( df.readURL() ), "inode/directory", S_IFDIR ); ! } ! } ! } ! ! if ( KGlobalSettings::singleClick() ) ! { ! if ( fi && (fi->isDir() || !onlyDoubleClickSelectsFiles()) ) ! sig->activate( fi ); ! } } void KFileIconView::setCurrentItem( const KFileItem *item ) *** kdelibs-3.4.2/kio/kfile/kfiledetailview.cpp 2005-05-23 14:15:57.000000000 +0200 --- kdelibs-helio/kio/kfile/kfiledetailview.cpp 2005-08-22 13:01:22.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include <klocale.h> #include <kdebug.h> #include <kurldrag.h> + #include <kdesktopfile.h> #include "kfiledetailview.h" #include "config-kfile.h" *************** *** 209,214 **** --- 210,224 ---- { KFileView::insertItem( i ); + if ( i->mimetype() == "application/x-desktop" ) + { + KDesktopFile df( i->url().path(), true ); + if ( df.readType() == "Link" ) + { + i->setName( df.readName() ); + } + } + KFileListViewItem *item = new KFileListViewItem( (QListView*) this, i ); setSortingKey( item, i ); *************** *** 221,244 **** void KFileDetailView::slotActivate( QListViewItem *item ) { ! if ( !item ) ! return; ! ! const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo(); ! if ( fi ) ! sig->activate( fi ); } void KFileDetailView::selected( QListViewItem *item ) { ! if ( !item ) ! return; ! ! if ( KGlobalSettings::singleClick() ) { ! const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo(); ! if ( fi && (fi->isDir() || !onlyDoubleClickSelectsFiles()) ) ! sig->activate( fi ); ! } } void KFileDetailView::highlighted( QListViewItem *item ) --- 231,282 ---- void KFileDetailView::slotActivate( QListViewItem *item ) { ! if ( !item ) ! return; ! ! const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo(); ! ! if ( fi->mimetype() == "application/x-desktop" ) ! { ! KDesktopFile df( fi->url().path(), true ); ! if ( df.readType() == "Link" ) ! { ! KURL lu( df.readURL() ); ! if ( lu.isLocalFile() ) ! { ! fi = new KFileItem( KURL( df.readURL() ), "inode/directory", S_IFDIR ); ! } ! } ! } ! ! if ( fi ) ! sig->activate( fi ); } void KFileDetailView::selected( QListViewItem *item ) { ! if ( !item ) ! return; ! ! const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo(); ! if ( fi->mimetype() == "application/x-desktop" ) ! { ! KDesktopFile df( fi->url().path(), true ); ! if ( df.readType() == "Link" ) ! { ! KURL lu( df.readURL() ); ! if ( lu.isLocalFile() ) ! { ! fi = new KFileItem( KURL( df.readURL() ), "inode/directory", S_IFDIR ); ! } ! } ! } ! ! if ( KGlobalSettings::singleClick() ) ! { ! if ( fi && (fi->isDir() || !onlyDoubleClickSelectsFiles()) ) ! sig->activate( fi ); ! } } void KFileDetailView::highlighted( QListViewItem *item )