Overloads the paint event to paint additional \
        hint information if no text is set on the \
        editor.
        
        :param      event      | <QPaintEvent>

def paintEvent(self, event):
        """
        Overloads the paint event to paint additional \
        hint information if no text is set on the \
        editor.
        
        :param      event      | <QPaintEvent>
        """
        super(XLineEdit, self).paintEvent(event)
        
        # paint the hint text if not text is set
        if self.text() and not (self.icon() and not self.icon().isNull()):
            return
        
        # paint the hint text
        with XPainter(self) as painter:
            painter.setPen(self.hintColor())
            
            icon = self.icon()
            left, top, right, bottom = self.getTextMargins()
            
            w = self.width()
            h = self.height() - 2
            
            w -= (right + left)
            h -= (bottom + top)
            
            if icon and not icon.isNull():
                size = icon.actualSize(self.iconSize())
                x    = self.cornerRadius() + 2
                y    = (self.height() - size.height()) / 2.0
                
                painter.drawPixmap(x, y, icon.pixmap(size.width(), size.height()))
                
                w -= size.width() - 2
            else:
                x = 6 + left
            
            w -= self._buttonWidth
            y = 2 + top
            
            # create the elided hint
            if not self.text() and self.hint():
                rect    = self.cursorRect()
                metrics = QFontMetrics(self.font())
                hint    = metrics.elidedText(self.hint(), Qt.ElideRight, w)
                align   = self.alignment()
                
                if align & Qt.AlignHCenter:
                    x = 0
                else:
                    x = rect.center().x()
                
                painter.drawText(x, y, w, h, align, hint)