docs: def addButton(self, button, alignment=None):
          """
          Adds a button the edit.  All the buttons will be layed out at the \
          end of the widget.
          
          :param      button      | <QToolButton>
                      alignment   | <Qt.Alignment>
          
          :return     <bool> | success
          """
          if alignment == None:
              if button.pos().x() < self.pos().x():
                  alignment = Qt.AlignLeft
              else:
                  alignment = Qt.AlignRight
          
          all_buttons = self.buttons()
          if button in all_buttons:
              return False
          
          # move the button to this edit
          button.setParent(self)
          button.setAutoRaise(True)
          button.setIconSize(self.iconSize())
          button.setCursor(Qt.ArrowCursor)
          button.setFixedSize(QSize(self.height() - 2, self.height() - 2))
          
          self._buttons.setdefault(alignment, [])
          self._buttons[alignment].append(button)
          self.adjustButtons()
          return True