| 16 | {} |
| 17 | |
| 18 | void CopyEventFilter::copySelection() const |
| 19 | { |
| 20 | if (!m_view->selectionModel()->hasSelection()) { |
| 21 | return; |
| 22 | } |
| 23 | |
| 24 | // sort to reflect the visual order |
| 25 | QModelIndexList selectedRows = m_view->selectionModel()->selectedRows(); |
| 26 | std::sort(selectedRows.begin(), selectedRows.end(), |
| 27 | [=](const auto& lidx, const auto& ridx) { |
| 28 | return m_view->visualRect(lidx).top() < m_view->visualRect(ridx).top(); |
| 29 | }); |
| 30 | |
| 31 | QStringList rows; |
| 32 | for (auto& idx : selectedRows) { |
| 33 | rows.append(m_format(idx)); |
| 34 | } |
| 35 | |
| 36 | QGuiApplication::clipboard()->setText(rows.join("\n")); |
| 37 | } |
| 38 | |
| 39 | bool CopyEventFilter::eventFilter(QObject* sender, QEvent* event) |
| 40 | { |
no test coverage detected