Copy to clipboard in plain text format also
The plain text copy is written generically and should work with any model that is attached to a XTableView
This commit is contained in:
parent
3b31a4fade
commit
e6213a90ac
@ -158,8 +158,8 @@ To emulate a device, click on Configuration and create a device group</string>
|
|||||||
<property name="whatsThis">
|
<property name="whatsThis">
|
||||||
<string>IP neighbor cache is empty</string>
|
<string>IP neighbor cache is empty</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="selectionMode">
|
<property name="selectionBehavior">
|
||||||
<enum>QAbstractItemView::SingleSelection</enum>
|
<enum>QAbstractItemView::SelectRows</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -83,6 +83,7 @@ public slots:
|
|||||||
|
|
||||||
std::sort(selected.begin(), selected.end());
|
std::sort(selected.begin(), selected.end());
|
||||||
QMimeData *mimeData = model()->mimeData(selected);
|
QMimeData *mimeData = model()->mimeData(selected);
|
||||||
|
copyPlainText(selected, mimeData);
|
||||||
qApp->clipboard()->setMimeData(mimeData);
|
qApp->clipboard()->setMimeData(mimeData);
|
||||||
qDebug("Copied data in %d format(s) to clipboard",
|
qDebug("Copied data in %d format(s) to clipboard",
|
||||||
mimeData->formats().size());
|
mimeData->formats().size());
|
||||||
@ -150,6 +151,41 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void copyPlainText(const QModelIndexList &indexes, QMimeData *mimeData)
|
||||||
|
{
|
||||||
|
if (mimeData->hasText())
|
||||||
|
return;
|
||||||
|
|
||||||
|
bool includeHeaders = (selectionBehavior()
|
||||||
|
!= QAbstractItemView::SelectItems);
|
||||||
|
QString text;
|
||||||
|
if (includeHeaders) {
|
||||||
|
text.append("\t"); // column header for row number/title
|
||||||
|
for (int i = 0; i < model()->columnCount(); i++)
|
||||||
|
text.append(model()->headerData(i, Qt::Horizontal)
|
||||||
|
.toString()+"\t");;
|
||||||
|
text.append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int lastRow = -1;
|
||||||
|
foreach(QModelIndex index, indexes) {
|
||||||
|
if (index.row() != lastRow) { // row changed
|
||||||
|
if (lastRow >= 0)
|
||||||
|
text.append("\n");
|
||||||
|
if (includeHeaders)
|
||||||
|
text.append(model()->headerData(index.row(), Qt::Vertical)
|
||||||
|
.toString()+"\t");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
text.append("\t");
|
||||||
|
text.append(model()->data(index).toString());
|
||||||
|
lastRow = index.row();
|
||||||
|
}
|
||||||
|
text.append("\n");
|
||||||
|
|
||||||
|
mimeData->setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
bool _modelAllowsRemove{false};
|
bool _modelAllowsRemove{false};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user