X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=33a13c516af89bbbed9ca14e930f6442836d4137;hp=e04784c9d7346b72a956b9a8ab585546a4853171;hb=5b2f14be0d05db7c02ff0faa6513eb6b471994f0;hpb=fd90abd3f3baa4fc98fa7e3df0e22e9bd3d77d95 diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index e04784c9..33a13c51 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -239,6 +239,8 @@ void ChatScene::updateSelection(const QPointF &pos) { if(newstart == newend && minColumn == ChatLineModel::ContentsColumn) { _lines[curRow]->setSelected(false); _isSelecting = false; + Q_ASSERT(_selectingItem); // this seems to not always be true, but I have no idea why + // adding this assert to make sure the occasional segfault is caused by this _selectingItem->continueSelecting(_selectingItem->mapFromScene(pos)); } } @@ -266,12 +268,7 @@ void ChatScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { void ChatScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { if(_isSelecting && !event->buttons() & Qt::LeftButton) { -# ifdef Q_WS_X11 - QApplication::clipboard()->setText(selectionToString(), QClipboard::Selection); -# endif -//# else - QApplication::clipboard()->setText(selectionToString()); -//# endif + putToClipboard(selectionToString()); _isSelecting = false; event->accept(); } else { @@ -279,6 +276,16 @@ void ChatScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { } } +void ChatScene::putToClipboard(const QString &selection) { + // TODO Configure clipboards +# ifdef Q_WS_X11 + QApplication::clipboard()->setText(selection, QClipboard::Selection); +# endif +//# else + QApplication::clipboard()->setText(selection); +//# endif +} + //!\brief Convert current selection to human-readable string. QString ChatScene::selectionToString() const { //TODO Make selection format configurable!