Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pavlov <ipavlov@users.sourceforge.net>2007-08-27 04:00:00 +0400
committerKornel LesiƄski <kornel@geekhood.net>2016-05-28 02:15:54 +0300
commit051769bbc577aeede90558b6ab5c9be187940ca0 (patch)
treee6330cb80f2d4a526d8aa27812528e053b0cda90 /CPP/7zip/UI/GUI/ExtractGUI.cpp
parent33ccab7e728a996800e166d849fe1e92a17e1afe (diff)
4.53 beta
Diffstat (limited to 'CPP/7zip/UI/GUI/ExtractGUI.cpp')
-rwxr-xr-xCPP/7zip/UI/GUI/ExtractGUI.cpp54
1 files changed, 46 insertions, 8 deletions
diff --git a/CPP/7zip/UI/GUI/ExtractGUI.cpp b/CPP/7zip/UI/GUI/ExtractGUI.cpp
index b73f9870..7936fa86 100755
--- a/CPP/7zip/UI/GUI/ExtractGUI.cpp
+++ b/CPP/7zip/UI/GUI/ExtractGUI.cpp
@@ -5,19 +5,21 @@
#include "ExtractGUI.h"
#include "Common/StringConvert.h"
+#include "Common/IntToString.h"
#include "Windows/FileDir.h"
#include "Windows/Error.h"
#include "Windows/FileFind.h"
#include "Windows/Thread.h"
-#include "../../FileManager/FormatUtils.h"
-#include "../../FileManager/ExtractCallback.h"
-#include "../../FileManager/LangUtils.h"
+#include "../FileManager/FormatUtils.h"
+#include "../FileManager/ExtractCallback.h"
+#include "../FileManager/LangUtils.h"
#include "../Common/ArchiveExtractCallback.h"
#include "../Explorer/MyMessages.h"
-#include "../Resource/Extract/resource.h"
+#include "resource.h"
+#include "ExtractRes.h"
#include "OpenCallbackGUI.h"
#include "ExtractDialog.h"
@@ -36,7 +38,7 @@ struct CThreadExtracting
const CExtractOptions *Options;
COpenCallbackGUI *OpenCallback;
CMyComPtr<IExtractCallbackUI> ExtractCallback;
-
+ CDecompressStat Stat;
UString ErrorMessage;
HRESULT Result;
@@ -48,7 +50,7 @@ struct CThreadExtracting
Result = DecompressArchives(
codecs,
*ArchivePaths, *ArchivePathsFull,
- *WildcardCensor, *Options, OpenCallback, ExtractCallback, ErrorMessage);
+ *WildcardCensor, *Options, OpenCallback, ExtractCallback, ErrorMessage, Stat);
}
catch(const UString &s)
{
@@ -78,6 +80,34 @@ struct CThreadExtracting
}
};
+#ifndef _SFX
+
+static void AddValuePair(UINT resourceID, UInt32 langID, UInt64 value, UString &s)
+{
+ wchar_t sz[32];
+ s += LangString(resourceID, langID);
+ s += L" ";
+ ConvertUInt64ToString(value, sz);
+ s += sz;
+ s += L"\n";
+}
+
+static void AddSizePair(UINT resourceID, UInt32 langID, UInt64 value, UString &s)
+{
+ wchar_t sz[32];
+ s += LangString(resourceID, langID);
+ s += L" ";
+ ConvertUInt64ToString(value, sz);
+ s += sz;
+ ConvertUInt64ToString(value >> 20, sz);
+ s += L" (";
+ s += sz;
+ s += L" MB)";
+ s += L"\n";
+}
+
+#endif
+
HRESULT ExtractGUI(
CCodecs *codecs,
UStringVector &archivePaths,
@@ -162,8 +192,16 @@ HRESULT ExtractGUI(
extracter.ExtractCallbackSpec->NumArchiveErrors == 0)
{
#ifndef _SFX
- MessageBoxW(0, LangString(IDS_MESSAGE_NO_ERRORS, 0x02000608),
- LangString(IDS_PROGRESS_TESTING, 0x02000F90), 0);
+ UString s;
+ AddValuePair(IDS_ARCHIVES_COLON, 0x02000324, extracter.Stat.NumArchives, s);
+ AddValuePair(IDS_FOLDERS_COLON, 0x02000321, extracter.Stat.NumFolders, s);
+ AddValuePair(IDS_FILES_COLON, 0x02000320, extracter.Stat.NumFiles, s);
+ AddSizePair(IDS_SIZE_COLON, 0x02000322, extracter.Stat.UnpackSize, s);
+ AddSizePair(IDS_COMPRESSED_COLON, 0x02000323, extracter.Stat.PackSize, s);
+ s += L"\n";
+ s += LangString(IDS_MESSAGE_NO_ERRORS, 0x02000608);
+
+ MessageBoxW(0, s, LangString(IDS_PROGRESS_TESTING, 0x02000F90), 0);
#endif
}
if (extracter.Result != S_OK)