Chop linefeed from a single line selection
[quassel.git] / src / qtui / chatscene.cpp
index c6341ec..2cb90ea 100644 (file)
@@ -34,6 +34,7 @@
 #include "client.h"
 #include "clientbacklogmanager.h"
 #include "columnhandleitem.h"
+#include "contextmenuactionprovider.h"
 #include "iconloader.h"
 #include "messagefilter.h"
 #include "qtui.h"
@@ -586,7 +587,7 @@ void ChatScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) {
     item->addActionsToMenu(&menu, item->mapFromScene(pos));
   else
     // no item -> default scene actions
-    Client::mainUi()->actionProvider()->addActions(&menu, filter(), BufferId());
+    GraphicalUi::contextMenuActionProvider()->addActions(&menu, filter(), BufferId());
 
   menu.exec(event->screenPos());
 
@@ -707,7 +708,12 @@ void ChatScene::selectionToClipboard(QClipboard::Mode mode) {
   stringToClipboard(selection(), mode);
 }
 
-void ChatScene::stringToClipboard(const QString &str, QClipboard::Mode mode) {
+void ChatScene::stringToClipboard(const QString &str_, QClipboard::Mode mode) {
+  QString str = str_;
+  // remove trailing linefeeds
+  if(str.endsWith('\n'))
+    str.chop(1);
+
   switch(mode) {
     case QClipboard::Clipboard:
       QApplication::clipboard()->setText(str);
@@ -865,8 +871,9 @@ void ChatScene::loadWebPreview(ChatItem *parentItem, const QString &url, const Q
   if(webPreview.url != url) {
     webPreview.url = url;
     // prepare to load a different URL
-    if(webPreview.previewItem && webPreview.previewItem->scene()) {
-      removeItem(webPreview.previewItem);
+    if(webPreview.previewItem) {
+      if(webPreview.previewItem->scene())
+       removeItem(webPreview.previewItem);
       delete webPreview.previewItem;
       webPreview.previewItem = 0;
     }