<dd>\r
<ul>\r
<li class="add">書庫からクリップボードへファイルをコピーする機能を追加。</li>\r
+ <li class="chg">ファイルを開く動作でアプリケーションが起動している間も、Lycheeのウインドウを操作できるよう変更。</li>\r
<li class="chg">書庫閲覧時のメモリ使用量を削減。</li>\r
<li class="chg">書庫のアイコンを変更。</li>\r
<li class="chg">格納パスにルートが含まれている場合は、それを除いて表示するよう変更。</li>\r
{\r
// コマンドを実行。\r
wxString szTempFile = swInfo.fnDestinationDirectory.GetPathWithSep() + wxFileName(mkDlg.files[0], wxPATH_DOS).GetFullName();\r
- if (tpi.nErrorCode == TPI_ERROR_SUCCESS)\r
+ bool fSuccess = tpi.nErrorCode == TPI_ERROR_SUCCESS;\r
+ myProcess * pCallback = new myProcess(szTempFile, swInfo.fnDestinationDirectory.GetPath());\r
+ if (fSuccess)\r
{\r
#ifdef __LINUX__\r
// Linuxでは引用符で囲む必要がある。\r
- ::wxExecute(ftFile->GetOpenCommand(QuoteString(szTempFile)), wxEXEC_SYNC);\r
+ fSuccess = ::wxExecute(ftFile->GetOpenCommand(QuoteString(szTempFile)), wxEXEC_ASYNC, pCallback) > 0;\r
#else\r
- ::wxExecute(ftFile->GetOpenCommand(szTempFile), wxEXEC_SYNC);\r
+ fSuccess = ::wxExecute(ftFile->GetOpenCommand(szTempFile), wxEXEC_ASYNC, pCallback) > 0;\r
#endif\r
}\r
-\r
- ::wxRemoveFile(szTempFile);\r
- ::wxRmdir(swInfo.fnDestinationDirectory.GetPath());\r
+ if (! fSuccess)\r
+ {\r
+ pCallback->OnTerminate(0, 0);\r
+ }\r
}\r
else\r
{\r
{\r
return wxT('"') + s + wxT('"');\r
}\r
+\r
+//******************************************************************************\r
+// 「開く」用プロセス\r
+//******************************************************************************\r
+\r
+void myProcess::OnTerminate(int, int)\r
+{\r
+ ::wxRemoveFile(this->szFile);\r
+ ::wxRmdir(this->szDir);\r
+ delete this;\r
+}\r
\r
#ifndef H_LOADED_FUNCTIONS\r
#define H_LOADED_FUNCTIONS\r
+#include <wx/process.h>\r
\r
//******************************************************************************\r
// コントロール処理系関数\r
wxIcon GetFileTypeIcon(const wxFileName &);\r
wxString QuoteString(const wxString &);\r
\r
+//******************************************************************************\r
+// 「開く」用プロセス\r
+//******************************************************************************\r
+\r
+class myProcess : public wxProcess\r
+{\r
+public:\r
+ myProcess(const wxString & szFile, const wxString & szDir) : szFile(szFile), szDir(szDir) {}\r
+ virtual void OnTerminate(int, int);\r
+private:\r
+ wxString szFile, szDir;\r
+};\r
+\r
#endif\r