Prevent quasselclient from crashing when using the 'cancel' button of the 'Authorisat...
[quassel.git] / src / client / messagemodel.cpp
index ab81fe2..d10a9bc 100644 (file)
@@ -307,10 +307,12 @@ void MessageModel::customEvent(QEvent *event) {
 }
 
 void MessageModel::clear() {
-  beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
-  removeAllMessages();
-  endRemoveRows();
   _messagesWaiting.clear();
+  if (rowCount() > 0) {
+    beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
+    removeAllMessages();
+    endRemoveRows();
+  }
 }
 
 // returns index of msg with given Id or of the next message after that (i.e., the index where we'd insert this msg)
@@ -407,7 +409,7 @@ QVariant MessageModelItem::data(int column, int role) const {
     return QVariant();
 
   switch(role) {
-    case MessageModel::MessageRole: return QVariant::fromValue<Message>(_msg);
+    case MessageModel::MessageRole: return QVariant::fromValue<Message>(message());
     case MessageModel::MsgIdRole: return QVariant::fromValue<MsgId>(msgId());
     case MessageModel::BufferIdRole: return QVariant::fromValue<BufferId>(bufferId());
     case MessageModel::TypeRole: return msgType();
@@ -422,9 +424,6 @@ bool MessageModelItem::setData(int column, const QVariant &value, int role) {
   Q_UNUSED(column);
 
   switch(role) {
-  case MessageModel::FlagsRole:
-    _msg.setFlags((Message::Flags)value.toUInt());
-    return true;
   case MessageModel::RedirectedToRole:
     _redirectedTo = value.value<BufferId>();
     return true;