+bool ChatItem::hasSelection() const {
+ if(_selectionMode == NoSelection)
+ return false;
+ if(_selectionMode == FullSelection)
+ return true;
+ // partial
+ return _selectionStart != _selectionEnd;
+}
+
+QString ChatItem::selection() const {
+ if(_selectionMode == FullSelection)
+ return data(MessageModel::DisplayRole).toString();
+ if(_selectionMode == PartialSelection)
+ return data(MessageModel::DisplayRole).toString().mid(qMin(_selectionStart, _selectionEnd), qAbs(_selectionStart - _selectionEnd));
+ return QString();
+}
+