docs: def setCurrentAction(self, action):
          """
          Sets the current action for this widget that highlights the size
          for this toolbar.
          
          :param      action | <QAction>
          """
          if action == self._currentAction:
              return
          
          self._currentAction = action
          self.currentActionChanged.emit(action)
          
          labels   = self.actionLabels()
          anim_grp = QParallelAnimationGroup(self)
          max_size = self.maximumPixmapSize()
          min_size = self.minimumPixmapSize()
          
          if action:
              label = self.labelForAction(action)
              index = labels.index(label)
              
              # create the highlight effect
              palette = self.palette()
              effect = QGraphicsDropShadowEffect(label)
              effect.setXOffset(0)
              effect.setYOffset(0)
              effect.setBlurRadius(20)
              effect.setColor(QColor(40, 40, 40))
              label.setGraphicsEffect(effect)
              
              offset = self.padding()
              if self.position() in (XDockToolbar.Position.East,
                                     XDockToolbar.Position.West):
                  self.resize(max_size.width() + offset, self.height())
              
              elif self.position() in (XDockToolbar.Position.North,
                                       XDockToolbar.Position.South):
                  self.resize(self.width(), max_size.height() + offset)
              
              w  = max_size.width()
              h  = max_size.height()
              dw = (max_size.width() - min_size.width()) / 3
              dh = (max_size.height() - min_size.height()) / 3
              
              for i in range(4):
                  before = index - i
                  after  = index + i
                  
                  if 0 <= before and before < len(labels):
                      anim = XObjectAnimation(labels[before],
                                              'setPixmapSize',
                                              anim_grp)
                      
                      anim.setEasingCurve(self.easingCurve())
                      anim.setStartValue(labels[before].pixmapSize())
                      anim.setEndValue(QSize(w, h))
                      anim.setDuration(self.duration())
                      anim_grp.addAnimation(anim)
                      
                      if i:
                          labels[before].setGraphicsEffect(None)
                  
                  if after != before and 0 <= after and after < len(labels):
                      anim = XObjectAnimation(labels[after],
                                              'setPixmapSize',
                                              anim_grp)
                      
                      anim.setEasingCurve(self.easingCurve())
                      anim.setStartValue(labels[after].pixmapSize())
                      anim.setEndValue(QSize(w, h))
                      anim.setDuration(self.duration())
                      anim_grp.addAnimation(anim)
                      
                      if i:
                          labels[after].setGraphicsEffect(None)
              
                  w -= dw
                  h -= dh
          else:
              offset = self.padding()
              for label in self.actionLabels():
                  # clear the graphics effect 
                  label.setGraphicsEffect(None)
                  
                  # create the animation
                  anim = XObjectAnimation(label, 'setPixmapSize', self)
                  anim.setEasingCurve(self.easingCurve())
                  anim.setStartValue(label.pixmapSize())
                  anim.setEndValue(min_size)
                  anim.setDuration(self.duration())
                  anim_grp.addAnimation(anim)
              
              anim_grp.finished.connect(self.resizeToMinimum)
          
          anim_grp.start()
          self._animating = True
          anim_grp.finished.connect(anim_grp.deleteLater)
          anim_grp.finished.connect(self.__markAnimatingFinished)
          
          if self._currentAction:
              self._hoverTimer.start()
          else:
              self._hoverTimer.stop()