+qreal ChatLine::setGeometry(qreal width, qreal firstHandlePos, qreal secondHandlePos) {
+ if(width != _width)
+ prepareGeometryChange();
+ qreal firstsep = QtUi::style()->firstColumnSeparator()/2;
+ qreal secondsep = QtUi::style()->secondColumnSeparator()/2;
+
+ _timestampItem.setWidth(firstHandlePos - firstsep);
+ _senderItem.setWidth(secondHandlePos - firstHandlePos - (firstsep+secondsep));
+ _height = _contentsItem.setWidth(width - secondHandlePos - secondsep);
+
+ _senderItem.setPos(firstHandlePos + firstsep, 0);
+ _contentsItem.setPos(secondHandlePos + secondsep, 0);
+
+ _width = width;
+ return _height;
+}
+
+void ChatLine::setSelected(bool selected, ChatLineModel::ColumnType minColumn) {
+ if(selected) {
+ quint8 sel = (_selection & 0x80) | 0x40 | minColumn;
+ if(sel != _selection) {
+ _selection = sel;
+ for(int i = 0; i < minColumn; i++)
+ item((ChatLineModel::ColumnType)i).clearSelection();
+ for(int i = minColumn; i <= ChatLineModel::ContentsColumn; i++)
+ item((ChatLineModel::ColumnType)i).setFullSelection();
+ update();
+ }
+ } else {
+ quint8 sel = _selection & 0x80;
+ if(sel != _selection) {
+ _selection = sel;
+ for(int i = 0; i <= ChatLineModel::ContentsColumn; i++)
+ item((ChatLineModel::ColumnType)i).clearSelection();
+ update();
+ }
+ }
+}