ftpview.cpp

来自「qt-x11-free-3.0.3.tar.gz minigui图形界面工具」· C++ 代码 · 共 172 行

CPP
172
字号
/****************************************************************************** $Id:  qt/ftpview.cpp   3.0.3   edited Oct 12 12:18 $**** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.**** This file is part of an example program for Qt.  This example** program may be used, distributed and modified without limitation.*******************************************************************************/#include "ftpview.h"#include <qpixmap.h>#include <qvaluelist.h>/* XPM */static const char* closed_xpm[]={    "15 15 6 1",    ". c None",    "b c #ffff00",    "d c #000000",    "* c #999999",    "a c #cccccc",    "c c #ffffff",    "...............",    "..*****........",    ".*ababa*.......",    "*abababa******.",    "*cccccccccccc*d",    "*cbababababab*d",    "*cabababababa*d",    "*cbababababab*d",    "*cabababababa*d",    "*cbababababab*d",    "*cabababababa*d",    "*cbababababab*d",    "**************d",    ".dddddddddddddd",    "..............."};/* XPM */static const char* file_xpm[]={    "13 15 5 1",    ". c #7f7f7f",    "# c None",    "c c #000000",    "b c #bfbfbf",    "a c #ffffff",    "..........###",    ".aaaaaaaab.##",    ".aaaaaaaaba.#",    ".aaaaaaaacccc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".aaaaaaaaaabc",    ".bbbbbbbbbbbc",    "ccccccccccccc"};QPixmap *folderIcon = 0;QPixmap *fileIcon = 0;FtpViewItem::FtpViewItem( QListView *parent, const QUrlInfo &i )    : QListViewItem( parent, i.name() ), info( i ){}int FtpViewItem::compare( QListViewItem * i, int col, bool ascending ) const{    FtpViewItem *other = (FtpViewItem*)i;    switch ( col ) {    case 1:	if ( info.size() == other->info.size() )	    return 0;	else	    return info.size() < other->info.size() ? -1 : 1;    case 2:	if ( info.lastModified() == other->info.lastModified() )	    return 0;	else	    return info.lastModified() < other->info.lastModified() ? -1 : 1;    default:	// use default method for colum 0 and others added in the future	return QListViewItem::compare( i, col, ascending );    };}QString FtpViewItem::text( int c ) const{    switch ( c ) {    case 0:	return info.name();    case 1:	return QString::number( info.size() );    case 2:	return info.lastModified().toString();    }    return "????";}const QPixmap *FtpViewItem::pixmap( int c ) const{    if ( !folderIcon )	folderIcon = new QPixmap( closed_xpm );    if ( !fileIcon )	fileIcon = new QPixmap( file_xpm );    if ( info.isDir() && c == 0 )	return folderIcon;    else if ( info.isFile() && c == 0 )	return fileIcon;    return 0;}FtpView::FtpView( QWidget *parent )    : QListView( parent ){    addColumn( tr( "Name" ) );    addColumn( tr( "Size" ) );    addColumn( tr( "Last Modified" ) );    setColumnAlignment( 1, Qt::AlignRight );    setShowSortIndicator( TRUE );    setAllColumnsShowFocus( TRUE );    setSelectionMode( Extended );    connect( this, SIGNAL( doubleClicked( QListViewItem * ) ),	     this, SLOT( slotSelected( QListViewItem * ) ) );    connect( this, SIGNAL( returnPressed( QListViewItem * ) ),	     this, SLOT( slotSelected( QListViewItem * ) ) );}void FtpView::slotInsertEntries( const QValueList<QUrlInfo> &info ){    QValueList<QUrlInfo>::ConstIterator it;    for( it = info.begin(); it != info.end(); ++it ) {	if ( (*it).name() != ".." && (*it).name() != "." && (*it).name()[ 0 ] == '.' )	    continue;	FtpViewItem *item = new FtpViewItem( this, (*it) );	if ( (*it).isDir() )	    item->setSelectable( FALSE );    }}void FtpView::slotSelected( QListViewItem *item ){    if ( !item )	return;    FtpViewItem *i = (FtpViewItem*)item;    if ( i->entryInfo().isDir() )	emit itemSelected( i->entryInfo() );}QValueList<QUrlInfo> FtpView::selectedItems() const{    QValueList<QUrlInfo> lst;    QListViewItemIterator it( (QListView*)this );    for ( ; it.current(); ++it ) {	if ( it.current()->isSelected() ) {	    lst << ( (FtpViewItem*)it.current() )->entryInfo();	}    }    return lst;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?