docs: def addMenu(self, submenu):
          """
          Adds a new submenu to this menu.  Overloads the base QMenu addMenu \
          method so that it will return an XMenu instance vs. a QMenu when \
          creating a submenu by passing in a string.
          
          :param      submenu | <str> || <QMenu>
          
          :return     <QMenu>
          """
          # create a new submenu based on a string input
          if not isinstance(submenu, QMenu):
              title = nativestring(submenu)
              submenu = XMenu(self)
              submenu.setTitle(title)
              submenu.setShowTitle(self.showTitle())
              super(XMenu, self).addMenu(submenu)
          else:
              super(XMenu, self).addMenu(submenu)
          
          submenu.menuAction().setData(wrapVariant('menu'))
          
          return submenu