diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2009-08-17 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:16:00 +0300 |
commit | c99f3ebdd639c2adb03d8b44001b10af18516504 (patch) | |
tree | 92aaf34e5edbd7287c3f55037190da75ab0a8000 /CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp | |
parent | 829409452d85cd6dd9dfc9151f109d6e13a2bb1c (diff) |
9.06 beta
Diffstat (limited to 'CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp')
-rwxr-xr-x | CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp | 26 |
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; |