docs: def rebuild( self ):
          """
          Rebuilds the grid lines based on the current settings and \
          scene width.  This method is triggered automatically, and \
          shouldn't need to be manually called.
          """
          rect    = self.sceneRect()
          x       = rect.left()
          y       = rect.top()
          w       = rect.width()
          h       = rect.height()
          
          # calculate background gridlines
          cx      = x + (w / 2)
          cy      = y + (h / 2)
          
          self._centerLines = [QLine(cx, rect.top(), cx, rect.bottom()),
                               QLine(rect.left(), cy, rect.right(), cy) ]
          
          # create the horizontal grid lines
          delta           = self.cellHeight()
          minor_lines     = []
          major_lines     = []
          count           = 1
          while delta < (h / 2):
              pos_line = QLine(x, cy + delta, x + w, cy + delta)
              neg_line = QLine(x, cy - delta, x + w, cy - delta)
              
              # every 10th line will be a major line
              if count == 10:
                  major_lines.append(pos_line)
                  major_lines.append(neg_line)
                  count = 1
              else:
                  minor_lines.append(pos_line)
                  minor_lines.append(neg_line)
              
              # update the current y location
              delta += self.cellHeight()
              count += 1
          
          # create the vertical grid lines
          delta = self.cellWidth()
          count = 1
          while delta < (w / 2):
              pos_line = QLine(cx + delta, y, cx + delta, y + h)
              neg_line = QLine(cx - delta, y, cx - delta, y + h)
              
              # every 10th line will be a major line
              if count == 10:
                  major_lines.append(pos_line)
                  major_lines.append(neg_line)
                  count = 1
              else:
                  minor_lines.append(pos_line)
                  minor_lines.append(neg_line)
              
              # update the current y location
              delta += self.cellWidth()
              count += 1
          
          # set the line cache
          self._majorLines = major_lines
          self._minorLines = minor_lines
          
          # unmark the scene as being dirty
          self.setDirty(False)