+void ChatScene::setMarkerLineVisible(bool visible) {
+ _markerLineVisible = visible;
+ if(visible && _markerLineValid)
+ _markerLine->setVisible(true);
+ else
+ _markerLine->setVisible(false);
+}
+
+void ChatScene::setMarkerLine(MsgId msgId) {
+ if(msgId.isValid()) {
+ ChatLine *line = chatLine(msgId, false);
+ if(line) {
+ // if this was the last line, we won't see it because it's outside the sceneRect
+ // .. which is exactly what we want :)
+ _markerLine->setPos(line->pos() + QPointF(0, line->height()));
+
+ // DayChange messages might have been hidden outside the scene rect, don't make the markerline visible then!
+ if(_markerLine->pos().y() >= sceneRect().y()) {
+ _markerLineValid = true;
+ if(_markerLineVisible)
+ _markerLine->setVisible(true);
+ return;
+ }
+ }
+ }
+ _markerLineValid = false;
+ _markerLine->setVisible(false);
+}
+