summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/QuickSearch/src/stdafx.h1
-rw-r--r--plugins/QuickSearch/src/window_misc.cpp7
2 files changed, 7 insertions, 1 deletions
diff --git a/plugins/QuickSearch/src/stdafx.h b/plugins/QuickSearch/src/stdafx.h
index f2a830e9d7..a6cd211e45 100644
--- a/plugins/QuickSearch/src/stdafx.h
+++ b/plugins/QuickSearch/src/stdafx.h
@@ -274,6 +274,7 @@ struct CRowItem : public QSFlags
wchar_t *text = nullptr;
UINT_PTR data = UINT_PTR(-1);
+ wchar_t* getText() const { return (text) ? text : L""; }
void LoadOneItem(MCONTACT hContact, const ColumnItem &pCol, class QSMainDlg *pDlg);
}
*pValues;
diff --git a/plugins/QuickSearch/src/window_misc.cpp b/plugins/QuickSearch/src/window_misc.cpp
index d636374896..9013619723 100644
--- a/plugins/QuickSearch/src/window_misc.cpp
+++ b/plugins/QuickSearch/src/window_misc.cpp
@@ -119,13 +119,18 @@ void QSMainDlg::CopyMultiLines()
buf.Append(L"\r\n");
int nRows = m_grid.GetItemCount();
+ int nSelected = m_grid.GetSelectedCount();
+
for (int j = 0; j < nRows; j++) {
+ if (nSelected > 1 && !m_grid.GetItemState(j, LVIS_SELECTED))
+ continue;
+
auto *pRow = GetRow(j);
i = 0;
for (auto &it : g_plugin.m_columns) {
if (it->bEnabled && it->width >= 10)
- buf.AppendFormat(L"%s\t", pRow->pValues[i].text);
+ buf.AppendFormat(L"%s\t", pRow->pValues[i].getText());
i++;
}
buf.Append(L"\r\n");