/*!
    \module UkuiQuickFramework
    \title Ukui Quick Framework C++ Classes
    \brief
*/

/*!
    \qmlmodule UkuiQuickFramework
    \title Ukui Quick Framework QML Types
    \brief
*/


/*!
    \page ukui-quick-framework.html
    \title Ukui Quick Framework

    \section1 简介
    ukui-quick作为一个基于Qt Quick的UI开发功能集合,其中提供了一个基于插件模式的UI开发框架,目的在于实现对桌面通用插件的定义,加载以及统一配置管理等功能, 此框架的特点包括:

    \list
    \li 可实现桌面组件一定程度上的功能解耦与功能复用
    \li 插件和宿主应用(Host)之间不会强制有二进制依赖关系,插件的开发相对更加独立,不易产生版本迭代时插件不兼容的情况.
    \li 插件开发门槛低,无需了解宿主应用全部功能即可开发插件.
    \li 通用性,可以实现不同桌面组件之间无缝共享插件
    \li 统一的配置管理模块,便于应用和插件的统一配置管理

    \section1 基本概念
    插件框架整体由4个主要部分组成: Widget(插件),Container(容器),Island(窗口) ,Config(配置).
    \c Widget 表示一个桌面插件, \c Container 为可用于放置插件的容器, \c Island 为基于QQuickWindow的通用窗口,继承了加载Container的功能, \c Config 为统一的配置接口,提供了上述3个结构共用的配置管理功能.
    基于此框架开发的一个应用的典型结构如下图所示:

    \image framework.png {Ukui Quick Framework}

    此应用包含两个窗口,其中窗口2为插件框架中的Island,而 \c Island 中包含了一个主 \c {Container(mainView)} 作为 \c UI 的根节点,根节点与其所有子节点共同组成一个树形结构.
    通过统一配置管理接口,应用 \c {(Island)}可以生成属于自己的本地配置, 也可以访问属于其插件的全局配置.

    \section1 设计模式
    整体插件框架分为两部分,一部分是负责保存和处理信息的后端 (Widget/Container/Island) ，另一部分就是负责显示的前端 (WidgetQuickItem/WidgetContainerItem/IslandView):

    \image model_view.png {Ukui Quick Framework Model View}

    框架类似Composite模式:
    \c {Widget}:定义了插件和插件容器的公共接口,并实现了相关的默认行为,同时也作为插件 c\ {(leaf&Component)}.
    \c {Container}:继承自 \c {Widget},作为 \c UI 结构中的分支节点对象\c {(Composite)},负责管理所有子widget的生命周期.
    \c {client} 表示宿主应用,\c {client} 可以选择直接使用封装好的 \c {Island} 窗口作为应用窗口,也可以选择直接初始化 \c {Container} 作为插件加载根节点.

    \image uml.png {Ukui Quick Framework UML}

*/