/[projects]/queensgui/src/board.cpp
ViewVC logotype

Diff of /queensgui/src/board.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 653 by torben, Wed Sep 16 18:53:22 2009 UTC revision 654 by torben, Thu Apr 22 20:09:09 2010 UTC
# Line 32  Board::Board(QWidget *parent, const char Line 32  Board::Board(QWidget *parent, const char
32   : QWidget(parent, name)   : QWidget(parent, name)
33  {  {
34          m_sol = NULL;          m_sol = NULL;
35            m_drawmarkers = false;
36  }  }
37    
38    
# Line 75  void Board::paintEvent( QPaintEvent *eve Line 76  void Board::paintEvent( QPaintEvent *eve
76                                          p.drawPie( (i*30)+10, (j*30)+10, 10, 10 ,0, 16*360);                                          p.drawPie( (i*30)+10, (j*30)+10, 10, 10 ,0, 16*360);
77                          }                          }
78          }          }
79            
80    
81            if (m_drawmarkers == true) {
82                    drawMarkerLines();
83                    m_drawmarkers = false;
84            }
85    }
86    
87    void Board::drawMarkerLines()
88    {
89            QPainter p( this );
90            QPen bluePen( Qt::blue );
91            p.setPen( bluePen );
92            int x = m_markerPoint.x() / 30;
93            int y = m_markerPoint.y() / 30;
94            
95            p.drawLine( QPoint(5,(y*30)+15), QPoint( (m_size*30)-5, (y*30)+15) );
96            p.drawLine( QPoint( (x*30)+15, 5), QPoint( (x*30)+15, (m_size*30)-5 ) );
97            
98            QPen redPen( Qt::red );
99            p.setPen( redPen );
100            
101            int startx,stopx;
102            int starty,stopy;
103            starty = stopy = y;
104            startx = stopx = x;
105            
106            // first diagonal line
107            while (startx > 0 && starty > 0) {
108                    startx--;
109                    starty--;
110            }
111            
112            while (stopx < (m_size-1) && stopy < (m_size-1) ) {
113                    stopx++;
114                    stopy++;
115            }
116            p.drawLine(QPoint( (startx*30)+5, (starty*30)+5), QPoint( (stopx*30)+25, (stopy*30)+25));
117            
118            //next diagonal line
119            startx = stopx = x;
120            starty = stopy = y;    
121            while (startx > 0 && starty < (m_size-1) ) {
122                    startx--;
123                    starty++;
124            }
125            while (stopx < (m_size-1) && stopy >0) {
126                    stopx++;
127                    stopy--;
128            }
129            
130            p.drawLine(QPoint( (startx*30)+5, (starty*30)+25), QPoint( (stopx*30)+25, (stopy*30)+5));
131  }  }
132    
133  void Board::mousePressEvent( QMouseEvent *event)  void Board::mousePressEvent( QMouseEvent *event)
134  {  {
135          if (event->button() == Qt::LeftButton) {          if (event->button() == Qt::LeftButton) {
136                    m_drawmarkers = true;
137                    m_markerPoint = event->pos();
138                  this->repaint(true);                  this->repaint(true);
                 QPainter p( this );  
                 QPen bluePen( Qt::blue );  
                 p.setPen( bluePen );  
                 int x = event->x() / 30;  
                 int y = event->y() / 30;  
           
                 p.drawLine( QPoint(5,(y*30)+15), QPoint( (m_size*30)-5, (y*30)+15) );  
                 p.drawLine( QPoint( (x*30)+15, 5), QPoint( (x*30)+15, (m_size*30)-5 ) );  
           
                 QPen redPen( Qt::red );  
                 p.setPen( redPen );  
           
                 int startx,stopx;  
                 int starty,stopy;  
                 starty = stopy = y;  
                 startx = stopx = x;  
           
                 // f�rste skr� linie  
                 while (startx > 0 && starty > 0) {  
                         startx--;  
                         starty--;  
                 }  
           
                 while (stopx < (m_size-1) && stopy < (m_size-1) ) {  
                         stopx++;  
                         stopy++;  
                 }  
                 p.drawLine(QPoint( (startx*30)+5, (starty*30)+5), QPoint( (stopx*30)+25, (stopy*30)+25));  
           
                 //n�ste skr� linie  
                 startx = stopx = x;  
                 starty = stopy = y;      
                 while (startx > 0 && starty < (m_size-1) ) {  
                         startx--;  
                         starty++;  
                 }  
                 while (stopx < (m_size-1) && stopy >0) {  
                         stopx++;  
                         stopy--;  
                 }  
           
                 p.drawLine(QPoint( (startx*30)+5, (starty*30)+25), QPoint( (stopx*30)+25, (stopy*30)+5));  
139          }          }
140  }  }
141    

Legend:
Removed from v.653  
changed lines
  Added in v.654

  ViewVC Help
Powered by ViewVC 1.1.20