From edbfd659e4990494670e535d5be282659cd5bfc8 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 29 Jul 2023 14:23:02 +0300 Subject: =?UTF-8?q?fixes=20#3602=20("Copy=20path"=20=D0=B2=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BD=D0=BE=D0=BC=20=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=8E=20=D0=B4=D0=BB=D1=8F=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/NewStory/src/history_control.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'plugins/NewStory/src/history_control.cpp') diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp index 4e723dfa1c..7f25cfbc94 100644 --- a/plugins/NewStory/src/history_control.cpp +++ b/plugins/NewStory/src/history_control.cpp @@ -596,8 +596,19 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM int eventCount = data->items.getCount(); for (int i = 0; i < eventCount; i++) { ItemData *p = data->items.get(i, false); - if (p->m_bSelected) - res.Append(ptrW(TplFormatString(p->getCopyTemplate(), p->hContact, p))); + if (!p->m_bSelected) + continue; + + if (p->m_bOfflineFile) { + DB::EventInfo dbei(p->hEvent); + DB::FILE_BLOB blob(dbei); + if (p->m_bOfflineDownloaded) + res.Append(blob.getLocalName()); + else + res.Append(_A2T(blob.getUrl())); + res.Append(L"\r\n"); + } + else res.Append(ptrW(TplFormatString(p->getCopyTemplate(), p->hContact, p))); } Utils_ClipboardCopy(res); @@ -605,6 +616,11 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM InvalidateRect(hwnd, 0, FALSE); break; + case NSM_DOWNLOAD: + if (auto *p = data->items[data->caret]) + Srmm_DownloadOfflineFile(p->hContact, p->hEvent, lParam); + break; + case UM_EDITEVENT: idx = data->items.find(lParam); if (idx != -1) { @@ -835,7 +851,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM pt.y -= pItem->savedTop; if (pItem->m_bOfflineFile) { - Srmm_DownloadOfflineFile(pItem->hContact, pItem->hEvent, true); + Srmm_DownloadOfflineFile(pItem->hContact, pItem->hEvent, OFD_DOWNLOAD | OFD_RUN); return 0; } -- cgit v1.2.3