Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,4 @@ debian/files
.cursor/
.cursorindexingignore

.npm-cache/
5 changes: 4 additions & 1 deletion 3rdparty/cli7zplugin/cli7zplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,10 @@ bool Cli7zPlugin::readListLine(const QString &line)
return false;
}

const QRegularExpression rxVersionLine(QStringLiteral("^p7zip Version ([\\d\\.]+) .*$"));
// 兼容p7zip和7z的版本输出格式
// p7zip: "p7zip Version 16.02 (...)"
// 7z: "7-Zip 23.01 (x64) : Copyright (...)"
const QRegularExpression rxVersionLine(QStringLiteral("^(?:p7zip Version|7-Zip) ([\\d\\.]+) .*$"));
QRegularExpressionMatch matchVersion;

switch (m_parseState) {
Expand Down
68 changes: 34 additions & 34 deletions 3rdparty/cli7zplugin/kerfuffle_cli7z.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,40 +41,40 @@
"application/x-java-archive",
"application/x-tzo"
],
"Name": "P7zip plugin",
"Name[ca@valencia]": "Connector del P7zip",
"Name[ca]": "Connector del P7zip",
"Name[cs]": "Modul pro p7zip",
"Name[da]": "P7zip-plugin",
"Name[de]": "P7zip-Modul",
"Name[el]": "Πρόσθετο P7zip",
"Name[en_GB]": "P7zip plugin",
"Name[es]": "Complemento P7zip",
"Name[eu]": "P7zip plugina",
"Name[fi]": "P7zip-liitännäinen",
"Name[fr]": "Module externe « P7zip »",
"Name[gl]": "Complemento de p7zip",
"Name[ia]": "Plugin de P7zip",
"Name[it]": "Estensione P7zip",
"Name[ko]": "P7zip 플러그인",
"Name[nl]": "P7zip-plug-in",
"Name[nn]": "P7zip-tillegg",
"Name[pl]": "Wtyczka p7zip",
"Name[pt]": "'Plugin' do P7zip",
"Name[pt_BR]": "Plugin 7zip",
"Name[ru]": "Модуль P7zip",
"Name[sk]": "Plugin P7zip",
"Name[sl]": "Vstavek P7zip",
"Name[sr@ijekavian]": "Прикључак за П7зип",
"Name[sr@ijekavianlatin]": "Priključak za p7zip",
"Name[sr@latin]": "Priključak za p7zip",
"Name[sr]": "Прикључак за П7зип",
"Name[sv]": "P7zip-insticksprogram",
"Name[tr]": "P7zip eklentisi",
"Name[uk]": "Додаток P7zip",
"Name[x-test]": "xxP7zip pluginxx",
"Name[zh_CN]": "P7zip 插件",
"Name[zh_TW]": "P7zip 外掛程式",
"Name": "7-Zip plugin",
"Name[ca@valencia]": "Connector del 7-Zip",
"Name[ca]": "Connector del 7-Zip",
"Name[cs]": "Modul pro 7-Zip",
"Name[da]": "7-Zip-plugin",
"Name[de]": "7-Zip-Modul",
"Name[el]": "Πρόσθετο 7-Zip",
"Name[en_GB]": "7-Zip plugin",
"Name[es]": "Complemento 7-Zip",
"Name[eu]": "7-Zip plugina",
"Name[fi]": "7-Zip-liitännäinen",
"Name[fr]": "Module externe « 7-Zip »",
"Name[gl]": "Complemento de 7-Zip",
"Name[ia]": "Plugin de 7-Zip",
"Name[it]": "Estensione 7-Zip",
"Name[ko]": "7-Zip 플러그인",
"Name[nl]": "7-Zip-plug-in",
"Name[nn]": "7-Zip-tillegg",
"Name[pl]": "Wtyczka 7-Zip",
"Name[pt]": "'Plugin' do 7-Zip",
"Name[pt_BR]": "Plugin 7-Zip",
"Name[ru]": "Модуль 7-Zip",
"Name[sk]": "Plugin 7-Zip",
"Name[sl]": "Vstavek 7-Zip",
"Name[sr@ijekavian]": "Прикључак за 7-Зип",
"Name[sr@ijekavianlatin]": "Priključak za 7-Zip",
"Name[sr@latin]": "Priključak za 7-Zip",
"Name[sr]": "Прикључак за 7-Зип",
"Name[sv]": "7-Zip-insticksprogram",
"Name[tr]": "7-Zip eklentisi",
"Name[uk]": "Додаток 7-Zip",
"Name[x-test]": "xx7-Zip pluginxx",
"Name[zh_CN]": "7-Zip 插件",
"Name[zh_TW]": "7-Zip 外掛程式",
"ServiceTypes": [
"Kerfuffle/Plugin"
],
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Build-Depends:
debhelper (>= 11), cmake, libgsettings-qt-dev, libarchive-dev, libsecret-1-dev, libpoppler-cpp-dev, libudisks2-qt5-dev, libdisomaster-dev, libkf5codecs-dev, libzip-dev, qttools5-dev-tools, deepin-gettext-tools, qtbase5-dev, qtchooser (>= 55-gc9562a1-1~), qt5-qmake, libdtkwidget-dev,libqt5svg5-dev, libqt5x11extras5-dev, libkf5archive-dev, libminizip-dev, qttools5-dev, libgtest-dev

Execute Depends:
${shlibs:Depends}, ${misc:Depends}, p7zip-full, deepin-shortcut-viewer, unar[i386 amd64], rar[i386 amd64], unrar[i386 amd64]
${shlibs:Depends}, ${misc:Depends}, 7zip, deepin-shortcut-viewer, unar[i386 amd64], rar[i386 amd64], unrar[i386 amd64]

### Third Party Code
[KDE ark](https://github.com/kde/ark)
Expand Down
2 changes: 1 addition & 1 deletion README.zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Build-Depends:
debhelper (>= 11), cmake, libgsettings-qt-dev, libarchive-dev, libsecret-1-dev, libpoppler-cpp-dev, libudisks2-qt5-dev, libdisomaster-dev, libkf5codecs-dev, libzip-dev, qttools5-dev-tools, deepin-gettext-tools, qtbase5-dev, qtchooser (>= 55-gc9562a1-1~), qt5-qmake, libdtkwidget-dev,libqt5svg5-dev, libqt5x11extras5-dev, libkf5archive-dev, libminizip-dev, qttools5-dev, libgtest-dev

Execute Depends:
${shlibs:Depends}, ${misc:Depends}, p7zip-full, deepin-shortcut-viewer, unar[i386 amd64], rar[i386 amd64], unrar[i386 amd64]
${shlibs:Depends}, ${misc:Depends}, 7zip, deepin-shortcut-viewer, unar[i386 amd64], rar[i386 amd64], unrar[i386 amd64]

### 第三方代码

Expand Down
2 changes: 1 addition & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Standards-Version: 4.1.3

Package: deepin-compressor
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, p7zip-full, deepin-shortcut-viewer, unar[i386 amd64], unrar[i386 amd64], pigz, lzop
Depends: ${shlibs:Depends}, ${misc:Depends}, 7zip, deepin-shortcut-viewer, unar[i386 amd64], unrar[i386 amd64], pigz, lzop
Recommends: uos-reporter, deepin-event-log
Description: Archive Manager is a fast and lightweight application for creating and extracting archives.
Archive Manager is a user-friendly and easy-to-use compressing and decompressing software, supporting multiple compressing formats such as 7z, jar, tar, tar.bz2, tar.gz, tar.lz, tar.lzm, tar.lzo, tar.Z, zip as well as encrypted compressing settings.
2 changes: 1 addition & 1 deletion debian/control.1
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Standards-Version: 4.1.3

Package: deepin-compressor
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, p7zip-full, deepin-shortcut-viewer, unar[i386 amd64], unrar[i386 amd64], pigz, lzop
Depends: ${shlibs:Depends}, ${misc:Depends}, 7zip, deepin-shortcut-viewer, unar[i386 amd64], unrar[i386 amd64], pigz, lzop
Recommends: uos-reporter, deepin-event-log
Description: Archive Manager is a fast and lightweight application for creating and extracting archives.
Archive Manager is a user-friendly and easy-to-use compressing and decompressing software, supporting multiple compressing formats such as 7z, jar, tar, tar.bz2, tar.gz, tar.lz, tar.lzm, tar.lzo, tar.Z, zip as well as encrypted compressing settings.
4 changes: 2 additions & 2 deletions docs/compressor_cmd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
准备测试的单文件:tar -cvf chrome.tar /opt/google/chrome

测试软件:
1)7z (p7zip)
sudo apt-get install p7zip-full
1)7z
sudo apt-get install 7zip

文件夹压缩测试:time 7z a chrome_7z.zip /opt/google/chrome

Expand Down
6 changes: 3 additions & 3 deletions src/source/common/uitools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -270,9 +270,9 @@ ReadOnlyArchiveInterface *UiTools::createInterface(const QString &fileName, bool
return nullptr;
}

//tar.lzo格式 由P7zip插件压缩mimeFromContent为"application/x-7z-compressed",由Libarchive插件压缩mimeFromContent为"application/x-lzop"
//tar.lzo格式 由cli7z插件压缩mimeFromContent为"application/x-7z-compressed",由Libarchive插件压缩mimeFromContent为"application/x-lzop"
// 若未指定使用cli7z插件,则需要对zip和tar格式的解压屏蔽7z,选用libzip或libarchive插件
//删除P7zip插件处理 mimeFromContent为"application/x-lzop" 的情况
//删除cli7z插件处理 mimeFromContent为"application/x-lzop" 的情况
QMimeDatabase db;
QMimeType mimeFromContent = db.mimeTypeForFile(fileName, QMimeDatabase::MatchContent);
bool remove7zFlag = false;
Expand All @@ -295,7 +295,7 @@ ReadOnlyArchiveInterface *UiTools::createInterface(const QString &fileName, bool
ReadOnlyArchiveInterface *pIface = nullptr;
qDebug() << "Iterating through" << offers.size() << "plugins";
for (Plugin *plugin : offers) {
//删除P7zip插件
//删除cli7z插件
if (remove7zFlag && plugin->metaData().name().contains("7zip", Qt::CaseInsensitive)) {
qDebug() << "Skipping 7zip plugin due to remove flag";
continue;
Expand Down
9 changes: 9 additions & 0 deletions tests/UnitTest/3rdparty/cli7zplugin/ut_cli7zplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,15 @@ TEST_F(UT_Cli7zPlugin, test_readListLine_001)
TEST_F(UT_Cli7zPlugin, test_readListLine_002)
{
m_tester->m_parseState = ParseStateTitle;
// 兼容p7zip和7z版本格式 - 测试7z版本
EXPECT_EQ(m_tester->readListLine("7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20"), true);
EXPECT_EQ(m_tester->m_parseState, ParseStateHeader);
}

TEST_F(UT_Cli7zPlugin, test_readListLine_002_p7zip)
{
m_tester->m_parseState = ParseStateTitle;
// 兼容p7zip和7z版本格式 - 测试p7zip版本(向后兼容)
EXPECT_EQ(m_tester->readListLine("p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz (A0655),ASM,AES-NI)"), true);
EXPECT_EQ(m_tester->m_parseState, ParseStateHeader);
}
Expand Down
Loading