zoukankan      html  css  js  c++  java
  • [Qt] LibreCAD 源码分析

    librecad

    src/

    all source code


    src/actions/

    all action classes

    src/command/

    the rs_command class for command line framework

    src/lib/

    LibreCAD library

    src/lib/actions/

    the base types of actioninterface of all actions found in src/actions, rs_preview and rs_snapper defined here

    src/lib/creation/

    create entities with conditions

    src/lib/debug/

    RS_DEBUG class, debugging levels

    src/lib/engine/

    all entity (geometry/shape) classes defined here rs_settings are used to save program preferences in Qt-SQL

    src/fileio/

    src/lib/filters/

    file input output

    src/lib/gui/

    rs_dialogfactory to provide communication with GUI parts, rs_grid, rs_painter

    src/lib/information/

    intersection, measure/info, locales

    src/lib/math/

    common math functions

    src/lib/modification/

    engine for modification actions

    src/lib/scripting/

    scripting support, not enabled yet


    src/main/

    The main function and application window


    src/ui/

    qg_actionfactory, create actions

    qg_actionhandler, provide action slots to GUI parts

    qg_dialogfactory, all gui parts communication with each other

    src/ui/ Qt GUI forms


    res/

    holds all icon pictures used by LibreCAD

    plugins/

    some plugins for use with LibreCAD, which has its own pro file

    scripts/

    scripts executed at the end of build process for copy needed resources like fonts, translations and hatches

     

    Factories

    • QG_ActionHandler
    Responsible for starting CAD actions
    • RS_EventHandler
    Responsible for routing UI events
    • QG_ActionFactory
    Generate GUI actions and connection to CAD actions
    • QG_DialogFactory

       Access to GUI interface: Qt widgets

    Drawing

    • RS_PainterQt
    Responsible for the actual drawing of objects (onto a QPaintDevice)

    Undo/Redo

    • RS_Undoable
    Base class for all RS_Entity
    This class simply wraps a single flag.
    When false, the entity is valid.
    When true, the entity is undone.
    To undo/redo the entity, the flag has to be toggled.
    • RS_UndoCycle
    This is a list of entities (RS_Undoable) modified in one transaction (cycle)
    • RS_Undo
    This is one of RS_Document's base classes
    It keeps a list of RS_UndoCycle, the undo/redo stack
    Each creation/modification is added to the current undo cycle, which is pushed to the list then
    Undo/Redo actions walk up or down the undo cycle list and toggles all entities in one cycle
    On modification entities are not modified immediately, the entity is cloned, the original undone and the clone modified
    With undo, the clone is undone and the original entity redone

    CAD Entities

    • RS_Entity
    Base class for all CAD entity types
  • 相关阅读:
    python--HTTPClient接口测试踩坑
    python打印cookies获取cookie
    BeanShell使用json.jar包处理Json数据
    禁用缓存的过滤器Filter
    过滤器Filter(拦截jsp页面的跳转)案例:
    MVC模式:实现数据库中数据的增删改查功能
    JSTL.带标签体的标签,方法和例子
    javaBean的使用方法;
    JSTL,自定义一个标签的功能案例
    利用Session实现一次验证码
  • 原文地址:https://www.cnblogs.com/cxc1357/p/11797843.html
Copyright © 2011-2022 走看看