00001 #include "Tool.h" 00002 00003 #include <QMouseEvent> 00004 #include <QPainter> 00005 00006 #include "rtreetestapp.h" 00007 00008 void Tool::mouseMoveEvent(QMouseEvent *e) 00009 { 00010 if ( m_buttonPressed == true ) 00011 { 00012 m_rect.setBottomRight( e->pos() ); 00013 m_canvas->updateCanvas(); 00014 } 00015 } 00016 00017 void Tool::mousePressEvent(QMouseEvent *e) 00018 { 00019 m_buttonPressed = true; 00020 m_rect.setTopLeft( e->pos() ); 00021 m_rect.setSize( QSize( 0, 0 ) ); 00022 } 00023 00024 CreateTool::CreateTool( Canvas * canvas ) 00025 : Tool( canvas ) 00026 { 00027 } 00028 00029 CreateTool::~CreateTool() 00030 { 00031 } 00032 00033 void CreateTool::mouseReleaseEvent(QMouseEvent *e) 00034 { 00035 Q_UNUSED( e ); 00036 if ( m_buttonPressed == true ) 00037 { 00038 m_buttonPressed = false; 00039 m_canvas->insert( m_rect ); 00040 } 00041 } 00042 00043 void CreateTool::paint( QPainter & p ) 00044 { 00045 if ( m_buttonPressed == true ) 00046 { 00047 p.save(); 00048 QPen pen( Qt::blue ); 00049 p.setPen( pen ); 00050 p.drawRect( m_rect.normalized() ); 00051 p.restore(); 00052 } 00053 } 00054 00055 00056 SelectTool::SelectTool( Canvas * canvas ) 00057 : Tool( canvas ) 00058 { 00059 } 00060 00061 SelectTool::~SelectTool() 00062 { 00063 } 00064 00065 void SelectTool::mouseReleaseEvent(QMouseEvent *e) 00066 { 00067 Q_UNUSED( e ); 00068 if ( m_buttonPressed == true ) 00069 { 00070 m_buttonPressed = false; 00071 m_canvas->select( m_rect ); 00072 } 00073 } 00074 00075 void SelectTool::paint( QPainter & p ) 00076 { 00077 if ( m_buttonPressed == true ) 00078 { 00079 p.save(); 00080 QPen pen( Qt::blue ); 00081 pen.setStyle( Qt::DashLine ); 00082 p.setPen( pen ); 00083 p.drawRect( m_rect.normalized() ); 00084 p.restore(); 00085 } 00086 } 00087 00088 00089 RemoveTool::RemoveTool( Canvas * canvas ) 00090 : Tool( canvas ) 00091 { 00092 } 00093 00094 RemoveTool::~RemoveTool() 00095 { 00096 } 00097 00098 void RemoveTool::mouseReleaseEvent(QMouseEvent *e) 00099 { 00100 Q_UNUSED( e ); 00101 if ( m_buttonPressed == true ) 00102 { 00103 m_buttonPressed = false; 00104 m_canvas->remove( m_rect ); 00105 } 00106 } 00107 00108 void RemoveTool::paint( QPainter & p ) 00109 { 00110 if ( m_buttonPressed == true ) 00111 { 00112 p.save(); 00113 QPen pen( Qt::red ); 00114 pen.setStyle( Qt::DashLine ); 00115 p.setPen( pen ); 00116 p.drawRect( m_rect.normalized() ); 00117 p.restore(); 00118 } 00119 } 00120