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:
Diffstat (limited to 'CPP/7zip/UI/FileManager/PanelCopy.cpp')
-rwxr-xr-xCPP/7zip/UI/FileManager/PanelCopy.cpp51
1 files changed, 33 insertions, 18 deletions
diff --git a/CPP/7zip/UI/FileManager/PanelCopy.cpp b/CPP/7zip/UI/FileManager/PanelCopy.cpp
index 0bb5dafa..c5745010 100755
--- a/CPP/7zip/UI/FileManager/PanelCopy.cpp
+++ b/CPP/7zip/UI/FileManager/PanelCopy.cpp
@@ -58,37 +58,42 @@ HRESULT CPanel::CopyTo(const CRecordVector<UInt32> &indices, const UString &fold
return E_FAIL;
}
+ HRESULT res;
+ {
CThreadExtractInArchive2 extracter;
-
+
extracter.ExtractCallbackSpec = new CExtractCallbackImp;
extracter.ExtractCallback = extracter.ExtractCallbackSpec;
extracter.ExtractCallbackSpec->ParentWindow = GetParent();
extracter.ExtractCallbackSpec->ShowMessages = showErrorMessages;
extracter.ExtractCallbackSpec->ProgressDialog.CompressingMode = false;
-
+
UString title = moveMode ?
LangString(IDS_MOVING, 0x03020206):
LangString(IDS_COPYING, 0x03020205);
UString progressWindowTitle = LangString(IDS_APP_TITLE, 0x03000000);
-
+
extracter.ExtractCallbackSpec->ProgressDialog.MainWindow = GetParent();
extracter.ExtractCallbackSpec->ProgressDialog.MainTitle = progressWindowTitle;
extracter.ExtractCallbackSpec->ProgressDialog.MainAddTitle = title + L" ";
-
+
extracter.ExtractCallbackSpec->OverwriteMode = NExtract::NOverwriteMode::kAskBefore;
extracter.ExtractCallbackSpec->Init();
extracter.Indices = indices;
extracter.DestPath = folder;
extracter.FolderOperations = folderOperations;
extracter.MoveMode = moveMode;
-
+
NWindows::CThread extractThread;
RINOK(extractThread.Create(CThreadExtractInArchive2::MyThreadFunction, &extracter));
extracter.ExtractCallbackSpec->StartProgressDialog(title);
-
+
if (messages != 0)
*messages = extracter.ExtractCallbackSpec->Messages;
- return extracter.Result;
+ res = extracter.Result;
+ }
+ RefreshTitleAlways();
+ return res;
}
@@ -135,6 +140,8 @@ HRESULT CPanel::CopyFrom(const UString &folderPrefix, const UStringVector &fileP
return E_FAIL;
}
+ HRESULT res;
+ {
CThreadUpdate updater;
updater.UpdateCallbackSpec = new CUpdateCallback100Imp;
updater.UpdateCallback = updater.UpdateCallbackSpec;
@@ -164,20 +171,14 @@ HRESULT CPanel::CopyFrom(const UString &folderPrefix, const UStringVector &fileP
if (messages != 0)
*messages = updater.UpdateCallbackSpec->Messages;
- return updater.Result;
+ res = updater.Result;
+ }
+ RefreshTitleAlways();
+ return res;
}
-void CPanel::CopyFrom(const UStringVector &filePaths)
+void CPanel::CopyFromNoAsk(const UStringVector &filePaths)
{
- UString title = LangString(IDS_CONFIRM_FILE_COPY, 0x03020222);
- UString message = LangString(IDS_WANT_TO_COPY_FILES, 0x03020223);
- message += L"\n\'";
- message += _currentFolderPrefix;
- message += L"\' ?";
- int res = ::MessageBoxW(*(this), message, title, MB_YESNOCANCEL | MB_ICONQUESTION | MB_SYSTEMMODAL);
- if (res != IDYES)
- return;
-
CDisableTimerProcessing disableTimerProcessing(*this);
CSelectedState srcSelState;
@@ -201,3 +202,17 @@ void CPanel::CopyFrom(const UStringVector &filePaths)
SetFocusToList();
}
+void CPanel::CopyFromAsk(const UStringVector &filePaths)
+{
+ UString title = LangString(IDS_CONFIRM_FILE_COPY, 0x03020222);
+ UString message = LangString(IDS_WANT_TO_COPY_FILES, 0x03020223);
+ message += L"\n\'";
+ message += _currentFolderPrefix;
+ message += L"\' ?";
+ int res = ::MessageBoxW(*(this), message, title, MB_YESNOCANCEL | MB_ICONQUESTION | MB_SYSTEMMODAL);
+ if (res != IDYES)
+ return;
+
+ CopyFromNoAsk(filePaths);
+}
+