<li class="add">処理中に書庫全体での進捗状況を表示する機能を追加。</li>\r
<li class="chg">フォルダを格納する際に、TPIに送る名前を"xxx\"から"xxx"に変更。</li>\r
<li class="chg">DnDされたものが書庫であるか判定する際に、それがファイルであるかを先に確認するよう変更。</li>\r
+ <li class="chg">DnDで書庫を開く際、TPIを読み込む回数を減らして高速化。</li>\r
<li class="chg">コマンドライン経由で書庫を展開した後にLycheeのウインドウが表示されないように改良。</li>\r
<li class="chg">ヘッダ暗号化書庫を開く際に、対応確認の段階でパスワードを要求するものへの対応を改良。</li>\r
<li class="chg">書庫処理ダイアログで初期状態でOKボタンにフォーカスしておくよう変更。</li>\r
{\r
wxCommandEvent e;\r
\r
- // 書庫に対応しているかどうか確認。\r
- this->mainFrame->OnArcClose(e);\r
- if (asFiles.GetCount() == 1 && ::wxFileExists(asFiles[0]) && this->mainFrame->LoadTPI(asFiles[0]) != 0)\r
+ // ファイルが存在するか確認。\r
+ if (asFiles.GetCount() == 1 && ::wxFileExists(asFiles[0]))\r
{\r
- // 書庫を開く。\r
- this->mainFrame->fnArchive = wxFileName(asFiles[0]);\r
- this->mainFrame->OnArcOpen(e);\r
- return true;\r
+ // 対応しているかどうか確認。\r
+ long l = this->mainFrame->LoadTPI(asFiles[0]);\r
+ if (l != 0)\r
+ {\r
+ // 書庫を開く。\r
+ e.SetExtraLong(l);\r
+ this->mainFrame->fnArchive = wxFileName(asFiles[0]);\r
+ this->mainFrame->OnArcOpen(e);\r
+ return true;\r
+ }\r
}\r
\r
// 対応していない場合は書庫の作成を試みる。\r
piInfo.eStatus = 0x1000;\r
piInfo.nProcessedSize = 0;\r
piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = this->LoadTPI(this->fnArchive.GetFullPath());\r
+ piInfo.fiInfo.nUnpackedSize = e.GetExtraLong() != 0 ? e.GetExtraLong() : this->LoadTPI(this->fnArchive.GetFullPath());\r
if (piInfo.fiInfo.nUnpackedSize == 0)\r
{\r
procDlg.Show(false);\r
procDlg.Show(false);\r
}\r
\r
-void MainFrame::OnArcClose(wxCommandEvent&)\r
+void MainFrame::OnArcClose(wxCommandEvent& e)\r
{\r
// ツリービュー・リストビュー設定。\r
this->tree_ctrl->DeleteAllItems();\r
g_hIconT.RemoveAll();\r
g_hIconLL.RemoveAll();\r
g_hIconLS.RemoveAll();\r
- this->tpi.FreeLibrary();\r
+\r
+ // DnDで書庫を開くときは既に読み込まれているTPIを用いるので、解放してはいけない。\r
+ if (e.GetExtraLong() == 0)\r
+ {\r
+ this->tpi.FreeLibrary();\r
+ }\r
}\r
\r
void MainFrame::OnArcAdd(wxCommandEvent& e)\r