📄 mainwindow.cpp.bak
字号:
/****************************************************************************** $Id: qt/mainwindow.cpp 3.3.6 edited Aug 31 2005 $**** Copyright (C) 1992-2005 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 "mainwindow.h"#include "qfileiconview.h"#include "../dirview/dirview.h"#include "icons.h"#include <qsplitter.h>#include <qprogressbar.h>#include <qlabel.h>#include <qstatusbar.h>#include <qtoolbar.h>#include <qpixmap.h>#include <qtoolbutton.h>#include <qdir.h>#include <qfileinfo.h>#include <qvaluelist.h> #include <qstringlist.h>#include <qevent.h>#include <qmessagebox.h>#include <stdlib.h>FileMainWindow::FileMainWindow() : QMainWindow(){ setup();}void FileMainWindow::show(){ QMainWindow::show();}void FileMainWindow::setup(){ usbMounted = false; autoTimer = new QTimer( this ); autoTime = 1500; connect( autoTimer, SIGNAL( timeout() ), this, SLOT( usbTest() ) ); autoTimer->start( autoTime, true ); QSplitter *splitter = new QSplitter( this ); dirlist = new DirectoryView( splitter, "dirlist", TRUE ); dirlist->addColumn( "Name" ); dirlist->addColumn( "Type", 70 ); dirlist->setColumnAlignment( 1, AlignRight ); Directory *root = new Directory( dirlist, "/" ); root->setOpen( true ); QValueList<int> sizeList; sizeList.append( 130 ); splitter->setSizes( sizeList ); fileview = new QtFileIconView( "/", splitter ); splitter->setResizeMode( dirlist, QSplitter::KeepSize ); splitter->setOrientation( Vertical ); QToolBar *toolbar2 = new QToolBar( this, "toolbar2" ); QPixmap pix; pix = QPixmap( up_xpm ); upButton = new QToolButton( pix, "Directory up", QString::null, this, SLOT( cdUp() ), toolbar2, "cd up" ); toolbar2->addSeparator(); pix = QPixmap( copy_xpm ); copyButton = new QToolButton( pix , "Copy", QString::null, this, SLOT( copy() ), toolbar2, "copy" ); pix = QPixmap( cut_xpm ); cutButton = new QToolButton( pix , "Cut", QString::null, this, SLOT( cut() ), toolbar2, "cut" ); pix = QPixmap( del_xpm ); delButton = new QToolButton( pix , "Delete", QString::null, this, SLOT( del() ), toolbar2, "delete" ); pix = QPixmap( paste_xpm ); pasteButton = new QToolButton( pix , "Paste", QString::null, this, SLOT( paste() ), toolbar2, "paste" ); toolbar2->addSeparator(); pix = QPixmap( newfolder_xpm ); mkdirButton = new QToolButton( pix, "New Folder", QString::null, this, SLOT( newFolder() ), toolbar2, "new folder" ); setCentralWidget( splitter ); connect( dirlist, SIGNAL( folderSelected( const QString & ) ), fileview, SLOT ( setDirectory( const QString & ) ) ); connect( fileview, SIGNAL( resetListDir( const QString & ) ) , this, SLOT( resetListDir( const QString & ) ) ); connect( fileview, SIGNAL( itemRenamed ( QIconViewItem * ) ), this, SLOT( itemRenamed( QIconViewItem * ) ) ); connect( fileview, SIGNAL( directoryChanged( const QString & ) ), this, SLOT( directoryChanged( const QString & ) ) ); connect( fileview, SIGNAL( startReadDir( int ) ), this, SLOT( slotStartReadDir( int ) ) ); connect( fileview, SIGNAL( readNextDir() ), this, SLOT( slotReadNextDir() ) ); connect( fileview, SIGNAL( readDirDone() ), this, SLOT( slotReadDirDone() ) ); label = new QLabel( statusBar() ); statusBar()->addWidget( label, 2, TRUE ); progress = new QProgressBar( statusBar() ); statusBar()->addWidget( progress, 1, TRUE ); connect( fileview, SIGNAL( enableUp() ), this, SLOT( enableUp() ) ); connect( fileview, SIGNAL( disableUp() ), this, SLOT( disableUp() ) ); connect( fileview, SIGNAL( enableMkdir() ), this, SLOT( enableMkdir() ) ); connect( fileview, SIGNAL( disableMkdir() ), this, SLOT( disableMkdir() ) ); connect( fileview, SIGNAL( enablePaste() ), this, SLOT( enablePaste() ) ); connect( fileview, SIGNAL( disablePaste() ), this, SLOT( disablePaste() ) );}void FileMainWindow::directoryChanged( const QString &dir ){ setCaption( dir ); resetListDir( dir ); if ( dir == "/usr/tam/udisk" ) { if ( !usbMounted ) { if ( !system( "mount -t vfat -o rw,user /dev/scsi/host0/bus0/target0/lun0/part1 /usr/tam/udisk" ) ) { qDebug( "usb mounted" ); usbMounted = true; } else QMessageBox::information( this, "Message", "No UDisk Found", "ok" ); } }}void FileMainWindow::slotStartReadDir( int dirs ){ label->setText( tr( " Reading Directory..." ) ); progress->reset(); progress->setTotalSteps( dirs );}void FileMainWindow::slotReadNextDir(){ int p = progress->progress(); progress->setProgress( ++p );}void FileMainWindow::slotReadDirDone(){ label->setText( tr( " Reading Directory Done." ) ); progress->setProgress( progress->totalSteps() );}void FileMainWindow::cdUp(){ QDir dir = fileview->currentDir(); dir.cd( ".." ); fileview->setDirectory( dir );}void FileMainWindow::copy(){ fileview->slotCopy();}void FileMainWindow::paste(){ fileview->slotPaste( fileview->currentDir().absPath() );}void FileMainWindow::cut(){ fileview->slotCut();}void FileMainWindow::del(){ fileview->slotDel();}void FileMainWindow::resetListDir( const QString &dir ){ dirlist->clear(); Directory *root = new Directory( dirlist, "/" ); root->setOpen( true ); dirlist->setDir( dir );}void FileMainWindow::itemRenamed( QIconViewItem *item ){ QDir dir = ( (QtFileIconView*)item->iconView() )->currentDir(); resetListDir( dir.absPath() );}void FileMainWindow::newFolder(){ fileview->newDirectory();}void FileMainWindow::enableUp(){ upButton->setEnabled( TRUE );}void FileMainWindow::disableUp(){ upButton->setEnabled( FALSE );}void FileMainWindow::enableMkdir(){ mkdirButton->setEnabled( TRUE );}void FileMainWindow::disableMkdir(){ mkdirButton->setEnabled( FALSE );}void FileMainWindow::enablePaste(){ pasteButton->setEnabled( TRUE );}void FileMainWindow::disablePaste(){ pasteButton->setEnabled( FALSE );}void FileMainWindow::usbTest(){ system( "ls /dev/scsi/host0/bus0/target0/lun0" ); autoTimer->start( autoTime, true ); }void FileMainWindow::keyPressEvent( QKeyEvent *e ){ if ( e->key() == Key_Asterisk && usbMounted ) { system( "umount /usr/tam/udisk" ); usbMounted = false; QMessageBox::information( this, "Message", "UDisk Unmounted", "ok" ); qDebug( "usb unmounted" ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -