From: Karai C. <ck...@us...> - 2005-03-06 22:46:18
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Splitter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14713/krusader_kde3/krusader/Splitter Modified Files: splitter.cpp splitter.h splittergui.cpp splittergui.h Log Message: FIXED: splitter doesn't handle sizes bigger than 2 GB properly Index: splitter.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splitter.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** splitter.cpp 5 Feb 2005 21:35:40 -0000 1.6 --- splitter.cpp 6 Mar 2005 22:46:08 -0000 1.7 *************** *** 60,64 **** } ! void Splitter::split( int splitSizeIn ) { KFileItem file(KFileItem::Unknown, KFileItem::Unknown, fileName ); --- 60,64 ---- } ! void Splitter::split( KIO::filesize_t splitSizeIn ) { KFileItem file(KFileItem::Unknown, KFileItem::Unknown, fileName ); Index: splittergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splittergui.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** splittergui.cpp 29 Dec 2004 22:45:36 -0000 1.5 --- splittergui.cpp 6 Mar 2005 22:46:08 -0000 1.6 *************** *** 48,52 **** SplitterGUI::SplitterGUI( QWidget* parent, QString fileName, QString defaultDir ) : ! QDialog( parent, "Krusader::SplitterGUI", true, 0 ), splittedFileSize( 0 ), userDefinedSize ( 0x100000 ), lastSelectedDevice( 0 ), resultCode( QDialog::Rejected ) { --- 48,52 ---- SplitterGUI::SplitterGUI( QWidget* parent, QString fileName, QString defaultDir ) : ! QDialog( parent, "Krusader::SplitterGUI", true, 0 ), userDefinedSize ( 0x100000 ), lastSelectedDevice( 0 ), resultCode( QDialog::Rejected ) { *************** *** 154,158 **** { if( lastSelectedDevice == predefinedDeviceNum ) ! userDefinedSize = spinBox->value(); spinBox->setEnabled( false ); --- 154,158 ---- { if( lastSelectedDevice == predefinedDeviceNum ) ! userDefinedSize = spinBox->longValue(); spinBox->setEnabled( false ); *************** *** 162,166 **** spinBox->setEnabled( true ); ! spinBox->setValue( capacity ); if( capacity >= 0x40000000 ) /* Gbyte */ --- 162,166 ---- spinBox->setEnabled( true ); ! spinBox->setLongValue( capacity ); if( capacity >= 0x40000000 ) /* Gbyte */ Index: splittergui.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splittergui.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** splittergui.h 29 Nov 2003 09:09:08 -0000 1.1 --- splittergui.h 6 Mar 2005 22:46:08 -0000 1.2 *************** *** 38,48 **** #include <qcombobox.h> #include <kurlrequester.h> ! ! struct PredefinedDevice { QString name; ! int capacity; }; --- 38,47 ---- #include <qcombobox.h> #include <kurlrequester.h> ! #include <kio/global.h> struct PredefinedDevice { QString name; ! KIO::filesize_t capacity; }; *************** *** 55,63 **** private: ! int predefinedDeviceNum; ! int splittedFileSize; ! int userDefinedSize; ! int lastSelectedDevice; ! int resultCode; static PredefinedDevice predefinedDevices[]; --- 54,61 ---- private: ! int predefinedDeviceNum; ! KIO::filesize_t userDefinedSize; ! int lastSelectedDevice; ! int resultCode; static PredefinedDevice predefinedDevices[]; *************** *** 72,78 **** SplitterGUI( QWidget* parent, QString fileName, QString defaultDir ); ! QString getDestinationDir() {return urlReq->url();} ! int getSplitSize() {return spinBox->value();} ! int result() {return resultCode;} public slots: --- 70,76 ---- SplitterGUI( QWidget* parent, QString fileName, QString defaultDir ); ! QString getDestinationDir() {return urlReq->url();} ! KIO::filesize_t getSplitSize() {return spinBox->longValue();} ! int result() {return resultCode;} public slots: *************** *** 88,95 **** { private: ! int division; public: ! SplitterSpinBox ( QWidget * parent = 0, const char * name = 0 ) : QSpinBox( parent, name ), division( 1 ) { setMaxValue( 0x7FFFFFFF ); /* setting the minimum and maximum values */ --- 86,94 ---- { 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 */ *************** *** 99,112 **** } ! QString mapValueToText( int value ) { QString frac(""); ! int int_part = value / division; ! int frac_mod = value % division; if( frac_mod ) { ! int frac_part = (int)((1000. * frac_mod) /division + 0.5); if( frac_part ) --- 98,125 ---- } ! 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 ) *************** *** 124,136 **** int mapTextToValue( bool * ) { ! return (int) ( division * text().toDouble() + 0.5 ) ; } ! void setDivision( int div ) { division = div; - setLineStep( div ); updateDisplay(); } }; }; --- 137,175 ---- 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(); + } }; }; Index: splitter.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splitter.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** splitter.h 18 Dec 2003 23:05:40 -0000 1.2 --- splitter.h 6 Mar 2005 22:46:08 -0000 1.3 *************** *** 65,69 **** ~Splitter(); ! void split( int splitSizeIn ); private: --- 65,69 ---- ~Splitter(); ! void split( KIO::filesize_t splitSizeIn ); private: |