1 #include "shareboardcanvas.h"
9 #include "shareboard.h"
11 ShareboardCanvas::ShareboardCanvas(QWidget* parent) : QWidget(parent) {
12 setMinimumSize(640,480);
13 setMouseTracking(true);
17 ShareboardCanvas::~ShareboardCanvas() {
20 void ShareboardCanvas::setModel(Shareboard* b) {
24 void ShareboardCanvas::mouseMoveEvent(QMouseEvent* event) {
25 // Send mouse move event to network thread
26 emit mouseMovedTo(event->posF());
27 lastPos = event->posF();
28 // If the button is down
30 emit segmentDrawn(dragPath.last(), event->posF());
31 dragPath.append(event->posF());
37 void ShareboardCanvas::mousePressEvent(QMouseEvent* event) {
38 if(event->button() & Qt::LeftButton) {
39 if(board->drawState == 0) {
40 emit insertImage(event->posF());
44 dragPath.append(event->posF()); // We're starting a new drag path
49 void ShareboardCanvas::mouseReleaseEvent(QMouseEvent* event) {
50 if(event->button() & Qt::LeftButton) {
52 qDebug() << dragPath.size() << "mouse move events counted this drag";
53 // Depending on the tool, we now dispatch different types of events
54 dragPath.clear(); // Clear the path; we're no longer tracking a drag
58 void ShareboardCanvas::paintEvent(QPaintEvent* event) {
61 // Paint the background from the saved state
62 p.drawImage(0, 0, board->view());
63 // Now paint our local changes on top of it (optional, will make things look snappier)
65 // Now paint the set of mouse cursors on top of that
66 QMap<int, QPointF>::const_iterator i;
67 for (i = board->viewCursors.constBegin(); i!=board->viewCursors.constEnd(); ++i) {
68 if(i.key() == board->userID) {
69 if( board->drawState < 0) {// Eraser mode
70 p.setPen(QColor(Qt::black));
71 p.setBrush(QColor(Qt::white));
72 p.drawEllipse(lastPos, qAbs(board->drawState), qAbs(board->drawState));
73 //p.drawEllipse(i.value(), qAbs(board->drawState), qAbs(board->drawState));
75 if( board->drawState == 0) { // Image mode
76 p.drawImage(lastPos, board->insertImage);
80 QPen pen(QColor(255,0,0,50));
81 pen.setCapStyle(Qt::RoundCap);
83 p.setBrush(QBrush(QColor(255,0,0,50)));
84 p.drawEllipse(i.value(),4,4);
86 p.setBrush(Qt::black);
87 p.drawText(i.value(),board->viewUsers[i.key()]);