OSDN Git Service

書庫読み込み時に進捗バーが機能していなかったのを修正。
[tpi/lychee.git] / src / lychee / frm_main.cpp
index afab185..89482e7 100644 (file)
@@ -326,12 +326,13 @@ void MainFrame::OnArcOpen(wxCommandEvent& e)
        // 進捗ダイアログ表示。\r
        ProcessDialog procDlg;\r
        procDlg.fnArchive  = & this->fnArchive;\r
+       procDlg.Show(true);\r
 \r
        // DnD以外で書庫を開く場合、TPIを読み込み。\r
        TPI_PROCESSINFO piInfo;\r
        if (! this->LoadTPI(this->fnArchive.GetFullPath(), & piInfo.fiInfo.nUnpackedSize))\r
        {\r
-               tpi.FreeLibrary();\r
+               procDlg.Show(false);\r
                if (nMode == 2)\r
                {\r
                        // DnDの場合は書庫を作成する。\r
@@ -350,8 +351,16 @@ void MainFrame::OnArcOpen(wxCommandEvent& e)
                return;\r
        }\r
 \r
-       procDlg.nFileCount = piInfo.fiInfo.nUnpackedSize;\r
-       procDlg.Show(true);\r
+       piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+       piInfo.eStatus = 0x1001;\r
+       if (this->ErrorCheck(procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo), wxT("Callback")) == TPI_CALLBACK_CANCEL)\r
+       {\r
+               procDlg.Show(false);\r
+               tpi.CloseArchive();\r
+               wxCommandEvent e;\r
+               this->OnArcClose(e);\r
+               return;\r
+       }\r
 \r
        // 配列のサイズを確保。\r
        this->fileinfo.Alloc(piInfo.fiInfo.nUnpackedSize);\r
@@ -377,8 +386,7 @@ void MainFrame::OnArcOpen(wxCommandEvent& e)
        // ファイル情報をロード。\r
        if (tpi.GetFileInformation(& piInfo.fiInfo, true))\r
        {\r
-               piInfo.eMessage = TPI_MESSAGE_STATUS;\r
-               piInfo.eStatus = 0x1001;\r
+               piInfo.eStatus = 0x1002;\r
                piInfo.nProcessedSize = 0;\r
                do\r
                {\r