Redone the instance action toolbar: * Removed all the dead actions * Change icon and Rename are now morphed into a header * Added button for opening the config folder Implemented support for loose files and folders as legacy jar mods Added texture pack support
		
			
				
	
	
		
			126 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef JLCOMPRESSFOLDER_H_
 | 
						|
#define JLCOMPRESSFOLDER_H_
 | 
						|
 | 
						|
#include "quazip.h"
 | 
						|
#include "quazipfile.h"
 | 
						|
#include "quazipfileinfo.h"
 | 
						|
#include <QString>
 | 
						|
#include <QDir>
 | 
						|
#include <QFileInfo>
 | 
						|
#include <QFile>
 | 
						|
 | 
						|
/// Utility class for typical operations.
 | 
						|
/**
 | 
						|
  This class contains a number of useful static functions to perform
 | 
						|
  simple operations, such as mass ZIP packing or extraction.
 | 
						|
  */
 | 
						|
class QUAZIP_EXPORT JlCompress {
 | 
						|
private:
 | 
						|
    /// Remove some files.
 | 
						|
    /**
 | 
						|
      \param listFile The list of files to remove.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool removeFile(QStringList listFile);
 | 
						|
public:
 | 
						|
    /// Compress a single file.
 | 
						|
    /**
 | 
						|
      \param zip Opened zip to compress the file to.
 | 
						|
      \param fileName The full path to the source file.
 | 
						|
      \param fileDest The full name of the file inside the archive.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool compressFile(QuaZip* zip, QString fileName, QString fileDest);
 | 
						|
    /// Compress a subdirectory.
 | 
						|
    /**
 | 
						|
      \param parentZip Opened zip containing the parent directory.
 | 
						|
      \param dir The full path to the directory to pack.
 | 
						|
      \param parentDir The full path to the directory corresponding to
 | 
						|
      the root of the ZIP.
 | 
						|
      \param recursive Whether to pack sub-directories as well or only
 | 
						|
      files.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool compressSubDir( QuaZip* parentZip, QString dir, QString parentDir, bool recursive, QSet< QString >& added );
 | 
						|
    /// Extract a single file.
 | 
						|
    /**
 | 
						|
      \param zip The opened zip archive to extract from.
 | 
						|
      \param fileName The full name of the file to extract.
 | 
						|
      \param fileDest The full path to the destination file.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool extractFile(QuaZip* zip, QString fileName, QString fileDest);
 | 
						|
 | 
						|
    /// copy data from inFile to outFile
 | 
						|
    static bool copyData(QIODevice &inFile, QIODevice &outFile);
 | 
						|
    /// Compress a single file.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param file The file to compress.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool compressFile(QString fileCompressed, QString file);
 | 
						|
    /// Compress a list of files.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param files The file list to compress.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool compressFiles(QString fileCompressed, QStringList files);
 | 
						|
    /// Compress a whole directory.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param dir The directory to compress.
 | 
						|
      \param recursive Whether to pack the subdirectories as well, or
 | 
						|
      just regular files.
 | 
						|
      \return true if success, false otherwise.
 | 
						|
      */
 | 
						|
    static bool compressDir(QString fileCompressed, QString dir = QString(), bool recursive = true);
 | 
						|
 | 
						|
public:
 | 
						|
    /// Extract a single file.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param fileName The file to extract.
 | 
						|
      \param fileDest The destination file, assumed to be identical to
 | 
						|
      \a file if left empty.
 | 
						|
      \return The list of the full paths of the files extracted, empty on failure.
 | 
						|
      */
 | 
						|
    static QString extractFile(QString fileCompressed, QString fileName, QString fileDest = QString());
 | 
						|
    /// Extract a list of files.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param files The file list to extract.
 | 
						|
      \param dir The directory to put the files to, the current
 | 
						|
      directory if left empty.
 | 
						|
      \return The list of the full paths of the files extracted, empty on failure.
 | 
						|
      */
 | 
						|
    static QStringList extractFiles(QString fileCompressed, QStringList files, QString dir = QString());
 | 
						|
    /// Extract a whole archive.
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param dir The directory to extract to, the current directory if
 | 
						|
      left empty.
 | 
						|
      \return The list of the full paths of the files extracted, empty on failure.
 | 
						|
      */
 | 
						|
    static QStringList extractDir(QString fileCompressed, QString dir = QString());
 | 
						|
    /// Extract a whole archive, with a list of exceptions (prefixes to ignore).
 | 
						|
    /**
 | 
						|
      \param fileCompressed The name of the archive.
 | 
						|
      \param dir The directory to extract to, the current directory if
 | 
						|
      left empty.
 | 
						|
      \param exceptions The list of exception prefixes
 | 
						|
      \return The list of the full paths of the files extracted, empty on failure.
 | 
						|
      */
 | 
						|
    static QStringList extractWithExceptions(QString fileCompressed, QString dir, QStringList exceptions);
 | 
						|
    /// Get the file list.
 | 
						|
    /**
 | 
						|
      \return The list of the files in the archive, or, more precisely, the
 | 
						|
      list of the entries, including both files and directories if they
 | 
						|
      are present separately.
 | 
						|
      */
 | 
						|
    static QStringList getFileList(QString fileCompressed);
 | 
						|
};
 | 
						|
 | 
						|
#endif /* JLCOMPRESSFOLDER_H_ */
 |