Install ``appletObj`` as the mini applet in the window layout.

        At any given point there can ever only be one mini applet in
        the entire Qtmacs application, irrespective of how many
        windows are open.

        Note that this method does nothing if a custom mini applet is
        already active. Use ``qteKillMiniApplet`` to remove that one
        first before installing a new one.

        |Args|

        * ``appletObj`` (**QtmacsApplet**): the new mini applet.

        |Returns|

        * **bool**: if **True** the mini applet was installed
          successfully.

        |Raises|

        * **QtmacsArgumentError** if at least one argument has an invalid type.

def qteAddMiniApplet(self, appletObj: QtmacsApplet):
        """
        Install ``appletObj`` as the mini applet in the window layout.

        At any given point there can ever only be one mini applet in
        the entire Qtmacs application, irrespective of how many
        windows are open.

        Note that this method does nothing if a custom mini applet is
        already active. Use ``qteKillMiniApplet`` to remove that one
        first before installing a new one.

        |Args|

        * ``appletObj`` (**QtmacsApplet**): the new mini applet.

        |Returns|

        * **bool**: if **True** the mini applet was installed
          successfully.

        |Raises|

        * **QtmacsArgumentError** if at least one argument has an invalid type.
        """
        # Do nothing if a custom mini applet has already been
        # installed.
        if self._qteMiniApplet is not None:
            msg = 'Cannot replace mini applet more than once.'
            self.qteLogger.warning(msg)
            return False

        # Arrange all registered widgets inside this applet
        # automatically if the mini applet object did not install its
        # own layout.
        if appletObj.layout() is None:
            appLayout = QtGui.QHBoxLayout()
            for handle in appletObj._qteAdmin.widgetList:
                appLayout.addWidget(handle)
            appletObj.setLayout(appLayout)

        # Now that we have decided to install this mini applet, keep a
        # reference to it and set the mini applet flag in the
        # applet. This flag is necessary for some methods to separate
        # conventional applets from mini applets.
        appletObj._qteAdmin.isMiniApplet = True
        self._qteMiniApplet = appletObj

        # Shorthands.
        app = self._qteActiveApplet
        appWin = self.qteActiveWindow()

        # Remember which window and applet spawned this mini applet.
        self._qteMiniApplet._qteCallingApplet = app
        self._qteMiniApplet._qteCallingWindow = appWin
        del app

        # Add the mini applet to the applet registry, ie. for most
        # purposes the mini applet is treated like any other applet.
        self._qteAppletList.insert(0, self._qteMiniApplet)

        # Add the mini applet to the respective splitter in the window
        # layout and show it.
        appWin.qteLayoutSplitter.addWidget(self._qteMiniApplet)
        self._qteMiniApplet.show(True)

        # Give focus to first focusable widget in the mini applet
        # applet (if one exists)
        wid = self._qteMiniApplet.qteNextWidget(numSkip=0)
        self._qteMiniApplet.qteMakeWidgetActive(wid)
        self.qteMakeAppletActive(self._qteMiniApplet)

        # Mini applet was successfully installed.
        return True