file.cpp
changeset 366 e95081c21da2
parent 255 5da693c51f10
child 408 c2a05fa925a1
     1.1 --- a/file.cpp	Tue Sep 05 09:47:13 2006 +0000
     1.2 +++ b/file.cpp	Tue Sep 05 09:47:14 2006 +0000
     1.3 @@ -1,5 +1,9 @@
     1.4  #include <qobject.h>
     1.5  #include <qmessagebox.h>
     1.6 +//Added by qt3to4:
     1.7 +#include <QPixmap>
     1.8 +#include <QLabel>
     1.9 +#include <QTextStream>
    1.10  #include <iostream>
    1.11  
    1.12  #include "file.h"
    1.13 @@ -45,8 +49,8 @@
    1.14  		}
    1.15  
    1.16  		// Now take care of paths where we have to go back first
    1.17 -		int srcsep=s.contains("/");
    1.18 -		int dstsep=d.contains("/");
    1.19 +		int srcsep=s.count("/");
    1.20 +		int dstsep=d.count("/");
    1.21  		if (srcsep <=  dstsep )
    1.22  		{
    1.23  			// find path to go up first and then back to dst
    1.24 @@ -61,11 +65,12 @@
    1.25  	return d;
    1.26  }
    1.27  
    1.28 -QString makeUniqueDir (QString s)
    1.29 +QString makeUniqueDir (bool &ok,QString s)
    1.30  {
    1.31  	// Create unique directory e.g. s="/tmp/vym-XXXXXX"
    1.32  
    1.33  	// Convert QString to string first
    1.34 +	ok=true;
    1.35  	char *p;
    1.36  	int bytes=s.length();
    1.37  	p=(char*) malloc (bytes+1);
    1.38 @@ -74,6 +79,7 @@
    1.39  		p[i]=s.at(i).latin1();
    1.40  	p[bytes]=0;	
    1.41  	QString r=mkdtemp (p);
    1.42 +	if (r.isEmpty()) ok=false;
    1.43  	free (p);
    1.44  	return r;
    1.45  }
    1.46 @@ -89,16 +95,16 @@
    1.47  
    1.48  	// Traverse directories
    1.49  	d.setFilter( QDir::Dirs| QDir::Hidden | QDir::NoSymLinks );
    1.50 -	const QFileInfoList *dirlist = d.entryInfoList();
    1.51 -	QFileInfoListIterator itdir( *dirlist );
    1.52 -	QFileInfo *fi;
    1.53 +	QFileInfoList list = d.entryInfoList();
    1.54 +	QFileInfo fi;
    1.55  
    1.56 -	while ( (fi = itdir.current()) != 0 ) 
    1.57 +	for (int i = 0; i < list.size(); ++i) 
    1.58  	{
    1.59 -		if (fi->fileName() != "." && fi->fileName() != ".." )
    1.60 +		fi=list.at(i);
    1.61 +		if (fi.fileName() != "." && fi.fileName() != ".." )
    1.62  		{
    1.63 -			if ( !d.cd(fi->fileName()) ) 
    1.64 -				qWarning ("removeDir() cannot find the directory "+fi->fileName());
    1.65 +			if ( !d.cd(fi.fileName()) ) 
    1.66 +				qWarning ("removeDir() cannot find the directory "+fi.fileName());
    1.67  			else 
    1.68  			{
    1.69  				// Recursively remove subdirs
    1.70 @@ -106,18 +112,16 @@
    1.71  				d.cdUp();
    1.72  			}
    1.73  		}	
    1.74 -		++itdir;
    1.75 -	}		
    1.76 +	}
    1.77 +
    1.78  	// Traverse files
    1.79  	d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks );
    1.80 -	const QFileInfoList *filelist = d.entryInfoList();
    1.81 -	QFileInfoListIterator itfile( *filelist );
    1.82 +	list = d.entryInfoList();
    1.83  
    1.84 -	while ( (fi = itfile.current()) != 0 ) 
    1.85 +	for (int i = 0; i < list.size(); ++i) 
    1.86  	{
    1.87 -		QFile (fi->filePath()).remove();
    1.88 -		
    1.89 -		++itfile;
    1.90 +		fi=list.at(i);
    1.91 +		QFile (fi.filePath()).remove(); 
    1.92  	}	
    1.93  
    1.94  	if (!d.rmdir(d.path()))
    1.95 @@ -228,7 +232,7 @@
    1.96  {
    1.97  	s="";
    1.98  	QFile file ( fname);
    1.99 -	if ( !file.open( IO_ReadOnly ) ) return false;
   1.100 +	if ( !file.open( QIODevice::ReadOnly ) ) return false;
   1.101  
   1.102  	QTextStream ts( &file );
   1.103  	ts.setEncoding (QTextStream::UnicodeUTF8);
   1.104 @@ -243,7 +247,7 @@
   1.105  	QFile file( fname);
   1.106  
   1.107  	file.setName ( fname);
   1.108 -	if ( !file.open( IO_WriteOnly ) ) 
   1.109 +	if ( !file.open( QIODevice::WriteOnly ) ) 
   1.110  	{
   1.111  		file.close();
   1.112  		return false;
   1.113 @@ -260,10 +264,10 @@
   1.114  
   1.115  ImagePreview::ImagePreview (QWidget *par=0): QLabel (par)
   1.116  {
   1.117 -	fdia=(QFileDialog*)par;
   1.118 +	fdia=(Q3FileDialog*)par;
   1.119  }
   1.120  
   1.121 -void ImagePreview::previewUrl( const QUrl &u )
   1.122 +void ImagePreview::previewUrl( const Q3Url &u )
   1.123  {
   1.124      QString path = u.path();
   1.125      QPixmap pix( path );
   1.126 @@ -301,3 +305,39 @@
   1.127  	}	
   1.128  }
   1.129  
   1.130 +ImageIO::ImageIO ()
   1.131 +{
   1.132 +	// Create list with supported image types
   1.133 +	// foreach (QByteArray format, QImageWriter::supportedImageFormats()) 
   1.134 +	// imageTypes.append( tr("%1...").arg(QString(format).toUpper()));
   1.135 +	imageFilters.append ("Images (*.png *.jpg *.jpeg *.bmp *.bmp *.ppm *.xpm *.xbm)");
   1.136 +	imageTypes.append ("PNG");
   1.137 +	imageFilters.append ("Portable Network Graphics (*.png)");
   1.138 +	imageTypes.append ("PNG");
   1.139 +	imageFilters.append ("Joint Photographic Experts Group (*.jpg)");
   1.140 +	imageTypes.append ("JPG");
   1.141 +	imageFilters.append ("Joint Photographic Experts Group (*.jpeg)");
   1.142 +	imageTypes.append ("JPG");
   1.143 +	imageFilters.append ("Windows Bitmap (*.bmp)");
   1.144 +	imageTypes.append ("BMP");
   1.145 +	imageFilters.append ("Portable Pixmap (*.ppm)");
   1.146 +	imageTypes.append ("PPM");
   1.147 +	imageFilters.append ("X11 Bitmap (*.xpm)");
   1.148 +	imageTypes.append ("XPM");
   1.149 +	imageFilters.append ("X11 Bitmap (*.xbm)");
   1.150 +	imageTypes.append ("XBM");
   1.151 +}
   1.152 +
   1.153 +QStringList ImageIO::getFilters()
   1.154 +{
   1.155 +	return imageFilters;
   1.156 +}
   1.157 +
   1.158 +QString ImageIO::getType(QString filter)
   1.159 +{
   1.160 +	for (int i=0;i<imageFilters.count()+1;i++)
   1.161 +		if (imageFilters.at(i)==filter) return imageTypes.at(i);
   1.162 +	return QString();	
   1.163 +}
   1.164 +
   1.165 +