X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatwidget.cpp;h=85d8cad6d65874b1201c87394dfeec739b34a82e;hp=566de0d8c2aab235c81da54495f3e231a01a5e05;hb=508a14a5632d3a2a3d65c20dda7c942f8f120f9c;hpb=5319f3fbe69a63d1599107e0fc77ae325e4a9b6d diff --git a/src/qtui/chatwidget.cpp b/src/qtui/chatwidget.cpp index 566de0d8..85d8cad6 100644 --- a/src/qtui/chatwidget.cpp +++ b/src/qtui/chatwidget.cpp @@ -27,8 +27,7 @@ #include "buffer.h" #include "clientbacklogmanager.h" -ChatWidget::ChatWidget(QWidget *parent) - : QAbstractScrollArea(parent), +ChatWidget::ChatWidget(BufferId bufid, QWidget *parent) : QAbstractScrollArea(parent), AbstractChatView(), lastBacklogOffset(0), lastBacklogSize(0) { @@ -50,6 +49,8 @@ ChatWidget::ChatWidget(QWidget *parent) pointerPosition = QPoint(0,0); connect(verticalScrollBar(), SIGNAL(actionTriggered(int)), this, SLOT(scrollBarAction(int))); connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(scrollBarValChanged(int))); + + init(bufid); } void ChatWidget::init(BufferId id) { @@ -248,12 +249,14 @@ void ChatWidget::appendChatLines(QList list) { viewport()->update(); } -void ChatWidget::setContents(QList list) { +void ChatWidget::setContents(const QList &list) { ycoords.clear(); ycoords.append(0); height = 0; lines.clear(); - appendChatLines(list); + QList cl; + foreach(AbstractUiMsg *msg, list) cl << dynamic_cast(msg); + appendChatLines(cl); } //!\brief Computes the different x position vars for given tsWidth and senderWidth. @@ -381,7 +384,8 @@ void ChatWidget::mouseDoubleClickEvent(QMouseEvent *event) { len = end - start; } QString word = text.mid(start, len); - if(word.startsWith("http://")) { + QRegExp regex("^(h|f)t{1,2}ps?:\\/\\/"); + if(regex.indexIn(word) != -1) { QDesktopServices::openUrl(QUrl(word)); }