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

📄 splittergui.h

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 H
字号:
/***************************************************************************                        splittergui.h  -  description                             -------------------    copyright            : (C) 2003 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                                                     H e a d e r    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.                                   * *                                                                         * ***************************************************************************/#ifndef __SPLITTERGUI_H__#define __SPLITTERGUI_H__#include <qdialog.h>#include <qstring.h>#include <qspinbox.h>#include <qvalidator.h>#include <qcombobox.h>#include <kurlrequester.h>#include <kio/global.h>#include "../VFS/vfs.h"struct PredefinedDevice{  QString name;  KIO::filesize_t capacity;};class SplitterGUI : QDialog{  Q_OBJECTpublic:  class   SplitterSpinBox;  private:  int                             predefinedDeviceNum;  KIO::filesize_t                 userDefinedSize;  int                             lastSelectedDevice;  int                             resultCode;  static PredefinedDevice predefinedDevices[];  SplitterSpinBox *spinBox;  QComboBox       *deviceCombo;  QComboBox       *sizeCombo;  KURLRequester   *urlReq;  public:  SplitterGUI( QWidget* parent,  KURL fileURL, KURL defaultDir );  KURL    getDestinationDir()     {return vfs::fromPathOrURL( urlReq->url() );}  KIO::filesize_t getSplitSize()  {return spinBox->longValue();}  int     result()                {return resultCode;}public slots:  virtual void sizeComboActivated( int item );  virtual void predefinedComboActivated( int item );  virtual void splitPressed();protected:  virtual void keyPressEvent( QKeyEvent *e );public:  class SplitterSpinBox : public QSpinBox  {  private:    KIO::filesize_t division;    KIO::filesize_t value;      public:    SplitterSpinBox ( QWidget * parent = 0, const char * name = 0 ) : QSpinBox( parent, name ), division( 1 ), value( 1 )    {      setMaxValue( 0x7FFFFFFF );     /* setting the minimum and maximum values */      setMinValue( 1 );      QDoubleValidator *dval = new QDoubleValidator( this );      setValidator ( dval );    }    void setLongValue( KIO::filesize_t valueIn ) {      value = valueIn;      if( value == 0 )        value++;      updateDisplay();    }        KIO::filesize_t longValue() {      KIO::filesize_t val = (KIO::filesize_t)( division * text().toDouble() + 0.5 ) ;      if( val == 0 )        val++;      return val;    }        QString mapValueToText( int )    {      QString frac("");            KIO::filesize_t int_part  = value / division;      KIO::filesize_t frac_mod = value % division;                  if( frac_mod )      {        KIO::filesize_t frac_part = (KIO::filesize_t)((1000. * frac_mod) /division + 0.5);        if( frac_part )        {          frac = QString( "%1" ).arg( frac_part ).rightJustify( 3, '0' );          frac = "." + frac;          while( frac.endsWith("0") )            frac.truncate( frac.length() - 1 );        }      }      return QString( "%1%2" ).arg( int_part ).arg( frac );    }    int mapTextToValue( bool * )    {      value = longValue();          if( value > 0x7FFFFFFF )        return 0x7FFFFFFF;      else        return value;    }    void setDivision( KIO::filesize_t div )    {      division = div;      updateDisplay();    }      public slots:        void stepUp()    {      value = longValue();          if( value + division > value )        value += division;      updateDisplay();    }        void stepDown()    {      value = longValue();          if( value < division + 1 )        value = 1;      else        value -= division;      updateDisplay();         }  };};#endif /* __SPLITTERGUI_H__ */

⌨️ 快捷键说明

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