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>2009-08-17 04:00:00 +0400
committerKornel LesiƄski <kornel@geekhood.net>2016-05-28 02:16:00 +0300
commitc99f3ebdd639c2adb03d8b44001b10af18516504 (patch)
tree92aaf34e5edbd7287c3f55037190da75ab0a8000 /CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp
parent829409452d85cd6dd9dfc9151f109d6e13a2bb1c (diff)
9.06 beta
Diffstat (limited to 'CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp')
-rwxr-xr-xCPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp b/CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp
index 992fbd8c..310b890c 100755
--- a/CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp
+++ b/CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp
@@ -30,9 +30,12 @@ struct CThreadArchiveOpen
void Process()
{
- OpenCallbackSpec->ProgressDialog.WaitCreating();
- Result = FolderManager->OpenFolderFile(InStream, Path, &Folder, OpenCallback);
- OpenCallbackSpec->ProgressDialog.MyClose();
+ try
+ {
+ CProgressCloser closer(OpenCallbackSpec->ProgressDialog);
+ Result = FolderManager->OpenFolderFile(InStream, Path, &Folder, OpenCallback);
+ }
+ catch(...) { Result = E_FAIL; }
}
static THREAD_FUNC_DECL MyThreadFunction(void *param)
@@ -42,14 +45,15 @@ struct CThreadArchiveOpen
}
};
-static int FindPlugin(const CObjectVector<CPluginInfo> &plugins,
- const UString &pluginName)
+/*
+static int FindPlugin(const CObjectVector<CPluginInfo> &plugins, const UString &pluginName)
{
for (int i = 0; i < plugins.Size(); i++)
if (plugins[i].Name.CompareNoCase(pluginName) == 0)
return i;
return -1;
}
+*/
HRESULT OpenFileFolderPlugin(
IInStream *inStream,
@@ -77,6 +81,7 @@ HRESULT OpenFileFolderPlugin(
NFile::NName::SplitNameToPureNameAndExtension(fileName, pureName, dot, extension);
+ /*
if (!extension.IsEmpty())
{
CExtInfo extInfo;
@@ -94,6 +99,7 @@ HRESULT OpenFileFolderPlugin(
}
}
}
+ */
for (int i = 0; i < plugins.Size(); i++)
{
@@ -127,11 +133,13 @@ HRESULT OpenFileFolderPlugin(
t.OpenCallbackSpec->ProgressDialog.MainWindow = parentWindow;
t.OpenCallbackSpec->ProgressDialog.MainTitle = LangString(IDS_APP_TITLE, 0x03000000);
t.OpenCallbackSpec->ProgressDialog.MainAddTitle = progressTitle + UString(L" ");
+ t.OpenCallbackSpec->ProgressDialog.WaitMode = true;
- NWindows::CThread thread;
- if (thread.Create(CThreadArchiveOpen::MyThreadFunction, &t) != S_OK)
- throw 271824;
- t.OpenCallbackSpec->StartProgressDialog(progressTitle);
+ {
+ NWindows::CThread thread;
+ RINOK(thread.Create(CThreadArchiveOpen::MyThreadFunction, &t));
+ t.OpenCallbackSpec->StartProgressDialog(progressTitle, thread);
+ }
if (t.Result == E_ABORT)
return t.Result;