Rebuilds the scale for the day mode.
        
        :param      opt | <XGanttRenderOptions>

def rebuildDay(self, opt):
        """
        Rebuilds the scale for the day mode.
        
        :param      opt | <XGanttRenderOptions>
        """
        self._labels            = []
        self._hlines            = []
        self._vlines            = []
        self._weekendRects      = []
        self._alternateRects    = []
        self._topLabels         = []
        
        top_format = 'dddd MMMM dd'
        label_format = 'ha'
        increment = 60 # hour
        
        # generate vertical lines
        x           = 0
        i           = 0
        half        = opt.header_height / 2.0
        curr        = QDateTime(opt.start, QTime(0, 0, 0))
        end         = QDateTime(opt.end, QTime(23, 0, 0))
        top_label   = opt.start.toString(top_format)
        top_rect    = QRect(0, 0, 0, half)
        alt_rect    = None
        
        while curr <= end:
            # update the top rect
            new_top_label = curr.toString(top_format)
            if new_top_label != top_label:
                top_rect.setRight(x)
                self._topLabels.append((top_rect, top_label))
                top_rect  = QRect(x, 0, 0, half)
                top_label = new_top_label
                
                if alt_rect is not None:
                    alt_rect.setRight(x)
                    self._alternateRects.append(alt_rect)
                    alt_rect = None
                else:
                    alt_rect = QRect(x, 0, 0, opt.height)
            
            # create the line
            self._hlines.append(QLine(x, 0, x, opt.height))
            
            # create the header label/rect
            label = nativestring(curr.toString(label_format))[:-1]
            rect  = QRect(x, half, opt.cell_width, half)
            self._labels.append((rect, label))
            
            # increment the dates
            curr = curr.addSecs(increment * 60)
            x += opt.cell_width
            i += 1
        
        # update the top rect
        top_rect.setRight(x)
        top_label = opt.end.toString(top_format)
        self._topLabels.append((top_rect, top_label))
        
        if alt_rect is not None:
            alt_rect.setRight(x)
            self._alternateRects.append(alt_rect)
        
        # resize the width to match the last date range
        new_width = x
        self.setSceneRect(0, 0, new_width, opt.height)
        
        # generate horizontal lines
        y       = 0
        h       = opt.height
        width   = new_width
        
        while y < h:
            self._vlines.append(QLine(0, y, width, y))
            y += opt.cell_height
        
        # clear the dirty flag
        self._dirty = False