⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diskusagegui.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
字号:
/***************************************************************************                       diskusagegui.cpp  -  description                             -------------------    copyright            : (C) 2004 by Csaba Karai    e-mail               : krusader@users.sourceforge.net    web site             : http://krusader.sourceforge.net ---------------------------------------------------------------------------  Description ***************************************************************************  A     db   dD d8888b. db    db .d8888.  .d8b.  d8888b. d88888b d8888b.     88 ,8P' 88  `8D 88    88 88'  YP d8' `8b 88  `8D 88'     88  `8D     88,8P   88oobY' 88    88 `8bo.   88ooo88 88   88 88ooooo 88oobY'     88`8b   88`8b   88    88   `Y8b. 88~~~88 88   88 88~~~~~ 88`8b     88 `88. 88 `88. 88b  d88 db   8D 88   88 88  .8D 88.     88 `88.     YP   YD 88   YD ~Y8888P' `8888Y' YP   YP Y8888D' Y88888P 88   YD                                                     S o u r c e    F i l e *************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/#include "diskusagegui.h"#include "../kicons.h"#include "../krusader.h"#include "../VFS/vfs.h"#include "../Dialogs/krdialogs.h"#include <qtimer.h>#include <qhbox.h>#include <klocale.h>#include <qtooltip.h>DiskUsageGUI::DiskUsageGUI( KURL openDir, QWidget* parent, const char *name )   : QDialog( parent, name, false, 0 ), exitAtFailure( true ){    setCaption( i18n("Krusader::Disk Usage") );    baseDirectory = openDir;  if( !newSearch() )    return;    QGridLayout *duGrid = new QGridLayout( this );  duGrid->setSpacing( 6 );  duGrid->setMargin( 11 );    QHBox *duTools = new QHBox( this, "duTools" );  duTools->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );      btnNewSearch = new QToolButton( duTools, "btnNewSearch" );  btnNewSearch->setIconSet( QIconSet(krLoader->loadIcon("fileopen",KIcon::Desktop)) );  QToolTip::add( btnNewSearch, i18n( "Start new disk usage search" ) );    btnRefresh = new QToolButton( duTools, "btnRefresh" );  btnRefresh->setIconSet( QIconSet(krLoader->loadIcon("reload",KIcon::Desktop)) );  QToolTip::add( btnRefresh, i18n( "Refresh" ) );  btnDirUp = new QToolButton( duTools, "btnDirUp" );  btnDirUp->setIconSet( QIconSet(krLoader->loadIcon("up",KIcon::Desktop)) );  QToolTip::add( btnDirUp, i18n( "Parent directory" ) );    QWidget * separatorWidget = new QWidget( duTools, "separatorWidget" );  separatorWidget->setMinimumWidth( 10 );    btnLines = new QToolButton( duTools, "btnLines" );  btnLines->setIconSet( QIconSet(krLoader->loadIcon("leftjust",KIcon::Desktop)) );  btnLines->setToggleButton( true );  QToolTip::add( btnLines, i18n( "Line view" ) );  btnDetailed = new QToolButton( duTools, "btnDetailed" );  btnDetailed->setIconSet( QIconSet(krLoader->loadIcon("view_detailed",KIcon::Desktop)) );  btnDetailed->setToggleButton( true );  QToolTip::add( btnDetailed, i18n( "Detailed view" ) );  btnFilelight = new QToolButton( duTools, "btnFilelight" );  btnFilelight->setIconSet( QIconSet(krLoader->loadIcon("kr_diskusage",KIcon::Desktop)) );  btnFilelight->setToggleButton( true );  QToolTip::add( btnFilelight, i18n( "Filelight view" ) );      QWidget *spacerWidget = new QWidget( duTools, "spacerWidget" );  QHBoxLayout *hboxlayout = new QHBoxLayout( spacerWidget );  QSpacerItem* spacer = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed );  hboxlayout->addItem( spacer );    duGrid->addWidget( duTools, 0, 0 );    diskUsage = new DiskUsage( "DiskUsage", this );  duGrid->addWidget( diskUsage, 1, 0 );    status = new KSqueezedTextLabel( this );  status->setFrameShape( QLabel::StyledPanel );  status->setFrameShadow( QLabel::Sunken );    duGrid->addWidget( status, 2, 0 );    connect( diskUsage, SIGNAL( status( QString ) ), this, SLOT( setStatus( QString ) ) );  connect( diskUsage, SIGNAL( viewChanged( int ) ), this, SLOT( slotViewChanged( int ) ) );  connect( diskUsage, SIGNAL( newSearch() ), this,  SLOT( newSearch() ) );  connect( diskUsage, SIGNAL( loadFinished( bool ) ), this,  SLOT( slotLoadFinished( bool ) ) );  connect( btnNewSearch, SIGNAL( clicked() ), this, SLOT( newSearch() ) );  connect( btnRefresh, SIGNAL( clicked() ), this, SLOT( loadUsageInfo() ) );  connect( btnDirUp, SIGNAL( clicked() ), diskUsage, SLOT( dirUp() ) );  connect( btnLines, SIGNAL( clicked() ), this, SLOT( selectLinesView() ) );  connect( btnDetailed, SIGNAL( clicked() ), this, SLOT( selectListView() ) );  connect( btnFilelight, SIGNAL( clicked() ), this, SLOT( selectFilelightView() ) );      krConfig->setGroup( "DiskUsage" );     int view = krConfig->readNumEntry( "View",  VIEW_LINES );  if( view < VIEW_LINES || view > VIEW_FILELIGHT )    view = VIEW_LINES;      diskUsage->setView( view );    sizeX = krConfig->readNumEntry( "Window Width",  QFontMetrics(font()).width("W") * 70 );  sizeY = krConfig->readNumEntry( "Window Height", QFontMetrics(font()).height() * 25 );      resize( sizeX, sizeY );    if( krConfig->readBoolEntry( "Window Maximized",  false ) )    showMaximized();  else      show();  exec();}DiskUsageGUI::~DiskUsageGUI(){}void DiskUsageGUI::slotLoadFinished( bool result ){  if( exitAtFailure && !result )    reject();  else    exitAtFailure = false;}void DiskUsageGUI::enableButtons( bool isOn ){  btnNewSearch->setEnabled( isOn );  btnRefresh->setEnabled( isOn );  btnDirUp->setEnabled( isOn );  btnLines->setEnabled( isOn );  btnDetailed->setEnabled( isOn );  btnFilelight->setEnabled( isOn );}void DiskUsageGUI::resizeEvent( QResizeEvent *e ){     if( !isMaximized() )  {    sizeX = e->size().width();    sizeY = e->size().height();  }  QDialog::resizeEvent( e );}void DiskUsageGUI::reject(){  krConfig->setGroup( "DiskUsage" );   krConfig->writeEntry("Window Width", sizeX );  krConfig->writeEntry("Window Height", sizeY );  krConfig->writeEntry("Window Maximized", isMaximized() );  krConfig->writeEntry("View", diskUsage->getActiveView() );    QDialog::reject();}void DiskUsageGUI::loadUsageInfo(){  diskUsage->load( baseDirectory );}void DiskUsageGUI::setStatus( QString stat ){  status->setText( stat );}void DiskUsageGUI::slotViewChanged( int view ){  if( view == VIEW_LOADER )  {    enableButtons( false );    return;  }  enableButtons( true );  btnLines->setOn( false );  btnDetailed->setOn( false );  btnFilelight->setOn( false );    switch( view )  {  case VIEW_LINES:    btnLines->setOn( true );    break;  case VIEW_DETAILED:    btnDetailed->setOn( true );    break;  case VIEW_FILELIGHT:    btnFilelight->setOn( true );    break;  case VIEW_LOADER:    break;  }}bool DiskUsageGUI::newSearch(){   // ask the user for the copy dest    KURL tmp = KChooseDir::getDir(i18n( "Viewing the usage of directory:" ), baseDirectory, baseDirectory);  if (tmp.isEmpty()) return false;  baseDirectory = tmp;    QTimer::singleShot( 0, this, SLOT( loadUsageInfo() ) );  return true;}#include "diskusagegui.moc"

⌨️ 快捷键说明

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