From 252a2ec8b0f0f9cf20c947737087b24a8185b588 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Wed, 10 Jul 2024 18:56:16 +0900 Subject: Rename IO and network class nt* related files to equivalent tq* Signed-off-by: Michele Calgaro --- examples/fileiconview/fileiconview.doc | 4 +- examples/fileiconview/fileiconview.pro | 4 +- examples/fileiconview/main.cpp | 2 +- examples/fileiconview/mainwindow.cpp | 6 +- examples/fileiconview/qfileiconview.cpp | 835 ------------------------------- examples/fileiconview/qfileiconview.h | 170 ------- examples/fileiconview/tqfileiconview.cpp | 835 +++++++++++++++++++++++++++++++ examples/fileiconview/tqfileiconview.h | 170 +++++++ 8 files changed, 1013 insertions(+), 1013 deletions(-) delete mode 100644 examples/fileiconview/qfileiconview.cpp delete mode 100644 examples/fileiconview/qfileiconview.h create mode 100644 examples/fileiconview/tqfileiconview.cpp create mode 100644 examples/fileiconview/tqfileiconview.h (limited to 'examples/fileiconview') diff --git a/examples/fileiconview/fileiconview.doc b/examples/fileiconview/fileiconview.doc index 640b2f5f8..04c5cf448 100644 --- a/examples/fileiconview/fileiconview.doc +++ b/examples/fileiconview/fileiconview.doc @@ -15,13 +15,13 @@ Header file of the file icon view: - \include fileiconview/qfileiconview.h + \include fileiconview/tqfileiconview.h
Implementation of the file icon view: - \include fileiconview/qfileiconview.cpp + \include fileiconview/tqfileiconview.cpp
diff --git a/examples/fileiconview/fileiconview.pro b/examples/fileiconview/fileiconview.pro index 48e972d7c..0c018741b 100644 --- a/examples/fileiconview/fileiconview.pro +++ b/examples/fileiconview/fileiconview.pro @@ -7,9 +7,9 @@ DEPENDPATH = ../../include REQUIRES = iconview full-config HEADERS = mainwindow.h \ - qfileiconview.h \ + tqfileiconview.h \ ../dirview/dirview.h SOURCES = main.cpp \ mainwindow.cpp \ - qfileiconview.cpp \ + tqfileiconview.cpp \ ../dirview/dirview.cpp diff --git a/examples/fileiconview/main.cpp b/examples/fileiconview/main.cpp index 5ab4b4b06..b6d628236 100644 --- a/examples/fileiconview/main.cpp +++ b/examples/fileiconview/main.cpp @@ -8,7 +8,7 @@ *****************************************************************************/ #include "mainwindow.h" -#include "qfileiconview.h" +#include "tqfileiconview.h" #include diff --git a/examples/fileiconview/mainwindow.cpp b/examples/fileiconview/mainwindow.cpp index 032e95abb..e2f1e3982 100644 --- a/examples/fileiconview/mainwindow.cpp +++ b/examples/fileiconview/mainwindow.cpp @@ -8,7 +8,7 @@ *****************************************************************************/ #include "mainwindow.h" -#include "qfileiconview.h" +#include "tqfileiconview.h" #include "../dirview/dirview.h" #include @@ -19,8 +19,8 @@ #include #include #include -#include -#include +#include +#include static const char* cdtoparent_xpm[]={ "15 13 3 1", diff --git a/examples/fileiconview/qfileiconview.cpp b/examples/fileiconview/qfileiconview.cpp deleted file mode 100644 index acdc8f4c5..000000000 --- a/examples/fileiconview/qfileiconview.cpp +++ /dev/null @@ -1,835 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. -** -** This file is part of an example program for TQt. This example -** program may be used, distributed and modified without limitation. -** -*****************************************************************************/ - -#include "qfileiconview.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -static const char * file_icon[]={ - "32 32 17 1", - "# c #000000", - "a c #ffffff", - "j c #808080", - "n c #a0a0a4", - "g c #c0c0c0", - "m c #004000", - "o c #000000", - "l c #004040", - "k c #404000", - "i c #c0c000", - "h c #ffff00", - "b c #ffffc0", - "e c #ff8000", - "f c #c05800", - "c c #ffa858", - "d c #ffdca8", - ". c None", - "................................", - "................................", - "................................", - "................................", - ".............#....###...........", - "...###......#a##.#aba##.........", - "..#cdb#....#aaaa#aaaaaa##.......", - "..#ecdb#..#aaaa#aaaaaaaba##.....", - "..#fecdb##aaaa#aaaaaaaaaaab##...", - "...#fecdb#aaa#aaaaaaabaabaaaa##.", - "....#fecdb#a#baaaaa#baaaaaabaaa#", - ".....#fecdb#aaaaab#a##baaaaaaa#.", - ".....##fecdb#bbba#aaaa##baaab#..", - "....#bb#fecdb#ba#aaaaaaa##aa#...", - "...#bbbb#fecdb##aaabaaaaaa##....", - "..#bbbb#b#fecdb#aaaaaaabaaaa##..", - ".#bbbb#bbb#fecdg#aaaaaaaaaaaba#.", - "#hhbb#bbbbb#fegg#iiaaaaaaaaaaaa#", - "#jhhhklibbbk#ggj#aaiiaaaaaaaaa#j", - ".#mjhhhkmikab####aaabiiaaaaaa#j.", - "...##jhhhmaaibbaaiibaaaiiaab#n..", - ".....##j#baaaiiabaaiibaabaa#n...", - "......##baibaabiibaaaiiabb#j....", - "......#bbbbiiaabbiiaaaaabon.....", - ".....#bbbbbbbiiabbaiiaab#n......", - ".....#jbbbbbbbbiibaabba#n.......", - "......##jbbbbbbbbiiaabmj........", - "........##jbbbbbbbbbb#j.........", - "..........##nbbbbbbbmj..........", - "............##jbbbb#j...........", - "..............#mjj#n............", - "................##n............."}; - -static const char * folder_icon[]={ - "32 32 11 1", - "# c #000000", - "b c #c0c000", - "d c #585858", - "a c #ffff00", - "i c #400000", - "h c #a0a0a4", - "e c #000000", - "c c #ffffff", - "f c #303030", - "g c #c0c0c0", - ". c None", - "...###..........................", - "...#aa##........................", - ".###baaa##......................", - ".#cde#baaa##....................", - ".#cccdeebaaa##..##f.............", - ".#cccccdeebaaa##aaa##...........", - ".#cccccccdeebaaaaaaaa##.........", - ".#cccccccccdeebababaaa#.........", - ".#cccccgcgghhebbbbbbbaa#........", - ".#ccccccgcgggdebbbbbbba#........", - ".#cccgcgcgcgghdeebiebbba#.......", - ".#ccccgcggggggghdeddeeba#.......", - ".#cgcgcgcggggggggghghdebb#......", - ".#ccgcggggggggghghghghd#b#......", - ".#cgcgcggggggggghghghhd#b#......", - ".#gcggggggggghghghhhhhd#b#......", - ".#cgcggggggggghghghhhhd#b#......", - ".#ggggggggghghghhhhhhhdib#......", - ".#gggggggggghghghhhhhhd#b#......", - ".#hhggggghghghhhhhhhhhd#b#......", - ".#ddhhgggghghghhhhhhhhd#b#......", - "..##ddhhghghhhhhhhhhhhdeb#......", - "....##ddhhhghhhhhhhhhhd#b#......", - "......##ddhhhhhhhhhhhhd#b#......", - "........##ddhhhhhhhhhhd#b#......", - "..........##ddhhhhhhhhd#b#......", - "............##ddhhhhhhd#b###....", - "..............##ddhhhhd#b#####..", - "................##ddhhd#b######.", - "..................##dddeb#####..", - "....................##d#b###....", - "......................####......"}; - - -static const char * link_icon[]={ - "32 32 12 1", - "# c #000000", - "h c #a0a0a4", - "b c #c00000", - "d c #585858", - "i c #400000", - "c c #ffffff", - "e c #000000", - "g c #c0c0c0", - "a c #ff0000", - "f c #303030", - "n c white", - ". c None", - "...###..........................", - "...#aa##........................", - ".###baaa##......................", - ".#cde#baaa##....................", - ".#cccdeebaaa##..##f.............", - ".#cccccdeebaaa##aaa##...........", - ".#cccccccdeebaaaaaaaa##.........", - ".#cccccccccdeebababaaa#.........", - ".#cccccgcgghhebbbbbbbaa#........", - ".#ccccccgcgggdebbbbbbba#........", - ".#cccgcgcgcgghdeebiebbba#.......", - ".#ccccgcggggggghdeddeeba#.......", - ".#cgcgcgcggggggggghghdebb#......", - ".#ccgcggggggggghghghghd#b#......", - ".#cgcgcggggggggghghghhd#b#......", - ".#gcggggggggghghghhhhhd#b#......", - ".#cgcggggggggghghghhhhd#b#......", - ".#ggggggggghghghhhhhhhdib#......", - ".#gggggggggghghghhhhhhd#b#......", - ".#hhggggghghghhhhhhhhhd#b#......", - ".#ddhhgggghghghhhhhhhhd#b#......", - "..##ddhhghghhhhhhhhhhhdeb#......", - "############hhhhhhhhhhd#b#......", - "#nnnnnnnnnn#hhhhhhhhhhd#b#......", - "#nnnnnnnnnn#hhhhhhhhhhd#b#......", - "#nn#nn#nnnn#ddhhhhhhhhd#b#......", - "#nn##n##nnn###ddhhhhhhd#b###....", - "#nnn#####nn#..##ddhhhhd#b#####..", - "#nnnnn##nnn#....##ddhhd#b######.", - "#nnnnn#nnnn#......##dddeb#####..", - "#nnnnnnnnnn#........##d#b###....", - "############..........####......"}; - -static const char * folder_locked_icon[]={ - "32 32 12 1", - "# c #000000", - "g c #808080", - "h c #c0c0c0", - "f c #c05800", - "c c #ffffff", - "d c #585858", - "b c #ffa858", - "a c #ffdca8", - "e c #000000", - "i c #a0a0a4", - "j c #c0c0c0", - ". c None", - "...###..........................", - "...#aa##........................", - ".###baaa##......................", - ".#cde#baaa##....................", - ".#cccdeeba#######...............", - ".#cccccde##fffff##..............", - ".#cccccc##fffgggg#..............", - ".#ccccccc#ffg####a##............", - ".#ccccchc#ffg#eebbaa##..........", - ".#ccccccc#ffg#ddeebbba##........", - ".#ccchccc#ffg#ihddeebbba##......", - ".#cccccaa#ffg#ihhhddeeba##......", - ".#chchhbbaafg#ihhhihidebb#......", - ".#cchccbbbbaa#ihhihihid#b#......", - ".#chchhbb#bbbaaiihihiid#b#......", - ".#hchhcbb#fbbbafhiiiiid#b#......", - ".#chchhbb#ffgbbfihiiiid#b#......", - ".#hhhhhbb#ffg#bfiiiiiid#b#......", - ".#hhhhhbbaffg#bfiiiiiid#b#......", - ".#iihhhjbbaab#bfiiiiiid#b#......", - ".#ddiihhh#bbbabfiiiiiid#b#......", - "..##ddiih#ffbbbfiiiiiid#b#......", - "....##ddi#ffg#biiiiiiid#b#......", - "......##d#ffg#iiiiiiiid#b#......", - "........##ffg#iiiiiiiid#b#......", - ".........#ffg#iiiiiiiid#b#......", - ".........#ffg#ddiiiiiid#b###....", - ".........##fg###ddiiiid#b#####..", - "...........####.##ddiid#b######.", - "..................##dddeb#####..", - "....................##d#b###....", - "......................####......"}; - -static TQPixmap *iconFolderLockedLarge = 0; -static TQPixmap *iconFolderLarge = 0; -static TQPixmap *iconFileLarge = 0; -static TQPixmap *iconLinkLarge = 0; -static TQPixmap *iconFolderLockedSmall = 0; -static TQPixmap *iconFolderSmall = 0; -static TQPixmap *iconFileSmall = 0; -static TQPixmap *iconLinkSmall = 0; - -static void cleanup() -{ - delete iconFolderLockedLarge; - iconFolderLockedLarge = 0; - delete iconFolderLarge; - iconFolderLarge = 0; - delete iconFileLarge; - iconFileLarge = 0; - delete iconLinkLarge; - iconLinkLarge = 0; - delete iconFolderLockedSmall; - iconFolderLockedSmall = 0; - delete iconFolderSmall; - iconFolderSmall = 0; - delete iconFileSmall; - iconFileSmall = 0; - delete iconLinkSmall; - iconLinkSmall = 0; -} - -/***************************************************************************** - * - * Class TQtFileIconDrag - * - *****************************************************************************/ - -TQtFileIconDrag::TQtFileIconDrag( TQWidget * dragSource, const char* name ) - : TQIconDrag( dragSource, name ) -{ -} - -const char* TQtFileIconDrag::format( int i ) const -{ - if ( i == 0 ) - return "application/x-qiconlist"; - else if ( i == 1 ) - return "text/uri-list"; - else - return 0; -} - -TQByteArray TQtFileIconDrag::encodedData( const char* mime ) const -{ - TQByteArray a; - if ( TQString( mime ) == "application/x-qiconlist" ) { - a = TQIconDrag::encodedData( mime ); - } else if ( TQString( mime ) == "text/uri-list" ) { - TQString s = urls.join( "\r\n" ); - a.resize( s.length() ); - memcpy( a.data(), s.latin1(), s.length() ); - } - return a; -} - -bool TQtFileIconDrag::canDecode( TQMimeSource* e ) -{ - return e->provides( "application/x-qiconlist" ) || - e->provides( "text/uri-list" ); -} - -void TQtFileIconDrag::append( const TQIconDragItem &item, const TQRect &pr, - const TQRect &tr, const TQString &url ) -{ - TQIconDrag::append( item, pr, tr ); - TQString ourUrl = url; -#ifdef TQ_WS_WIN - if (ourUrl.length() > 2 && ourUrl[1] != ':') { - TQDir dir(ourUrl); - ourUrl = dir.absPath(); - } -#endif - urls << TQUriDrag::localFileToUri(ourUrl); -} - -/***************************************************************************** - * - * Class TQtFileIconViewItem - * - *****************************************************************************/ - -TQtFileIconViewItem::TQtFileIconViewItem( TQtFileIconView *parent, TQFileInfo *fi ) - : TQIconViewItem( parent, fi->fileName() ), itemFileName( fi->filePath() ), - itemFileInfo( fi ), checkSetText( FALSE ) -{ - vm = TQtFileIconView::Large; - - if ( itemFileInfo->isDir() ) - itemType = Dir; - else if ( itemFileInfo->isFile() ) - itemType = File; - if ( itemFileInfo->isSymLink() ) - itemType = Link; - - viewModeChanged( ( (TQtFileIconView*)iconView() )->viewMode() ); - - if ( itemFileInfo->fileName() == "." || - itemFileInfo->fileName() == ".." ) - setRenameEnabled( FALSE ); - - checkSetText = TRUE; - - TQObject::connect( &timer, TQ_SIGNAL( timeout() ), - iconView(), TQ_SLOT( openFolder() ) ); -} - -void TQtFileIconViewItem::paintItem( TQPainter *p, const TQColorGroup &cg ) -{ - if ( itemFileInfo->isSymLink() ) { - TQFont f( p->font() ); - f.setItalic( TRUE ); - p->setFont( f ); - } - - TQIconViewItem::paintItem( p, cg ); -} - -void TQtFileIconViewItem::viewModeChanged( TQtFileIconView::ViewMode m ) -{ - vm = m; - setDropEnabled( itemType == Dir && TQDir( itemFileName ).isReadable() ); - calcRect(); -} - -TQPixmap *TQtFileIconViewItem::pixmap() const -{ - switch ( itemType ) { - case Dir: - { - if ( !TQDir( itemFileName ).isReadable() ) { - if ( vm == TQtFileIconView::Small ) - return iconFolderLockedSmall; - else - return iconFolderLockedLarge; - } else { - if ( vm == TQtFileIconView::Small ) - return iconFolderSmall; - else - return iconFolderLarge; - } - } - case Link: - { - if ( vm == TQtFileIconView::Small ) - return iconLinkSmall; - else - return iconLinkLarge; - } - default: - { - if ( vm == TQtFileIconView::Small ) - return iconFileSmall; - else - return iconFileLarge; - } - } -} - -TQtFileIconViewItem::~TQtFileIconViewItem() -{ - delete itemFileInfo; -} - -void TQtFileIconViewItem::setText( const TQString &text ) -{ - if ( checkSetText ) { - if ( text == "." || text == "." || text.isEmpty() ) - return; - TQDir dir( itemFileInfo->dir() ); - if ( dir.rename( itemFileInfo->fileName(), text ) ) { - itemFileName = itemFileInfo->dirPath( TRUE ) + "/" + text; - delete itemFileInfo; - itemFileInfo = new TQFileInfo( itemFileName ); - TQIconViewItem::setText( text ); - } - } else { - TQIconViewItem::setText( text ); - } -} - -bool TQtFileIconViewItem::acceptDrop( const TQMimeSource *e ) const -{ - if ( type() == Dir && e->provides( "text/uri-list" ) && - dropEnabled() ) - return TRUE; - - return FALSE; -} - -void TQtFileIconViewItem::dropped( TQDropEvent *e, const TQValueList & ) -{ - timer.stop(); - - if ( !TQUriDrag::canDecode( e ) ) { - e->ignore(); - return; - } - - TQStringList lst; - TQUriDrag::decodeLocalFiles( e, lst ); - - TQString str; - if ( e->action() == TQDropEvent::Copy ) - str = "Copy\n\n"; - else - str = "Move\n\n"; - for ( uint i = 0; i < lst.count(); ++i ) - str += TQString( " %1\n" ).arg( lst[i] ); - str += TQString( "\n" - "To\n\n" - " %1" ).arg( filename() ); - - TQMessageBox::information( iconView(), e->action() == TQDropEvent::Copy ? "Copy" : "Move" , str, "Not Implemented" ); - if ( e->action() == TQDropEvent::Move ) - TQMessageBox::information( iconView(), "Remove" , str, "Not Implemented" ); - e->acceptAction(); -} - -void TQtFileIconViewItem::dragEntered() -{ - if ( type() != Dir || - type() == Dir && !TQDir( itemFileName ).isReadable() ) - return; - - ( (TQtFileIconView*)iconView() )->setOpenItem( this ); - timer.start( 1500 ); -} - -void TQtFileIconViewItem::dragLeft() -{ - if ( type() != Dir || - type() == Dir && !TQDir( itemFileName ).isReadable() ) - return; - - timer.stop(); -} - -/***************************************************************************** - * - * Class TQtFileIconView - * - *****************************************************************************/ - -TQtFileIconView::TQtFileIconView( const TQString &dir, TQWidget *parent, const char *name ) - : TQIconView( parent, name ), viewDir( dir ), newFolderNum( 0 ) -{ - if ( !iconFolderLockedLarge ) { - tqAddPostRoutine( cleanup ); - TQWMatrix m; - m.scale( 0.6, 0.6 ); - TQPixmap iconpix( folder_locked_icon ); - iconFolderLockedLarge = new TQPixmap( folder_locked_icon ); - iconpix = iconpix.xForm( m ); - iconFolderLockedSmall = new TQPixmap( iconpix ); - iconpix = TQPixmap( folder_icon ); - iconFolderLarge = new TQPixmap( folder_icon ); - iconpix = iconpix.xForm( m ); - iconFolderSmall = new TQPixmap( iconpix ); - iconpix = TQPixmap( file_icon ); - iconFileLarge = new TQPixmap( file_icon ); - iconpix = iconpix.xForm( m ); - iconFileSmall = new TQPixmap( iconpix ); - iconpix = TQPixmap( link_icon ); - iconLinkLarge = new TQPixmap( link_icon ); - iconpix = iconpix.xForm( m ); - iconLinkSmall = new TQPixmap( iconpix ); - } - - vm = Large; - - setGridX( 75 ); - setResizeMode( Adjust ); - setWordWrapIconText( FALSE ); - - connect( this, TQ_SIGNAL( doubleClicked( TQIconViewItem * ) ), - this, TQ_SLOT( itemDoubleClicked( TQIconViewItem * ) ) ); - connect( this, TQ_SIGNAL( returnPressed( TQIconViewItem * ) ), - this, TQ_SLOT( itemDoubleClicked( TQIconViewItem * ) ) ); - connect( this, TQ_SIGNAL( dropped( TQDropEvent *, const TQValueList & ) ), - this, TQ_SLOT( slotDropped( TQDropEvent *, const TQValueList & ) ) ); - connect( this, TQ_SIGNAL( contextMenuRequested( TQIconViewItem *, const TQPoint & ) ), - this, TQ_SLOT( slotRightPressed( TQIconViewItem * ) ) ); - - setHScrollBarMode( AlwaysOff ); - setVScrollBarMode( Auto ); - - setAutoArrange( TRUE ); - setSorting( TRUE ); - openItem = 0; -} - -void TQtFileIconView::openFolder() -{ - if ( !openItem ) - return; - if ( openItem->type() != TQtFileIconViewItem::Dir || - openItem->type() == TQtFileIconViewItem::Dir && - !TQDir( openItem->itemFileName ).isReadable() ) - return; - - openItem->timer.stop(); - setDirectory( openItem->itemFileName ); -} - -void TQtFileIconView::setDirectory( const TQString &dir ) -{ - viewDir = TQDir( dir ); - readDir( viewDir ); -} - -void TQtFileIconView::setDirectory( const TQDir &dir ) -{ - viewDir = dir; - readDir( viewDir ); -} - -void TQtFileIconView::newDirectory() -{ - setAutoArrange( FALSE ); - selectAll( FALSE ); - if ( viewDir.mkdir( TQString( "New Folder %1" ).arg( ++newFolderNum ) ) ) { - TQFileInfo *fi = new TQFileInfo( viewDir, TQString( "New Folder %1" ).arg( newFolderNum ) ); - TQtFileIconViewItem *item = new TQtFileIconViewItem( this, new TQFileInfo( *fi ) ); - item->setKey( TQString( "000000%1" ).arg( fi->fileName() ) ); - delete fi; - repaintContents( contentsX(), contentsY(), contentsWidth(), contentsHeight(), FALSE ); - ensureItemVisible( item ); - item->setSelected( TRUE, TRUE ); - setCurrentItem( item ); - repaintItem( item ); - tqApp->processEvents(); - item->rename(); - } - setAutoArrange( TRUE ); -} - -TQDir TQtFileIconView::currentDir() -{ - return viewDir; -} - -static bool isRoot( const TQString &s ) -{ -#if defined(Q_OS_UNIX) - if ( s == "/" ) - return TRUE; -#elif defined(Q_OS_WIN32) - TQString p = s; - if ( p.length() == 3 && - p.right( 2 ) == ":/" ) - return TRUE; - if ( p[ 0 ] == '/' && p[ 1 ] == '/' ) { - int slashes = p.contains( '/' ); - if ( slashes <= 3 ) - return TRUE; - if ( slashes == 4 && p[ (int)p.length() - 1 ] == '/' ) - return TRUE; - } -#endif - - return FALSE; -} - -void TQtFileIconView::readDir( const TQDir &dir ) -{ - if ( !dir.isReadable() ) - return; - - if ( isRoot( dir.absPath() ) ) - emit disableUp(); - else - emit enableUp(); - - clear(); - - emit directoryChanged( dir.absPath() ); - - const TQFileInfoList *filist = dir.entryInfoList( TQDir::DefaultFilter, TQDir::DirsFirst | TQDir::Name ); - - emit startReadDir( filist->count() ); - - TQFileInfoListIterator it( *filist ); - TQFileInfo *fi; - bool allowRename = FALSE, allowRenameSet = FALSE; - while ( ( fi = it.current() ) != 0 ) { - ++it; - if ( fi && fi->fileName() == ".." && ( fi->dirPath() == "/" || fi->dirPath().isEmpty() ) ) - continue; - emit readNextDir(); - TQtFileIconViewItem *item = new TQtFileIconViewItem( this, new TQFileInfo( *fi ) ); - if ( fi->isDir() ) - item->setKey( TQString( "000000%1" ).arg( fi->fileName() ) ); - else - item->setKey( fi->fileName() ); - if ( !allowRenameSet ) { - if ( !TQFileInfo( fi->absFilePath() ).isWritable() || - item->text() == "." || item->text() == ".." ) - allowRename = FALSE; - else - allowRename = TRUE; - if ( item->text() == "." || item->text() == ".." ) - allowRenameSet = FALSE; - else - allowRenameSet = TRUE; - } - item->setRenameEnabled( allowRename ); - } - - if ( !TQFileInfo( dir.absPath() ).isWritable() ) - emit disableMkdir(); - else - emit enableMkdir(); - - emit readDirDone(); -} - -void TQtFileIconView::itemDoubleClicked( TQIconViewItem *i ) -{ - TQtFileIconViewItem *item = ( TQtFileIconViewItem* )i; - - if ( item->type() == TQtFileIconViewItem::Dir ) { - viewDir = TQDir( item->filename() ); - readDir( viewDir ); - } else if ( item->type() == TQtFileIconViewItem::Link && - TQFileInfo( TQFileInfo( item->filename() ).readLink() ).isDir() ) { - viewDir = TQDir( TQFileInfo( item->filename() ).readLink() ); - readDir( viewDir ); - } -} - -TQDragObject *TQtFileIconView::dragObject() -{ - if ( !currentItem() ) - return 0; - - TQPoint orig = viewportToContents( viewport()->mapFromGlobal( TQCursor::pos() ) ); - TQtFileIconDrag *drag = new TQtFileIconDrag( viewport() ); - drag->setPixmap( *currentItem()->pixmap(), - TQPoint( currentItem()->pixmapRect().width() / 2, currentItem()->pixmapRect().height() / 2 ) ); - for ( TQtFileIconViewItem *item = (TQtFileIconViewItem*)firstItem(); item; - item = (TQtFileIconViewItem*)item->nextItem() ) { - if ( item->isSelected() ) { - TQIconDragItem id; - id.setData( TQCString( item->filename() ) ); - drag->append( id, - TQRect( item->pixmapRect( FALSE ).x() - orig.x(), - item->pixmapRect( FALSE ).y() - orig.y(), - item->pixmapRect().width(), item->pixmapRect().height() ), - TQRect( item->textRect( FALSE ).x() - orig.x(), - item->textRect( FALSE ).y() - orig.y(), - item->textRect().width(), item->textRect().height() ), - TQString( item->filename() ) ); - } - } - - return drag; -} - -void TQtFileIconView::keyPressEvent( TQKeyEvent *e ) -{ - if ( e->key() == Key_N && - ( e->state() & ControlButton ) ) - newDirectory(); - else - TQIconView::keyPressEvent( e ); -} - -void TQtFileIconView::slotDropped( TQDropEvent *e, const TQValueList & ) -{ - if ( openItem ) - openItem->timer.stop(); - if ( !TQUriDrag::canDecode( e ) ) { - e->ignore(); - return; - } - - TQStringList lst; - TQUriDrag::decodeLocalFiles( e, lst ); - - TQString str; - if ( e->action() == TQDropEvent::Copy ) - str = "Copy\n\n"; - else - str = "Move\n\n"; - for ( uint i = 0; i < lst.count(); ++i ) - str += TQString( " %1\n" ).arg( TQDir::convertSeparators(lst[i]) ); - str += TQString( "\n" - "To\n\n" - " %1" ).arg( viewDir.absPath() ); - - TQMessageBox::information( this, e->action() == TQDropEvent::Copy ? "Copy" : "Move" , str, "Not Implemented" ); - if ( e->action() == TQDropEvent::Move ) - TQMessageBox::information( this, "Remove" , TQDir::convertSeparators(lst.join("\n")), "Not Implemented" ); - e->acceptAction(); - openItem = 0; -} - -void TQtFileIconView::viewLarge() -{ - setViewMode( Large ); -} - -void TQtFileIconView::viewSmall() -{ - setViewMode( Small ); -} - -void TQtFileIconView::viewBottom() -{ - setItemTextPos( Bottom ); -} - -void TQtFileIconView::viewRight() -{ - setItemTextPos( Right ); -} - -void TQtFileIconView::flowEast() -{ - setHScrollBarMode( AlwaysOff ); - setVScrollBarMode( Auto ); - setArrangement( LeftToRight ); -} - -void TQtFileIconView::flowSouth() -{ - setVScrollBarMode( AlwaysOff ); - setHScrollBarMode( Auto ); - setArrangement( TopToBottom ); -} - -void TQtFileIconView::sortAscending() -{ - sort( TRUE ); -} - -void TQtFileIconView::sortDescending() -{ - sort( FALSE ); -} - -void TQtFileIconView::itemTextTruncate() -{ - setWordWrapIconText( FALSE ); -} - -void TQtFileIconView::itemTextWordWrap() -{ - setWordWrapIconText( TRUE ); -} - -void TQtFileIconView::slotRightPressed( TQIconViewItem *item ) -{ - if ( !item ) { // right pressed on viewport - TQPopupMenu menu( this ); - - menu.insertItem( "&Large view", this, TQ_SLOT( viewLarge() ) ); - menu.insertItem( "&Small view", this, TQ_SLOT( viewSmall() ) ); - menu.insertSeparator(); - menu.insertItem( "Text at the &bottom", this, TQ_SLOT( viewBottom() ) ); - menu.insertItem( "Text at the &right", this, TQ_SLOT( viewRight() ) ); - menu.insertSeparator(); - menu.insertItem( "Arrange l&eft to right", this, TQ_SLOT( flowEast() ) ); - menu.insertItem( "Arrange t&op to bottom", this, TQ_SLOT( flowSouth() ) ); - menu.insertSeparator(); - menu.insertItem( "&Truncate item text", this, TQ_SLOT( itemTextTruncate() ) ); - menu.insertItem( "&Wordwrap item text", this, TQ_SLOT( itemTextWordWrap() ) ); - menu.insertSeparator(); - menu.insertItem( "Arrange items in &grid", this, TQ_SLOT( arrangeItemsInGrid() ) ); - menu.insertSeparator(); - menu.insertItem( "Sort &ascending", this, TQ_SLOT( sortAscending() ) ); - menu.insertItem( "Sort &descending", this, TQ_SLOT( sortDescending() ) ); - - menu.setMouseTracking( TRUE ); - menu.exec( TQCursor::pos() ); - } else { // on item - TQPopupMenu menu( this ); - - int RENAME_ITEM = menu.insertItem( "Rename Item" ); - int REMOVE_ITEM = menu.insertItem( "Remove Item" ); - - menu.setMouseTracking( TRUE ); - int id = menu.exec( TQCursor::pos() ); - - if ( id == -1 ) - return; - - if ( id == RENAME_ITEM && item->renameEnabled() ) { - item->rename(); - } else if ( id == REMOVE_ITEM ) { - delete item; - TQMessageBox::information( this, "Not implemented!", "Deleting files not implemented yet,\n" - "The item has only been removed from the view! " ); - } - } -} - -void TQtFileIconView::setViewMode( ViewMode m ) -{ - if ( m == vm ) - return; - - vm = m; - TQtFileIconViewItem *item = (TQtFileIconViewItem*)firstItem(); - for ( ; item; item = (TQtFileIconViewItem*)item->nextItem() ) - item->viewModeChanged( vm ); - - arrangeItemsInGrid(); -} diff --git a/examples/fileiconview/qfileiconview.h b/examples/fileiconview/qfileiconview.h deleted file mode 100644 index 284c66b80..000000000 --- a/examples/fileiconview/qfileiconview.h +++ /dev/null @@ -1,170 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. -** -** This file is part of an example program for TQt. This example -** program may be used, distributed and modified without limitation. -** -*****************************************************************************/ - -#ifndef TQTFILEICONVIEW_H -#define TQTFILEICONVIEW_H - - -#include -#include -#include -#include -#include -#include - -class TQtFileIconView; -class TQDragObject; -class TQResizeEvent; - -/***************************************************************************** - * - * Class TQtFileIconDrag - * - *****************************************************************************/ - -class TQtFileIconDrag : public TQIconDrag -{ - TQ_OBJECT - -public: - TQtFileIconDrag( TQWidget * dragSource, const char* name = 0 ); - - const char* format( int i ) const; - TQByteArray encodedData( const char* mime ) const; - static bool canDecode( TQMimeSource* e ); - void append( const TQIconDragItem &item, const TQRect &pr, const TQRect &tr, const TQString &url ); - -private: - TQStringList urls; - -}; - -/***************************************************************************** - * - * Class TQtFileIconView - * - *****************************************************************************/ -class TQtFileIconViewItem; -class TQtFileIconView : public TQIconView -{ - TQ_OBJECT - -public: - TQtFileIconView( const TQString &dir, TQWidget *parent = 0, const char *name = 0 ); - - enum ViewMode { Large, Small }; - - void setViewMode( ViewMode m ); - ViewMode viewMode() const { return vm; } - void setOpenItem( TQtFileIconViewItem *i ) { - openItem = i; - } - -public slots: - void setDirectory( const TQString &dir ); - void setDirectory( const TQDir &dir ); - void newDirectory(); - TQDir currentDir(); - -signals: - void directoryChanged( const TQString & ); - void startReadDir( int dirs ); - void readNextDir(); - void readDirDone(); - void enableUp(); - void disableUp(); - void enableMkdir(); - void disableMkdir(); - -protected slots: - void itemDoubleClicked( TQIconViewItem *i ); - void slotDropped( TQDropEvent *e, const TQValueList & ); - - void viewLarge(); - void viewSmall(); - void viewBottom(); - void viewRight(); - void flowEast(); - void flowSouth(); - void itemTextTruncate(); - void itemTextWordWrap(); - void sortAscending(); - void sortDescending(); - void arrangeItemsInGrid() { - TQIconView::arrangeItemsInGrid( TRUE ); - } - - void slotRightPressed( TQIconViewItem *item ); - void openFolder(); - -protected: - void readDir( const TQDir &dir ); - virtual TQDragObject *dragObject(); - - virtual void keyPressEvent( TQKeyEvent *e ); - - TQDir viewDir; - int newFolderNum; - TQSize sz; - TQPixmap pix; - ViewMode vm; - TQtFileIconViewItem *openItem; - -}; - -/***************************************************************************** - * - * Class TQtFileIconViewItem - * - *****************************************************************************/ - -class TQtFileIconViewItem : public TQIconViewItem -{ - friend class TQtFileIconView; - -public: - enum ItemType { - File = 0, - Dir, - Link - }; - - TQtFileIconViewItem( TQtFileIconView *parent, TQFileInfo *fi ); - - virtual ~TQtFileIconViewItem(); - - ItemType type() const - { return itemType; } - TQString filename() const { return itemFileName; } - - virtual bool acceptDrop( const TQMimeSource *e ) const; - - virtual void setText( const TQString &text ); - virtual TQPixmap *pixmap() const; - - virtual void dragEntered(); - virtual void dragLeft(); - - void viewModeChanged( TQtFileIconView::ViewMode m ); - void paintItem( TQPainter *p, const TQColorGroup &cg ); - -protected: - virtual void dropped( TQDropEvent *e, const TQValueList & ); - - TQString itemFileName; - TQFileInfo *itemFileInfo; - ItemType itemType; - bool checkSetText; - TQTimer timer; - TQtFileIconView::ViewMode vm; - -}; - - -#endif diff --git a/examples/fileiconview/tqfileiconview.cpp b/examples/fileiconview/tqfileiconview.cpp new file mode 100644 index 000000000..9f4d17d7b --- /dev/null +++ b/examples/fileiconview/tqfileiconview.cpp @@ -0,0 +1,835 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "tqfileiconview.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +static const char * file_icon[]={ + "32 32 17 1", + "# c #000000", + "a c #ffffff", + "j c #808080", + "n c #a0a0a4", + "g c #c0c0c0", + "m c #004000", + "o c #000000", + "l c #004040", + "k c #404000", + "i c #c0c000", + "h c #ffff00", + "b c #ffffc0", + "e c #ff8000", + "f c #c05800", + "c c #ffa858", + "d c #ffdca8", + ". c None", + "................................", + "................................", + "................................", + "................................", + ".............#....###...........", + "...###......#a##.#aba##.........", + "..#cdb#....#aaaa#aaaaaa##.......", + "..#ecdb#..#aaaa#aaaaaaaba##.....", + "..#fecdb##aaaa#aaaaaaaaaaab##...", + "...#fecdb#aaa#aaaaaaabaabaaaa##.", + "....#fecdb#a#baaaaa#baaaaaabaaa#", + ".....#fecdb#aaaaab#a##baaaaaaa#.", + ".....##fecdb#bbba#aaaa##baaab#..", + "....#bb#fecdb#ba#aaaaaaa##aa#...", + "...#bbbb#fecdb##aaabaaaaaa##....", + "..#bbbb#b#fecdb#aaaaaaabaaaa##..", + ".#bbbb#bbb#fecdg#aaaaaaaaaaaba#.", + "#hhbb#bbbbb#fegg#iiaaaaaaaaaaaa#", + "#jhhhklibbbk#ggj#aaiiaaaaaaaaa#j", + ".#mjhhhkmikab####aaabiiaaaaaa#j.", + "...##jhhhmaaibbaaiibaaaiiaab#n..", + ".....##j#baaaiiabaaiibaabaa#n...", + "......##baibaabiibaaaiiabb#j....", + "......#bbbbiiaabbiiaaaaabon.....", + ".....#bbbbbbbiiabbaiiaab#n......", + ".....#jbbbbbbbbiibaabba#n.......", + "......##jbbbbbbbbiiaabmj........", + "........##jbbbbbbbbbb#j.........", + "..........##nbbbbbbbmj..........", + "............##jbbbb#j...........", + "..............#mjj#n............", + "................##n............."}; + +static const char * folder_icon[]={ + "32 32 11 1", + "# c #000000", + "b c #c0c000", + "d c #585858", + "a c #ffff00", + "i c #400000", + "h c #a0a0a4", + "e c #000000", + "c c #ffffff", + "f c #303030", + "g c #c0c0c0", + ". c None", + "...###..........................", + "...#aa##........................", + ".###baaa##......................", + ".#cde#baaa##....................", + ".#cccdeebaaa##..##f.............", + ".#cccccdeebaaa##aaa##...........", + ".#cccccccdeebaaaaaaaa##.........", + ".#cccccccccdeebababaaa#.........", + ".#cccccgcgghhebbbbbbbaa#........", + ".#ccccccgcgggdebbbbbbba#........", + ".#cccgcgcgcgghdeebiebbba#.......", + ".#ccccgcggggggghdeddeeba#.......", + ".#cgcgcgcggggggggghghdebb#......", + ".#ccgcggggggggghghghghd#b#......", + ".#cgcgcggggggggghghghhd#b#......", + ".#gcggggggggghghghhhhhd#b#......", + ".#cgcggggggggghghghhhhd#b#......", + ".#ggggggggghghghhhhhhhdib#......", + ".#gggggggggghghghhhhhhd#b#......", + ".#hhggggghghghhhhhhhhhd#b#......", + ".#ddhhgggghghghhhhhhhhd#b#......", + "..##ddhhghghhhhhhhhhhhdeb#......", + "....##ddhhhghhhhhhhhhhd#b#......", + "......##ddhhhhhhhhhhhhd#b#......", + "........##ddhhhhhhhhhhd#b#......", + "..........##ddhhhhhhhhd#b#......", + "............##ddhhhhhhd#b###....", + "..............##ddhhhhd#b#####..", + "................##ddhhd#b######.", + "..................##dddeb#####..", + "....................##d#b###....", + "......................####......"}; + + +static const char * link_icon[]={ + "32 32 12 1", + "# c #000000", + "h c #a0a0a4", + "b c #c00000", + "d c #585858", + "i c #400000", + "c c #ffffff", + "e c #000000", + "g c #c0c0c0", + "a c #ff0000", + "f c #303030", + "n c white", + ". c None", + "...###..........................", + "...#aa##........................", + ".###baaa##......................", + ".#cde#baaa##....................", + ".#cccdeebaaa##..##f.............", + ".#cccccdeebaaa##aaa##...........", + ".#cccccccdeebaaaaaaaa##.........", + ".#cccccccccdeebababaaa#.........", + ".#cccccgcgghhebbbbbbbaa#........", + ".#ccccccgcgggdebbbbbbba#........", + ".#cccgcgcgcgghdeebiebbba#.......", + ".#ccccgcggggggghdeddeeba#.......", + ".#cgcgcgcggggggggghghdebb#......", + ".#ccgcggggggggghghghghd#b#......", + ".#cgcgcggggggggghghghhd#b#......", + ".#gcggggggggghghghhhhhd#b#......", + ".#cgcggggggggghghghhhhd#b#......", + ".#ggggggggghghghhhhhhhdib#......", + ".#gggggggggghghghhhhhhd#b#......", + ".#hhggggghghghhhhhhhhhd#b#......", + ".#ddhhgggghghghhhhhhhhd#b#......", + "..##ddhhghghhhhhhhhhhhdeb#......", + "############hhhhhhhhhhd#b#......", + "#nnnnnnnnnn#hhhhhhhhhhd#b#......", + "#nnnnnnnnnn#hhhhhhhhhhd#b#......", + "#nn#nn#nnnn#ddhhhhhhhhd#b#......", + "#nn##n##nnn###ddhhhhhhd#b###....", + "#nnn#####nn#..##ddhhhhd#b#####..", + "#nnnnn##nnn#....##ddhhd#b######.", + "#nnnnn#nnnn#......##dddeb#####..", + "#nnnnnnnnnn#........##d#b###....", + "############..........####......"}; + +static const char * folder_locked_icon[]={ + "32 32 12 1", + "# c #000000", + "g c #808080", + "h c #c0c0c0", + "f c #c05800", + "c c #ffffff", + "d c #585858", + "b c #ffa858", + "a c #ffdca8", + "e c #000000", + "i c #a0a0a4", + "j c #c0c0c0", + ". c None", + "...###..........................", + "...#aa##........................", + ".###baaa##......................", + ".#cde#baaa##....................", + ".#cccdeeba#######...............", + ".#cccccde##fffff##..............", + ".#cccccc##fffgggg#..............", + ".#ccccccc#ffg####a##............", + ".#ccccchc#ffg#eebbaa##..........", + ".#ccccccc#ffg#ddeebbba##........", + ".#ccchccc#ffg#ihddeebbba##......", + ".#cccccaa#ffg#ihhhddeeba##......", + ".#chchhbbaafg#ihhhihidebb#......", + ".#cchccbbbbaa#ihhihihid#b#......", + ".#chchhbb#bbbaaiihihiid#b#......", + ".#hchhcbb#fbbbafhiiiiid#b#......", + ".#chchhbb#ffgbbfihiiiid#b#......", + ".#hhhhhbb#ffg#bfiiiiiid#b#......", + ".#hhhhhbbaffg#bfiiiiiid#b#......", + ".#iihhhjbbaab#bfiiiiiid#b#......", + ".#ddiihhh#bbbabfiiiiiid#b#......", + "..##ddiih#ffbbbfiiiiiid#b#......", + "....##ddi#ffg#biiiiiiid#b#......", + "......##d#ffg#iiiiiiiid#b#......", + "........##ffg#iiiiiiiid#b#......", + ".........#ffg#iiiiiiiid#b#......", + ".........#ffg#ddiiiiiid#b###....", + ".........##fg###ddiiiid#b#####..", + "...........####.##ddiid#b######.", + "..................##dddeb#####..", + "....................##d#b###....", + "......................####......"}; + +static TQPixmap *iconFolderLockedLarge = 0; +static TQPixmap *iconFolderLarge = 0; +static TQPixmap *iconFileLarge = 0; +static TQPixmap *iconLinkLarge = 0; +static TQPixmap *iconFolderLockedSmall = 0; +static TQPixmap *iconFolderSmall = 0; +static TQPixmap *iconFileSmall = 0; +static TQPixmap *iconLinkSmall = 0; + +static void cleanup() +{ + delete iconFolderLockedLarge; + iconFolderLockedLarge = 0; + delete iconFolderLarge; + iconFolderLarge = 0; + delete iconFileLarge; + iconFileLarge = 0; + delete iconLinkLarge; + iconLinkLarge = 0; + delete iconFolderLockedSmall; + iconFolderLockedSmall = 0; + delete iconFolderSmall; + iconFolderSmall = 0; + delete iconFileSmall; + iconFileSmall = 0; + delete iconLinkSmall; + iconLinkSmall = 0; +} + +/***************************************************************************** + * + * Class TQtFileIconDrag + * + *****************************************************************************/ + +TQtFileIconDrag::TQtFileIconDrag( TQWidget * dragSource, const char* name ) + : TQIconDrag( dragSource, name ) +{ +} + +const char* TQtFileIconDrag::format( int i ) const +{ + if ( i == 0 ) + return "application/x-qiconlist"; + else if ( i == 1 ) + return "text/uri-list"; + else + return 0; +} + +TQByteArray TQtFileIconDrag::encodedData( const char* mime ) const +{ + TQByteArray a; + if ( TQString( mime ) == "application/x-qiconlist" ) { + a = TQIconDrag::encodedData( mime ); + } else if ( TQString( mime ) == "text/uri-list" ) { + TQString s = urls.join( "\r\n" ); + a.resize( s.length() ); + memcpy( a.data(), s.latin1(), s.length() ); + } + return a; +} + +bool TQtFileIconDrag::canDecode( TQMimeSource* e ) +{ + return e->provides( "application/x-qiconlist" ) || + e->provides( "text/uri-list" ); +} + +void TQtFileIconDrag::append( const TQIconDragItem &item, const TQRect &pr, + const TQRect &tr, const TQString &url ) +{ + TQIconDrag::append( item, pr, tr ); + TQString ourUrl = url; +#ifdef TQ_WS_WIN + if (ourUrl.length() > 2 && ourUrl[1] != ':') { + TQDir dir(ourUrl); + ourUrl = dir.absPath(); + } +#endif + urls << TQUriDrag::localFileToUri(ourUrl); +} + +/***************************************************************************** + * + * Class TQtFileIconViewItem + * + *****************************************************************************/ + +TQtFileIconViewItem::TQtFileIconViewItem( TQtFileIconView *parent, TQFileInfo *fi ) + : TQIconViewItem( parent, fi->fileName() ), itemFileName( fi->filePath() ), + itemFileInfo( fi ), checkSetText( FALSE ) +{ + vm = TQtFileIconView::Large; + + if ( itemFileInfo->isDir() ) + itemType = Dir; + else if ( itemFileInfo->isFile() ) + itemType = File; + if ( itemFileInfo->isSymLink() ) + itemType = Link; + + viewModeChanged( ( (TQtFileIconView*)iconView() )->viewMode() ); + + if ( itemFileInfo->fileName() == "." || + itemFileInfo->fileName() == ".." ) + setRenameEnabled( FALSE ); + + checkSetText = TRUE; + + TQObject::connect( &timer, TQ_SIGNAL( timeout() ), + iconView(), TQ_SLOT( openFolder() ) ); +} + +void TQtFileIconViewItem::paintItem( TQPainter *p, const TQColorGroup &cg ) +{ + if ( itemFileInfo->isSymLink() ) { + TQFont f( p->font() ); + f.setItalic( TRUE ); + p->setFont( f ); + } + + TQIconViewItem::paintItem( p, cg ); +} + +void TQtFileIconViewItem::viewModeChanged( TQtFileIconView::ViewMode m ) +{ + vm = m; + setDropEnabled( itemType == Dir && TQDir( itemFileName ).isReadable() ); + calcRect(); +} + +TQPixmap *TQtFileIconViewItem::pixmap() const +{ + switch ( itemType ) { + case Dir: + { + if ( !TQDir( itemFileName ).isReadable() ) { + if ( vm == TQtFileIconView::Small ) + return iconFolderLockedSmall; + else + return iconFolderLockedLarge; + } else { + if ( vm == TQtFileIconView::Small ) + return iconFolderSmall; + else + return iconFolderLarge; + } + } + case Link: + { + if ( vm == TQtFileIconView::Small ) + return iconLinkSmall; + else + return iconLinkLarge; + } + default: + { + if ( vm == TQtFileIconView::Small ) + return iconFileSmall; + else + return iconFileLarge; + } + } +} + +TQtFileIconViewItem::~TQtFileIconViewItem() +{ + delete itemFileInfo; +} + +void TQtFileIconViewItem::setText( const TQString &text ) +{ + if ( checkSetText ) { + if ( text == "." || text == "." || text.isEmpty() ) + return; + TQDir dir( itemFileInfo->dir() ); + if ( dir.rename( itemFileInfo->fileName(), text ) ) { + itemFileName = itemFileInfo->dirPath( TRUE ) + "/" + text; + delete itemFileInfo; + itemFileInfo = new TQFileInfo( itemFileName ); + TQIconViewItem::setText( text ); + } + } else { + TQIconViewItem::setText( text ); + } +} + +bool TQtFileIconViewItem::acceptDrop( const TQMimeSource *e ) const +{ + if ( type() == Dir && e->provides( "text/uri-list" ) && + dropEnabled() ) + return TRUE; + + return FALSE; +} + +void TQtFileIconViewItem::dropped( TQDropEvent *e, const TQValueList & ) +{ + timer.stop(); + + if ( !TQUriDrag::canDecode( e ) ) { + e->ignore(); + return; + } + + TQStringList lst; + TQUriDrag::decodeLocalFiles( e, lst ); + + TQString str; + if ( e->action() == TQDropEvent::Copy ) + str = "Copy\n\n"; + else + str = "Move\n\n"; + for ( uint i = 0; i < lst.count(); ++i ) + str += TQString( " %1\n" ).arg( lst[i] ); + str += TQString( "\n" + "To\n\n" + " %1" ).arg( filename() ); + + TQMessageBox::information( iconView(), e->action() == TQDropEvent::Copy ? "Copy" : "Move" , str, "Not Implemented" ); + if ( e->action() == TQDropEvent::Move ) + TQMessageBox::information( iconView(), "Remove" , str, "Not Implemented" ); + e->acceptAction(); +} + +void TQtFileIconViewItem::dragEntered() +{ + if ( type() != Dir || + type() == Dir && !TQDir( itemFileName ).isReadable() ) + return; + + ( (TQtFileIconView*)iconView() )->setOpenItem( this ); + timer.start( 1500 ); +} + +void TQtFileIconViewItem::dragLeft() +{ + if ( type() != Dir || + type() == Dir && !TQDir( itemFileName ).isReadable() ) + return; + + timer.stop(); +} + +/***************************************************************************** + * + * Class TQtFileIconView + * + *****************************************************************************/ + +TQtFileIconView::TQtFileIconView( const TQString &dir, TQWidget *parent, const char *name ) + : TQIconView( parent, name ), viewDir( dir ), newFolderNum( 0 ) +{ + if ( !iconFolderLockedLarge ) { + tqAddPostRoutine( cleanup ); + TQWMatrix m; + m.scale( 0.6, 0.6 ); + TQPixmap iconpix( folder_locked_icon ); + iconFolderLockedLarge = new TQPixmap( folder_locked_icon ); + iconpix = iconpix.xForm( m ); + iconFolderLockedSmall = new TQPixmap( iconpix ); + iconpix = TQPixmap( folder_icon ); + iconFolderLarge = new TQPixmap( folder_icon ); + iconpix = iconpix.xForm( m ); + iconFolderSmall = new TQPixmap( iconpix ); + iconpix = TQPixmap( file_icon ); + iconFileLarge = new TQPixmap( file_icon ); + iconpix = iconpix.xForm( m ); + iconFileSmall = new TQPixmap( iconpix ); + iconpix = TQPixmap( link_icon ); + iconLinkLarge = new TQPixmap( link_icon ); + iconpix = iconpix.xForm( m ); + iconLinkSmall = new TQPixmap( iconpix ); + } + + vm = Large; + + setGridX( 75 ); + setResizeMode( Adjust ); + setWordWrapIconText( FALSE ); + + connect( this, TQ_SIGNAL( doubleClicked( TQIconViewItem * ) ), + this, TQ_SLOT( itemDoubleClicked( TQIconViewItem * ) ) ); + connect( this, TQ_SIGNAL( returnPressed( TQIconViewItem * ) ), + this, TQ_SLOT( itemDoubleClicked( TQIconViewItem * ) ) ); + connect( this, TQ_SIGNAL( dropped( TQDropEvent *, const TQValueList & ) ), + this, TQ_SLOT( slotDropped( TQDropEvent *, const TQValueList & ) ) ); + connect( this, TQ_SIGNAL( contextMenuRequested( TQIconViewItem *, const TQPoint & ) ), + this, TQ_SLOT( slotRightPressed( TQIconViewItem * ) ) ); + + setHScrollBarMode( AlwaysOff ); + setVScrollBarMode( Auto ); + + setAutoArrange( TRUE ); + setSorting( TRUE ); + openItem = 0; +} + +void TQtFileIconView::openFolder() +{ + if ( !openItem ) + return; + if ( openItem->type() != TQtFileIconViewItem::Dir || + openItem->type() == TQtFileIconViewItem::Dir && + !TQDir( openItem->itemFileName ).isReadable() ) + return; + + openItem->timer.stop(); + setDirectory( openItem->itemFileName ); +} + +void TQtFileIconView::setDirectory( const TQString &dir ) +{ + viewDir = TQDir( dir ); + readDir( viewDir ); +} + +void TQtFileIconView::setDirectory( const TQDir &dir ) +{ + viewDir = dir; + readDir( viewDir ); +} + +void TQtFileIconView::newDirectory() +{ + setAutoArrange( FALSE ); + selectAll( FALSE ); + if ( viewDir.mkdir( TQString( "New Folder %1" ).arg( ++newFolderNum ) ) ) { + TQFileInfo *fi = new TQFileInfo( viewDir, TQString( "New Folder %1" ).arg( newFolderNum ) ); + TQtFileIconViewItem *item = new TQtFileIconViewItem( this, new TQFileInfo( *fi ) ); + item->setKey( TQString( "000000%1" ).arg( fi->fileName() ) ); + delete fi; + repaintContents( contentsX(), contentsY(), contentsWidth(), contentsHeight(), FALSE ); + ensureItemVisible( item ); + item->setSelected( TRUE, TRUE ); + setCurrentItem( item ); + repaintItem( item ); + tqApp->processEvents(); + item->rename(); + } + setAutoArrange( TRUE ); +} + +TQDir TQtFileIconView::currentDir() +{ + return viewDir; +} + +static bool isRoot( const TQString &s ) +{ +#if defined(Q_OS_UNIX) + if ( s == "/" ) + return TRUE; +#elif defined(Q_OS_WIN32) + TQString p = s; + if ( p.length() == 3 && + p.right( 2 ) == ":/" ) + return TRUE; + if ( p[ 0 ] == '/' && p[ 1 ] == '/' ) { + int slashes = p.contains( '/' ); + if ( slashes <= 3 ) + return TRUE; + if ( slashes == 4 && p[ (int)p.length() - 1 ] == '/' ) + return TRUE; + } +#endif + + return FALSE; +} + +void TQtFileIconView::readDir( const TQDir &dir ) +{ + if ( !dir.isReadable() ) + return; + + if ( isRoot( dir.absPath() ) ) + emit disableUp(); + else + emit enableUp(); + + clear(); + + emit directoryChanged( dir.absPath() ); + + const TQFileInfoList *filist = dir.entryInfoList( TQDir::DefaultFilter, TQDir::DirsFirst | TQDir::Name ); + + emit startReadDir( filist->count() ); + + TQFileInfoListIterator it( *filist ); + TQFileInfo *fi; + bool allowRename = FALSE, allowRenameSet = FALSE; + while ( ( fi = it.current() ) != 0 ) { + ++it; + if ( fi && fi->fileName() == ".." && ( fi->dirPath() == "/" || fi->dirPath().isEmpty() ) ) + continue; + emit readNextDir(); + TQtFileIconViewItem *item = new TQtFileIconViewItem( this, new TQFileInfo( *fi ) ); + if ( fi->isDir() ) + item->setKey( TQString( "000000%1" ).arg( fi->fileName() ) ); + else + item->setKey( fi->fileName() ); + if ( !allowRenameSet ) { + if ( !TQFileInfo( fi->absFilePath() ).isWritable() || + item->text() == "." || item->text() == ".." ) + allowRename = FALSE; + else + allowRename = TRUE; + if ( item->text() == "." || item->text() == ".." ) + allowRenameSet = FALSE; + else + allowRenameSet = TRUE; + } + item->setRenameEnabled( allowRename ); + } + + if ( !TQFileInfo( dir.absPath() ).isWritable() ) + emit disableMkdir(); + else + emit enableMkdir(); + + emit readDirDone(); +} + +void TQtFileIconView::itemDoubleClicked( TQIconViewItem *i ) +{ + TQtFileIconViewItem *item = ( TQtFileIconViewItem* )i; + + if ( item->type() == TQtFileIconViewItem::Dir ) { + viewDir = TQDir( item->filename() ); + readDir( viewDir ); + } else if ( item->type() == TQtFileIconViewItem::Link && + TQFileInfo( TQFileInfo( item->filename() ).readLink() ).isDir() ) { + viewDir = TQDir( TQFileInfo( item->filename() ).readLink() ); + readDir( viewDir ); + } +} + +TQDragObject *TQtFileIconView::dragObject() +{ + if ( !currentItem() ) + return 0; + + TQPoint orig = viewportToContents( viewport()->mapFromGlobal( TQCursor::pos() ) ); + TQtFileIconDrag *drag = new TQtFileIconDrag( viewport() ); + drag->setPixmap( *currentItem()->pixmap(), + TQPoint( currentItem()->pixmapRect().width() / 2, currentItem()->pixmapRect().height() / 2 ) ); + for ( TQtFileIconViewItem *item = (TQtFileIconViewItem*)firstItem(); item; + item = (TQtFileIconViewItem*)item->nextItem() ) { + if ( item->isSelected() ) { + TQIconDragItem id; + id.setData( TQCString( item->filename() ) ); + drag->append( id, + TQRect( item->pixmapRect( FALSE ).x() - orig.x(), + item->pixmapRect( FALSE ).y() - orig.y(), + item->pixmapRect().width(), item->pixmapRect().height() ), + TQRect( item->textRect( FALSE ).x() - orig.x(), + item->textRect( FALSE ).y() - orig.y(), + item->textRect().width(), item->textRect().height() ), + TQString( item->filename() ) ); + } + } + + return drag; +} + +void TQtFileIconView::keyPressEvent( TQKeyEvent *e ) +{ + if ( e->key() == Key_N && + ( e->state() & ControlButton ) ) + newDirectory(); + else + TQIconView::keyPressEvent( e ); +} + +void TQtFileIconView::slotDropped( TQDropEvent *e, const TQValueList & ) +{ + if ( openItem ) + openItem->timer.stop(); + if ( !TQUriDrag::canDecode( e ) ) { + e->ignore(); + return; + } + + TQStringList lst; + TQUriDrag::decodeLocalFiles( e, lst ); + + TQString str; + if ( e->action() == TQDropEvent::Copy ) + str = "Copy\n\n"; + else + str = "Move\n\n"; + for ( uint i = 0; i < lst.count(); ++i ) + str += TQString( " %1\n" ).arg( TQDir::convertSeparators(lst[i]) ); + str += TQString( "\n" + "To\n\n" + " %1" ).arg( viewDir.absPath() ); + + TQMessageBox::information( this, e->action() == TQDropEvent::Copy ? "Copy" : "Move" , str, "Not Implemented" ); + if ( e->action() == TQDropEvent::Move ) + TQMessageBox::information( this, "Remove" , TQDir::convertSeparators(lst.join("\n")), "Not Implemented" ); + e->acceptAction(); + openItem = 0; +} + +void TQtFileIconView::viewLarge() +{ + setViewMode( Large ); +} + +void TQtFileIconView::viewSmall() +{ + setViewMode( Small ); +} + +void TQtFileIconView::viewBottom() +{ + setItemTextPos( Bottom ); +} + +void TQtFileIconView::viewRight() +{ + setItemTextPos( Right ); +} + +void TQtFileIconView::flowEast() +{ + setHScrollBarMode( AlwaysOff ); + setVScrollBarMode( Auto ); + setArrangement( LeftToRight ); +} + +void TQtFileIconView::flowSouth() +{ + setVScrollBarMode( AlwaysOff ); + setHScrollBarMode( Auto ); + setArrangement( TopToBottom ); +} + +void TQtFileIconView::sortAscending() +{ + sort( TRUE ); +} + +void TQtFileIconView::sortDescending() +{ + sort( FALSE ); +} + +void TQtFileIconView::itemTextTruncate() +{ + setWordWrapIconText( FALSE ); +} + +void TQtFileIconView::itemTextWordWrap() +{ + setWordWrapIconText( TRUE ); +} + +void TQtFileIconView::slotRightPressed( TQIconViewItem *item ) +{ + if ( !item ) { // right pressed on viewport + TQPopupMenu menu( this ); + + menu.insertItem( "&Large view", this, TQ_SLOT( viewLarge() ) ); + menu.insertItem( "&Small view", this, TQ_SLOT( viewSmall() ) ); + menu.insertSeparator(); + menu.insertItem( "Text at the &bottom", this, TQ_SLOT( viewBottom() ) ); + menu.insertItem( "Text at the &right", this, TQ_SLOT( viewRight() ) ); + menu.insertSeparator(); + menu.insertItem( "Arrange l&eft to right", this, TQ_SLOT( flowEast() ) ); + menu.insertItem( "Arrange t&op to bottom", this, TQ_SLOT( flowSouth() ) ); + menu.insertSeparator(); + menu.insertItem( "&Truncate item text", this, TQ_SLOT( itemTextTruncate() ) ); + menu.insertItem( "&Wordwrap item text", this, TQ_SLOT( itemTextWordWrap() ) ); + menu.insertSeparator(); + menu.insertItem( "Arrange items in &grid", this, TQ_SLOT( arrangeItemsInGrid() ) ); + menu.insertSeparator(); + menu.insertItem( "Sort &ascending", this, TQ_SLOT( sortAscending() ) ); + menu.insertItem( "Sort &descending", this, TQ_SLOT( sortDescending() ) ); + + menu.setMouseTracking( TRUE ); + menu.exec( TQCursor::pos() ); + } else { // on item + TQPopupMenu menu( this ); + + int RENAME_ITEM = menu.insertItem( "Rename Item" ); + int REMOVE_ITEM = menu.insertItem( "Remove Item" ); + + menu.setMouseTracking( TRUE ); + int id = menu.exec( TQCursor::pos() ); + + if ( id == -1 ) + return; + + if ( id == RENAME_ITEM && item->renameEnabled() ) { + item->rename(); + } else if ( id == REMOVE_ITEM ) { + delete item; + TQMessageBox::information( this, "Not implemented!", "Deleting files not implemented yet,\n" + "The item has only been removed from the view! " ); + } + } +} + +void TQtFileIconView::setViewMode( ViewMode m ) +{ + if ( m == vm ) + return; + + vm = m; + TQtFileIconViewItem *item = (TQtFileIconViewItem*)firstItem(); + for ( ; item; item = (TQtFileIconViewItem*)item->nextItem() ) + item->viewModeChanged( vm ); + + arrangeItemsInGrid(); +} diff --git a/examples/fileiconview/tqfileiconview.h b/examples/fileiconview/tqfileiconview.h new file mode 100644 index 000000000..6127ac0ec --- /dev/null +++ b/examples/fileiconview/tqfileiconview.h @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#ifndef TQTFILEICONVIEW_H +#define TQTFILEICONVIEW_H + + +#include +#include +#include +#include +#include +#include + +class TQtFileIconView; +class TQDragObject; +class TQResizeEvent; + +/***************************************************************************** + * + * Class TQtFileIconDrag + * + *****************************************************************************/ + +class TQtFileIconDrag : public TQIconDrag +{ + TQ_OBJECT + +public: + TQtFileIconDrag( TQWidget * dragSource, const char* name = 0 ); + + const char* format( int i ) const; + TQByteArray encodedData( const char* mime ) const; + static bool canDecode( TQMimeSource* e ); + void append( const TQIconDragItem &item, const TQRect &pr, const TQRect &tr, const TQString &url ); + +private: + TQStringList urls; + +}; + +/***************************************************************************** + * + * Class TQtFileIconView + * + *****************************************************************************/ +class TQtFileIconViewItem; +class TQtFileIconView : public TQIconView +{ + TQ_OBJECT + +public: + TQtFileIconView( const TQString &dir, TQWidget *parent = 0, const char *name = 0 ); + + enum ViewMode { Large, Small }; + + void setViewMode( ViewMode m ); + ViewMode viewMode() const { return vm; } + void setOpenItem( TQtFileIconViewItem *i ) { + openItem = i; + } + +public slots: + void setDirectory( const TQString &dir ); + void setDirectory( const TQDir &dir ); + void newDirectory(); + TQDir currentDir(); + +signals: + void directoryChanged( const TQString & ); + void startReadDir( int dirs ); + void readNextDir(); + void readDirDone(); + void enableUp(); + void disableUp(); + void enableMkdir(); + void disableMkdir(); + +protected slots: + void itemDoubleClicked( TQIconViewItem *i ); + void slotDropped( TQDropEvent *e, const TQValueList & ); + + void viewLarge(); + void viewSmall(); + void viewBottom(); + void viewRight(); + void flowEast(); + void flowSouth(); + void itemTextTruncate(); + void itemTextWordWrap(); + void sortAscending(); + void sortDescending(); + void arrangeItemsInGrid() { + TQIconView::arrangeItemsInGrid( TRUE ); + } + + void slotRightPressed( TQIconViewItem *item ); + void openFolder(); + +protected: + void readDir( const TQDir &dir ); + virtual TQDragObject *dragObject(); + + virtual void keyPressEvent( TQKeyEvent *e ); + + TQDir viewDir; + int newFolderNum; + TQSize sz; + TQPixmap pix; + ViewMode vm; + TQtFileIconViewItem *openItem; + +}; + +/***************************************************************************** + * + * Class TQtFileIconViewItem + * + *****************************************************************************/ + +class TQtFileIconViewItem : public TQIconViewItem +{ + friend class TQtFileIconView; + +public: + enum ItemType { + File = 0, + Dir, + Link + }; + + TQtFileIconViewItem( TQtFileIconView *parent, TQFileInfo *fi ); + + virtual ~TQtFileIconViewItem(); + + ItemType type() const + { return itemType; } + TQString filename() const { return itemFileName; } + + virtual bool acceptDrop( const TQMimeSource *e ) const; + + virtual void setText( const TQString &text ); + virtual TQPixmap *pixmap() const; + + virtual void dragEntered(); + virtual void dragLeft(); + + void viewModeChanged( TQtFileIconView::ViewMode m ); + void paintItem( TQPainter *p, const TQColorGroup &cg ); + +protected: + virtual void dropped( TQDropEvent *e, const TQValueList & ); + + TQString itemFileName; + TQFileInfo *itemFileInfo; + ItemType itemType; + bool checkSetText; + TQTimer timer; + TQtFileIconView::ViewMode vm; + +}; + + +#endif -- cgit v1.2.1