text: /**
   * @class Ext.app.Application
   */
  Ext.define('Ext.overrides.app.Application', {
      override: 'Ext.app.Application',
      uses: [
          'Ext.tip.QuickTipManager'
      ],
  
      // @cmd-auto-dependency {aliasPrefix: "view.", mvc: true, requires: ["Ext.plugin.Viewport"]}
      /**
       * @cfg {Boolean/String} [autoCreateViewport=false]
       * @deprecated 5.1 Instead use {@link #mainView}
       * @member Ext.app.Application
       */
      autoCreateViewport: false,
  
      config: {
          /**
           * @cfg {Boolean} enableQuickTips
           * @deprecated 6.2.0 Use {@link #quickTips}.
           */
          enableQuickTips: null
      },
  
      /**
       * @cfg {Boolean} quickTips
       * True to automatically set up Ext.tip.QuickTip support.
       *
       * @since 6.2.0
       */
      quickTips: true,
  
      updateEnableQuickTips: function (enableQuickTips) {
          this.setQuickTips(enableQuickTips);
      },
  
      applyMainView: function (mainView) {
          var view, proto, config, protoPlugins, configPlugins;
  
          if (typeof mainView === 'string') {
              view = this.getView(mainView);
              config = {};
          } else {
              config = mainView;
              view = Ext.ClassManager.getByConfig(mainView);
          }
          proto = view.prototype;
  
          if (!proto.isViewport) {
              // Need to copy over any plugins defined on the prototype and on the config.
              protoPlugins = Ext.Array.from(proto.plugins);
              configPlugins = Ext.Array.from(config.plugins);
              config = Ext.apply({}, config);
              config.plugins = ['viewport'].concat(protoPlugins, configPlugins);
          }
  
          return view.create(config);
      },
  
      getDependencies: function (cls, data, requires) {
          var Controller = Ext.app.Controller,
              proto = cls.prototype,
              namespace = data.$namespace,
              viewportClass = data.autoCreateViewport;
  
          if (viewportClass) {
              //<debug>
              if (!namespace) {
                  Ext.raise("[Ext.app.Application] Can't resolve namespace for " +
                      data.$className + ", did you forget to specify 'name' property?");
              }
              //</debug>
  
              if (viewportClass === true) {
                  viewportClass = 'Viewport';
              } else {
                  requires.push('Ext.plugin.Viewport');
              }
  
              Controller.processDependencies(proto, requires, namespace, 'view', viewportClass);
          }
      },
  
      onBeforeLaunch: function () {
          var me = this,
              autoCreateViewport = me.autoCreateViewport;
  
          if (me.getQuickTips()) {
              me.initQuickTips();
          }
  
          if (autoCreateViewport) {
              me.initViewport();
          }
  
          this.callParent(arguments);
      },
  
      getViewportName: function () {
          var name = null,
              autoCreate = this.autoCreateViewport;
  
          if (autoCreate) {
              name = (autoCreate === true) ? 'Viewport' : autoCreate;
          }
  
          return name;
      },
  
      initViewport: function () {
          this.setMainView(this.getViewportName());
      },
  
      initQuickTips: function () {
          Ext.tip.QuickTipManager.init();
      }
  });