diff --git a/ark/archiveformatinfo.cpp b/ark/archiveformatinfo.cpp index 4d7eda6..01b84fc 100644 --- a/ark/archiveformatinfo.cpp +++ b/ark/archiveformatinfo.cpp @@ -53,6 +53,9 @@ void ArchiveFormatInfo::buildFormatInfos() addFormatInfo( TAR_FORMAT, "application/x-tarz", ".tar.z" ); addFormatInfo( TAR_FORMAT, "application/x-tbz", ".tar.bz2" ); addFormatInfo( TAR_FORMAT, "application/x-tbz2", ".tar.bz2" ); + addFormatInfo( TAR_FORMAT, "application/x-tlz", ".tar.lzma" ); + addFormatInfo( TAR_FORMAT, "application/x-txz", ".tar.xz" ); + // x-tar as the last one to get its comment for all the others, too addFormatInfo( TAR_FORMAT, "application/x-tar", ".tar" ); @@ -65,6 +68,8 @@ void ArchiveFormatInfo::buildFormatInfos() addFormatInfo( COMPRESSED_FORMAT, "application/x-gzip", ".gz" ); addFormatInfo( COMPRESSED_FORMAT, "application/x-bzip", ".bz" ); addFormatInfo( COMPRESSED_FORMAT, "application/x-bzip2", ".bz2" ); + addFormatInfo( COMPRESSED_FORMAT, "application/x-lzma", ".lzma" ); + addFormatInfo( COMPRESSED_FORMAT, "application/x-xz", ".xz" ); addFormatInfo( COMPRESSED_FORMAT, "application/x-lzop", ".lzo" ); addFormatInfo( COMPRESSED_FORMAT, "application/x-compress", ".Z" ); find( COMPRESSED_FORMAT ).description = i18n( "Compressed File" ); diff --git a/ark/ark.desktop b/ark/ark.desktop index d3615fe..1e6b4db 100644 --- a/ark/ark.desktop +++ b/ark/ark.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -MimeType=application/x-gzip;application/x-lha;application/x-tar;application/x-tgz;application/x-tbz;application/x-tbz2;application/x-zip;application/zip;application/x-bzip;application/x-tzo;application/x-lzop;application/x-rar;application/x-zoo;application/x-tarz;application/x-archive;application/x-bzip2;application/x-jar;application/x-deb;application/x-ace;application/x-7z;application/x-arc;application/x-arj;application/x-compress;application/x-cpio;application/x-pak;application/x-zip-compressed +MimeType=application/x-gzip;application/x-lha;application/x-tar;application/x-tgz;application/x-tbz;application/x-tbz2;application/x-zip;application/zip;application/x-bzip;application/x-tzo;application/x-lzop;application/x-rar;application/x-zoo;application/x-tarz;application/x-archive;application/x-bzip2;application/x-jar;application/x-deb;application/x-ace;application/x-7z;application/x-arc;application/x-arj;application/x-compress;application/x-cpio;application/x-pak;application/x-zip-compressed;application/x-lzma;application/x-xz GenericName=Archiving Tool GenericName[af]=Argiveer Program GenericName[ar]=أداة أرشفة diff --git a/ark/compressedfile.cpp b/ark/compressedfile.cpp index 29d29a9..65e21de 100644 --- a/ark/compressedfile.cpp +++ b/ark/compressedfile.cpp @@ -124,6 +124,18 @@ void CompressedFile::initData() m_archiver_program = "bzip2"; m_defaultExtensions << ".bz2" << ".bz"; } + if ( mimeType == "application/x-lzma" ) + { + m_unarchiver_program = "unlzma"; + m_archiver_program = "lzma"; + m_defaultExtensions << ".lzma"; + } + if ( mimeType == "application/x-xz" ) + { + m_unarchiver_program = "unxz"; + m_archiver_program = "xz"; + m_defaultExtensions << ".xz"; + } if ( mimeType == "application/x-lzop" ) { m_unarchiver_program = "lzop"; m_archiver_program = "lzop"; diff --git a/ark/tar.cpp b/ark/tar.cpp index 6e599c9..e3be8b0 100644 --- a/ark/tar.cpp +++ b/ark/tar.cpp @@ -208,6 +208,12 @@ TQString TarArch::getCompressor() if ( m_fileMimeType == "application/x-tbz" ) return TQString( "bzip2" ); + if ( m_fileMimeType == "application/x-lzma" ) + return TQString( "lzma" ); + + if ( m_fileMimeType == "application/x-xz" ) + return TQString( "xz" ); + if( m_fileMimeType == "application/x-tzo" ) return TQString( "lzop" ); @@ -226,6 +232,12 @@ TQString TarArch::getUnCompressor() if ( m_fileMimeType == "application/x-tbz" ) return TQString( "bunzip2" ); + if ( m_fileMimeType == "application/x-lzma" ) + return TQString( "unlzma" ); + + if ( m_fileMimeType == "application/x-xz" ) + return TQString( "unxz" ); + if( m_fileMimeType == "application/x-tzo" ) return TQString( "lzop" );