From c99f3ebdd639c2adb03d8b44001b10af18516504 Mon Sep 17 00:00:00 2001 From: Igor Pavlov Date: Mon, 17 Aug 2009 00:00:00 +0000 Subject: 9.06 beta --- CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp | 26 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'CPP/7zip/UI/FileManager/FileFolderPluginOpen.cpp') 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 &plugins, - const UString &pluginName) +/* +static int FindPlugin(const CObjectVector &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; -- cgit v1.2.3