mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 03:15:00 -06:00
4.55 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
b82f80647d
commit
b67ffe691b
@@ -7,7 +7,7 @@
|
||||
CLocalProgress::CLocalProgress()
|
||||
{
|
||||
ProgressOffset = InSize = OutSize = 0;
|
||||
SendRatio = true;
|
||||
SendRatio = SendProgress = true;
|
||||
}
|
||||
|
||||
void CLocalProgress::Init(IProgress *progress, bool inSizeIsMain)
|
||||
@@ -31,7 +31,9 @@ STDMETHODIMP CLocalProgress::SetRatioInfo(const UInt64 *inSize, const UInt64 *ou
|
||||
}
|
||||
inSizeNew += ProgressOffset;
|
||||
outSizeNew += ProgressOffset;
|
||||
return _progress->SetCompleted(_inSizeIsMain ? &inSizeNew : &outSizeNew);
|
||||
if (SendProgress)
|
||||
return _progress->SetCompleted(_inSizeIsMain ? &inSizeNew : &outSizeNew);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CLocalProgress::SetCur()
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
UInt64 InSize;
|
||||
UInt64 OutSize;
|
||||
bool SendRatio;
|
||||
bool SendProgress;
|
||||
|
||||
CLocalProgress();
|
||||
void Init(IProgress *progress, bool inSizeIsMain);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#define MY_VER_MAJOR 4
|
||||
#define MY_VER_MINOR 54
|
||||
#define MY_VER_MINOR 55
|
||||
#define MY_VER_BUILD 0
|
||||
#define MY_VERSION "4.54 beta"
|
||||
#define MY_7ZIP_VERSION "7-Zip 4.54 beta"
|
||||
#define MY_DATE "2007-09-04"
|
||||
#define MY_VERSION "4.55 beta"
|
||||
#define MY_7ZIP_VERSION "7-Zip 4.55 beta"
|
||||
#define MY_DATE "2007-09-05"
|
||||
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
|
||||
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE
|
||||
|
||||
@@ -226,8 +226,10 @@ STDMETHODIMP CAgent::DoOperation(
|
||||
if (updatePairs2[i].NewData)
|
||||
numFiles++;
|
||||
|
||||
RINOK(updateCallback100->SetNumFiles(numFiles));
|
||||
|
||||
if (updateCallback100)
|
||||
{
|
||||
RINOK(updateCallback100->SetNumFiles(numFiles));
|
||||
}
|
||||
|
||||
CUpdateCallbackAgent updateCallbackAgent;
|
||||
updateCallbackAgent.SetCallback(updateCallback100);
|
||||
|
||||
@@ -41,7 +41,6 @@ void CArchiveExtractCallback::Init(
|
||||
{
|
||||
_stdOutMode = stdOutMode;
|
||||
_numErrors = 0;
|
||||
_ratioMode = false;
|
||||
_unpTotal = 1;
|
||||
_packTotal = packSize;
|
||||
|
||||
@@ -50,6 +49,7 @@ void CArchiveExtractCallback::Init(
|
||||
_extractCallback2.QueryInterface(IID_ICompressProgressInfo, &_compressProgress);
|
||||
|
||||
LocalProgressSpec->Init(extractCallback2, true);
|
||||
LocalProgressSpec->SendProgress = false;
|
||||
|
||||
_itemDefaultName = itemDefaultName;
|
||||
_utcLastWriteTimeDefault = utcLastWriteTimeDefault;
|
||||
@@ -97,8 +97,6 @@ STDMETHODIMP CArchiveExtractCallback::SetCompleted(const UInt64 *completeValue)
|
||||
|
||||
if (_multiArchives)
|
||||
{
|
||||
if (_ratioMode)
|
||||
return S_OK;
|
||||
if (completeValue != NULL)
|
||||
{
|
||||
UInt64 packCur = LocalProgressSpec->InSize + MyMultDiv64(*completeValue, _unpTotal, _packTotal);
|
||||
@@ -112,7 +110,6 @@ STDMETHODIMP CArchiveExtractCallback::SetCompleted(const UInt64 *completeValue)
|
||||
STDMETHODIMP CArchiveExtractCallback::SetRatioInfo(const UInt64 *inSize, const UInt64 *outSize)
|
||||
{
|
||||
COM_TRY_BEGIN
|
||||
_ratioMode = true;
|
||||
return _localProgress->SetRatioInfo(inSize, outSize);
|
||||
COM_TRY_END
|
||||
}
|
||||
|
||||
@@ -105,7 +105,6 @@ public:
|
||||
|
||||
CLocalProgress *LocalProgressSpec;
|
||||
CMyComPtr<ICompressProgressInfo> _localProgress;
|
||||
bool _ratioMode;
|
||||
UInt64 _packTotal;
|
||||
UInt64 _unpTotal;
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ HRESULT DecompressArchives(
|
||||
CExtractOptions options = optionsSpec;
|
||||
int i;
|
||||
UInt64 totalPackSize = 0;
|
||||
CRecordVector<UInt64> archiveSizes;
|
||||
for (i = 0; i < archivePaths.Size(); i++)
|
||||
{
|
||||
const UString &archivePath = archivePaths[i];
|
||||
@@ -99,6 +100,7 @@ HRESULT DecompressArchives(
|
||||
throw "there is no such archive";
|
||||
if (archiveFileInfo.IsDirectory())
|
||||
throw "can't decompress folder";
|
||||
archiveSizes.Add(archiveFileInfo.Size);
|
||||
totalPackSize += archiveFileInfo.Size;
|
||||
}
|
||||
CArchiveExtractCallback *extractCallbackSpec = new CArchiveExtractCallback;
|
||||
@@ -145,8 +147,15 @@ HRESULT DecompressArchives(
|
||||
{
|
||||
archivePaths.Delete(index);
|
||||
archivePathsFull.Delete(index);
|
||||
totalPackSize -= archiveSizes[index];
|
||||
archiveSizes.Delete(index);
|
||||
}
|
||||
}
|
||||
if (archiveLink.VolumePaths.Size() != 0)
|
||||
{
|
||||
totalPackSize += archiveLink.VolumesSize;
|
||||
RINOK(extractCallback->SetTotal(totalPackSize));
|
||||
}
|
||||
|
||||
#ifndef _NO_CRYPTO
|
||||
UString password;
|
||||
@@ -160,7 +169,7 @@ HRESULT DecompressArchives(
|
||||
options.DefaultItemName = archiveLink.GetDefaultItemName();
|
||||
RINOK(DecompressArchive(
|
||||
archiveLink.GetArchive(),
|
||||
archiveFileInfo.Size,
|
||||
archiveFileInfo.Size + archiveLink.VolumesSize,
|
||||
archiveLink.GetDefaultItemName(),
|
||||
wildcardCensor, options, extractCallback, extractCallbackSpec, errorMessage));
|
||||
extractCallbackSpec->LocalProgressSpec->InSize += archiveFileInfo.Size +
|
||||
|
||||
@@ -410,14 +410,6 @@ SOURCE=..\Common\OpenArchive.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\Common\ProgressUtils.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\Common\ProgressUtils.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\Common\PropIDUtils.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -550,6 +542,14 @@ SOURCE=..\..\Common\FileStreams.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\Common\ProgressUtils.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\Common\ProgressUtils.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\Common\StreamUtils.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
Reference in New Issue
Block a user