diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
| commit | da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch) | |
| tree | c3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/chatGraphicsScene.cpp | |
| parent | 3431f5a37174b7eb8490672686db68df2b48e35f (diff) | |
| download | qxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz | |
add Gui Client example
Diffstat (limited to 'examples/GuiClient/chatGraphicsScene.cpp')
| -rw-r--r-- | examples/GuiClient/chatGraphicsScene.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/examples/GuiClient/chatGraphicsScene.cpp b/examples/GuiClient/chatGraphicsScene.cpp new file mode 100644 index 00000000..415b8c53 --- /dev/null +++ b/examples/GuiClient/chatGraphicsScene.cpp @@ -0,0 +1,61 @@ +#include "chatGraphicsScene.h"
+#include "messageGraphicsItem.h"
+#include "chatGraphicsView.h"
+
+chatGraphicsScene::chatGraphicsScene(QObject* parent) : QGraphicsScene(parent),
+ m_verticalPosForNewMessage(0), m_verticalSpacing(5)
+{
+}
+
+void chatGraphicsScene::addMessage(const QString& user, const QString& message)
+{
+ messageGraphicsItem* item = new messageGraphicsItem();
+ m_items.append(item);
+ item->setName(user);
+ item->setBoxStartLength(m_boxStartLength);
+ item->setText(message);
+ item->setViewWidth(350);
+// item->setViewWidth(views().at(0)->size().width());
+ item->setPos(0, m_verticalPosForNewMessage);
+ int height = item->boundingRect().height();
+ m_verticalPosForNewMessage = m_verticalPosForNewMessage + height + m_verticalSpacing;
+ addItem(item);
+
+ QRectF rect = sceneRect();
+ rect.setHeight(m_verticalPosForNewMessage);
+ setSceneRect(rect);
+}
+
+void chatGraphicsScene::setWidthResize(int newWidth, int oldWidth)
+{
+// verticalReposition();
+}
+
+void chatGraphicsScene::verticalReposition()
+{
+ m_verticalPosForNewMessage = 0;
+
+ messageGraphicsItem* item = 0;
+ for(int i = 0; i < m_items.size(); ++i)
+ {
+ item = m_items.at(i);
+ item->setViewWidth(views().at(0)->size().width());
+ item->setPos(0, m_verticalPosForNewMessage);
+ int height = item->boundingRect().height();
+ m_verticalPosForNewMessage = m_verticalPosForNewMessage + height + m_verticalSpacing;
+ }
+
+ QRectF rect = sceneRect();
+ if(item)
+ {
+ rect.setHeight(m_verticalPosForNewMessage);
+ rect.setWidth(item->getMaxWidth() + item->getBoxStartLength() - 4);
+ setSceneRect(rect);
+ }
+}
+
+void chatGraphicsScene::setBoxStartLength(int length)
+{
+ m_boxStartLength = length;
+}
+
|
