-void ChatScene::mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent ) {
- /*
- qDebug() << "recv" << mouseEvent->scenePos();
- ChatLine *line = static_cast<ChatLine*>(itemAt(mouseEvent->scenePos()));
- ChatItem *item = static_cast<ChatItem*>(itemAt(mouseEvent->scenePos()));
- qDebug() << (void*)line << (void*)item;
- if(line) {
- line->myMousePressEvent(mouseEvent);
- } else QGraphicsScene::mousePressEvent(mouseEvent);
- */
+void ChatScene::rectChanged(const QRectF &rect) {
+ firstColHandle->sceneRectChanged(rect);
+ secondColHandle->sceneRectChanged(rect);
+}
+
+void ChatScene::handlePositionChanged(qreal xpos) {
+ bool first = (sender() == firstColHandle);
+ qreal oldx;
+ if(first) {
+ oldx = firstColHandlePos;
+ firstColHandlePos = xpos;
+ } else {
+ oldx = secondColHandlePos;
+ secondColHandlePos = xpos;
+ }
+ QtUiSettings s;
+ s.setValue(QString("ChatView/%1/FirstColumnHandlePos").arg(_idString), firstColHandlePos);
+ s.setValue(QString("ChatView/%1/SecondColumnHandlePos").arg(_idString), secondColHandlePos);
+ s.setValue(QString("ChatView/DefaultFirstColumnHandlePos"), firstColHandlePos);
+ s.setValue(QString("ChatView/DefaultSecondColumnHandlePos"), secondColHandlePos);
+
+ setWidth(width()); // readjust all chatlines
+ // we get ugly redraw errors if we don't update this explicitly... :(
+ // width() should be the same for both handles, so just use firstColHandle regardless
+ update(qMin(oldx, xpos) - firstColHandle->width()/2, 0, qMax(oldx, xpos) + firstColHandle->width()/2, height());
+}
+
+void ChatScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
+
+ QGraphicsScene::mouseMoveEvent(event);
+}
+
+void ChatScene::mousePressEvent(QGraphicsSceneMouseEvent *event) {
+
+ QGraphicsScene::mousePressEvent(event);
+}
+
+void ChatScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
+
+ QGraphicsScene::mouseReleaseEvent(event);