Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +2 -0
- .github/FUNDING.yml +2 -0
- .github/ISSUE_TEMPLATE.md +19 -0
- .github/workflows/build-all.yml +471 -0
- .github/workflows/codeql.yml +142 -0
- .github/workflows/run_pixi.yml +21 -0
- CHANGELOG.md +324 -0
- CI/build-appimg-aarch64.sh +77 -0
- CI/build-appimg.sh +65 -0
- CI/custom-win-ARM64.nsh +9 -0
- CI/custom-win-x64.nsh +9 -0
- CI/custom-win.nsh +9 -0
- CI/custom-win.pri +4 -0
- CI/librecad.svg +163 -0
- CI/qt512.conf +2 -0
- CMakeLists.txt +1717 -0
- CMakePresets.json +40 -0
- ChangeLogs/ACTIONS_README.md +993 -0
- ChangeLogs/ARCS_AND_SPLINES_README.md +60 -0
- ChangeLogs/Arc1Point and Dimensions PR.md +55 -0
- ChangeLogs/DIM_ORDINATE_README.md +41 -0
- ChangeLogs/DIM_STYLES_1_README.md +293 -0
- ChangeLogs/ENTITY_INFO_WIDGET_README.md +117 -0
- ChangeLogs/ICONS AND WORKSPACES README.md +202 -0
- ChangeLogs/INFO_CURSOR_README.md +42 -0
- ChangeLogs/LAYER_TREE_VIEW.md +128 -0
- ChangeLogs/MORE_ACTIONS_AND_FIXES.md +64 -0
- ChangeLogs/NAMED VIEWS README.md +35 -0
- ChangeLogs/PEN_PALETTE_README.md +57 -0
- ChangeLogs/RELATIVE_POINT_ETC_README.md +201 -0
- ChangeLogs/RENDERING README.md +56 -0
- ChangeLogs/UCS.md +174 -0
- ChangeLogs/VARIOUS_FIXES_1.md +79 -0
- ChangeLogs/germar.txt +14 -0
- ChangeLogs/obsole_issues.md +171 -0
- ChangeLogs/r-a-v-a-s.txt +4 -0
- ChangeLogs/readme.md +6 -0
- LICENSE +120 -0
- README.md +97 -0
- common.pri +91 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/Icon_Librecad.svg +163 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 16x16.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 24x24.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 256x256.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 32x32.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 48x48.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon All Sizes.ico +0 -0
- desktop/graphics_icons_and_splash/Icon LibreCAD/README.md +8 -0
- desktop/graphics_icons_and_splash/Logo LibreCAD/Logo LibreCAD.svg +222 -0
- desktop/graphics_icons_and_splash/Logo LibreCAD/LogoLibrecad_335x33_bgw.png +0 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
desktop/res_old/main/librecad.icns filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
librecad/res/images/librecad.icns filter=lfs diff=lfs merge=lfs -text
|
.github/FUNDING.yml
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
github: LibreCAD
|
| 2 |
+
open_collective: librecad
|
.github/ISSUE_TEMPLATE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!--
|
| 2 |
+
This is a comment, not shown in your issue. You can delete it or leave it as it is.
|
| 3 |
+
|
| 4 |
+
Please give your issue an useful title.
|
| 5 |
+
And please enter as much information as possible into each paragraph below (###).
|
| 6 |
+
Think twice, post once ;-)
|
| 7 |
+
|
| 8 |
+
If your issue is about how to use LibreCAD consider to ask in the forum http://forum.librecad.org/.
|
| 9 |
+
The chances for fast help are much higher as there are much more user active, not only developer.
|
| 10 |
+
-->
|
| 11 |
+
|
| 12 |
+
### Expected behavior
|
| 13 |
+
|
| 14 |
+
### Observed behavior
|
| 15 |
+
|
| 16 |
+
### Steps to reproduce or sample file
|
| 17 |
+
|
| 18 |
+
### Operating System and LibreCAD version info
|
| 19 |
+
|
.github/workflows/build-all.yml
ADDED
|
@@ -0,0 +1,471 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Continuous build
|
| 2 |
+
on:
|
| 3 |
+
push:
|
| 4 |
+
branches:
|
| 5 |
+
- master
|
| 6 |
+
- 2.2.1
|
| 7 |
+
|
| 8 |
+
jobs:
|
| 9 |
+
BuildLinux:
|
| 10 |
+
runs-on: ubuntu-24.04
|
| 11 |
+
outputs:
|
| 12 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 13 |
+
steps:
|
| 14 |
+
- name: Checkout code
|
| 15 |
+
uses: actions/checkout@main
|
| 16 |
+
with:
|
| 17 |
+
fetch-depth: 0
|
| 18 |
+
submodules: recursive
|
| 19 |
+
|
| 20 |
+
- name: Install dependencies
|
| 21 |
+
run: |
|
| 22 |
+
sudo apt-get -y update
|
| 23 |
+
sudo apt-get -qq install qmake6 qt6-base-dev qt6-declarative-dev qt6-image-formats-plugin-pdf qt6-pdf-dev linguist-qt6
|
| 24 |
+
sudo apt-get -qq install qt6-svg-dev libqt6svgwidgets6 qt6-l10n-tools qtchooser qt6-wayland-dev qt6-tools-dev
|
| 25 |
+
sudo apt-get -qq install libgl-dev libxcb-cursor0 libmuparser-dev libboost-dev libssl-dev libssl3
|
| 26 |
+
sudo apt-get -qq install imagemagick librsvg2-bin libfreetype6-dev libicu-dev pkg-config libfuse2 rsync
|
| 27 |
+
sudo apt-get -qq install cmake
|
| 28 |
+
|
| 29 |
+
- name: Set Dark splash
|
| 30 |
+
# Test setting dark splash screen for `2.2.2_alpha`,
|
| 31 |
+
# then switch "Loading..." label text color to white.
|
| 32 |
+
# Comment this if `master` is used for releases.
|
| 33 |
+
if: github.ref == 'refs/heads/master'
|
| 34 |
+
run: |
|
| 35 |
+
mkdir -p ${{github.workspace}}/librecad/res/main
|
| 36 |
+
rsync ${{github.workspace}}/desktop/media/splash/librecad01_dark.png ${{github.workspace}}/librecad/res/main/splash_librecad.png
|
| 37 |
+
sed -i 's/Qt::black/Qt::white/g' ${{github.workspace}}/librecad/src/main/main.cpp
|
| 38 |
+
- name: Build and analyze
|
| 39 |
+
run: |
|
| 40 |
+
echo "cmake"
|
| 41 |
+
cmake -S . -B unix -DBUILD_TESTS=ON
|
| 42 |
+
echo "cmake build"
|
| 43 |
+
cmake --build unix -j$(nproc)
|
| 44 |
+
|
| 45 |
+
- name: Run Tests
|
| 46 |
+
run: |
|
| 47 |
+
cd unix
|
| 48 |
+
./librecad_tests
|
| 49 |
+
|
| 50 |
+
- name: Create AppImage
|
| 51 |
+
run: |
|
| 52 |
+
QT_FILE_DIR="${{github.workspace}}/../Qt" ./CI/build-appimg.sh
|
| 53 |
+
mv LibreCAD*.AppImage LibreCAD-`git describe --always`.AppImage
|
| 54 |
+
- name: List files
|
| 55 |
+
run: |
|
| 56 |
+
echo ${{ github.workspace }} && ls ${{ github.workspace }}
|
| 57 |
+
shell: bash
|
| 58 |
+
|
| 59 |
+
- name: Upload artifact
|
| 60 |
+
id: artifact-upload-step
|
| 61 |
+
uses: actions/upload-artifact@main
|
| 62 |
+
with:
|
| 63 |
+
name: linuxAssets
|
| 64 |
+
path: LibreCAD*.AppImage
|
| 65 |
+
retention-days: 2
|
| 66 |
+
|
| 67 |
+
BuildLinuxAarch64:
|
| 68 |
+
runs-on: ubuntu-24.04-arm
|
| 69 |
+
outputs:
|
| 70 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 71 |
+
steps:
|
| 72 |
+
- name: Checkout code
|
| 73 |
+
uses: actions/checkout@main
|
| 74 |
+
with:
|
| 75 |
+
fetch-depth: 0
|
| 76 |
+
|
| 77 |
+
- name: Install Qt and dependencies
|
| 78 |
+
run: |
|
| 79 |
+
sudo apt-get -y update
|
| 80 |
+
sudo apt-get -qq install qmake6 qt6-base-dev qt6-declarative-dev qt6-image-formats-plugin-pdf qt6-pdf-dev linguist-qt6
|
| 81 |
+
sudo apt-get -qq install qt6-svg-dev libqt6svgwidgets6 qt6-l10n-tools qtchooser qt6-wayland-dev qt6-tools-dev
|
| 82 |
+
sudo apt-get -qq install libgl-dev libxcb-cursor0 libmuparser-dev libboost-dev libssl-dev libssl3
|
| 83 |
+
sudo apt-get -qq install imagemagick librsvg2-bin libfreetype6-dev libicu-dev pkg-config libfuse2 rsync
|
| 84 |
+
sudo apt-get -qq install cmake
|
| 85 |
+
|
| 86 |
+
- name: Install Clang
|
| 87 |
+
run: |
|
| 88 |
+
sudo apt-get -qq install clang-18 clang-tools-18
|
| 89 |
+
|
| 90 |
+
- name: Set Dark splash
|
| 91 |
+
# Test setting dark splash screen for `2.2.2_alpha`,
|
| 92 |
+
# then switch "Loading..." label text color to white.
|
| 93 |
+
# Comment this if `master` is used for releases.
|
| 94 |
+
if: github.ref == 'refs/heads/master'
|
| 95 |
+
run: |
|
| 96 |
+
mkdir -p ${{github.workspace}}/librecad/res/main
|
| 97 |
+
rsync ${{github.workspace}}/desktop/media/splash/librecad01_dark.png ${{github.workspace}}/librecad/res/main/splash_librecad.png
|
| 98 |
+
sed -i 's/Qt::black/Qt::white/g' ${{github.workspace}}/librecad/src/main/main.cpp
|
| 99 |
+
sed -i '/fontweight/d' ${{github.workspace}}/librecad/src/ui/dock_widgets/ucs_list/lc_dlgucsproperties.ui
|
| 100 |
+
|
| 101 |
+
- name: Build and analyze
|
| 102 |
+
run: |
|
| 103 |
+
export CC=clang
|
| 104 |
+
export CXX=clang++
|
| 105 |
+
export ANALYZE="scan-build-18 -o out --use-cc=/usr/bin/clang++ --use-analyzer=/usr/bin/clang++ "
|
| 106 |
+
#${ANALYZE}qmake6 -r librecad.pro CONFIG+=debug_and_release PREFIX=/usr
|
| 107 |
+
#${ANALYZE}make release -j$(nproc)
|
| 108 |
+
cmake -S . -B unix
|
| 109 |
+
cmake --build unix -j$(nproc)
|
| 110 |
+
|
| 111 |
+
- name: Create AppImage
|
| 112 |
+
run: |
|
| 113 |
+
find unix/
|
| 114 |
+
./CI/build-appimg-aarch64.sh
|
| 115 |
+
#mv LibreCAD*.AppImage LibreCAD-`git describe --always`-aarch64.AppImage
|
| 116 |
+
|
| 117 |
+
- name: List files
|
| 118 |
+
run: |
|
| 119 |
+
echo ${{ github.workspace }} && ls ${{ github.workspace }}
|
| 120 |
+
shell: bash
|
| 121 |
+
|
| 122 |
+
- name: Upload artifact
|
| 123 |
+
id: artifact-upload-step
|
| 124 |
+
uses: actions/upload-artifact@main
|
| 125 |
+
with:
|
| 126 |
+
name: linuxAssetsAarch64
|
| 127 |
+
path: LibreCAD*.AppImage
|
| 128 |
+
retention-days: 2
|
| 129 |
+
|
| 130 |
+
BuildSnap:
|
| 131 |
+
runs-on: ubuntu-24.04
|
| 132 |
+
steps:
|
| 133 |
+
- name: Checkout code
|
| 134 |
+
uses: actions/checkout@main
|
| 135 |
+
with:
|
| 136 |
+
fetch-depth: 0
|
| 137 |
+
ref: master
|
| 138 |
+
|
| 139 |
+
- name: Install Qt6
|
| 140 |
+
uses: jurplel/install-qt-action@v4
|
| 141 |
+
with:
|
| 142 |
+
version: '6.9.*'
|
| 143 |
+
modules: 'qt5compat'
|
| 144 |
+
|
| 145 |
+
- name: install snap
|
| 146 |
+
uses: samuelmeuli/action-snapcraft@v2
|
| 147 |
+
|
| 148 |
+
- name: Create snapcraft
|
| 149 |
+
run: |
|
| 150 |
+
pwd
|
| 151 |
+
ls
|
| 152 |
+
ls scripts
|
| 153 |
+
bash ./scripts/createSnap.sh
|
| 154 |
+
mv librecad*.snap LibreCAD-`git describe --always`.snap
|
| 155 |
+
|
| 156 |
+
- name: Uploading snap
|
| 157 |
+
uses: actions/upload-artifact@v4
|
| 158 |
+
with:
|
| 159 |
+
name: snapAssets
|
| 160 |
+
path: ${{github.workspace}}/LibreCAD*.snap
|
| 161 |
+
retention-days: 2
|
| 162 |
+
|
| 163 |
+
BuildMacOS:
|
| 164 |
+
runs-on: macos-14
|
| 165 |
+
outputs:
|
| 166 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 167 |
+
steps:
|
| 168 |
+
- name: Checkout code
|
| 169 |
+
uses: actions/checkout@main
|
| 170 |
+
with:
|
| 171 |
+
fetch-depth: 0
|
| 172 |
+
|
| 173 |
+
- name: uninstall p7zip
|
| 174 |
+
run: |
|
| 175 |
+
brew uninstall p7zip
|
| 176 |
+
|
| 177 |
+
- name: Install Qt6
|
| 178 |
+
uses: jurplel/install-qt-action@v4
|
| 179 |
+
with:
|
| 180 |
+
version: '6.9.*'
|
| 181 |
+
modules: 'qt5compat'
|
| 182 |
+
|
| 183 |
+
- name: Install boost dependencies
|
| 184 |
+
run: |
|
| 185 |
+
brew install boost
|
| 186 |
+
|
| 187 |
+
# XProtect can cause random failures if it decides that the DMG we create
|
| 188 |
+
# during the packaging phase is malware.
|
| 189 |
+
# TODO: Do it in a cleaner way
|
| 190 |
+
# Inspiration: https://github.com/servo/servo/pull/30779
|
| 191 |
+
- name: Kill XProtectBehaviorService
|
| 192 |
+
run: |
|
| 193 |
+
echo Killing XProtect.; sudo pkill -9 XProtect >/dev/null || true;
|
| 194 |
+
|
| 195 |
+
- name: Build and packaging
|
| 196 |
+
run: |
|
| 197 |
+
scripts/build-osx.sh
|
| 198 |
+
mv LibreCAD.dmg LibreCAD-`git describe --always`.dmg
|
| 199 |
+
|
| 200 |
+
- name: Upload artifact
|
| 201 |
+
id: artifact-upload-step
|
| 202 |
+
uses: actions/upload-artifact@main
|
| 203 |
+
with:
|
| 204 |
+
name: macOSAssets
|
| 205 |
+
path: LibreCAD*.dmg
|
| 206 |
+
retention-days: 2
|
| 207 |
+
|
| 208 |
+
BuildMacOSArm64:
|
| 209 |
+
runs-on: macos-14
|
| 210 |
+
outputs:
|
| 211 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 212 |
+
steps:
|
| 213 |
+
- name: Checkout code
|
| 214 |
+
uses: actions/checkout@main
|
| 215 |
+
with:
|
| 216 |
+
fetch-depth: 0
|
| 217 |
+
|
| 218 |
+
- name: uninstall p7zip
|
| 219 |
+
run: |
|
| 220 |
+
brew uninstall p7zip
|
| 221 |
+
|
| 222 |
+
- name: Install Qt6
|
| 223 |
+
uses: jurplel/install-qt-action@v4
|
| 224 |
+
with:
|
| 225 |
+
version: '6.9.*'
|
| 226 |
+
modules: 'qt5compat'
|
| 227 |
+
arch: 'clang_64'
|
| 228 |
+
|
| 229 |
+
- name: Install boost dependencies
|
| 230 |
+
run: |
|
| 231 |
+
brew install boost
|
| 232 |
+
|
| 233 |
+
# XProtect can cause random failures if it decides that the DMG we create
|
| 234 |
+
# during the packaging phase is malware.
|
| 235 |
+
# TODO: Do it in a cleaner way
|
| 236 |
+
# Inspiration: https://github.com/servo/servo/pull/30779
|
| 237 |
+
- name: Kill XProtectBehaviorService
|
| 238 |
+
run: |
|
| 239 |
+
echo Killing XProtect.; sudo pkill -9 XProtect >/dev/null || true;
|
| 240 |
+
|
| 241 |
+
- name: Build and packaging
|
| 242 |
+
env:
|
| 243 |
+
QMAKE_OPTS: QMAKE_APPLE_DEVICE_ARCHS=arm64
|
| 244 |
+
run: |
|
| 245 |
+
scripts/build-osx.sh
|
| 246 |
+
mv LibreCAD.dmg LibreCAD-`git describe --always`-arm64.dmg
|
| 247 |
+
|
| 248 |
+
- name: Upload artifact
|
| 249 |
+
id: artifact-upload-step
|
| 250 |
+
uses: actions/upload-artifact@main
|
| 251 |
+
with:
|
| 252 |
+
name: macOSArm64Assets
|
| 253 |
+
path: LibreCAD*.dmg
|
| 254 |
+
retention-days: 2
|
| 255 |
+
|
| 256 |
+
BuildWindows64:
|
| 257 |
+
runs-on: windows-2022
|
| 258 |
+
outputs:
|
| 259 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 260 |
+
steps:
|
| 261 |
+
- name: Checkout code
|
| 262 |
+
uses: actions/checkout@main
|
| 263 |
+
with:
|
| 264 |
+
fetch-depth: 0
|
| 265 |
+
|
| 266 |
+
- name: Install Qt6
|
| 267 |
+
uses: jurplel/install-qt-action@v4
|
| 268 |
+
with:
|
| 269 |
+
version: '6.9.*'
|
| 270 |
+
host: 'windows'
|
| 271 |
+
arch: 'win64_msvc2022_64'
|
| 272 |
+
target: 'desktop'
|
| 273 |
+
tools-only: 'false'
|
| 274 |
+
modules: 'qt3d qt5compat qtimageformats qtshadertools'
|
| 275 |
+
tools: 'tools_cmake'
|
| 276 |
+
|
| 277 |
+
- name: (3) Add MSBuild to PATH
|
| 278 |
+
uses: microsoft/setup-msbuild@v2
|
| 279 |
+
|
| 280 |
+
- name: Install boost
|
| 281 |
+
run: |
|
| 282 |
+
curl -# -L -o boost.7z https://archives.boost.io/release/1.87.0/source/boost_1_87_0.7z
|
| 283 |
+
7z x -o. -y boost.7z
|
| 284 |
+
mkdir -p boost/include
|
| 285 |
+
mv boost_1_87_0/boost boost/include/
|
| 286 |
+
rm boost.7z
|
| 287 |
+
pwd
|
| 288 |
+
ls -ld boost/include/boost/version.hpp
|
| 289 |
+
shell: bash
|
| 290 |
+
|
| 291 |
+
- name: Configure CMake
|
| 292 |
+
run: |
|
| 293 |
+
cmake.exe -S . -B generated -G "Visual Studio 17 2022" -DBoost_INCLUDE_DIR=%BOOST_ROOT%/include -DBoost_LIBRARY_DIRS=%BOOST_ROOT%/lib
|
| 294 |
+
shell: cmd
|
| 295 |
+
env:
|
| 296 |
+
BUILD_TYPE: release
|
| 297 |
+
MSVC_VER_NUMBER: "Visual Studio 17 2022"
|
| 298 |
+
BOOST_ROOT: boost
|
| 299 |
+
CMAKE_CXX_FLAGS: " /MP8"
|
| 300 |
+
|
| 301 |
+
- name: Build
|
| 302 |
+
run: |
|
| 303 |
+
cmake --build generated --config Release
|
| 304 |
+
shell: cmd
|
| 305 |
+
|
| 306 |
+
- name: listFile
|
| 307 |
+
run: |
|
| 308 |
+
cd generated
|
| 309 |
+
dir *.*
|
| 310 |
+
dir Release\*.*
|
| 311 |
+
dir x64\*.*
|
| 312 |
+
shell: cmd
|
| 313 |
+
|
| 314 |
+
- name: List files
|
| 315 |
+
run: |
|
| 316 |
+
echo "${{ github.workspace }}"
|
| 317 |
+
dir "${{ github.workspace }}"
|
| 318 |
+
shell: cmd
|
| 319 |
+
|
| 320 |
+
- name: winDeployment
|
| 321 |
+
run: |
|
| 322 |
+
copy CI\custom-win.pri custom.pri
|
| 323 |
+
copy CI\custom-win-x64.nsh scripts\postprocess-windows\custom.nsh
|
| 324 |
+
mkdir generated\plugins
|
| 325 |
+
for /r %%a in (*.dll) do copy "%%a" generated\plugins
|
| 326 |
+
cd generated
|
| 327 |
+
windeployqt6.exe --release --compiler-runtime Release\LibreCAD.exe
|
| 328 |
+
dir *.*
|
| 329 |
+
pushd "${{ github.workspace }}\scripts"
|
| 330 |
+
call build-win-setup.bat
|
| 331 |
+
shell: cmd
|
| 332 |
+
|
| 333 |
+
- name: Rename installer
|
| 334 |
+
run: |
|
| 335 |
+
mv LibreCAD-Installer.exe LibreCAD-`git describe --always`-win64.exe
|
| 336 |
+
shell: bash
|
| 337 |
+
|
| 338 |
+
- name: Upload artifact
|
| 339 |
+
id: artifact-upload-step
|
| 340 |
+
uses: actions/upload-artifact@main
|
| 341 |
+
with:
|
| 342 |
+
name: win64Assets
|
| 343 |
+
path: LibreCAD*.exe
|
| 344 |
+
retention-days: 2
|
| 345 |
+
|
| 346 |
+
BuildWindowsARM64:
|
| 347 |
+
runs-on: windows-11-arm
|
| 348 |
+
outputs:
|
| 349 |
+
output1: ${{ steps.artifact-upload-step.outputs.artifact-id }}
|
| 350 |
+
steps:
|
| 351 |
+
- name: Checkout code
|
| 352 |
+
uses: actions/checkout@main
|
| 353 |
+
with:
|
| 354 |
+
fetch-depth: 0
|
| 355 |
+
|
| 356 |
+
- name: Install Qt6
|
| 357 |
+
uses: jurplel/install-qt-action@v4
|
| 358 |
+
with:
|
| 359 |
+
version: '6.9.*'
|
| 360 |
+
host: 'windows_arm64'
|
| 361 |
+
arch: 'win64_msvc2022_arm64'
|
| 362 |
+
target: 'desktop'
|
| 363 |
+
tools-only: 'false'
|
| 364 |
+
modules: 'qt5compat qtimageformats qtshadertools'
|
| 365 |
+
tools: 'tools_cmake'
|
| 366 |
+
|
| 367 |
+
- name: (3) Add MSBuild to PATH
|
| 368 |
+
uses: microsoft/setup-msbuild@v2
|
| 369 |
+
with:
|
| 370 |
+
msbuild-architecture: arm64
|
| 371 |
+
|
| 372 |
+
- name: Install boost
|
| 373 |
+
run: |
|
| 374 |
+
curl -# -L -o boost.7z https://archives.boost.io/release/1.87.0/source/boost_1_87_0.7z
|
| 375 |
+
7z x -o. -y boost.7z
|
| 376 |
+
mkdir -p boost/include
|
| 377 |
+
mv boost_1_87_0/boost boost/include/
|
| 378 |
+
rm boost.7z
|
| 379 |
+
pwd
|
| 380 |
+
ls -ld boost/include/boost/version.hpp
|
| 381 |
+
shell: bash
|
| 382 |
+
|
| 383 |
+
- name: Configure CMake
|
| 384 |
+
run: |
|
| 385 |
+
cmake.exe -S . -B generated -G "Visual Studio 17 2022" -DBoost_INCLUDE_DIR=%BOOST_ROOT%/include -DBoost_LIBRARY_DIRS=%BOOST_ROOT%/lib
|
| 386 |
+
shell: cmd
|
| 387 |
+
env:
|
| 388 |
+
BUILD_TYPE: release
|
| 389 |
+
MSVC_VER_NUMBER: "Visual Studio 17 2022"
|
| 390 |
+
BOOST_ROOT: boost
|
| 391 |
+
CMAKE_CXX_FLAGS: " /MP8"
|
| 392 |
+
|
| 393 |
+
- name: Build
|
| 394 |
+
run: |
|
| 395 |
+
cmake --build generated --config Release
|
| 396 |
+
shell: cmd
|
| 397 |
+
|
| 398 |
+
- name: listFile
|
| 399 |
+
run: |
|
| 400 |
+
cd generated
|
| 401 |
+
dir *.*
|
| 402 |
+
dir Release\*.*
|
| 403 |
+
dir ARM64\*.*
|
| 404 |
+
shell: cmd
|
| 405 |
+
|
| 406 |
+
- name: List files
|
| 407 |
+
run: |
|
| 408 |
+
echo "${{ github.workspace }}"
|
| 409 |
+
dir "${{ github.workspace }}"
|
| 410 |
+
shell: cmd
|
| 411 |
+
|
| 412 |
+
- name: winDeployment
|
| 413 |
+
run: |
|
| 414 |
+
copy CI\custom-win.pri custom.pri
|
| 415 |
+
copy CI\custom-win-ARM64.nsh scripts\postprocess-windows\custom.nsh
|
| 416 |
+
mkdir generated\plugins
|
| 417 |
+
for /r %%a in (*.dll) do copy "%%a" generated\plugins
|
| 418 |
+
cd generated
|
| 419 |
+
windeployqt6.exe --release --compiler-runtime Release\LibreCAD.exe
|
| 420 |
+
dir *.*
|
| 421 |
+
pushd "${{ github.workspace }}\scripts"
|
| 422 |
+
call build-win-setup.bat
|
| 423 |
+
shell: cmd
|
| 424 |
+
|
| 425 |
+
- name: Rename installer
|
| 426 |
+
run: |
|
| 427 |
+
mv LibreCAD-Installer.exe LibreCAD-`git describe --always`-winARM64.exe
|
| 428 |
+
shell: bash
|
| 429 |
+
|
| 430 |
+
- name: Upload artifact
|
| 431 |
+
id: artifact-upload-step
|
| 432 |
+
uses: actions/upload-artifact@main
|
| 433 |
+
with:
|
| 434 |
+
name: winARM64Assets
|
| 435 |
+
path: LibreCAD*.exe
|
| 436 |
+
retention-days: 2
|
| 437 |
+
|
| 438 |
+
UpdateAssets:
|
| 439 |
+
if: github.repository_owner == 'LibreCAD'
|
| 440 |
+
needs: [BuildLinux, BuildLinuxAarch64, BuildMacOS, BuildMacOSArm64, BuildWindows64, BuildWindowsARM64, BuildSnap]
|
| 441 |
+
runs-on: ubuntu-latest
|
| 442 |
+
steps:
|
| 443 |
+
- name: Checkout code
|
| 444 |
+
uses: actions/checkout@main
|
| 445 |
+
with:
|
| 446 |
+
fetch-depth: 0
|
| 447 |
+
|
| 448 |
+
- name: Delete existing
|
| 449 |
+
run: gh release delete "2.2.2_alpha-latest" -y
|
| 450 |
+
env:
|
| 451 |
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
| 452 |
+
|
| 453 |
+
- name: Fetch artifacts
|
| 454 |
+
uses: actions/download-artifact@main
|
| 455 |
+
|
| 456 |
+
- name: Upload latest pre-release
|
| 457 |
+
uses: softprops/action-gh-release@v2
|
| 458 |
+
with:
|
| 459 |
+
name: "Continuous Build: latest development"
|
| 460 |
+
tag_name: "2.2.2_alpha-latest"
|
| 461 |
+
prerelease: true
|
| 462 |
+
draft: false
|
| 463 |
+
files: |
|
| 464 |
+
linuxAssets/LibreCAD*.AppImage
|
| 465 |
+
linuxAssetsAarch64/LibreCAD*.AppImage
|
| 466 |
+
macOSAssets/LibreCAD*.dmg
|
| 467 |
+
macOSArm64Assets/LibreCAD*.dmg
|
| 468 |
+
win64Assets/LibreCAD*.exe
|
| 469 |
+
winARM64Assets/LibreCAD*.exe
|
| 470 |
+
snapAssets/LibreCAD*.snap
|
| 471 |
+
LICENSE
|
.github/workflows/codeql.yml
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: "CodeQL"
|
| 2 |
+
|
| 3 |
+
on:
|
| 4 |
+
push:
|
| 5 |
+
branches: [ 'master' ]
|
| 6 |
+
pull_request:
|
| 7 |
+
# The branches below must be a subset of the branches above
|
| 8 |
+
branches: [ 'master' ]
|
| 9 |
+
schedule:
|
| 10 |
+
- cron: '59 14 * * 2'
|
| 11 |
+
|
| 12 |
+
jobs:
|
| 13 |
+
analyze:
|
| 14 |
+
name: Analyze
|
| 15 |
+
|
| 16 |
+
runs-on: ubuntu-latest
|
| 17 |
+
|
| 18 |
+
permissions:
|
| 19 |
+
actions: read
|
| 20 |
+
contents: read
|
| 21 |
+
security-events: write
|
| 22 |
+
|
| 23 |
+
strategy:
|
| 24 |
+
fail-fast: false
|
| 25 |
+
matrix:
|
| 26 |
+
language: [ 'cpp' ]
|
| 27 |
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
| 28 |
+
# Use only 'java' to analyze code written in Java, Kotlin or both
|
| 29 |
+
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
| 30 |
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
| 31 |
+
|
| 32 |
+
steps:
|
| 33 |
+
- name: Checkout code
|
| 34 |
+
uses: actions/checkout@main
|
| 35 |
+
with:
|
| 36 |
+
fetch-depth: 0
|
| 37 |
+
|
| 38 |
+
- name: Install Qt6
|
| 39 |
+
uses: jurplel/install-qt-action@v4
|
| 40 |
+
with:
|
| 41 |
+
aqtversion: '==3.1.*'
|
| 42 |
+
version: '6.9.*'
|
| 43 |
+
host: 'linux'
|
| 44 |
+
target: 'desktop'
|
| 45 |
+
arch: 'linux_gcc_64'
|
| 46 |
+
modules: 'qtwaylandcompositor'
|
| 47 |
+
|
| 48 |
+
- name: Install Qt and dependencies
|
| 49 |
+
run: |
|
| 50 |
+
sudo apt-get -y update
|
| 51 |
+
# ubuntu jammy(22.04) libqt6core5compat6-dev
|
| 52 |
+
# ubuntu nobel(24.04) qt6-5compat-dev
|
| 53 |
+
sudo apt-get -qq install qtchooser libqt6core5compat6-dev libgl-dev libmuparser-dev libboost-dev librsvg2-bin libfreetype6-dev libicu-dev pkg-config libfuse2
|
| 54 |
+
sudo ln -snf /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf /usr/lib/x86_64-linux-gnu/qtchooser/default.conf
|
| 55 |
+
sudo rm -rf /usr/local/lib/android
|
| 56 |
+
|
| 57 |
+
- name: Install Clang
|
| 58 |
+
run: |
|
| 59 |
+
sudo apt-get -qq install clang-15 clang-tools-15
|
| 60 |
+
|
| 61 |
+
# Initializes the CodeQL tools for scanning.
|
| 62 |
+
- name: Initialize CodeQL
|
| 63 |
+
uses: github/codeql-action/init@v3
|
| 64 |
+
with:
|
| 65 |
+
languages: ${{ matrix.language }}
|
| 66 |
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
| 67 |
+
# By default, queries listed here will override any specified in a config file.
|
| 68 |
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
| 69 |
+
|
| 70 |
+
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
| 71 |
+
# queries: security-extended,security-and-quality
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
- name: Build
|
| 75 |
+
run: |
|
| 76 |
+
export CC=g++
|
| 77 |
+
qmake6 -r librecad.pro CONFIG+=debug_and_release PREFIX=/usr
|
| 78 |
+
make release -j$(nproc)
|
| 79 |
+
|
| 80 |
+
- name: Perform CodeQL Analysis
|
| 81 |
+
uses: github/codeql-action/analyze@v3
|
| 82 |
+
with:
|
| 83 |
+
category: "/language:${{matrix.language}}"
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
ClangScan:
|
| 87 |
+
name: Security scan
|
| 88 |
+
runs-on: ubuntu-latest
|
| 89 |
+
steps:
|
| 90 |
+
- name: Checkout code
|
| 91 |
+
uses: actions/checkout@main
|
| 92 |
+
with:
|
| 93 |
+
fetch-depth: 0
|
| 94 |
+
|
| 95 |
+
- name: Install Qt6
|
| 96 |
+
uses: jurplel/install-qt-action@v4
|
| 97 |
+
with:
|
| 98 |
+
aqtversion: '==3.1.*'
|
| 99 |
+
version: '6.9.0'
|
| 100 |
+
host: 'linux'
|
| 101 |
+
target: 'desktop'
|
| 102 |
+
arch: 'linux_gcc_64'
|
| 103 |
+
modules: 'qtwaylandcompositor'
|
| 104 |
+
|
| 105 |
+
- name: Install dependencies
|
| 106 |
+
run: |
|
| 107 |
+
sudo apt-get -y update
|
| 108 |
+
sudo apt-get -qq install \
|
| 109 |
+
libgl-dev libmuparser-dev libboost-dev librsvg2-bin libfreetype6-dev libicu-dev pkg-config libfuse2
|
| 110 |
+
sudo rm -rf /usr/local/lib/android
|
| 111 |
+
|
| 112 |
+
- name: Install Clang
|
| 113 |
+
run: |
|
| 114 |
+
sudo apt-get -qq install clang-15 clang-tools-15
|
| 115 |
+
|
| 116 |
+
- name: Build and analyze
|
| 117 |
+
run: |
|
| 118 |
+
export CC=g++
|
| 119 |
+
export ANALYZE="scan-build-15 -o out --use-cc=g++ --use-analyzer=/usr/bin/clang++ "
|
| 120 |
+
${ANALYZE}qmake6 -r librecad.pro CONFIG+=debug_and_release PREFIX=/usr
|
| 121 |
+
${ANALYZE}make release -j$(nproc)
|
| 122 |
+
|
| 123 |
+
- name: Create report repository
|
| 124 |
+
run: |
|
| 125 |
+
cd out
|
| 126 |
+
find . -mindepth 2 -type f -print -exec mv {} . \;
|
| 127 |
+
git config --global user.email "github@librecad.org"
|
| 128 |
+
git config --global user.name "GHA CI [bot]"
|
| 129 |
+
git config --global init.defaultBranch gh-pages
|
| 130 |
+
git init
|
| 131 |
+
git add .
|
| 132 |
+
git commit -m "latest analyzer report"
|
| 133 |
+
|
| 134 |
+
- name: Push changes
|
| 135 |
+
if: github.repository_owner == 'LibreCAD'
|
| 136 |
+
uses: ad-m/github-push-action@master
|
| 137 |
+
with:
|
| 138 |
+
repository: ${{github.repository_owner}}/static-analyzer-reports
|
| 139 |
+
github_token: ${{secrets.LC_PUSH_ANALYZER_REPORT}}
|
| 140 |
+
branch: gh-pages
|
| 141 |
+
force: true
|
| 142 |
+
directory: out
|
.github/workflows/run_pixi.yml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Pixi Builds
|
| 2 |
+
on: [workflow_dispatch, push, pull_request]
|
| 3 |
+
|
| 4 |
+
jobs:
|
| 5 |
+
build_with_pixi:
|
| 6 |
+
runs-on: ${{ matrix.os }}
|
| 7 |
+
strategy:
|
| 8 |
+
max-parallel: 5
|
| 9 |
+
fail-fast: false
|
| 10 |
+
matrix:
|
| 11 |
+
os: [windows-latest, ubuntu-latest, ubuntu-22.04-arm, macos-latest, macos-13]
|
| 12 |
+
|
| 13 |
+
steps:
|
| 14 |
+
- uses: actions/checkout@v2
|
| 15 |
+
name: Checkout
|
| 16 |
+
|
| 17 |
+
- uses: prefix-dev/setup-pixi@v0.8.1
|
| 18 |
+
with:
|
| 19 |
+
pixi-version: v0.41.4
|
| 20 |
+
cache: true
|
| 21 |
+
- run: pixi run build
|
CHANGELOG.md
ADDED
|
@@ -0,0 +1,324 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Change Log
|
| 2 |
+
|
| 3 |
+
## [2.2.1-alpha] - unreleased
|
| 4 |
+
|
| 5 |
+
### Added
|
| 6 |
+
- shortcut "0" to specify coordinates "0,0" on command line
|
| 7 |
+
- shortcut "." or "," to specify the current point coordinates on command line
|
| 8 |
+
|
| 9 |
+
### Removed
|
| 10 |
+
- importshp plugin, see issue #1481
|
| 11 |
+
|
| 12 |
+
### Changed
|
| 13 |
+
|
| 14 |
+
### Fixed
|
| 15 |
+
- various issues in LFF font files
|
| 16 |
+
- segfault with malformed LFF font files
|
| 17 |
+
- CVE-2023-30259, OOB reads in importshp plugin (#1481)
|
| 18 |
+
|
| 19 |
+
## [2.2.0] - 2022-12-17
|
| 20 |
+
|
| 21 |
+
### Added
|
| 22 |
+
- librecad.appdata.xml for AppImage creation
|
| 23 |
+
|
| 24 |
+
### Changed
|
| 25 |
+
- mitigated DWG open warning and allow opening with errors
|
| 26 |
+
- Help/Online menu, use links direct, instead of dialog with double click
|
| 27 |
+
- sync libdxfrw (d73a25c)
|
| 28 |
+
|
| 29 |
+
### Fixed
|
| 30 |
+
- missing resources in unix folder (#1570)
|
| 31 |
+
- flood of RS_Modification warnings when deleting (#1567)
|
| 32 |
+
- clang regression with std::initializer_list<> (#1568)
|
| 33 |
+
- missing plugins on Redhat/Fedora and their branches (#1563)
|
| 34 |
+
- spline issue on Windows (32-bit) from previous fix
|
| 35 |
+
- image mirroring (#1525)
|
| 36 |
+
|
| 37 |
+
## [2.2.0-rc4] - 2022-06-07
|
| 38 |
+
|
| 39 |
+
### Added
|
| 40 |
+
- symbols to unicode.lff
|
| 41 |
+
- CHANGELOG.md - history of changes back to version 2.1.0
|
| 42 |
+
- new error code from libdxfrw update
|
| 43 |
+
- build Windows, MacOS and Linux packages in one action
|
| 44 |
+
|
| 45 |
+
### Changed
|
| 46 |
+
- sync libdxfrw (8378f39)
|
| 47 |
+
- added tool tips to Categories tool widget (#1519)
|
| 48 |
+
- added @ symbol to relative coordinates in status bar (#1452)
|
| 49 |
+
- changed misleading unit label in curent drawing preferences (#1453)
|
| 50 |
+
- changed tab order in text dialog (#1432)
|
| 51 |
+
- maximum size of status bar for hidpi displays
|
| 52 |
+
- sync libdxfrw (072aecd)
|
| 53 |
+
- copy/rename media files in desktop folder to remove whitespaces
|
| 54 |
+
|
| 55 |
+
### Fixed
|
| 56 |
+
- fixed renaming of nested blocks (#1527)
|
| 57 |
+
- preserve list position in block and layer list (#1515)
|
| 58 |
+
- fixed polyline issue when line type was changed (#1496)
|
| 59 |
+
- add minutes label to auto save time in application preferences (#1412)
|
| 60 |
+
- add files saved as with new name to recent files (#1364)
|
| 61 |
+
- snap on middle point failed for spline through points (#1395)
|
| 62 |
+
- spline issue with tolerance on ascii to double conversion
|
| 63 |
+
- DXF viewport reading issue by updating libdxfrw
|
| 64 |
+
- status bar height toggling on auto save
|
| 65 |
+
- solid fill hatch issues
|
| 66 |
+
- Ukrainian and symbol characters in unicode.lff
|
| 67 |
+
- possible out of bounds read with MText entities
|
| 68 |
+
- AppImage was broken by fix for (#1488)
|
| 69 |
+
- wrong translations folder for additionals paths from settings
|
| 70 |
+
- getDirectoryList() failed on Linux when librecad is in $PATH (#1488)
|
| 71 |
+
- bounds check in LWPolyline
|
| 72 |
+
- NULL check for hatch code 93
|
| 73 |
+
- vulnerabilities in JWW parser
|
| 74 |
+
|
| 75 |
+
## [2.2.0-rc3] - 2021-11-29
|
| 76 |
+
|
| 77 |
+
### Added
|
| 78 |
+
- more expressive error messages on file open for DXF/DWG files
|
| 79 |
+
- deploy AppImage for Linux users
|
| 80 |
+
|
| 81 |
+
### Changed
|
| 82 |
+
- Move to new IRC network
|
| 83 |
+
- libdxfrw update
|
| 84 |
+
- List entities plugin: Add text insertion point and text content to its output (#1325)
|
| 85 |
+
|
| 86 |
+
### Fixed
|
| 87 |
+
- read failed with binary DXF (#1371)
|
| 88 |
+
- small drawing windows in tabbed mode, when open failed
|
| 89 |
+
- LFF font issue (#1252)
|
| 90 |
+
- issue with detecting LFF font files
|
| 91 |
+
- tools/ttf2lff - add more font info and FreeType version to output
|
| 92 |
+
- angular dimensions persistently pull single click selection with arrow size 0
|
| 93 |
+
- libdxfrw failed to open non LibreCAD DXF files (sf611)
|
| 94 |
+
|
| 95 |
+
## [2.2.0-rc2] - 2020-12-31
|
| 96 |
+
|
| 97 |
+
### Added
|
| 98 |
+
- multiple blocks selection, toggling, deletion
|
| 99 |
+
- multiple layers selection and deletion
|
| 100 |
+
- Tiled printing
|
| 101 |
+
- Buttons to refresh Library Browser contents
|
| 102 |
+
- Console dxf2pdf tool
|
| 103 |
+
- filter field to Block List widget
|
| 104 |
+
- new plugin Divide
|
| 105 |
+
- new pattern millstone.dxf (#964)
|
| 106 |
+
|
| 107 |
+
### Changed
|
| 108 |
+
- Combined Letter / ANSI A, Tabloid / ANSI B
|
| 109 |
+
- Changed Ledger to Tabloid
|
| 110 |
+
- Block may contain inserts of other blocks except itself
|
| 111 |
+
- Print Preview: Line width scaling
|
| 112 |
+
- holding the "Shift" key during placing the line endpoint with mouse snaps to 15° step angles (0°,15°,30°,45°,...)
|
| 113 |
+
- Optional inversion of zoom direction
|
| 114 |
+
- Changing attributes of a block does not change attributes of sub-entities (#755,#1080)
|
| 115 |
+
- Optional inversion of mouse wheel scrolling directions
|
| 116 |
+
- Respect both tolerance and negative factor values on block import
|
| 117 |
+
- bundle all plugin modifications into one undoCycle
|
| 118 |
+
- uncheck 'Print to file' checkbox in QPrinterDialog
|
| 119 |
+
- Lock/unlock all layers
|
| 120 |
+
- SVG export renamed to Export as CAM/plain SVG
|
| 121 |
+
- Improve appearance of inside-horizontal dimensions
|
| 122 |
+
|
| 123 |
+
### Fixed
|
| 124 |
+
- libdxfrw - reading DWG hatch entities
|
| 125 |
+
- angle not consistent between move and rotate option and dialog (#1137)
|
| 126 |
+
- missing subclass marker in PLOTSETTINGS.
|
| 127 |
+
- Enhance visibility of black lines on dark backgrounds
|
| 128 |
+
- save/restore issue of snap modes (#1147)
|
| 129 |
+
- new undo/redo buffer for active line drawing (#1101)
|
| 130 |
+
- export black/white with black background used black pen too (#962)
|
| 131 |
+
- some more issues with paper size, NPageSize is no paper size, localize paper size names
|
| 132 |
+
- equidistant polylines had the correct layer, but not the layers properties (#1201)
|
| 133 |
+
- Unhighlight entity after exiting Orthogonal Line tool
|
| 134 |
+
- libdxfrw: fix spline parsing
|
| 135 |
+
- Page sizes cleaned up, added ANSI
|
| 136 |
+
- Print Preview: fix auto zoom on opening
|
| 137 |
+
- Print Preview: Line Scaling respects General Scale.
|
| 138 |
+
- added auto-zoom after inserting an image
|
| 139 |
+
- added more digits to extension lines lenth input box (#1203)
|
| 140 |
+
- Print Preview behaves as other windows
|
| 141 |
+
- Sync options visibility with window focus
|
| 142 |
+
- Print Preview not closing
|
| 143 |
+
- Zoom panning can only be used once and must then be reactivated (#1085)
|
| 144 |
+
- allow Save As for unmodified files
|
| 145 |
+
- Save As could not create new files
|
| 146 |
+
- endless loop occurred when trying to save a write-locked file
|
| 147 |
+
- using shift key to select has deselected layers/blocks between after mouse button release
|
| 148 |
+
- Toggle actions adjustments for Layer/Block Lists multiselection feature
|
| 149 |
+
- Respect Layer List Filter on layers removal
|
| 150 |
+
- 'move to bottom' command with existing selection
|
| 151 |
+
- Unhighlight limiting entity after exiting Trim tool
|
| 152 |
+
- Create equidistant polylines in currently selected layer
|
| 153 |
+
- "hold shift" to mirroring entities doesn't snap on 15° angles
|
| 154 |
+
- Save Block: do not remove blocks while saving
|
| 155 |
+
- preview on inserting block with inserts
|
| 156 |
+
- Undo block removing
|
| 157 |
+
- Window for block editing
|
| 158 |
+
- Update window title on block renaming
|
| 159 |
+
- Deactivate removed block
|
| 160 |
+
- Block cannot contain blocks
|
| 161 |
+
- Drawing opts: paper size to orientation relationship
|
| 162 |
+
- custom landscape paper size resetting
|
| 163 |
+
- pasting from clipboard to block
|
| 164 |
+
- Fit to whole page
|
| 165 |
+
- Do not highlight selection on Print Preview
|
| 166 |
+
- persistence of the angle in a MoveRotate operation
|
| 167 |
+
- Improve User Experience while working with multiple drawings (#515,#1108)
|
| 168 |
+
- Create a preference to toggle Free Snap mode when SPACE BAR is pressed (#1107)
|
| 169 |
+
- modfiy image refresh (#1102)
|
| 170 |
+
- Use sentence case for all buttons in popup menus
|
| 171 |
+
- add new checkable button and preference to allow whitespace in the command interface (#1098)
|
| 172 |
+
- Negative numbers are not accepted for Copy/Move input points (#981)
|
| 173 |
+
- Print Preview: Limit paper movement
|
| 174 |
+
- Printing respect paper margins
|
| 175 |
+
- Print Preview shows paper margins
|
| 176 |
+
- Page margins and page preview
|
| 177 |
+
- Apply scroll direction inversion to Trackpad
|
| 178 |
+
- Exclude only INSERTs from Undo on Block-deep attributes modification
|
| 179 |
+
- Change layer of inserts by layer list click should not modify the layers of block entities (#1065)
|
| 180 |
+
- Skip re-saving already saved settings values
|
| 181 |
+
- disappearance of entities on modification after undo (#1049)
|
| 182 |
+
- single dimension tolerance labels made false lines on zoom out (#1060)
|
| 183 |
+
- Modification status mark in window title
|
| 184 |
+
- segfault (#1048)
|
| 185 |
+
- Respect paper scale with 'fixed' checked (#592,#605,#705)
|
| 186 |
+
- Exploded entities issues fix (#819)
|
| 187 |
+
- libdxfrw violation (#1038,#1045)
|
| 188 |
+
- write access violation when a malicious dxf is fed to libdxfrw (#1038)
|
| 189 |
+
- random LayerList icons issues on multi layer block imports (#1024)
|
| 190 |
+
- 2 segfaults
|
| 191 |
+
- Set factor to 1.0 if user inputs 0 on block import
|
| 192 |
+
- import block to active layer
|
| 193 |
+
- Factor value was ignored on block import
|
| 194 |
+
- RowSpacing and ColSpacing values were swapped in Insert properties dialog
|
| 195 |
+
- polyline was exploded, when selected while pasting (#932)
|
| 196 |
+
- improved Undo/Redo
|
| 197 |
+
- asking to save drawing, when closing unmodified drawing
|
| 198 |
+
- rotating multiple entities needed multiple undos, for each entity (#1002)
|
| 199 |
+
- crashed after cut, paste, undo (#993)
|
| 200 |
+
- oversized layer list icons for print and construction (#1021)
|
| 201 |
+
- '@' key press didn't activate command box (#1016)
|
| 202 |
+
- angular dimensions failed to move, rotate, mirror or scale (#1019)
|
| 203 |
+
- missing mouse button hint to clarify properties tool handling (#1008)
|
| 204 |
+
- column width in layer list too big since Ubuntu 18.04 (#980)
|
| 205 |
+
- Deselect entities on locking all layers
|
| 206 |
+
- Spline regression, where the startpoint was at 0,0 by mistake (#940,sf599)
|
| 207 |
+
- protect 4th vector when triangle solid is modified (Move,Rotate,Scale,Mirror) (#998)
|
| 208 |
+
- SVG export crashed on windows with Image Export
|
| 209 |
+
- length extension lines should scale according to the General Scale
|
| 210 |
+
- outside offset result of counterclockwise polyline wasn't connected (#972)
|
| 211 |
+
- Angular dimensions now respect user's custom label text
|
| 212 |
+
|
| 213 |
+
### Removed
|
| 214 |
+
- ISO B series paper size
|
| 215 |
+
- too big and too small printing scales
|
| 216 |
+
|
| 217 |
+
## [2.2.0-rc1] - 2018-02-16
|
| 218 |
+
|
| 219 |
+
### Added
|
| 220 |
+
- support to draw auxiliary lines
|
| 221 |
+
- a new method to draw a polygon
|
| 222 |
+
- superscript 5 for all fonts
|
| 223 |
+
- architectural units for metric dimensions (#861)
|
| 224 |
+
- macOS Sierra support
|
| 225 |
+
- gear creation plugin
|
| 226 |
+
- font folder selection button
|
| 227 |
+
- 'Paste Multiple Commands' to the command line menu (#782)
|
| 228 |
+
- Pen Wizard with favorite colors list (#793,#795)
|
| 229 |
+
- F11 as the fullscreen hotkey for Linux (#569)
|
| 230 |
+
- support for individual coordinate variables (#780,#781)
|
| 231 |
+
- ability to load command files (#256,#689,#780,#782)
|
| 232 |
+
- user option for loading a variable file on startup (#689,#780,#782)
|
| 233 |
+
- alternative relative point syntax (#781)
|
| 234 |
+
- multi-command support with variable replacement (#689,#780,#782)
|
| 235 |
+
- command line variables (#780)
|
| 236 |
+
- easier way to create relative orthogonal points (#779)
|
| 237 |
+
- Space/Enter toggle free snap when cmd line is empty or in key code mode (#745)
|
| 238 |
+
- Space as alternative to Enter for cmd line & changed cal (#764)
|
| 239 |
+
- Ctrl+D for toggling draft mode (#750)
|
| 240 |
+
|
| 241 |
+
### Changes
|
| 242 |
+
- Use a more suitable tabbar for the document list when in tab mode
|
| 243 |
+
- layer auto numbering improved
|
| 244 |
+
- Make the layerwidget filter field a bit more informative
|
| 245 |
+
- Change rotate to allow neg angles
|
| 246 |
+
- extend list plugin for more info about inserts
|
| 247 |
+
- improved modifier filtering for the command widget (#790,#817)
|
| 248 |
+
- improved keycode mode (#802,#804)
|
| 249 |
+
- modified the command line's ctrl+v to allow for multi-line input (#782)
|
| 250 |
+
- drag and drop for the favorite colors list (#793)
|
| 251 |
+
- improved circle anti-aliasing (#778)
|
| 252 |
+
- made 5.2.1 the minimum Qt version (#742)
|
| 253 |
+
|
| 254 |
+
### Fixed
|
| 255 |
+
- refactoring of Angular Dimansions (#824,#896,#911)
|
| 256 |
+
- 'open with' didn't work on MacOS (#877)
|
| 257 |
+
- trackpad scroll when scrollbars are disabled
|
| 258 |
+
- Check viewport intersection only through points along the line
|
| 259 |
+
- adjusted Angular Dimension to provide inside/outside angles rather than inside/supplementary angles.
|
| 260 |
+
- selection of last color in the list for any layer
|
| 261 |
+
- Document Surveyor's Units in Current Drawing Preferences AngleFormat now has case specifier for Surveyors units (#883)
|
| 262 |
+
- custom page size - incorrect unit handling (#864)
|
| 263 |
+
- Improve Current Drawing Preferences - Units tab Angle Precision referenced wrong comboBox (#884)
|
| 264 |
+
- gcc 6 builds failed (#880)
|
| 265 |
+
- entities painted by plugins become invisible at certain positions on drawing
|
| 266 |
+
- Google Code in - fixed vaious spelling mistakes, submitted by participants
|
| 267 |
+
- some more undo related exceptions (#830)
|
| 268 |
+
- plot equation plugin missed out end value (#838)
|
| 269 |
+
- allowed for more widgets to be added to the penwizard (#795)
|
| 270 |
+
- possibly eliminated crash on tool activation (#814)
|
| 271 |
+
- file open dialog filter is case sensitive on Linux (#791)
|
| 272 |
+
- DXF files with comments in SECTIONs failed to load (#808)
|
| 273 |
+
- Save after Undo does nothing (#803)
|
| 274 |
+
- fixed crash on undo after ctrl+c / ctrl + v (#794)
|
| 275 |
+
- ensured - is considered in the new relative syntax (#781)
|
| 276 |
+
- ensured command line doesn't hijack hotkeys (#790)
|
| 277 |
+
- ensured accurate line previews (#787)
|
| 278 |
+
- ensured all objects are shown when a layer is toggled (#784)
|
| 279 |
+
- ensured layer 0 is activated when creating a new file (#775)
|
| 280 |
+
- ensured proper layer highlighting (#775)
|
| 281 |
+
- eliminated crash when pasting before a successful copy
|
| 282 |
+
- copied objects are not hidden with other layer objects (#774)
|
| 283 |
+
- Right mouse button click did not select block in Block List (#759)
|
| 284 |
+
- limit scrolling to drawing + perimeter
|
| 285 |
+
- Fix for Trackpads without smooth/hi-res scrolling
|
| 286 |
+
- Pasted blocks in Block List widget did not contain proper hatch data (#760)
|
| 287 |
+
- changing attributes of a block sub-entities (#755)
|
| 288 |
+
- explode action changed container entities attributes to wrong values (#754)
|
| 289 |
+
- ensured that closing inactive win doesn't affect the active (#753)
|
| 290 |
+
|
| 291 |
+
### Removed
|
| 292 |
+
- removed wqy-unicode.lff
|
| 293 |
+
|
| 294 |
+
## [2.1.3] - 2016-09-23
|
| 295 |
+
|
| 296 |
+
### Fixed
|
| 297 |
+
- Shift would not activate the command line (#790,#817)
|
| 298 |
+
- Command+Tab didn't always activate the current drawing on OS X (#814,#821)
|
| 299 |
+
|
| 300 |
+
## [2.1.2] - 2016-09-17
|
| 301 |
+
|
| 302 |
+
### Fixed
|
| 303 |
+
- wouldn’t build with gcc 5.4 and 6
|
| 304 |
+
- mouse cursor was missing for ‘Arc Tangential’
|
| 305 |
+
- right-click with plugins could cause a crash (#786)
|
| 306 |
+
- construction lines were not drawn when the line segment was out of view
|
| 307 |
+
- DXF files with comments were not properly loaded (#808)
|
| 308 |
+
- drawings were not marked as modified after an ‘undo’
|
| 309 |
+
- the command line didn’t accept numpad input
|
| 310 |
+
- the command widget didn’t activate properly when floating (#790)
|
| 311 |
+
|
| 312 |
+
## [2.1.1] - 2016-06-20
|
| 313 |
+
|
| 314 |
+
### Fixed
|
| 315 |
+
- draft mode was not set for new/opened drawings (#749)
|
| 316 |
+
- performance did not improve when zooming into an area (#727)
|
| 317 |
+
- certain polylines were not rendered properly (#763)
|
| 318 |
+
- opening a file didn't restore the layer's construction state (#758)
|
| 319 |
+
- the cursor was hidden for 'polyline from existing'
|
| 320 |
+
- closing an inactive tab cleared the layer list
|
| 321 |
+
- wouldn't build with Qt4
|
| 322 |
+
|
| 323 |
+
## [2.1.0] - 2016-06-04
|
| 324 |
+
|
CI/build-appimg-aarch64.sh
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
#
|
| 3 |
+
|
| 4 |
+
## script to build LibreCAD AppImage: arm64
|
| 5 |
+
## intended to be used on Travis CI
|
| 6 |
+
## does not run on modern systems because of linuxdeployqt
|
| 7 |
+
## for testing it can be called with parameter 'clean' to remove AppImage file and folder
|
| 8 |
+
|
| 9 |
+
# ensure that the script is called from LibreCAD root folder and executable exists
|
| 10 |
+
if [ ! -d "unix" ]; then
|
| 11 |
+
echo "The script has to be called from LibreCAD root folder!"
|
| 12 |
+
exit
|
| 13 |
+
fi
|
| 14 |
+
if [ ! -f "unix/librecad" ]; then
|
| 15 |
+
echo "Please build LibreCAD first, before calling this script!"
|
| 16 |
+
exit
|
| 17 |
+
fi
|
| 18 |
+
|
| 19 |
+
# for testing purposes and manual use
|
| 20 |
+
# this script can be called with parameter clean
|
| 21 |
+
# to remove appdir and LibreCAD*.AppImage files
|
| 22 |
+
if [ 1 -eq $# ] && [ "clean" = "$1" ]; then
|
| 23 |
+
[ -d "appdir" ] && rm -Rf appdir
|
| 24 |
+
compgen -G "LibreCAD*.AppImage" >/dev/null && rm LibreCAD*.AppImage
|
| 25 |
+
echo "cleaned LibreCAD AppImage files"
|
| 26 |
+
exit
|
| 27 |
+
fi
|
| 28 |
+
|
| 29 |
+
# create folder structure
|
| 30 |
+
mkdir -p appdir/usr/bin
|
| 31 |
+
mkdir -p appdir/usr/lib/librecad
|
| 32 |
+
mkdir -p appdir/usr/share/applications
|
| 33 |
+
mkdir -p appdir/usr/share/librecad
|
| 34 |
+
mkdir -p appdir/usr/share/metainfo
|
| 35 |
+
mkdir -p appdir/usr/share/doc/librecad
|
| 36 |
+
mkdir -p appdir/usr/share/icons/hicolor/256x256/apps
|
| 37 |
+
mkdir -p appdir/usr/share/icons/hicolor/scalable/apps
|
| 38 |
+
mkdir -p appdir/usr/share/librecad
|
| 39 |
+
|
| 40 |
+
# strip binaries
|
| 41 |
+
strip unix/librecad
|
| 42 |
+
strip unix/resources/plugins/*.so
|
| 43 |
+
|
| 44 |
+
# copy executables and binary resources
|
| 45 |
+
cp unix/librecad appdir/usr/bin/
|
| 46 |
+
cp unix/resources/plugins/*.so appdir/usr/lib/librecad/
|
| 47 |
+
cp -r unix/resources/qm appdir/usr/share/librecad/
|
| 48 |
+
|
| 49 |
+
cp desktop/librecad.desktop appdir/usr/share/applications/
|
| 50 |
+
cp desktop/org.librecad.librecad.appdata.xml appdir/usr/share/metainfo/
|
| 51 |
+
|
| 52 |
+
cp -r librecad/support/doc/* appdir/usr/share/doc/librecad/
|
| 53 |
+
cp -r librecad/support/fonts appdir/usr/share/librecad/
|
| 54 |
+
cp -r librecad/support/library appdir/usr/share/librecad/
|
| 55 |
+
cp -r librecad/support/patterns appdir/usr/share/librecad/
|
| 56 |
+
|
| 57 |
+
cp CI/librecad.svg appdir/usr/share/icons/hicolor/scalable/apps/
|
| 58 |
+
convert -resize 256x256 CI/librecad.svg appdir/usr/share/icons/hicolor/256x256/apps/librecad.png
|
| 59 |
+
mkdir -p appdir/usr/share/icons/hicolor/scalable/apps/
|
| 60 |
+
cp CI/librecad.svg appdir/usr/share/icons/hicolor/scalable/apps/
|
| 61 |
+
|
| 62 |
+
ls -l appdir/usr/share/icons/hicolor/256x256/apps/librecad.png
|
| 63 |
+
ls -l appdir/usr/share/icons/hicolor/scalable/apps/
|
| 64 |
+
ls -l appdir/usr/share/applications/librecad.desktop
|
| 65 |
+
|
| 66 |
+
export QMAKE=$(which qmake6)
|
| 67 |
+
export EXTRA_QT_MODULES=svg
|
| 68 |
+
|
| 69 |
+
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep "appimagetool-.*-aarch64.AppImage" | head -n 1 | cut -d '"' -f 2)
|
| 70 |
+
chmod +x appimagetool-*.AppImage
|
| 71 |
+
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-aarch64.AppImage
|
| 72 |
+
chmod +x *.AppImage
|
| 73 |
+
# Bundle EVERYTHING
|
| 74 |
+
VERSION=`git describe --always` ARCH=aarch64 ./appimagetool-*.AppImage -s deploy appdir/usr/share/applications/*.desktop
|
| 75 |
+
VERSION=`git describe --always` ./appimagetool-*.AppImage ./appdir
|
| 76 |
+
chmod +x *.AppImage
|
| 77 |
+
|
CI/build-appimg.sh
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash -x
|
| 2 |
+
#
|
| 3 |
+
|
| 4 |
+
## script to build LibreCAD AppImage
|
| 5 |
+
## intended to be used on Travis CI
|
| 6 |
+
## does not run on modern systems because of linuxdeployqt
|
| 7 |
+
## for testing it can be called with parameter 'clean' to remove AppImage file and folder
|
| 8 |
+
|
| 9 |
+
# ensure that the script is called from LibreCAD root folder and executable exists
|
| 10 |
+
if [ ! -d "unix" ]; then
|
| 11 |
+
echo "The script has to be called from LibreCAD root folder!"
|
| 12 |
+
exit
|
| 13 |
+
fi
|
| 14 |
+
if [ ! -f "unix/librecad" ]; then
|
| 15 |
+
echo "Please build LibreCAD first, before calling this script!"
|
| 16 |
+
exit
|
| 17 |
+
fi
|
| 18 |
+
|
| 19 |
+
# for testing purposes and manual use
|
| 20 |
+
# this script can be called with parameter clean
|
| 21 |
+
# to remove appdir and LibreCAD*.AppImage files
|
| 22 |
+
if [ 1 -eq $# ] && [ "clean" = "$1" ]; then
|
| 23 |
+
[ -d "appdir" ] && rm -Rf appdir
|
| 24 |
+
compgen -G "LibreCAD*.AppImage" >/dev/null && rm LibreCAD*.AppImage
|
| 25 |
+
echo "cleaned LibreCAD AppImage files"
|
| 26 |
+
exit
|
| 27 |
+
fi
|
| 28 |
+
|
| 29 |
+
# create folder structure
|
| 30 |
+
mkdir -p appdir/usr/bin
|
| 31 |
+
mkdir -p appdir/usr/lib/librecad
|
| 32 |
+
mkdir -p appdir/usr/share/applications
|
| 33 |
+
mkdir -p appdir/usr/share/librecad
|
| 34 |
+
mkdir -p appdir/usr/share/metainfo
|
| 35 |
+
mkdir -p appdir/usr/share/doc/librecad
|
| 36 |
+
mkdir -p appdir/usr/share/icons/hicolor/256x256/apps
|
| 37 |
+
mkdir -p appdir/usr/share/icons/hicolor/scalable/apps
|
| 38 |
+
mkdir -p appdir/usr/share/librecad/qm
|
| 39 |
+
|
| 40 |
+
# strip binaries
|
| 41 |
+
strip unix/librecad
|
| 42 |
+
strip unix/resources/plugins/*/*.so
|
| 43 |
+
|
| 44 |
+
# copy executables and binary resources
|
| 45 |
+
cp unix/librecad appdir/usr/bin/
|
| 46 |
+
cp unix/resources/plugins/*/*.so appdir/usr/lib/librecad/
|
| 47 |
+
cp -r unix/*.qm appdir/usr/share/librecad/qm/
|
| 48 |
+
|
| 49 |
+
cp desktop/librecad.desktop appdir/usr/share/applications/
|
| 50 |
+
cp desktop/org.librecad.librecad.appdata.xml appdir/usr/share/metainfo/
|
| 51 |
+
|
| 52 |
+
cp -r librecad/support/doc/* appdir/usr/share/doc/librecad/
|
| 53 |
+
cp -r librecad/support/fonts appdir/usr/share/librecad/
|
| 54 |
+
cp -r librecad/support/library appdir/usr/share/librecad/
|
| 55 |
+
cp -r librecad/support/patterns appdir/usr/share/librecad/
|
| 56 |
+
|
| 57 |
+
cp CI/librecad.svg appdir/usr/share/icons/hicolor/scalable/apps/
|
| 58 |
+
convert -resize 256x256 CI/librecad.svg appdir/usr/share/icons/hicolor/256x256/apps/librecad.png
|
| 59 |
+
|
| 60 |
+
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep "appimagetool-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
|
| 61 |
+
chmod +x appimagetool-*.AppImage
|
| 62 |
+
# Bundle EVERYTHING
|
| 63 |
+
VERSION=`git describe --always` ARCH=x86_64 ./appimagetool-*.AppImage -s deploy appdir/usr/share/applications/*.desktop
|
| 64 |
+
VERSION=`git describe --always` ./appimagetool-*.AppImage ./appdir
|
| 65 |
+
chmod +x *.AppImage
|
CI/custom-win-ARM64.nsh
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
;local settings
|
| 2 |
+
|
| 3 |
+
!define Qt_Dir "D:\a\LibreCAD\Qt"
|
| 4 |
+
!define Qt_Version "6.9.0"
|
| 5 |
+
!define Mingw_Ver "mingw_64"
|
| 6 |
+
!define InstallerName "LibreCAD-Installer"
|
| 7 |
+
!define ProgramsFolder "$PROGRAMFILES64"
|
| 8 |
+
!define AppKeyName "LibreCADARM64"
|
| 9 |
+
!define AppName "LibreCAD (ARM64)"
|
CI/custom-win-x64.nsh
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
;local settings
|
| 2 |
+
|
| 3 |
+
!define Qt_Dir "D:\a\LibreCAD\Qt"
|
| 4 |
+
!define Qt_Version "6.9.0"
|
| 5 |
+
!define Mingw_Ver "mingw_64"
|
| 6 |
+
!define InstallerName "LibreCAD-Installer"
|
| 7 |
+
!define ProgramsFolder "$PROGRAMFILES64"
|
| 8 |
+
!define AppKeyName "LibreCADx64"
|
| 9 |
+
!define AppName "LibreCAD (x64)"
|
CI/custom-win.nsh
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
;local settings
|
| 2 |
+
|
| 3 |
+
!define Qt_Dir "D:\a\LibreCAD\Qt"
|
| 4 |
+
!define Qt_Version "6.9.0"
|
| 5 |
+
!define Mingw_Ver "mingw73_32"
|
| 6 |
+
!define InstallerName "LibreCAD-Installer"
|
| 7 |
+
!define ProgramsFolder "$PROGRAMFILES"
|
| 8 |
+
!define AppKeyName "LibreCAD"
|
| 9 |
+
!define APPNAME "LibreCAD"
|
CI/custom-win.pri
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
CUSTOM_ROOT = D:\a\LibreCAD\LibreCAD
|
| 2 |
+
BOOST_DIR = $${CUSTOM_ROOT}\..\boost
|
| 3 |
+
BOOST_LIBDIR = $${CUSTOM_ROOT}\..\boost
|
| 4 |
+
MSYSGIT_DIR = C:\Progra~1\Git\bin
|
CI/librecad.svg
ADDED
|
|
CI/qt512.conf
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/opt/qt512/bin
|
| 2 |
+
/opt/qt512/lib
|
CMakeLists.txt
ADDED
|
@@ -0,0 +1,1717 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cmake_minimum_required(VERSION 3.28)
|
| 2 |
+
project(LibreCAD VERSION 2.2.2)
|
| 3 |
+
|
| 4 |
+
set(CMAKE_CXX_STANDARD 17)
|
| 5 |
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
| 6 |
+
|
| 7 |
+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
| 8 |
+
set(CMAKE_AUTOUIC_OPTIONS --connections string)
|
| 9 |
+
|
| 10 |
+
set(CMAKE_AUTOMOC ON)
|
| 11 |
+
set(CMAKE_AUTOUIC ON)
|
| 12 |
+
set(CMAKE_AUTORCC ON)
|
| 13 |
+
|
| 14 |
+
find_package(Qt6 COMPONENTS Gui Core Widgets PrintSupport Svg Network REQUIRED)
|
| 15 |
+
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
|
| 16 |
+
find_package(Boost REQUIRED)
|
| 17 |
+
find_package(Freetype)
|
| 18 |
+
|
| 19 |
+
# Define all sources (as before)
|
| 20 |
+
file(GLOB_RECURSE AUTO_EXCLUDED_SOURCES
|
| 21 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/debug/*.*"
|
| 22 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/creation/*.*"
|
| 23 |
+
"${PROJECT_SOURCE_DIR}/libraries/*.*"
|
| 24 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/*.*"
|
| 25 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/clipboard/*.*"
|
| 26 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/document/*.*"
|
| 27 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/overlays/*.*"
|
| 28 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/undo/*.*"
|
| 29 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/engine/utils/*.*"
|
| 30 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/fileio/*.*"
|
| 31 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/information/*.*"
|
| 32 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/gui/*.*"
|
| 33 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/math/*.*"
|
| 34 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/modification/*.*"
|
| 35 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/printing/*.*"
|
| 36 |
+
"${PROJECT_SOURCE_DIR}/librecad/src/lib/scripting/*.*"
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
set(SHARED_INCLUDES
|
| 40 |
+
${Boost_INCLUDE_DIRS}
|
| 41 |
+
libraries/jwwlib/src
|
| 42 |
+
libraries/lciconengine
|
| 43 |
+
libraries/libdxfrw/src
|
| 44 |
+
libraries/libdxfrw/src/intern
|
| 45 |
+
libraries/muparser/include
|
| 46 |
+
librecad/res/arrows
|
| 47 |
+
librecad/res/controls
|
| 48 |
+
librecad/res/dxf
|
| 49 |
+
librecad/res/gdt
|
| 50 |
+
librecad/res/icons
|
| 51 |
+
librecad/res/images
|
| 52 |
+
librecad/src/actions
|
| 53 |
+
librecad/src/actions/dock_widgets
|
| 54 |
+
librecad/src/actions/dock_widgets/block
|
| 55 |
+
librecad/src/actions/dock_widgets/cad
|
| 56 |
+
librecad/src/actions/dock_widgets/entity_info
|
| 57 |
+
librecad/src/actions/dock_widgets/layer
|
| 58 |
+
librecad/src/actions/dock_widgets/library
|
| 59 |
+
librecad/src/actions/dock_widgets/ucs_list
|
| 60 |
+
librecad/src/actions/dock_widgets/workspaces
|
| 61 |
+
librecad/src/actions/drawing
|
| 62 |
+
librecad/src/actions/drawing/arc
|
| 63 |
+
librecad/src/actions/drawing/draw
|
| 64 |
+
librecad/src/actions/drawing/draw/circle
|
| 65 |
+
librecad/src/actions/drawing/draw/curve
|
| 66 |
+
librecad/src/actions/drawing/draw/dimensions
|
| 67 |
+
librecad/src/actions/drawing/draw/ellipse
|
| 68 |
+
librecad/src/actions/drawing/draw/hatch
|
| 69 |
+
librecad/src/actions/drawing/draw/image
|
| 70 |
+
librecad/src/actions/drawing/draw/line
|
| 71 |
+
librecad/src/actions/drawing/draw/line/misc
|
| 72 |
+
librecad/src/actions/drawing/draw/line/shapes
|
| 73 |
+
librecad/src/actions/drawing/draw/line/shapes/polygon
|
| 74 |
+
librecad/src/actions/drawing/draw/line/shapes/rect
|
| 75 |
+
librecad/src/actions/drawing/draw/misc
|
| 76 |
+
librecad/src/actions/drawing/draw/point
|
| 77 |
+
librecad/src/actions/drawing/draw/polygon
|
| 78 |
+
librecad/src/actions/drawing/draw/polyline
|
| 79 |
+
librecad/src/actions/drawing/draw/rect
|
| 80 |
+
librecad/src/actions/drawing/draw/spline
|
| 81 |
+
librecad/src/actions/drawing/draw/text
|
| 82 |
+
librecad/src/actions/drawing/edit
|
| 83 |
+
librecad/src/actions/drawing/info
|
| 84 |
+
librecad/src/actions/drawing/modify
|
| 85 |
+
librecad/src/actions/drawing/pen
|
| 86 |
+
librecad/src/actions/drawing/pick
|
| 87 |
+
librecad/src/actions/drawing/rel_zero
|
| 88 |
+
librecad/src/actions/drawing/selection
|
| 89 |
+
librecad/src/actions/drawing/snap
|
| 90 |
+
librecad/src/actions/drawing/zoom
|
| 91 |
+
librecad/src/actions/file
|
| 92 |
+
librecad/src/actions/options
|
| 93 |
+
librecad/src/actions/print_preview
|
| 94 |
+
librecad/src/cmd
|
| 95 |
+
librecad/src/lib/actions
|
| 96 |
+
librecad/src/lib/creation
|
| 97 |
+
librecad/src/lib/debug
|
| 98 |
+
librecad/src/lib/engine
|
| 99 |
+
librecad/src/lib/engine/clipboard
|
| 100 |
+
librecad/src/lib/engine/document
|
| 101 |
+
librecad/src/lib/engine/document/blocks
|
| 102 |
+
librecad/src/lib/engine/document/container
|
| 103 |
+
librecad/src/lib/engine/document/dimstyles
|
| 104 |
+
librecad/src/lib/engine/document/dimstyles/builder
|
| 105 |
+
librecad/src/lib/engine/document/dimstyles/export
|
| 106 |
+
librecad/src/lib/engine/document/entities
|
| 107 |
+
librecad/src/lib/engine/document/entities/support
|
| 108 |
+
librecad/src/lib/engine/document/fonts
|
| 109 |
+
librecad/src/lib/engine/document/layers
|
| 110 |
+
librecad/src/lib/engine/document/patterns
|
| 111 |
+
librecad/src/lib/engine/document/textstyles
|
| 112 |
+
librecad/src/lib/engine/document/ucs
|
| 113 |
+
librecad/src/lib/engine/document/variables
|
| 114 |
+
librecad/src/lib/engine/document/views
|
| 115 |
+
librecad/src/lib/engine/overlays
|
| 116 |
+
librecad/src/lib/engine/overlays/angles_base
|
| 117 |
+
librecad/src/lib/engine/overlays/crosshair
|
| 118 |
+
librecad/src/lib/engine/overlays/highlight
|
| 119 |
+
librecad/src/lib/engine/overlays/info_cursor
|
| 120 |
+
librecad/src/lib/engine/overlays/overlay_box
|
| 121 |
+
librecad/src/lib/engine/overlays/preview
|
| 122 |
+
librecad/src/lib/engine/overlays/references
|
| 123 |
+
librecad/src/lib/engine/overlays/ucs_mark
|
| 124 |
+
librecad/src/lib/engine/settings
|
| 125 |
+
librecad/src/lib/engine/undo
|
| 126 |
+
librecad/src/lib/engine/utils
|
| 127 |
+
librecad/src/lib/fileio
|
| 128 |
+
librecad/src/lib/filters
|
| 129 |
+
librecad/src/lib/generators
|
| 130 |
+
librecad/src/lib/generators/image
|
| 131 |
+
librecad/src/lib/generators/layers
|
| 132 |
+
librecad/src/lib/generators/makercamsvg
|
| 133 |
+
librecad/src/lib/gui
|
| 134 |
+
librecad/src/lib/gui/grid
|
| 135 |
+
librecad/src/lib/gui/render
|
| 136 |
+
librecad/src/lib/gui/render/headless
|
| 137 |
+
librecad/src/lib/gui/render/widget
|
| 138 |
+
librecad/src/lib/information
|
| 139 |
+
librecad/src/lib/math
|
| 140 |
+
librecad/src/lib/modification
|
| 141 |
+
librecad/src/lib/printing
|
| 142 |
+
librecad/src/lib/scripting
|
| 143 |
+
librecad/src/main
|
| 144 |
+
librecad/src/main/console_dxf2pdf
|
| 145 |
+
librecad/src/plugins
|
| 146 |
+
librecad/src/plugins/intern
|
| 147 |
+
librecad/src/test
|
| 148 |
+
librecad/src/ui
|
| 149 |
+
librecad/src/ui/action_options
|
| 150 |
+
librecad/src/ui/action_options/circle
|
| 151 |
+
librecad/src/ui/action_options/curve
|
| 152 |
+
librecad/src/ui/action_options/dimensions
|
| 153 |
+
librecad/src/ui/action_options/draw
|
| 154 |
+
librecad/src/ui/action_options/edit
|
| 155 |
+
librecad/src/ui/action_options/ellipse
|
| 156 |
+
librecad/src/ui/action_options/image
|
| 157 |
+
librecad/src/ui/action_options/info
|
| 158 |
+
librecad/src/ui/action_options/insert
|
| 159 |
+
librecad/src/ui/action_options/line
|
| 160 |
+
librecad/src/ui/action_options/misc
|
| 161 |
+
librecad/src/ui/action_options/modify
|
| 162 |
+
librecad/src/ui/action_options/other
|
| 163 |
+
librecad/src/ui/action_options/point
|
| 164 |
+
librecad/src/ui/action_options/polygon
|
| 165 |
+
librecad/src/ui/action_options/polyline
|
| 166 |
+
librecad/src/ui/action_options/print_preview
|
| 167 |
+
librecad/src/ui/action_options/rect
|
| 168 |
+
librecad/src/ui/action_options/select
|
| 169 |
+
librecad/src/ui/action_options/selection
|
| 170 |
+
librecad/src/ui/action_options/snap
|
| 171 |
+
librecad/src/ui/action_options/spline
|
| 172 |
+
librecad/src/ui/action_options/text
|
| 173 |
+
librecad/src/ui/actions
|
| 174 |
+
librecad/src/ui/components
|
| 175 |
+
librecad/src/ui/components/comboboxes
|
| 176 |
+
librecad/src/ui/components/containers
|
| 177 |
+
librecad/src/ui/components/creators
|
| 178 |
+
librecad/src/ui/components/layouts
|
| 179 |
+
librecad/src/ui/components/pen
|
| 180 |
+
librecad/src/ui/components/status_bar
|
| 181 |
+
librecad/src/ui/components/toolbars
|
| 182 |
+
librecad/src/ui/dialogs
|
| 183 |
+
librecad/src/ui/dialogs/actions
|
| 184 |
+
librecad/src/ui/dialogs/actions/modify
|
| 185 |
+
librecad/src/ui/dialogs/creators
|
| 186 |
+
librecad/src/ui/dialogs/entity
|
| 187 |
+
librecad/src/ui/dialogs/file
|
| 188 |
+
librecad/src/ui/dialogs/file/export
|
| 189 |
+
librecad/src/ui/dialogs/file/export/image
|
| 190 |
+
librecad/src/ui/dialogs/file/export/layers
|
| 191 |
+
librecad/src/ui/dialogs/file/export/makercam
|
| 192 |
+
librecad/src/ui/dialogs/file/export_layers
|
| 193 |
+
librecad/src/ui/dialogs/main
|
| 194 |
+
librecad/src/ui/dialogs/settings
|
| 195 |
+
librecad/src/ui/dialogs/settings/device_options
|
| 196 |
+
librecad/src/ui/dialogs/settings/dimstyles
|
| 197 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager
|
| 198 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support
|
| 199 |
+
librecad/src/ui/dialogs/settings/options_device
|
| 200 |
+
librecad/src/ui/dialogs/settings/options_drawing
|
| 201 |
+
librecad/src/ui/dialogs/settings/options_general
|
| 202 |
+
librecad/src/ui/dialogs/settings/options_widget
|
| 203 |
+
librecad/src/ui/dialogs/settings/shortcuts
|
| 204 |
+
librecad/src/ui/dock_widgets
|
| 205 |
+
librecad/src/ui/dock_widgets/block_widget
|
| 206 |
+
librecad/src/ui/dock_widgets/cad
|
| 207 |
+
librecad/src/ui/dock_widgets/command_line
|
| 208 |
+
librecad/src/ui/dock_widgets/entity_info
|
| 209 |
+
librecad/src/ui/dock_widgets/layer_widget
|
| 210 |
+
librecad/src/ui/dock_widgets/layers_tree
|
| 211 |
+
librecad/src/ui/dock_widgets/library_widget
|
| 212 |
+
librecad/src/ui/dock_widgets/pen_palette
|
| 213 |
+
librecad/src/ui/dock_widgets/pen_wizard
|
| 214 |
+
librecad/src/ui/dock_widgets/ucs_list
|
| 215 |
+
librecad/src/ui/dock_widgets/views_list
|
| 216 |
+
librecad/src/ui/dock_widgets/workspaces
|
| 217 |
+
librecad/src/ui/main
|
| 218 |
+
librecad/src/ui/main/fontviewer
|
| 219 |
+
librecad/src/ui/main/init
|
| 220 |
+
librecad/src/ui/main/persistence
|
| 221 |
+
librecad/src/ui/main/release_check
|
| 222 |
+
librecad/src/ui/main/support
|
| 223 |
+
librecad/src/ui/main/workspaces
|
| 224 |
+
librecad/src/ui/view
|
| 225 |
+
)
|
| 226 |
+
|
| 227 |
+
set(LIBRECAD_RES
|
| 228 |
+
librecad/res/arrows/arrows.qrc
|
| 229 |
+
librecad/res/controls/controls.qrc
|
| 230 |
+
librecad/res/dxf/dxf.qrc
|
| 231 |
+
librecad/res/gdt/gdt.qrc
|
| 232 |
+
librecad/res/icons/icons.qrc
|
| 233 |
+
librecad/res/images/images.qrc
|
| 234 |
+
licenses/licenses.qrc
|
| 235 |
+
)
|
| 236 |
+
|
| 237 |
+
# Shared sources: All from SOURCES except main, consoles, and tests
|
| 238 |
+
set(SHARED_SOURCES
|
| 239 |
+
libraries/jwwlib/src/dl_attributes.h
|
| 240 |
+
libraries/jwwlib/src/dl_codes.h
|
| 241 |
+
libraries/jwwlib/src/dl_creationinterface.h
|
| 242 |
+
libraries/jwwlib/src/dl_entities.h
|
| 243 |
+
libraries/jwwlib/src/dl_exception.h
|
| 244 |
+
libraries/jwwlib/src/dl_extrusion.h
|
| 245 |
+
libraries/jwwlib/src/dl_jww.cpp
|
| 246 |
+
libraries/jwwlib/src/dl_jww.h
|
| 247 |
+
libraries/jwwlib/src/dl_writer.h
|
| 248 |
+
libraries/jwwlib/src/dl_writer_ascii.cpp
|
| 249 |
+
libraries/jwwlib/src/dl_writer_ascii.h
|
| 250 |
+
libraries/jwwlib/src/jwtype.h
|
| 251 |
+
libraries/jwwlib/src/jwwdoc.cpp
|
| 252 |
+
libraries/jwwlib/src/jwwdoc.h
|
| 253 |
+
libraries/libdxfrw/src/drw_base.cpp
|
| 254 |
+
libraries/libdxfrw/src/drw_base.h
|
| 255 |
+
libraries/libdxfrw/src/drw_classes.cpp
|
| 256 |
+
libraries/libdxfrw/src/drw_classes.h
|
| 257 |
+
libraries/libdxfrw/src/drw_entities.cpp
|
| 258 |
+
libraries/libdxfrw/src/drw_entities.h
|
| 259 |
+
libraries/libdxfrw/src/drw_header.cpp
|
| 260 |
+
libraries/libdxfrw/src/drw_header.h
|
| 261 |
+
libraries/libdxfrw/src/drw_interface.h
|
| 262 |
+
libraries/libdxfrw/src/drw_objects.cpp
|
| 263 |
+
libraries/libdxfrw/src/drw_objects.h
|
| 264 |
+
libraries/libdxfrw/src/intern/drw_cptable932.h
|
| 265 |
+
libraries/libdxfrw/src/intern/drw_cptable936.h
|
| 266 |
+
libraries/libdxfrw/src/intern/drw_cptable949.h
|
| 267 |
+
libraries/libdxfrw/src/intern/drw_cptable950.h
|
| 268 |
+
libraries/libdxfrw/src/intern/drw_cptables.h
|
| 269 |
+
libraries/libdxfrw/src/intern/drw_dbg.cpp
|
| 270 |
+
libraries/libdxfrw/src/intern/drw_dbg.h
|
| 271 |
+
libraries/libdxfrw/src/intern/drw_reserve.h
|
| 272 |
+
libraries/libdxfrw/src/intern/drw_textcodec.cpp
|
| 273 |
+
libraries/libdxfrw/src/intern/drw_textcodec.h
|
| 274 |
+
libraries/libdxfrw/src/intern/dwgbuffer.cpp
|
| 275 |
+
libraries/libdxfrw/src/intern/dwgbuffer.h
|
| 276 |
+
libraries/libdxfrw/src/intern/dwgreader.cpp
|
| 277 |
+
libraries/libdxfrw/src/intern/dwgreader.h
|
| 278 |
+
libraries/libdxfrw/src/intern/dwgreader15.cpp
|
| 279 |
+
libraries/libdxfrw/src/intern/dwgreader15.h
|
| 280 |
+
libraries/libdxfrw/src/intern/dwgreader18.cpp
|
| 281 |
+
libraries/libdxfrw/src/intern/dwgreader18.h
|
| 282 |
+
libraries/libdxfrw/src/intern/dwgreader21.cpp
|
| 283 |
+
libraries/libdxfrw/src/intern/dwgreader21.h
|
| 284 |
+
libraries/libdxfrw/src/intern/dwgreader24.cpp
|
| 285 |
+
libraries/libdxfrw/src/intern/dwgreader24.h
|
| 286 |
+
libraries/libdxfrw/src/intern/dwgreader27.cpp
|
| 287 |
+
libraries/libdxfrw/src/intern/dwgreader27.h
|
| 288 |
+
libraries/libdxfrw/src/intern/dwgutil.cpp
|
| 289 |
+
libraries/libdxfrw/src/intern/dwgutil.h
|
| 290 |
+
libraries/libdxfrw/src/intern/dxfreader.cpp
|
| 291 |
+
libraries/libdxfrw/src/intern/dxfreader.h
|
| 292 |
+
libraries/libdxfrw/src/intern/dxfwriter.cpp
|
| 293 |
+
libraries/libdxfrw/src/intern/dxfwriter.h
|
| 294 |
+
libraries/libdxfrw/src/intern/rscodec.cpp
|
| 295 |
+
libraries/libdxfrw/src/intern/rscodec.h
|
| 296 |
+
libraries/libdxfrw/src/libdwgr.cpp
|
| 297 |
+
libraries/libdxfrw/src/libdwgr.h
|
| 298 |
+
libraries/libdxfrw/src/libdxfrw.cpp
|
| 299 |
+
libraries/libdxfrw/src/libdxfrw.h
|
| 300 |
+
libraries/libdxfrw/src/main_doc.h
|
| 301 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksadd.cpp
|
| 302 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksadd.h
|
| 303 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksattributes.cpp
|
| 304 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksattributes.h
|
| 305 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockscreate.cpp
|
| 306 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockscreate.h
|
| 307 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksedit.cpp
|
| 308 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksedit.h
|
| 309 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksfreezeall.cpp
|
| 310 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksfreezeall.h
|
| 311 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksinsert.cpp
|
| 312 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksinsert.h
|
| 313 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksremove.cpp
|
| 314 |
+
librecad/src/actions/dock_widgets/block/rs_actionblocksremove.h
|
| 315 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockssave.cpp
|
| 316 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockssave.h
|
| 317 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockstoggleview.cpp
|
| 318 |
+
librecad/src/actions/dock_widgets/block/rs_actionblockstoggleview.h
|
| 319 |
+
librecad/src/actions/dock_widgets/entity_info/lc_actioninfopickcoordinates.cpp
|
| 320 |
+
librecad/src/actions/dock_widgets/layer/lc_actionentitylayerbase.cpp
|
| 321 |
+
librecad/src/actions/dock_widgets/layer/lc_actionentitylayerbase.h
|
| 322 |
+
librecad/src/actions/dock_widgets/layer/lc_actionentitylayertoggle.cpp
|
| 323 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayerscmd.cpp
|
| 324 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayerscmd.h
|
| 325 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayersexport.cpp
|
| 326 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayersexport.h
|
| 327 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayerstoggleconstruction.cpp
|
| 328 |
+
librecad/src/actions/dock_widgets/layer/lc_actionlayerstoggleconstruction.h
|
| 329 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersadd.cpp
|
| 330 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersadd.h
|
| 331 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersedit.cpp
|
| 332 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersedit.h
|
| 333 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersfreezeall.cpp
|
| 334 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersfreezeall.h
|
| 335 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerslockall.cpp
|
| 336 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerslockall.h
|
| 337 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersremove.cpp
|
| 338 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayersremove.h
|
| 339 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstogglelock.cpp
|
| 340 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstogglelock.h
|
| 341 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstoggleprint.cpp
|
| 342 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstoggleprint.h
|
| 343 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstoggleview.cpp
|
| 344 |
+
librecad/src/actions/dock_widgets/layer/rs_actionlayerstoggleview.h
|
| 345 |
+
librecad/src/actions/dock_widgets/library/rs_actionlibraryinsert.cpp
|
| 346 |
+
librecad/src/actions/dock_widgets/library/rs_actionlibraryinsert.h
|
| 347 |
+
librecad/src/actions/dock_widgets/ucs_list/lc_actionucsbydimordinate.cpp
|
| 348 |
+
librecad/src/actions/dock_widgets/ucs_list/lc_actionucsbydimordinate.h
|
| 349 |
+
librecad/src/actions/dock_widgets/ucs_list/lc_actionucscreate.cpp
|
| 350 |
+
librecad/src/actions/dock_widgets/ucs_list/lc_actionucscreate.h
|
| 351 |
+
librecad/src/actions/drawing/draw/circle/lc_actiondrawcircle2pr.cpp
|
| 352 |
+
librecad/src/actions/drawing/draw/circle/lc_actiondrawcircle2pr.h
|
| 353 |
+
librecad/src/actions/drawing/draw/circle/lc_actiondrawcirclebase.cpp
|
| 354 |
+
librecad/src/actions/drawing/draw/circle/lc_actiondrawcirclebase.h
|
| 355 |
+
librecad/src/actions/drawing/draw/circle/lc_actiondrawcirclebyarc.cpp
|
| 356 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle.cpp
|
| 357 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle.h
|
| 358 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle2p.cpp
|
| 359 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle2p.h
|
| 360 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle3p.cpp
|
| 361 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircle3p.h
|
| 362 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcirclecr.cpp
|
| 363 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcirclecr.h
|
| 364 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircleinscribe.cpp
|
| 365 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircleinscribe.h
|
| 366 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan1_2p.cpp
|
| 367 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan1_2p.h
|
| 368 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan2.cpp
|
| 369 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan2.h
|
| 370 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan2_1p.cpp
|
| 371 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan2_1p.h
|
| 372 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan3.cpp
|
| 373 |
+
librecad/src/actions/drawing/draw/circle/rs_actiondrawcircletan3.h
|
| 374 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsangle.cpp
|
| 375 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsangle.h
|
| 376 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsbase.cpp
|
| 377 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsbase.h
|
| 378 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsheight.cpp
|
| 379 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsheight.h
|
| 380 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointslength.cpp
|
| 381 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointslength.h
|
| 382 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsradius.cpp
|
| 383 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawarc2pointsradius.h
|
| 384 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawhyperbolafp.cpp
|
| 385 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawhyperbolafp.cpp
|
| 386 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawparabola4points.cpp
|
| 387 |
+
librecad/src/actions/drawing/draw/curve/lc_actiondrawparabolaFD.cpp
|
| 388 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarc.cpp
|
| 389 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarc.h
|
| 390 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarc3p.cpp
|
| 391 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarc3p.h
|
| 392 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarctangential.cpp
|
| 393 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawarctangential.h
|
| 394 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawlinefree.cpp
|
| 395 |
+
librecad/src/actions/drawing/draw/curve/rs_actiondrawlinefree.h
|
| 396 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actioncircledimbase.cpp
|
| 397 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actioncircledimbase.h
|
| 398 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimarc.cpp
|
| 399 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimarc.h
|
| 400 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimlinearbase.cpp
|
| 401 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimordinate.cpp
|
| 402 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimordinate.h
|
| 403 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimordinaterebase.cpp
|
| 404 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimordinaterebase.h
|
| 405 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimstyleapply.cpp
|
| 406 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondimstyleapply.h
|
| 407 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondrawdimbaseline.cpp
|
| 408 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondrawdimbaseline.h
|
| 409 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondrawgdtfeaturecontrolframe.cpp
|
| 410 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actiondrawgdtfeaturecontrolframe.h
|
| 411 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actionselectdimordinatesameorigin.cpp
|
| 412 |
+
librecad/src/actions/drawing/draw/dimensions/lc_actionselectdimordinatesameorigin.h
|
| 413 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimaligned.cpp
|
| 414 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimaligned.h
|
| 415 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimangular.cpp
|
| 416 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimangular.h
|
| 417 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimdiametric.cpp
|
| 418 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimdiametric.h
|
| 419 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimension.cpp
|
| 420 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimension.h
|
| 421 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimleader.cpp
|
| 422 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimleader.h
|
| 423 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimlinear.cpp
|
| 424 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimlinear.h
|
| 425 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimradial.cpp
|
| 426 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiondimradial.h
|
| 427 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiontoolregeneratedimensions.cpp
|
| 428 |
+
librecad/src/actions/drawing/draw/dimensions/rs_actiontoolregeneratedimensions.h
|
| 429 |
+
librecad/src/actions/drawing/draw/ellipse/lc_actiondrawellipse1point.cpp
|
| 430 |
+
librecad/src/actions/drawing/draw/ellipse/lc_actiondrawellipse1point.h
|
| 431 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipse4points.cpp
|
| 432 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipse4points.h
|
| 433 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipseaxis.cpp
|
| 434 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipseaxis.h
|
| 435 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipsecenter3points.cpp
|
| 436 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipsecenter3points.h
|
| 437 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipsefocipoint.cpp
|
| 438 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipsefocipoint.h
|
| 439 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipseinscribe.cpp
|
| 440 |
+
librecad/src/actions/drawing/draw/ellipse/rs_actiondrawellipseinscribe.h
|
| 441 |
+
librecad/src/actions/drawing/draw/hatch/rs_actiondrawhatch.cpp
|
| 442 |
+
librecad/src/actions/drawing/draw/hatch/rs_actiondrawhatch.h
|
| 443 |
+
librecad/src/actions/drawing/draw/image/rs_actiondrawimage.cpp
|
| 444 |
+
librecad/src/actions/drawing/draw/image/rs_actiondrawimage.h
|
| 445 |
+
librecad/src/actions/drawing/draw/line/lc_abstractactiondrawline.cpp
|
| 446 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawlineanglerel.cpp
|
| 447 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawlineanglerel.h
|
| 448 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawlinefrompointtoline.cpp
|
| 449 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawlinesnake.cpp
|
| 450 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawlinesnake.h
|
| 451 |
+
librecad/src/actions/drawing/draw/line/lc_actiondrawslicedivide.cpp
|
| 452 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawboundingbox.cpp
|
| 453 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawboundingbox.h
|
| 454 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawcross.cpp
|
| 455 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawcross.h
|
| 456 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawmidline.cpp
|
| 457 |
+
librecad/src/actions/drawing/draw/line/misc/lc_actiondrawmidline.h
|
| 458 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawline.cpp
|
| 459 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawline.h
|
| 460 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineangle.cpp
|
| 461 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineangle.h
|
| 462 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinebisector.cpp
|
| 463 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinebisector.h
|
| 464 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinehorvert.cpp
|
| 465 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinehorvert.h
|
| 466 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineorthtan.cpp
|
| 467 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineorthtan.h
|
| 468 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineparallel.cpp
|
| 469 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineparallel.h
|
| 470 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineparallelthrough.cpp
|
| 471 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlineparallelthrough.h
|
| 472 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinerelangle.cpp
|
| 473 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinerelangle.h
|
| 474 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinetangent1.cpp
|
| 475 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinetangent1.h
|
| 476 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinetangent2.cpp
|
| 477 |
+
librecad/src/actions/drawing/draw/line/rs_actiondrawlinetangent2.h
|
| 478 |
+
librecad/src/actions/drawing/draw/point/lc_actiondrawlinepoints.cpp
|
| 479 |
+
librecad/src/actions/drawing/draw/point/lc_actiondrawlinepoints.h
|
| 480 |
+
librecad/src/actions/drawing/draw/point/lc_actiondrawpointslattice.cpp
|
| 481 |
+
librecad/src/actions/drawing/draw/point/lc_actiondrawpointslattice.h
|
| 482 |
+
librecad/src/actions/drawing/draw/point/lc_actionpastetopoints.cpp
|
| 483 |
+
librecad/src/actions/drawing/draw/point/lc_actionpastetopoints.h
|
| 484 |
+
librecad/src/actions/drawing/draw/point/lc_actionselectpoints.cpp
|
| 485 |
+
librecad/src/actions/drawing/draw/point/lc_actionselectpoints.h
|
| 486 |
+
librecad/src/actions/drawing/draw/point/rs_actiondrawpoint.cpp
|
| 487 |
+
librecad/src/actions/drawing/draw/point/rs_actiondrawpoint.h
|
| 488 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygon3.cpp
|
| 489 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygon3.h
|
| 490 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygon4.cpp
|
| 491 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygon4.h
|
| 492 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygonbase.cpp
|
| 493 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawlinepolygonbase.h
|
| 494 |
+
librecad/src/actions/drawing/draw/polygon/lc_actiondrawstar.cpp
|
| 495 |
+
librecad/src/actions/drawing/draw/polygon/rs_actiondrawlinepolygon.cpp
|
| 496 |
+
librecad/src/actions/drawing/draw/polygon/rs_actiondrawlinepolygon.h
|
| 497 |
+
librecad/src/actions/drawing/draw/polygon/rs_actiondrawlinepolygon2.cpp
|
| 498 |
+
librecad/src/actions/drawing/draw/polygon/rs_actiondrawlinepolygon2.h
|
| 499 |
+
librecad/src/actions/drawing/draw/polyline/lc_actionpolylinearcstolines.cpp
|
| 500 |
+
librecad/src/actions/drawing/draw/polyline/lc_actionpolylinearcstolines.h
|
| 501 |
+
librecad/src/actions/drawing/draw/polyline/lc_actionpolylinechangesegmenttype.cpp
|
| 502 |
+
librecad/src/actions/drawing/draw/polyline/lc_actionpolylinechangesegmenttype.h
|
| 503 |
+
librecad/src/actions/drawing/draw/polyline/lc_actionpolylinedeletebase.cpp
|
| 504 |
+
librecad/src/actions/drawing/draw/polyline/rs_actiondrawpolyline.cpp
|
| 505 |
+
librecad/src/actions/drawing/draw/polyline/rs_actiondrawpolyline.h
|
| 506 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineadd.cpp
|
| 507 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineadd.h
|
| 508 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineappend.cpp
|
| 509 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineappend.h
|
| 510 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinedel.cpp
|
| 511 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinedel.h
|
| 512 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinedelbetween.cpp
|
| 513 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinedelbetween.h
|
| 514 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineequidistant.cpp
|
| 515 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylineequidistant.h
|
| 516 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinesegment.cpp
|
| 517 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinesegment.h
|
| 518 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinetrim.cpp
|
| 519 |
+
librecad/src/actions/drawing/draw/polyline/rs_actionpolylinetrim.h
|
| 520 |
+
librecad/src/actions/drawing/draw/rect/lc_abstractactiondrawrectangle.cpp
|
| 521 |
+
librecad/src/actions/drawing/draw/rect/lc_abstractactiondrawrectangle.h
|
| 522 |
+
librecad/src/actions/drawing/draw/rect/lc_actiondrawrectangle1point.cpp
|
| 523 |
+
librecad/src/actions/drawing/draw/rect/lc_actiondrawrectangle2points.cpp
|
| 524 |
+
librecad/src/actions/drawing/draw/rect/lc_actiondrawrectangle2points.h
|
| 525 |
+
librecad/src/actions/drawing/draw/rect/lc_actiondrawrectangle3points.cpp
|
| 526 |
+
librecad/src/actions/drawing/draw/rect/lc_actiondrawrectangle3points.h
|
| 527 |
+
librecad/src/actions/drawing/draw/rect/rs_actiondrawlinerectangle.cpp
|
| 528 |
+
librecad/src/actions/drawing/draw/rect/rs_actiondrawlinerectangle.h
|
| 529 |
+
librecad/src/actions/drawing/draw/spline/lc_actiondrawsplinepoints.cpp
|
| 530 |
+
librecad/src/actions/drawing/draw/spline/lc_actiondrawsplinepoints.h
|
| 531 |
+
librecad/src/actions/drawing/draw/spline/lc_actionremovesplinepoints.cpp
|
| 532 |
+
librecad/src/actions/drawing/draw/spline/lc_actionremovesplinepoints.h
|
| 533 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineaddpoint.cpp
|
| 534 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineaddpoint.h
|
| 535 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineappendpoint.cpp
|
| 536 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineappendpoint.h
|
| 537 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineexplode.cpp
|
| 538 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineexplode.h
|
| 539 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplinefrompolyline.cpp
|
| 540 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplinefrompolyline.h
|
| 541 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplinemodifybase.cpp
|
| 542 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplinemodifybase.h
|
| 543 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineremovebetween.cpp
|
| 544 |
+
librecad/src/actions/drawing/draw/spline/lc_actionsplineremovebetween.h
|
| 545 |
+
librecad/src/actions/drawing/draw/spline/rs_actiondrawspline.cpp
|
| 546 |
+
librecad/src/actions/drawing/draw/spline/rs_actiondrawspline.h
|
| 547 |
+
librecad/src/actions/drawing/draw/text/rs_actiondrawmtext.cpp
|
| 548 |
+
librecad/src/actions/drawing/draw/text/rs_actiondrawmtext.h
|
| 549 |
+
librecad/src/actions/drawing/draw/text/rs_actiondrawtext.cpp
|
| 550 |
+
librecad/src/actions/drawing/draw/text/rs_actiondrawtext.h
|
| 551 |
+
librecad/src/actions/drawing/edit/lc_actioneditpastetransform.cpp
|
| 552 |
+
librecad/src/actions/drawing/edit/lc_actioneditpastetransform.h
|
| 553 |
+
librecad/src/actions/drawing/edit/rs_actioneditcopy.cpp
|
| 554 |
+
librecad/src/actions/drawing/edit/rs_actioneditcopy.h
|
| 555 |
+
librecad/src/actions/drawing/edit/rs_actioneditundo.cpp
|
| 556 |
+
librecad/src/actions/drawing/edit/rs_actioneditundo.h
|
| 557 |
+
librecad/src/actions/drawing/info/lc_actioninfo3pointsangle.cpp
|
| 558 |
+
librecad/src/actions/drawing/info/lc_actioninfo3pointsangle.h
|
| 559 |
+
librecad/src/actions/drawing/info/lc_actioninfopoint.cpp
|
| 560 |
+
librecad/src/actions/drawing/info/lc_actioninfopoint.h
|
| 561 |
+
librecad/src/actions/drawing/info/lc_actioninfoproperties.cpp
|
| 562 |
+
librecad/src/actions/drawing/info/rs_actioninfoangle.cpp
|
| 563 |
+
librecad/src/actions/drawing/info/rs_actioninfoangle.h
|
| 564 |
+
librecad/src/actions/drawing/info/rs_actioninfoarea.cpp
|
| 565 |
+
librecad/src/actions/drawing/info/rs_actioninfoarea.h
|
| 566 |
+
librecad/src/actions/drawing/info/rs_actioninfodist.cpp
|
| 567 |
+
librecad/src/actions/drawing/info/rs_actioninfodist.h
|
| 568 |
+
librecad/src/actions/drawing/info/rs_actioninfodist2.cpp
|
| 569 |
+
librecad/src/actions/drawing/info/rs_actioninfodist2.h
|
| 570 |
+
librecad/src/actions/drawing/info/rs_actioninfoinside.cpp
|
| 571 |
+
librecad/src/actions/drawing/info/rs_actioninfoinside.h
|
| 572 |
+
librecad/src/actions/drawing/info/rs_actioninfototallength.cpp
|
| 573 |
+
librecad/src/actions/drawing/info/rs_actioninfototallength.h
|
| 574 |
+
librecad/src/actions/drawing/lc_abstractactionwithpreview.cpp
|
| 575 |
+
librecad/src/actions/drawing/lc_abstractactionwithpreview.h
|
| 576 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalign.cpp
|
| 577 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalign.h
|
| 578 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalignref.cpp
|
| 579 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalignref.h
|
| 580 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalignsingle.cpp
|
| 581 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyalignsingle.h
|
| 582 |
+
librecad/src/actions/drawing/modify/lc_actionmodifybase.cpp
|
| 583 |
+
librecad/src/actions/drawing/modify/lc_actionmodifybase.h
|
| 584 |
+
librecad/src/actions/drawing/modify/lc_actionmodifybreakdivide.cpp
|
| 585 |
+
librecad/src/actions/drawing/modify/lc_actionmodifybreakdivide.h
|
| 586 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyduplicate.cpp
|
| 587 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyduplicate.h
|
| 588 |
+
librecad/src/actions/drawing/modify/lc_actionmodifylinegap.cpp
|
| 589 |
+
librecad/src/actions/drawing/modify/lc_actionmodifylinejoin.cpp
|
| 590 |
+
librecad/src/actions/drawing/modify/lc_actionmodifymoveadjust.cpp
|
| 591 |
+
librecad/src/actions/drawing/modify/lc_actionmodifymoveadjust.h
|
| 592 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyselectionbase.cpp
|
| 593 |
+
librecad/src/actions/drawing/modify/lc_actionmodifyselectionbase.h
|
| 594 |
+
librecad/src/actions/drawing/modify/rs_actionblocksexplode.cpp
|
| 595 |
+
librecad/src/actions/drawing/modify/rs_actionblocksexplode.h
|
| 596 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyattributes.cpp
|
| 597 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyattributes.h
|
| 598 |
+
librecad/src/actions/drawing/modify/rs_actionmodifybevel.cpp
|
| 599 |
+
librecad/src/actions/drawing/modify/rs_actionmodifybevel.h
|
| 600 |
+
librecad/src/actions/drawing/modify/rs_actionmodifycut.cpp
|
| 601 |
+
librecad/src/actions/drawing/modify/rs_actionmodifycut.h
|
| 602 |
+
librecad/src/actions/drawing/modify/rs_actionmodifydelete.cpp
|
| 603 |
+
librecad/src/actions/drawing/modify/rs_actionmodifydelete.h
|
| 604 |
+
librecad/src/actions/drawing/modify/rs_actionmodifydeletefree.cpp
|
| 605 |
+
librecad/src/actions/drawing/modify/rs_actionmodifydeletefree.h
|
| 606 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyentity.cpp
|
| 607 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyentity.h
|
| 608 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyexplodetext.cpp
|
| 609 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyexplodetext.h
|
| 610 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymirror.cpp
|
| 611 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymirror.h
|
| 612 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymove.cpp
|
| 613 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymove.h
|
| 614 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymoverotate.cpp
|
| 615 |
+
librecad/src/actions/drawing/modify/rs_actionmodifymoverotate.h
|
| 616 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyoffset.cpp
|
| 617 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyoffset.h
|
| 618 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrevertdirection.cpp
|
| 619 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrevertdirection.h
|
| 620 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrotate.cpp
|
| 621 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrotate.h
|
| 622 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrotate2.cpp
|
| 623 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyrotate2.h
|
| 624 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyround.cpp
|
| 625 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyround.h
|
| 626 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyscale.cpp
|
| 627 |
+
librecad/src/actions/drawing/modify/rs_actionmodifyscale.h
|
| 628 |
+
librecad/src/actions/drawing/modify/rs_actionmodifystretch.cpp
|
| 629 |
+
librecad/src/actions/drawing/modify/rs_actionmodifystretch.h
|
| 630 |
+
librecad/src/actions/drawing/modify/rs_actionmodifytrim.cpp
|
| 631 |
+
librecad/src/actions/drawing/modify/rs_actionmodifytrim.h
|
| 632 |
+
librecad/src/actions/drawing/modify/rs_actionmodifytrimamount.cpp
|
| 633 |
+
librecad/src/actions/drawing/modify/rs_actionmodifytrimamount.h
|
| 634 |
+
librecad/src/actions/drawing/modify/rs_actionorder.cpp
|
| 635 |
+
librecad/src/actions/drawing/modify/rs_actionorder.h
|
| 636 |
+
librecad/src/actions/drawing/pen/lc_actionpenapply.cpp
|
| 637 |
+
librecad/src/actions/drawing/pen/lc_actionpenpick.cpp
|
| 638 |
+
librecad/src/actions/drawing/pen/lc_actionpensyncactivebylayer.cpp
|
| 639 |
+
librecad/src/actions/drawing/pen/lc_actionpensyncactivebylayer.h
|
| 640 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickangle.cpp
|
| 641 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickangle.h
|
| 642 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickbase.cpp
|
| 643 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickbase.h
|
| 644 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickdistance.cpp
|
| 645 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickdistance.h
|
| 646 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickposition.cpp
|
| 647 |
+
librecad/src/actions/drawing/pick/lc_actioninteractivepickposition.h
|
| 648 |
+
librecad/src/actions/drawing/rel_zero/rs_actionlockrelativezero.cpp
|
| 649 |
+
librecad/src/actions/drawing/rel_zero/rs_actionlockrelativezero.h
|
| 650 |
+
librecad/src/actions/drawing/rel_zero/rs_actionsetrelativezero.cpp
|
| 651 |
+
librecad/src/actions/drawing/rel_zero/rs_actionsetrelativezero.h
|
| 652 |
+
librecad/src/actions/drawing/rs_actiondefault.cpp
|
| 653 |
+
librecad/src/actions/drawing/rs_actiondefault.h
|
| 654 |
+
librecad/src/actions/drawing/selection/lc_actionsingleentityselectbase.cpp
|
| 655 |
+
librecad/src/actions/drawing/selection/lc_actionsingleentityselectbase.h
|
| 656 |
+
librecad/src/actions/drawing/selection/rs_actionselectall.cpp
|
| 657 |
+
librecad/src/actions/drawing/selection/rs_actionselectall.h
|
| 658 |
+
librecad/src/actions/drawing/selection/rs_actionselectcontour.cpp
|
| 659 |
+
librecad/src/actions/drawing/selection/rs_actionselectcontour.h
|
| 660 |
+
librecad/src/actions/drawing/selection/rs_actionselectintersected.cpp
|
| 661 |
+
librecad/src/actions/drawing/selection/rs_actionselectintersected.h
|
| 662 |
+
librecad/src/actions/drawing/selection/rs_actionselectinvert.cpp
|
| 663 |
+
librecad/src/actions/drawing/selection/rs_actionselectinvert.h
|
| 664 |
+
librecad/src/actions/drawing/selection/rs_actionselectlayer.cpp
|
| 665 |
+
librecad/src/actions/drawing/selection/rs_actionselectlayer.h
|
| 666 |
+
librecad/src/actions/drawing/selection/rs_actionselectsingle.cpp
|
| 667 |
+
librecad/src/actions/drawing/selection/rs_actionselectsingle.h
|
| 668 |
+
librecad/src/actions/drawing/selection/rs_actionselectwindow.cpp
|
| 669 |
+
librecad/src/actions/drawing/selection/rs_actionselectwindow.h
|
| 670 |
+
librecad/src/actions/drawing/snap/lc_actionsnapmiddlemanual.cpp
|
| 671 |
+
librecad/src/actions/drawing/snap/rs_actionsnapintersectionmanual.cpp
|
| 672 |
+
librecad/src/actions/drawing/snap/rs_actionsnapintersectionmanual.h
|
| 673 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomauto.cpp
|
| 674 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomauto.h
|
| 675 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomin.cpp
|
| 676 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomin.h
|
| 677 |
+
librecad/src/actions/drawing/zoom/rs_actionzoompan.cpp
|
| 678 |
+
librecad/src/actions/drawing/zoom/rs_actionzoompan.h
|
| 679 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomprevious.cpp
|
| 680 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomprevious.h
|
| 681 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomredraw.cpp
|
| 682 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomredraw.h
|
| 683 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomscroll.cpp
|
| 684 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomscroll.h
|
| 685 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomwindow.cpp
|
| 686 |
+
librecad/src/actions/drawing/zoom/rs_actionzoomwindow.h
|
| 687 |
+
librecad/src/actions/file/lc_actionfileexportmakercam.cpp
|
| 688 |
+
librecad/src/actions/file/lc_actionfileexportmakercam.h
|
| 689 |
+
librecad/src/actions/options/rs_actionoptionsdrawing.cpp
|
| 690 |
+
librecad/src/actions/options/rs_actionoptionsdrawing.h
|
| 691 |
+
librecad/src/actions/print_preview/rs_actionprintpreview.cpp
|
| 692 |
+
librecad/src/actions/print_preview/rs_actionprintpreview.h
|
| 693 |
+
librecad/src/cmd/lc_commandItems.h
|
| 694 |
+
librecad/src/cmd/rs_commands.cpp
|
| 695 |
+
librecad/src/cmd/rs_commands.h
|
| 696 |
+
librecad/src/lib/actions/lc_actioncontext.cpp
|
| 697 |
+
librecad/src/lib/actions/lc_actioncontext.h
|
| 698 |
+
librecad/src/lib/actions/lc_actioninfomessagebuilder.cpp
|
| 699 |
+
librecad/src/lib/actions/lc_actioninfomessagebuilder.h
|
| 700 |
+
librecad/src/lib/actions/lc_actionpreselectionawarebase.cpp
|
| 701 |
+
librecad/src/lib/actions/lc_actionpreselectionawarebase.h
|
| 702 |
+
librecad/src/lib/actions/lc_modifiersinfo.cpp
|
| 703 |
+
librecad/src/lib/actions/lc_modifiersinfo.h
|
| 704 |
+
librecad/src/lib/actions/lc_overlayboxaction.cpp
|
| 705 |
+
librecad/src/lib/actions/lc_overlayboxaction.h
|
| 706 |
+
librecad/src/lib/actions/rs_actioninterface.cpp
|
| 707 |
+
librecad/src/lib/actions/rs_actioninterface.h
|
| 708 |
+
librecad/src/lib/actions/rs_actionselectbase.cpp
|
| 709 |
+
librecad/src/lib/actions/rs_actionselectbase.h
|
| 710 |
+
librecad/src/lib/actions/rs_previewactioninterface.cpp
|
| 711 |
+
librecad/src/lib/actions/rs_previewactioninterface.h
|
| 712 |
+
librecad/src/lib/actions/rs_snapper.cpp
|
| 713 |
+
librecad/src/lib/actions/rs_snapper.h
|
| 714 |
+
librecad/src/lib/creation/rs_creation.cpp
|
| 715 |
+
librecad/src/lib/creation/rs_creation.h
|
| 716 |
+
librecad/src/lib/debug/rs_debug.cpp
|
| 717 |
+
librecad/src/lib/debug/rs_debug.h
|
| 718 |
+
librecad/src/lib/engine/clipboard/rs_clipboard.cpp
|
| 719 |
+
librecad/src/lib/engine/clipboard/rs_clipboard.h
|
| 720 |
+
librecad/src/lib/engine/document/blocks/rs_block.cpp
|
| 721 |
+
librecad/src/lib/engine/document/blocks/rs_block.h
|
| 722 |
+
librecad/src/lib/engine/document/blocks/rs_blocklist.cpp
|
| 723 |
+
librecad/src/lib/engine/document/blocks/rs_blocklist.h
|
| 724 |
+
librecad/src/lib/engine/document/blocks/rs_blocklistlistener.h
|
| 725 |
+
librecad/src/lib/engine/document/container/lc_containertraverser.cpp
|
| 726 |
+
librecad/src/lib/engine/document/container/lc_containertraverser.h
|
| 727 |
+
librecad/src/lib/engine/document/container/lc_looputils.cpp
|
| 728 |
+
librecad/src/lib/engine/document/container/lc_looputils.h
|
| 729 |
+
librecad/src/lib/engine/document/container/rs_entitycontainer.cpp
|
| 730 |
+
librecad/src/lib/engine/document/container/rs_entitycontainer.h
|
| 731 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimarrowregistry.cpp
|
| 732 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimarrowregistry.h
|
| 733 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyle.cpp
|
| 734 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyle.h
|
| 735 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyleslist.cpp
|
| 736 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyleslist.h
|
| 737 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyletovariablesmapper.cpp
|
| 738 |
+
librecad/src/lib/engine/document/dimstyles/lc_dimstyletovariablesmapper.h
|
| 739 |
+
librecad/src/lib/engine/document/dxf_format.h
|
| 740 |
+
librecad/src/lib/engine/document/entities/lc_cachedlengthentity.cpp
|
| 741 |
+
librecad/src/lib/engine/document/entities/lc_cachedlengthentity.h
|
| 742 |
+
librecad/src/lib/engine/document/entities/lc_dimarc.cpp
|
| 743 |
+
librecad/src/lib/engine/document/entities/lc_dimarc.h
|
| 744 |
+
librecad/src/lib/engine/document/entities/lc_dimordinate.cpp
|
| 745 |
+
librecad/src/lib/engine/document/entities/lc_dimordinate.h
|
| 746 |
+
librecad/src/lib/engine/document/entities/lc_extentitydata.cpp
|
| 747 |
+
librecad/src/lib/engine/document/entities/lc_extentitydata.h
|
| 748 |
+
librecad/src/lib/engine/document/entities/lc_hyperbola.cpp
|
| 749 |
+
librecad/src/lib/engine/document/entities/lc_hyperbola.h
|
| 750 |
+
librecad/src/lib/engine/document/entities/lc_parabola.cpp
|
| 751 |
+
librecad/src/lib/engine/document/entities/lc_rect.cpp
|
| 752 |
+
librecad/src/lib/engine/document/entities/lc_rect.h
|
| 753 |
+
librecad/src/lib/engine/document/entities/lc_splinehelper.cpp
|
| 754 |
+
librecad/src/lib/engine/document/entities/lc_splinehelper.h
|
| 755 |
+
librecad/src/lib/engine/document/entities/lc_splinepoints.cpp
|
| 756 |
+
librecad/src/lib/engine/document/entities/lc_splinepoints.h
|
| 757 |
+
librecad/src/lib/engine/document/entities/lc_tolerance.cpp
|
| 758 |
+
librecad/src/lib/engine/document/entities/lc_tolerance.h
|
| 759 |
+
librecad/src/lib/engine/document/entities/rs_arc.cpp
|
| 760 |
+
librecad/src/lib/engine/document/entities/rs_arc.h
|
| 761 |
+
librecad/src/lib/engine/document/entities/rs_atomicentity.cpp
|
| 762 |
+
librecad/src/lib/engine/document/entities/rs_atomicentity.h
|
| 763 |
+
librecad/src/lib/engine/document/entities/rs_circle.cpp
|
| 764 |
+
librecad/src/lib/engine/document/entities/rs_circle.h
|
| 765 |
+
librecad/src/lib/engine/document/entities/rs_constructionline.cpp
|
| 766 |
+
librecad/src/lib/engine/document/entities/rs_constructionline.h
|
| 767 |
+
librecad/src/lib/engine/document/entities/rs_dimaligned.cpp
|
| 768 |
+
librecad/src/lib/engine/document/entities/rs_dimaligned.h
|
| 769 |
+
librecad/src/lib/engine/document/entities/rs_dimangular.cpp
|
| 770 |
+
librecad/src/lib/engine/document/entities/rs_dimangular.h
|
| 771 |
+
librecad/src/lib/engine/document/entities/rs_dimdiametric.cpp
|
| 772 |
+
librecad/src/lib/engine/document/entities/rs_dimdiametric.h
|
| 773 |
+
librecad/src/lib/engine/document/entities/rs_dimension.cpp
|
| 774 |
+
librecad/src/lib/engine/document/entities/rs_dimension.h
|
| 775 |
+
librecad/src/lib/engine/document/entities/rs_dimlinear.cpp
|
| 776 |
+
librecad/src/lib/engine/document/entities/rs_dimlinear.h
|
| 777 |
+
librecad/src/lib/engine/document/entities/rs_dimradial.cpp
|
| 778 |
+
librecad/src/lib/engine/document/entities/rs_dimradial.h
|
| 779 |
+
librecad/src/lib/engine/document/entities/rs_ellipse.cpp
|
| 780 |
+
librecad/src/lib/engine/document/entities/rs_ellipse.h
|
| 781 |
+
librecad/src/lib/engine/document/entities/rs_entity.cpp
|
| 782 |
+
librecad/src/lib/engine/document/entities/rs_entity.h
|
| 783 |
+
librecad/src/lib/engine/document/entities/rs_hatch.cpp
|
| 784 |
+
librecad/src/lib/engine/document/entities/rs_hatch.h
|
| 785 |
+
librecad/src/lib/engine/document/entities/rs_image.cpp
|
| 786 |
+
librecad/src/lib/engine/document/entities/rs_image.h
|
| 787 |
+
librecad/src/lib/engine/document/entities/rs_insert.cpp
|
| 788 |
+
librecad/src/lib/engine/document/entities/rs_insert.h
|
| 789 |
+
librecad/src/lib/engine/document/entities/rs_leader.cpp
|
| 790 |
+
librecad/src/lib/engine/document/entities/rs_leader.h
|
| 791 |
+
librecad/src/lib/engine/document/entities/rs_line.cpp
|
| 792 |
+
librecad/src/lib/engine/document/entities/rs_line.h
|
| 793 |
+
librecad/src/lib/engine/document/entities/rs_mtext.cpp
|
| 794 |
+
librecad/src/lib/engine/document/entities/rs_mtext.h
|
| 795 |
+
librecad/src/lib/engine/document/entities/rs_point.cpp
|
| 796 |
+
librecad/src/lib/engine/document/entities/rs_point.h
|
| 797 |
+
librecad/src/lib/engine/document/entities/rs_polyline.cpp
|
| 798 |
+
librecad/src/lib/engine/document/entities/rs_polyline.h
|
| 799 |
+
librecad/src/lib/engine/document/entities/rs_solid.cpp
|
| 800 |
+
librecad/src/lib/engine/document/entities/rs_solid.h
|
| 801 |
+
librecad/src/lib/engine/document/entities/rs_spline.cpp
|
| 802 |
+
librecad/src/lib/engine/document/entities/rs_spline.h
|
| 803 |
+
librecad/src/lib/engine/document/entities/rs_text.cpp
|
| 804 |
+
librecad/src/lib/engine/document/entities/rs_text.h
|
| 805 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_box.cpp
|
| 806 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_box.h
|
| 807 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_circle.cpp
|
| 808 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_circle.h
|
| 809 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_datum.cpp
|
| 810 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_datum.h
|
| 811 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_dot.cpp
|
| 812 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_dot.h
|
| 813 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed.cpp
|
| 814 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed.h
|
| 815 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed2.cpp
|
| 816 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed2.h
|
| 817 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed_blank.cpp
|
| 818 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headclosed_blank.h
|
| 819 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headopen.cpp
|
| 820 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_headopen.h
|
| 821 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_integral.cpp
|
| 822 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_integral.h
|
| 823 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_none.cpp
|
| 824 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_none.h
|
| 825 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_tick.cpp
|
| 826 |
+
librecad/src/lib/engine/document/entities/support/lc_arrow_tick.h
|
| 827 |
+
librecad/src/lib/engine/document/entities/support/lc_dimarrowblock.cpp
|
| 828 |
+
librecad/src/lib/engine/document/entities/support/lc_dimarrowblock.h
|
| 829 |
+
librecad/src/lib/engine/document/entities/support/lc_dimarrowblockpoly.cpp
|
| 830 |
+
librecad/src/lib/engine/document/entities/support/lc_dimarrowblockpoly.h
|
| 831 |
+
librecad/src/lib/engine/document/fonts/rs_font.cpp
|
| 832 |
+
librecad/src/lib/engine/document/fonts/rs_font.h
|
| 833 |
+
librecad/src/lib/engine/document/fonts/rs_fontchar.h
|
| 834 |
+
librecad/src/lib/engine/document/fonts/rs_fontlist.cpp
|
| 835 |
+
librecad/src/lib/engine/document/fonts/rs_fontlist.h
|
| 836 |
+
librecad/src/lib/engine/document/layers/rs_layer.cpp
|
| 837 |
+
librecad/src/lib/engine/document/layers/rs_layer.h
|
| 838 |
+
librecad/src/lib/engine/document/layers/rs_layerlist.cpp
|
| 839 |
+
librecad/src/lib/engine/document/layers/rs_layerlist.h
|
| 840 |
+
librecad/src/lib/engine/document/layers/rs_layerlistlistener.h
|
| 841 |
+
librecad/src/lib/engine/document/lc_graphicvariables.cpp
|
| 842 |
+
librecad/src/lib/engine/document/lc_graphicvariables.h
|
| 843 |
+
librecad/src/lib/engine/document/patterns/rs_pattern.cpp
|
| 844 |
+
librecad/src/lib/engine/document/patterns/rs_pattern.h
|
| 845 |
+
librecad/src/lib/engine/document/patterns/rs_patternlist.cpp
|
| 846 |
+
librecad/src/lib/engine/document/patterns/rs_patternlist.h
|
| 847 |
+
librecad/src/lib/engine/document/rs_document.cpp
|
| 848 |
+
librecad/src/lib/engine/document/rs_document.h
|
| 849 |
+
librecad/src/lib/engine/document/rs_graphic.cpp
|
| 850 |
+
librecad/src/lib/engine/document/rs_graphic.h
|
| 851 |
+
librecad/src/lib/engine/document/textstyles/lc_textstyle.cpp
|
| 852 |
+
librecad/src/lib/engine/document/textstyles/lc_textstyle.h
|
| 853 |
+
librecad/src/lib/engine/document/textstyles/lc_textstylelist.cpp
|
| 854 |
+
librecad/src/lib/engine/document/textstyles/lc_textstylelist.h
|
| 855 |
+
librecad/src/lib/engine/document/ucs/lc_ucs.cpp
|
| 856 |
+
librecad/src/lib/engine/document/ucs/lc_ucs.h
|
| 857 |
+
librecad/src/lib/engine/document/ucs/lc_ucslist.cpp
|
| 858 |
+
librecad/src/lib/engine/document/ucs/lc_ucslist.h
|
| 859 |
+
librecad/src/lib/engine/document/variables/rs_variable.h
|
| 860 |
+
librecad/src/lib/engine/document/variables/rs_variabledict.cpp
|
| 861 |
+
librecad/src/lib/engine/document/variables/rs_variabledict.h
|
| 862 |
+
librecad/src/lib/engine/document/views/lc_view.cpp
|
| 863 |
+
librecad/src/lib/engine/document/views/lc_view.h
|
| 864 |
+
librecad/src/lib/engine/document/views/lc_viewslist.cpp
|
| 865 |
+
librecad/src/lib/engine/document/views/lc_viewslist.h
|
| 866 |
+
librecad/src/lib/engine/lc_defaults.h
|
| 867 |
+
librecad/src/lib/engine/lc_drawable.h
|
| 868 |
+
librecad/src/lib/engine/overlays/angles_base/lc_overlayanglesbasemark.cpp
|
| 869 |
+
librecad/src/lib/engine/overlays/angles_base/lc_overlayanglesbasemark.h
|
| 870 |
+
librecad/src/lib/engine/overlays/crosshair/lc_crosshair.cpp
|
| 871 |
+
librecad/src/lib/engine/overlays/highlight/lc_highlight.cpp
|
| 872 |
+
librecad/src/lib/engine/overlays/info_cursor/lc_cursoroverlayinfo.cpp
|
| 873 |
+
librecad/src/lib/engine/overlays/info_cursor/lc_cursoroverlayinfo.h
|
| 874 |
+
librecad/src/lib/engine/overlays/lc_overlayentitiescontainer.cpp
|
| 875 |
+
librecad/src/lib/engine/overlays/lc_overlayentitiescontainer.h
|
| 876 |
+
librecad/src/lib/engine/overlays/lc_overlayentity.cpp
|
| 877 |
+
librecad/src/lib/engine/overlays/lc_overlayentity.h
|
| 878 |
+
librecad/src/lib/engine/overlays/lc_overlaysmanager.cpp
|
| 879 |
+
librecad/src/lib/engine/overlays/lc_overlaysmanager.h
|
| 880 |
+
librecad/src/lib/engine/overlays/overlay_box/rs_overlaybox.cpp
|
| 881 |
+
librecad/src/lib/engine/overlays/overlay_box/rs_overlaybox.h
|
| 882 |
+
librecad/src/lib/engine/overlays/preview/rs_preview.cpp
|
| 883 |
+
librecad/src/lib/engine/overlays/preview/rs_preview.h
|
| 884 |
+
librecad/src/lib/engine/overlays/references/lc_refarc.cpp
|
| 885 |
+
librecad/src/lib/engine/overlays/references/lc_refarc.h
|
| 886 |
+
librecad/src/lib/engine/overlays/references/lc_refcircle.cpp
|
| 887 |
+
librecad/src/lib/engine/overlays/references/lc_refcircle.h
|
| 888 |
+
librecad/src/lib/engine/overlays/references/lc_refconstructionline.cpp
|
| 889 |
+
librecad/src/lib/engine/overlays/references/lc_refconstructionline.h
|
| 890 |
+
librecad/src/lib/engine/overlays/references/lc_refellipse.cpp
|
| 891 |
+
librecad/src/lib/engine/overlays/references/lc_refline.cpp
|
| 892 |
+
librecad/src/lib/engine/overlays/references/lc_refline.h
|
| 893 |
+
librecad/src/lib/engine/overlays/references/lc_refpoint.cpp
|
| 894 |
+
librecad/src/lib/engine/overlays/references/lc_refpoint.h
|
| 895 |
+
librecad/src/lib/engine/overlays/rs_overlayline.cpp
|
| 896 |
+
librecad/src/lib/engine/overlays/rs_overlayline.h
|
| 897 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_overlayrelativezero.cpp
|
| 898 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_overlayrelativezero.h
|
| 899 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_overlayucszero.cpp
|
| 900 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_overlayucszero.h
|
| 901 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_ucs_mark.cpp
|
| 902 |
+
librecad/src/lib/engine/overlays/ucs_mark/lc_ucs_mark.h
|
| 903 |
+
librecad/src/lib/engine/rs.cpp
|
| 904 |
+
librecad/src/lib/engine/rs.h
|
| 905 |
+
librecad/src/lib/engine/rs_color.cpp
|
| 906 |
+
librecad/src/lib/engine/rs_color.h
|
| 907 |
+
librecad/src/lib/engine/rs_flags.cpp
|
| 908 |
+
librecad/src/lib/engine/rs_flags.h
|
| 909 |
+
librecad/src/lib/engine/rs_pen.cpp
|
| 910 |
+
librecad/src/lib/engine/rs_pen.h
|
| 911 |
+
librecad/src/lib/engine/rs_system.cpp
|
| 912 |
+
librecad/src/lib/engine/rs_system.h
|
| 913 |
+
librecad/src/lib/engine/rs_units.cpp
|
| 914 |
+
librecad/src/lib/engine/rs_units.h
|
| 915 |
+
librecad/src/lib/engine/rs_vector.cpp
|
| 916 |
+
librecad/src/lib/engine/rs_vector.h
|
| 917 |
+
librecad/src/lib/engine/settings/lc_settingsexporter.cpp
|
| 918 |
+
librecad/src/lib/engine/settings/lc_settingsexporter.h
|
| 919 |
+
librecad/src/lib/engine/settings/rs_settings.cpp
|
| 920 |
+
librecad/src/lib/engine/settings/rs_settings.h
|
| 921 |
+
librecad/src/lib/engine/undo/lc_undoablerelzero.cpp
|
| 922 |
+
librecad/src/lib/engine/undo/lc_undoablerelzero.h
|
| 923 |
+
librecad/src/lib/engine/undo/lc_undosection.cpp
|
| 924 |
+
librecad/src/lib/engine/undo/lc_undosection.h
|
| 925 |
+
librecad/src/lib/engine/undo/rs_undo.cpp
|
| 926 |
+
librecad/src/lib/engine/undo/rs_undo.h
|
| 927 |
+
librecad/src/lib/engine/undo/rs_undoable.cpp
|
| 928 |
+
librecad/src/lib/engine/undo/rs_undoable.h
|
| 929 |
+
librecad/src/lib/engine/undo/rs_undocycle.cpp
|
| 930 |
+
librecad/src/lib/engine/undo/rs_undocycle.h
|
| 931 |
+
librecad/src/lib/engine/utils/lc_rectregion.cpp
|
| 932 |
+
librecad/src/lib/engine/utils/lc_rectregion.h
|
| 933 |
+
librecad/src/lib/engine/utils/lc_rtree.cpp
|
| 934 |
+
librecad/src/lib/engine/utils/lc_rtree.h
|
| 935 |
+
librecad/src/lib/engine/utils/rs_utility.cpp
|
| 936 |
+
librecad/src/lib/engine/utils/rs_utility.h
|
| 937 |
+
librecad/src/lib/fileio/lc_filenameselectionservice.cpp
|
| 938 |
+
librecad/src/lib/fileio/lc_filenameselectionservice.h
|
| 939 |
+
librecad/src/lib/fileio/rs_fileio.cpp
|
| 940 |
+
librecad/src/lib/fileio/rs_fileio.h
|
| 941 |
+
librecad/src/lib/filters/lc_hyperbolaspline.cpp
|
| 942 |
+
librecad/src/lib/filters/lc_hyperbolaspline.h
|
| 943 |
+
librecad/src/lib/filters/rs_filtercxf.cpp
|
| 944 |
+
librecad/src/lib/filters/rs_filterdxf1.cpp
|
| 945 |
+
librecad/src/lib/filters/rs_filterdxf1.h
|
| 946 |
+
librecad/src/lib/filters/rs_filterdxfrw.cpp
|
| 947 |
+
librecad/src/lib/filters/rs_filterdxfrw.h
|
| 948 |
+
librecad/src/lib/filters/rs_filterinterface.h
|
| 949 |
+
librecad/src/lib/filters/rs_filterjww.cpp
|
| 950 |
+
librecad/src/lib/filters/rs_filterjww.h
|
| 951 |
+
librecad/src/lib/filters/rs_filterlff.cpp
|
| 952 |
+
librecad/src/lib/filters/rs_filterlff.h
|
| 953 |
+
librecad/src/lib/generators/image/lc_imageexporter.cpp
|
| 954 |
+
librecad/src/lib/generators/image/lc_imageexporter.h
|
| 955 |
+
librecad/src/lib/generators/layers/lc_layersexporter.cpp
|
| 956 |
+
librecad/src/lib/generators/layers/lc_layersexporter.h
|
| 957 |
+
librecad/src/lib/generators/makercamsvg/lc_makercamsvg.cpp
|
| 958 |
+
librecad/src/lib/generators/makercamsvg/lc_makercamsvg.h
|
| 959 |
+
librecad/src/lib/generators/makercamsvg/lc_xmlwriterinterface.h
|
| 960 |
+
librecad/src/lib/generators/makercamsvg/lc_xmlwriterqxmlstreamwriter.cpp
|
| 961 |
+
librecad/src/lib/generators/makercamsvg/lc_xmlwriterqxmlstreamwriter.h
|
| 962 |
+
librecad/src/lib/gui/grid/lc_gridsystem.cpp
|
| 963 |
+
librecad/src/lib/gui/grid/lc_gridsystem.h
|
| 964 |
+
librecad/src/lib/gui/grid/lc_isometricgrid.cpp
|
| 965 |
+
librecad/src/lib/gui/grid/lc_lattice.cpp
|
| 966 |
+
librecad/src/lib/gui/grid/lc_lattice.h
|
| 967 |
+
librecad/src/lib/gui/grid/lc_orthogonalgrid.cpp
|
| 968 |
+
librecad/src/lib/gui/grid/lc_orthogonalgrid.h
|
| 969 |
+
librecad/src/lib/gui/grid/rs_grid.cpp
|
| 970 |
+
librecad/src/lib/gui/grid/rs_grid.h
|
| 971 |
+
librecad/src/lib/gui/lc_coordinates_mapper.cpp
|
| 972 |
+
librecad/src/lib/gui/lc_coordinates_mapper.h
|
| 973 |
+
librecad/src/lib/gui/lc_coordinates_parser.cpp
|
| 974 |
+
librecad/src/lib/gui/lc_coordinates_parser.h
|
| 975 |
+
librecad/src/lib/gui/lc_eventhandler.cpp
|
| 976 |
+
librecad/src/lib/gui/lc_eventhandler.h
|
| 977 |
+
librecad/src/lib/gui/lc_graphicviewport.cpp
|
| 978 |
+
librecad/src/lib/gui/lc_graphicviewport.h
|
| 979 |
+
librecad/src/lib/gui/lc_graphicviewportlistener.cpp
|
| 980 |
+
librecad/src/lib/gui/lc_graphicviewportlistener.h
|
| 981 |
+
librecad/src/lib/gui/lc_latecompletionrequestor.cpp
|
| 982 |
+
librecad/src/lib/gui/lc_latecompletionrequestor.h
|
| 983 |
+
librecad/src/lib/gui/render/headless/lc_printviewportrenderer.cpp
|
| 984 |
+
librecad/src/lib/gui/render/headless/lc_printviewportrenderer.h
|
| 985 |
+
librecad/src/lib/gui/render/lc_graphicviewportrenderer.cpp
|
| 986 |
+
librecad/src/lib/gui/render/lc_graphicviewportrenderer.h
|
| 987 |
+
librecad/src/lib/gui/render/rs_painter.cpp
|
| 988 |
+
librecad/src/lib/gui/render/rs_painter.h
|
| 989 |
+
librecad/src/lib/gui/render/widget/lc_graphicviewrenderer.cpp
|
| 990 |
+
librecad/src/lib/gui/render/widget/lc_graphicviewrenderer.h
|
| 991 |
+
librecad/src/lib/gui/render/widget/lc_printpreviewviewrenderer.cpp
|
| 992 |
+
librecad/src/lib/gui/render/widget/lc_printpreviewviewrenderer.h
|
| 993 |
+
librecad/src/lib/gui/render/widget/lc_widgetviewportrenderer.cpp
|
| 994 |
+
librecad/src/lib/gui/render/widget/lc_widgetviewportrenderer.h
|
| 995 |
+
librecad/src/lib/gui/rs_commandevent.h
|
| 996 |
+
librecad/src/lib/gui/rs_coordinateevent.h
|
| 997 |
+
librecad/src/lib/gui/rs_dialogfactory.cpp
|
| 998 |
+
librecad/src/lib/gui/rs_dialogfactory.h
|
| 999 |
+
librecad/src/lib/gui/rs_dialogfactoryinterface.h
|
| 1000 |
+
librecad/src/lib/gui/rs_graphicview.cpp
|
| 1001 |
+
librecad/src/lib/gui/rs_graphicview.h
|
| 1002 |
+
librecad/src/lib/gui/rs_linetypepattern.cpp
|
| 1003 |
+
librecad/src/lib/gui/rs_linetypepattern.h
|
| 1004 |
+
librecad/src/lib/gui/rs_mainwindowinterface.h
|
| 1005 |
+
librecad/src/lib/information/rs_infoarea.cpp
|
| 1006 |
+
librecad/src/lib/information/rs_infoarea.h
|
| 1007 |
+
librecad/src/lib/information/rs_information.cpp
|
| 1008 |
+
librecad/src/lib/information/rs_information.h
|
| 1009 |
+
librecad/src/lib/information/rs_locale.cpp
|
| 1010 |
+
librecad/src/lib/information/rs_locale.h
|
| 1011 |
+
librecad/src/lib/math/lc_convert.cpp
|
| 1012 |
+
librecad/src/lib/math/lc_convert.h
|
| 1013 |
+
librecad/src/lib/math/lc_linemath.cpp
|
| 1014 |
+
librecad/src/lib/math/lc_linemath.h
|
| 1015 |
+
librecad/src/lib/math/lc_quadratic.cpp
|
| 1016 |
+
librecad/src/lib/math/lc_quadratic.h
|
| 1017 |
+
librecad/src/lib/math/rs_math.cpp
|
| 1018 |
+
librecad/src/lib/math/rs_math.h
|
| 1019 |
+
librecad/src/lib/modification/lc_align.cpp
|
| 1020 |
+
librecad/src/lib/modification/lc_align.h
|
| 1021 |
+
librecad/src/lib/modification/lc_division.cpp
|
| 1022 |
+
librecad/src/lib/modification/lc_division.h
|
| 1023 |
+
librecad/src/lib/modification/rs_modification.cpp
|
| 1024 |
+
librecad/src/lib/modification/rs_modification.h
|
| 1025 |
+
librecad/src/lib/modification/rs_selection.cpp
|
| 1026 |
+
librecad/src/lib/modification/rs_selection.h
|
| 1027 |
+
librecad/src/lib/printing/lc_printing.cpp
|
| 1028 |
+
librecad/src/lib/printing/lc_printing.h
|
| 1029 |
+
librecad/src/lib/scripting/rs_python.cpp
|
| 1030 |
+
librecad/src/lib/scripting/rs_python.h
|
| 1031 |
+
librecad/src/lib/scripting/rs_python_wrappers.cpp
|
| 1032 |
+
librecad/src/lib/scripting/rs_python_wrappers.h
|
| 1033 |
+
librecad/src/lib/scripting/rs_script.cpp
|
| 1034 |
+
librecad/src/lib/scripting/rs_script.h
|
| 1035 |
+
librecad/src/lib/scripting/rs_scriptlist.cpp
|
| 1036 |
+
librecad/src/lib/scripting/rs_scriptlist.h
|
| 1037 |
+
librecad/src/lib/scripting/rs_simplepython.cpp
|
| 1038 |
+
librecad/src/lib/scripting/rs_simplepython.h
|
| 1039 |
+
librecad/src/main/doc_plugin_interface.cpp
|
| 1040 |
+
librecad/src/main/doc_plugin_interface.h
|
| 1041 |
+
librecad/src/main/lc_application.cpp
|
| 1042 |
+
librecad/src/main/lc_application.h
|
| 1043 |
+
librecad/src/main/qc_dialogfactory.cpp
|
| 1044 |
+
librecad/src/main/qc_dialogfactory.h
|
| 1045 |
+
librecad/src/plugins/document_interface.h
|
| 1046 |
+
librecad/src/plugins/intern/qc_actiongetent.cpp
|
| 1047 |
+
librecad/src/plugins/intern/qc_actiongetent.h
|
| 1048 |
+
librecad/src/plugins/intern/qc_actiongetpoint.cpp
|
| 1049 |
+
librecad/src/plugins/intern/qc_actiongetpoint.h
|
| 1050 |
+
librecad/src/plugins/intern/qc_actiongetselect.cpp
|
| 1051 |
+
librecad/src/plugins/intern/qc_actiongetselect.h
|
| 1052 |
+
librecad/src/plugins/lc_plugininvoker.cpp
|
| 1053 |
+
librecad/src/plugins/lc_plugininvoker.h
|
| 1054 |
+
librecad/src/plugins/qc_plugininterface.h
|
| 1055 |
+
librecad/src/ui/action_options/circle/lc_circlebyarcoptions.cpp
|
| 1056 |
+
librecad/src/ui/action_options/circle/qg_circleoptions.cpp
|
| 1057 |
+
librecad/src/ui/action_options/circle/qg_circleoptions.h
|
| 1058 |
+
librecad/src/ui/action_options/circle/qg_circletan2options.cpp
|
| 1059 |
+
librecad/src/ui/action_options/circle/qg_circletan2options.h
|
| 1060 |
+
librecad/src/ui/action_options/curve/lc_actiondrawarc2poptions.cpp
|
| 1061 |
+
librecad/src/ui/action_options/curve/lc_actiondrawarc2poptions.h
|
| 1062 |
+
librecad/src/ui/action_options/curve/lc_ellipsearcoptions.cpp
|
| 1063 |
+
librecad/src/ui/action_options/curve/qg_arcoptions.cpp
|
| 1064 |
+
librecad/src/ui/action_options/curve/qg_arcoptions.h
|
| 1065 |
+
librecad/src/ui/action_options/curve/qg_arctangentialoptions.cpp
|
| 1066 |
+
librecad/src/ui/action_options/curve/qg_arctangentialoptions.h
|
| 1067 |
+
librecad/src/ui/action_options/dimensions/qg_dimoptions.cpp
|
| 1068 |
+
librecad/src/ui/action_options/dimensions/qg_dimoptions.h
|
| 1069 |
+
librecad/src/ui/action_options/edit/lc_pastetransformoptions.cpp
|
| 1070 |
+
librecad/src/ui/action_options/ellipse/lc_ellipse1pointoptions.cpp
|
| 1071 |
+
librecad/src/ui/action_options/ellipse/lc_ellipse1pointoptions.h
|
| 1072 |
+
librecad/src/ui/action_options/image/qg_imageoptions.cpp
|
| 1073 |
+
librecad/src/ui/action_options/image/qg_imageoptions.h
|
| 1074 |
+
librecad/src/ui/action_options/info/lc_infodist2options.cpp
|
| 1075 |
+
librecad/src/ui/action_options/insert/qg_insertoptions.cpp
|
| 1076 |
+
librecad/src/ui/action_options/insert/qg_insertoptions.h
|
| 1077 |
+
librecad/src/ui/action_options/insert/qg_libraryinsertoptions.cpp
|
| 1078 |
+
librecad/src/ui/action_options/insert/qg_libraryinsertoptions.h
|
| 1079 |
+
librecad/src/ui/action_options/lc_actionoptionsmanager.cpp
|
| 1080 |
+
librecad/src/ui/action_options/lc_actionoptionsmanager.h
|
| 1081 |
+
librecad/src/ui/action_options/lc_actionoptionswidget.cpp
|
| 1082 |
+
librecad/src/ui/action_options/lc_actionoptionswidget.h
|
| 1083 |
+
librecad/src/ui/action_options/lc_actionoptionswidgetbase.cpp
|
| 1084 |
+
librecad/src/ui/action_options/lc_actionoptionswidgetbase.h
|
| 1085 |
+
librecad/src/ui/action_options/line/lc_lineanglereloptions.cpp
|
| 1086 |
+
librecad/src/ui/action_options/line/lc_linefrompointtolineoptions.cpp
|
| 1087 |
+
librecad/src/ui/action_options/line/lc_lineoptions.cpp
|
| 1088 |
+
librecad/src/ui/action_options/line/lc_slicedivideoptions.cpp
|
| 1089 |
+
librecad/src/ui/action_options/line/qg_lineangleoptions.cpp
|
| 1090 |
+
librecad/src/ui/action_options/line/qg_lineangleoptions.h
|
| 1091 |
+
librecad/src/ui/action_options/line/qg_linebisectoroptions.cpp
|
| 1092 |
+
librecad/src/ui/action_options/line/qg_linebisectoroptions.h
|
| 1093 |
+
librecad/src/ui/action_options/line/qg_lineoptions.cpp
|
| 1094 |
+
librecad/src/ui/action_options/line/qg_lineoptions.h
|
| 1095 |
+
librecad/src/ui/action_options/line/qg_lineparalleloptions.cpp
|
| 1096 |
+
librecad/src/ui/action_options/line/qg_lineparalleloptions.h
|
| 1097 |
+
librecad/src/ui/action_options/line/qg_lineparallelthroughoptions.cpp
|
| 1098 |
+
librecad/src/ui/action_options/line/qg_lineparallelthroughoptions.h
|
| 1099 |
+
librecad/src/ui/action_options/line/qg_linerelangleoptions.cpp
|
| 1100 |
+
librecad/src/ui/action_options/line/qg_linerelangleoptions.h
|
| 1101 |
+
librecad/src/ui/action_options/misc/lc_crossoptions.cpp
|
| 1102 |
+
librecad/src/ui/action_options/misc/lc_drawboundingboxoptions.cpp
|
| 1103 |
+
librecad/src/ui/action_options/misc/lc_drawboundingboxoptions.h
|
| 1104 |
+
librecad/src/ui/action_options/misc/lc_midlineoptions.cpp
|
| 1105 |
+
librecad/src/ui/action_options/misc/lc_midlineoptions.h
|
| 1106 |
+
librecad/src/ui/action_options/modify/lc_duplicateoptions.cpp
|
| 1107 |
+
librecad/src/ui/action_options/modify/lc_linejoinoptions.cpp
|
| 1108 |
+
librecad/src/ui/action_options/modify/lc_modifyalignoptions.cpp
|
| 1109 |
+
librecad/src/ui/action_options/modify/lc_modifyalignoptions.h
|
| 1110 |
+
librecad/src/ui/action_options/modify/lc_modifyalignrefoptions.cpp
|
| 1111 |
+
librecad/src/ui/action_options/modify/lc_modifyalignrefoptions.h
|
| 1112 |
+
librecad/src/ui/action_options/modify/lc_modifybreakdivideoptions.cpp
|
| 1113 |
+
librecad/src/ui/action_options/modify/lc_modifybreakdivideoptions.h
|
| 1114 |
+
librecad/src/ui/action_options/modify/lc_modifygapoptions.cpp
|
| 1115 |
+
librecad/src/ui/action_options/modify/lc_modifygapoptions.h
|
| 1116 |
+
librecad/src/ui/action_options/modify/lc_modifymirroroptions.cpp
|
| 1117 |
+
librecad/src/ui/action_options/modify/lc_modifyrotateoptions.cpp
|
| 1118 |
+
librecad/src/ui/action_options/modify/lc_modifyscaleoptions.cpp
|
| 1119 |
+
librecad/src/ui/action_options/modify/lc_modifyscaleoptions.h
|
| 1120 |
+
librecad/src/ui/action_options/modify/lc_modifystretchoptions.cpp
|
| 1121 |
+
librecad/src/ui/action_options/modify/lc_modifystretchoptions.h
|
| 1122 |
+
librecad/src/ui/action_options/modify/lc_moveoptions.cpp
|
| 1123 |
+
librecad/src/ui/action_options/modify/lc_moveoptions.h
|
| 1124 |
+
librecad/src/ui/action_options/modify/lc_rotate2options.cpp
|
| 1125 |
+
librecad/src/ui/action_options/modify/lc_rotate2options.h
|
| 1126 |
+
librecad/src/ui/action_options/modify/qg_beveloptions.cpp
|
| 1127 |
+
librecad/src/ui/action_options/modify/qg_beveloptions.h
|
| 1128 |
+
librecad/src/ui/action_options/modify/qg_modifyoffsetoptions.cpp
|
| 1129 |
+
librecad/src/ui/action_options/modify/qg_modifyoffsetoptions.h
|
| 1130 |
+
librecad/src/ui/action_options/modify/qg_moverotateoptions.cpp
|
| 1131 |
+
librecad/src/ui/action_options/modify/qg_moverotateoptions.h
|
| 1132 |
+
librecad/src/ui/action_options/modify/qg_roundoptions.cpp
|
| 1133 |
+
librecad/src/ui/action_options/modify/qg_roundoptions.h
|
| 1134 |
+
librecad/src/ui/action_options/modify/qg_trimamountoptions.cpp
|
| 1135 |
+
librecad/src/ui/action_options/modify/qg_trimamountoptions.h
|
| 1136 |
+
librecad/src/ui/action_options/other/lc_ucssetoptions.cpp
|
| 1137 |
+
librecad/src/ui/action_options/other/lc_ucssetoptions.h
|
| 1138 |
+
librecad/src/ui/action_options/point/lc_linepointsoptions.cpp
|
| 1139 |
+
librecad/src/ui/action_options/point/lc_linepointsoptions.h
|
| 1140 |
+
librecad/src/ui/action_options/point/lc_pastetopointsoptions.cpp
|
| 1141 |
+
librecad/src/ui/action_options/point/lc_pastetopointsoptions.h
|
| 1142 |
+
librecad/src/ui/action_options/point/lc_pointslatticeoptions.cpp
|
| 1143 |
+
librecad/src/ui/action_options/point/lc_pointslatticeoptions.h
|
| 1144 |
+
librecad/src/ui/action_options/polygon/lc_staroptions.cpp
|
| 1145 |
+
librecad/src/ui/action_options/polygon/qg_linepolygonoptions.cpp
|
| 1146 |
+
librecad/src/ui/action_options/polygon/qg_linepolygonoptions.h
|
| 1147 |
+
librecad/src/ui/action_options/polyline/qg_polylineequidistantoptions.cpp
|
| 1148 |
+
librecad/src/ui/action_options/polyline/qg_polylineequidistantoptions.h
|
| 1149 |
+
librecad/src/ui/action_options/polyline/qg_polylineoptions.cpp
|
| 1150 |
+
librecad/src/ui/action_options/polyline/qg_polylineoptions.h
|
| 1151 |
+
librecad/src/ui/action_options/print_preview/qg_printpreviewoptions.cpp
|
| 1152 |
+
librecad/src/ui/action_options/print_preview/qg_printpreviewoptions.h
|
| 1153 |
+
librecad/src/ui/action_options/rect/lc_rectangle1pointoptions.cpp
|
| 1154 |
+
librecad/src/ui/action_options/rect/lc_rectangle2pointsoptions.cpp
|
| 1155 |
+
librecad/src/ui/action_options/rect/lc_rectangle2pointsoptions.h
|
| 1156 |
+
librecad/src/ui/action_options/rect/lc_rectangle3pointsoptions.cpp
|
| 1157 |
+
librecad/src/ui/action_options/selection/lc_selectwindowoptions.cpp
|
| 1158 |
+
librecad/src/ui/action_options/selection/lc_selectwindowoptions.h
|
| 1159 |
+
librecad/src/ui/action_options/snap/qg_snapdistoptions.cpp
|
| 1160 |
+
librecad/src/ui/action_options/snap/qg_snapdistoptions.h
|
| 1161 |
+
librecad/src/ui/action_options/snap/qg_snapmiddleoptions.cpp
|
| 1162 |
+
librecad/src/ui/action_options/snap/qg_snapmiddleoptions.h
|
| 1163 |
+
librecad/src/ui/action_options/spline/lc_splineexplodeoptions.cpp
|
| 1164 |
+
librecad/src/ui/action_options/spline/lc_splineexplodeoptions.h
|
| 1165 |
+
librecad/src/ui/action_options/spline/lc_splinefrompolylineoptions.cpp
|
| 1166 |
+
librecad/src/ui/action_options/spline/lc_splinefrompolylineoptions.h
|
| 1167 |
+
librecad/src/ui/action_options/spline/qg_splineoptions.cpp
|
| 1168 |
+
librecad/src/ui/action_options/spline/qg_splineoptions.h
|
| 1169 |
+
librecad/src/ui/action_options/text/qg_mtextoptions.cpp
|
| 1170 |
+
librecad/src/ui/action_options/text/qg_mtextoptions.h
|
| 1171 |
+
librecad/src/ui/action_options/text/qg_textoptions.cpp
|
| 1172 |
+
librecad/src/ui/action_options/text/qg_textoptions.h
|
| 1173 |
+
librecad/src/ui/actions/lc_actionfactorybase.cpp
|
| 1174 |
+
librecad/src/ui/actions/lc_actionfactorybase.h
|
| 1175 |
+
librecad/src/ui/actions/lc_actiongroup.cpp
|
| 1176 |
+
librecad/src/ui/actions/lc_actiongroup.h
|
| 1177 |
+
librecad/src/ui/actions/lc_actiongroupmanager.cpp
|
| 1178 |
+
librecad/src/ui/actions/lc_actiongroupmanager.h
|
| 1179 |
+
librecad/src/ui/actions/lc_shortcutinfo.cpp
|
| 1180 |
+
librecad/src/ui/actions/lc_shortcutinfo.h
|
| 1181 |
+
librecad/src/ui/actions/lc_shortcuts_manager.cpp
|
| 1182 |
+
librecad/src/ui/actions/lc_shortcuts_manager.h
|
| 1183 |
+
librecad/src/ui/actions/lc_shortcutsstorage.cpp
|
| 1184 |
+
librecad/src/ui/actions/lc_shortcutsstorage.h
|
| 1185 |
+
librecad/src/ui/components/comboboxes/comboboxoption.cpp
|
| 1186 |
+
librecad/src/ui/components/comboboxes/comboboxoption.h
|
| 1187 |
+
librecad/src/ui/components/comboboxes/qg_colorbox.cpp
|
| 1188 |
+
librecad/src/ui/components/comboboxes/qg_colorbox.h
|
| 1189 |
+
librecad/src/ui/components/comboboxes/qg_fontbox.cpp
|
| 1190 |
+
librecad/src/ui/components/comboboxes/qg_fontbox.h
|
| 1191 |
+
librecad/src/ui/components/comboboxes/qg_layerbox.cpp
|
| 1192 |
+
librecad/src/ui/components/comboboxes/qg_layerbox.h
|
| 1193 |
+
librecad/src/ui/components/comboboxes/qg_linetypebox.cpp
|
| 1194 |
+
librecad/src/ui/components/comboboxes/qg_linetypebox.h
|
| 1195 |
+
librecad/src/ui/components/comboboxes/qg_patternbox.cpp
|
| 1196 |
+
librecad/src/ui/components/comboboxes/qg_patternbox.h
|
| 1197 |
+
librecad/src/ui/components/comboboxes/qg_widthbox.cpp
|
| 1198 |
+
librecad/src/ui/components/comboboxes/qg_widthbox.h
|
| 1199 |
+
librecad/src/ui/components/containers/lc_optionswidgetsholder.cpp
|
| 1200 |
+
librecad/src/ui/components/containers/lc_optionswidgetsholder.h
|
| 1201 |
+
librecad/src/ui/components/containers/lc_snapoptionswidgetsholder.cpp
|
| 1202 |
+
librecad/src/ui/components/containers/lc_snapoptionswidgetsholder.h
|
| 1203 |
+
librecad/src/ui/components/creators/actionlist.cpp
|
| 1204 |
+
librecad/src/ui/components/creators/actionlist.h
|
| 1205 |
+
librecad/src/ui/components/creators/lc_creatorinvoker.cpp
|
| 1206 |
+
librecad/src/ui/components/creators/lc_creatorinvoker.h
|
| 1207 |
+
librecad/src/ui/components/creators/lc_menuactivator.cpp
|
| 1208 |
+
librecad/src/ui/components/creators/lc_menuactivator.h
|
| 1209 |
+
librecad/src/ui/components/layouts/lc_flexlayout.cpp
|
| 1210 |
+
librecad/src/ui/components/layouts/lc_flexlayout.h
|
| 1211 |
+
librecad/src/ui/components/lc_plaintextedit.h
|
| 1212 |
+
librecad/src/ui/components/pen/qg_widgetpen.cpp
|
| 1213 |
+
librecad/src/ui/components/pen/qg_widgetpen.h
|
| 1214 |
+
librecad/src/ui/components/qg_scrollbar.h
|
| 1215 |
+
librecad/src/ui/components/status_bar/lc_anglesbasiswidget.cpp
|
| 1216 |
+
librecad/src/ui/components/status_bar/lc_anglesbasiswidget.h
|
| 1217 |
+
librecad/src/ui/components/status_bar/lc_qtstatusbarmanager.cpp
|
| 1218 |
+
librecad/src/ui/components/status_bar/lc_qtstatusbarmanager.h
|
| 1219 |
+
librecad/src/ui/components/status_bar/lc_relzerocoordinateswidget.cpp
|
| 1220 |
+
librecad/src/ui/components/status_bar/lc_relzerocoordinateswidget.h
|
| 1221 |
+
librecad/src/ui/components/status_bar/lc_ucsstatewidget.cpp
|
| 1222 |
+
librecad/src/ui/components/status_bar/lc_ucsstatewidget.h
|
| 1223 |
+
librecad/src/ui/components/status_bar/qg_activelayername.cpp
|
| 1224 |
+
librecad/src/ui/components/status_bar/qg_activelayername.h
|
| 1225 |
+
librecad/src/ui/components/status_bar/qg_coordinatewidget.cpp
|
| 1226 |
+
librecad/src/ui/components/status_bar/qg_coordinatewidget.h
|
| 1227 |
+
librecad/src/ui/components/status_bar/qg_mousewidget.cpp
|
| 1228 |
+
librecad/src/ui/components/status_bar/qg_mousewidget.h
|
| 1229 |
+
librecad/src/ui/components/status_bar/qg_selectionwidget.cpp
|
| 1230 |
+
librecad/src/ui/components/status_bar/qg_selectionwidget.h
|
| 1231 |
+
librecad/src/ui/components/status_bar/twostackedlabels.cpp
|
| 1232 |
+
librecad/src/ui/components/status_bar/twostackedlabels.h
|
| 1233 |
+
librecad/src/ui/components/textfileviewer.cpp
|
| 1234 |
+
librecad/src/ui/components/textfileviewer.h
|
| 1235 |
+
librecad/src/ui/components/toolbars/qg_pentoolbar.cpp
|
| 1236 |
+
librecad/src/ui/components/toolbars/qg_pentoolbar.h
|
| 1237 |
+
librecad/src/ui/components/toolbars/qg_snaptoolbar.cpp
|
| 1238 |
+
librecad/src/ui/components/toolbars/qg_snaptoolbar.h
|
| 1239 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmirror.cpp
|
| 1240 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmirror.h
|
| 1241 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmove.cpp
|
| 1242 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmove.h
|
| 1243 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmoverotate.cpp
|
| 1244 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgmoverotate.h
|
| 1245 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgrotate.cpp
|
| 1246 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgrotate.h
|
| 1247 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgrotate2.cpp
|
| 1248 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgrotate2.h
|
| 1249 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgscale.cpp
|
| 1250 |
+
librecad/src/ui/dialogs/actions/modify/qg_dlgscale.h
|
| 1251 |
+
librecad/src/ui/dialogs/actions/qg_layerdialog.cpp
|
| 1252 |
+
librecad/src/ui/dialogs/actions/qg_layerdialog.h
|
| 1253 |
+
librecad/src/ui/dialogs/creators/lc_dlgmenuassigner.cpp
|
| 1254 |
+
librecad/src/ui/dialogs/creators/lc_dlgmenuassigner.h
|
| 1255 |
+
librecad/src/ui/dialogs/creators/lc_dlgnewwidget.cpp
|
| 1256 |
+
librecad/src/ui/dialogs/creators/lc_dlgnewwidget.h
|
| 1257 |
+
librecad/src/ui/dialogs/creators/lc_dlgwidgetcreator.cpp
|
| 1258 |
+
librecad/src/ui/dialogs/creators/lc_dlgwidgetcreator.h
|
| 1259 |
+
librecad/src/ui/dialogs/entity/lc_arcpropertieseditingwidget.cpp
|
| 1260 |
+
librecad/src/ui/dialogs/entity/lc_arcpropertieseditingwidget.h
|
| 1261 |
+
librecad/src/ui/dialogs/entity/lc_circlepropertieseditingwidget.cpp
|
| 1262 |
+
librecad/src/ui/dialogs/entity/lc_circlepropertieseditingwidget.h
|
| 1263 |
+
librecad/src/ui/dialogs/entity/lc_dlgdimension.cpp
|
| 1264 |
+
librecad/src/ui/dialogs/entity/lc_dlgdimension.h
|
| 1265 |
+
librecad/src/ui/dialogs/entity/lc_dlgentityproperties.cpp
|
| 1266 |
+
librecad/src/ui/dialogs/entity/lc_dlgentityproperties.h
|
| 1267 |
+
librecad/src/ui/dialogs/entity/lc_dlgtolerance.cpp
|
| 1268 |
+
librecad/src/ui/dialogs/entity/lc_dlgtolerance.h
|
| 1269 |
+
librecad/src/ui/dialogs/entity/lc_ellipsepropertieseditingwidget.cpp
|
| 1270 |
+
librecad/src/ui/dialogs/entity/lc_ellipsepropertieseditingwidget.h
|
| 1271 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertiesdlg.cpp
|
| 1272 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertiesdlg.h
|
| 1273 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditor.cpp
|
| 1274 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditor.h
|
| 1275 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditorsupport.cpp
|
| 1276 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditorsupport.h
|
| 1277 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditorwidget.cpp
|
| 1278 |
+
librecad/src/ui/dialogs/entity/lc_entitypropertieseditorwidget.h
|
| 1279 |
+
librecad/src/ui/dialogs/entity/lc_hyperbolapropertieseditingwidget.h
|
| 1280 |
+
librecad/src/ui/dialogs/entity/lc_hyperbolapropertieseditingwidget.cpp
|
| 1281 |
+
librecad/src/ui/dialogs/entity/lc_imagepropertieseditingwidget.cpp
|
| 1282 |
+
librecad/src/ui/dialogs/entity/lc_imagepropertieseditingwidget.h
|
| 1283 |
+
librecad/src/ui/dialogs/entity/lc_insertpropertieseditingwidget.cpp
|
| 1284 |
+
librecad/src/ui/dialogs/entity/lc_insertpropertieseditingwidget.h
|
| 1285 |
+
librecad/src/ui/dialogs/entity/lc_linepropertieseditingwidget.cpp
|
| 1286 |
+
librecad/src/ui/dialogs/entity/lc_linepropertieseditingwidget.h
|
| 1287 |
+
librecad/src/ui/dialogs/entity/lc_parabolapropertieseditingwidget.cpp
|
| 1288 |
+
librecad/src/ui/dialogs/entity/lc_parabolapropertieseditingwidget.h
|
| 1289 |
+
librecad/src/ui/dialogs/entity/lc_pointpickbutton.cpp
|
| 1290 |
+
librecad/src/ui/dialogs/entity/lc_pointpickbutton.h
|
| 1291 |
+
librecad/src/ui/dialogs/entity/lc_pointpropertieseditingwidget.cpp
|
| 1292 |
+
librecad/src/ui/dialogs/entity/lc_pointpropertieseditingwidget.h
|
| 1293 |
+
librecad/src/ui/dialogs/entity/lc_polylinepropertieseditingwidget.cpp
|
| 1294 |
+
librecad/src/ui/dialogs/entity/lc_polylinepropertieseditingwidget.h
|
| 1295 |
+
librecad/src/ui/dialogs/entity/lc_splinepointspropertieseditingwidget.cpp
|
| 1296 |
+
librecad/src/ui/dialogs/entity/lc_splinepointspropertieseditingwidget.h
|
| 1297 |
+
librecad/src/ui/dialogs/entity/lc_splinepropertieseditingwidget.cpp
|
| 1298 |
+
librecad/src/ui/dialogs/entity/lc_splinepropertieseditingwidget.h
|
| 1299 |
+
librecad/src/ui/dialogs/entity/qg_blockdialog.cpp
|
| 1300 |
+
librecad/src/ui/dialogs/entity/qg_blockdialog.h
|
| 1301 |
+
librecad/src/ui/dialogs/entity/qg_dimensionlabeleditor.cpp
|
| 1302 |
+
librecad/src/ui/dialogs/entity/qg_dimensionlabeleditor.h
|
| 1303 |
+
librecad/src/ui/dialogs/entity/qg_dlgattributes.cpp
|
| 1304 |
+
librecad/src/ui/dialogs/entity/qg_dlgattributes.h
|
| 1305 |
+
librecad/src/ui/dialogs/entity/qg_dlghatch.cpp
|
| 1306 |
+
librecad/src/ui/dialogs/entity/qg_dlghatch.h
|
| 1307 |
+
librecad/src/ui/dialogs/entity/qg_dlgmtext.cpp
|
| 1308 |
+
librecad/src/ui/dialogs/entity/qg_dlgmtext.h
|
| 1309 |
+
librecad/src/ui/dialogs/entity/qg_dlgtext.cpp
|
| 1310 |
+
librecad/src/ui/dialogs/entity/qg_dlgtext.h
|
| 1311 |
+
librecad/src/ui/dialogs/file/export/image/lc_exporttoimageservice.cpp
|
| 1312 |
+
librecad/src/ui/dialogs/file/export/image/lc_exporttoimageservice.h
|
| 1313 |
+
librecad/src/ui/dialogs/file/export/image/qg_dlgimageoptions.cpp
|
| 1314 |
+
librecad/src/ui/dialogs/file/export/image/qg_dlgimageoptions.h
|
| 1315 |
+
librecad/src/ui/dialogs/file/export/layers/lc_exportlayersdialogservice.cpp
|
| 1316 |
+
librecad/src/ui/dialogs/file/export/layers/lc_exportlayersdialogservice.h
|
| 1317 |
+
librecad/src/ui/dialogs/file/export/layers/lc_filedialogservice.cpp
|
| 1318 |
+
librecad/src/ui/dialogs/file/export/layers/lc_filedialogservice.h
|
| 1319 |
+
librecad/src/ui/dialogs/file/export/layers/lc_layerexportoptions.cpp
|
| 1320 |
+
librecad/src/ui/dialogs/file/export/layers/lc_layerexportoptions.h
|
| 1321 |
+
librecad/src/ui/dialogs/file/export/makercam/qg_dlgoptionsmakercam.cpp
|
| 1322 |
+
librecad/src/ui/dialogs/file/export/makercam/qg_dlgoptionsmakercam.h
|
| 1323 |
+
librecad/src/ui/dialogs/file/qg_filedialog.cpp
|
| 1324 |
+
librecad/src/ui/dialogs/file/qg_filedialog.h
|
| 1325 |
+
librecad/src/ui/dialogs/lc_dialog.cpp
|
| 1326 |
+
librecad/src/ui/dialogs/lc_dialog.h
|
| 1327 |
+
librecad/src/ui/dialogs/lc_inputtextdialog.cpp
|
| 1328 |
+
librecad/src/ui/dialogs/lc_inputtextdialog.h
|
| 1329 |
+
librecad/src/ui/dialogs/main/lc_dlgabout.cpp
|
| 1330 |
+
librecad/src/ui/dialogs/main/lc_dlgnewversionavailable.cpp
|
| 1331 |
+
librecad/src/ui/dialogs/main/lc_dlgnewversionavailable.h
|
| 1332 |
+
librecad/src/ui/dialogs/main/qg_exitdialog.cpp
|
| 1333 |
+
librecad/src/ui/dialogs/main/qg_exitdialog.h
|
| 1334 |
+
librecad/src/ui/dialogs/qg_dialogfactory.cpp
|
| 1335 |
+
librecad/src/ui/dialogs/qg_dialogfactory.h
|
| 1336 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/lc_dlgdimstylemanager.cpp
|
| 1337 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/lc_dlgdimstylemanager.h
|
| 1338 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_dimstylepreviewgraphicview.cpp
|
| 1339 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_dimstylepreviewgraphicview.h
|
| 1340 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_dimstylepreviewpanel.cpp
|
| 1341 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_dimstylepreviewpanel.h
|
| 1342 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_tabproxywidget.cpp
|
| 1343 |
+
librecad/src/ui/dialogs/settings/dimstyles/dimstyle_manager/support/lc_tabproxywidget.h
|
| 1344 |
+
librecad/src/ui/dialogs/settings/dimstyles/lc_dimstyleitem.cpp
|
| 1345 |
+
librecad/src/ui/dialogs/settings/dimstyles/lc_dimstyleslistmodel.cpp
|
| 1346 |
+
librecad/src/ui/dialogs/settings/dimstyles/lc_dimstyleslistmodel.h
|
| 1347 |
+
librecad/src/ui/dialogs/settings/dimstyles/lc_dimstylestreemodel.cpp
|
| 1348 |
+
librecad/src/ui/dialogs/settings/dimstyles/lc_dimstylestreemodel.h
|
| 1349 |
+
librecad/src/ui/dialogs/settings/options_device/lc_deviceoptions.cpp
|
| 1350 |
+
librecad/src/ui/dialogs/settings/options_device/lc_deviceoptions.h
|
| 1351 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dimstylesexporter.cpp
|
| 1352 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dimstylesexporter.h
|
| 1353 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dlgnewcustomvariable.cpp
|
| 1354 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dlgnewcustomvariable.h
|
| 1355 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dlgnewdimstyle.cpp
|
| 1356 |
+
librecad/src/ui/dialogs/settings/options_drawing/lc_dlgnewdimstyle.h
|
| 1357 |
+
librecad/src/ui/dialogs/settings/options_drawing/lg_dimzerosbox.cpp
|
| 1358 |
+
librecad/src/ui/dialogs/settings/options_drawing/lg_dimzerosbox.h
|
| 1359 |
+
librecad/src/ui/dialogs/settings/options_drawing/qg_dlgoptionsdrawing.cpp
|
| 1360 |
+
librecad/src/ui/dialogs/settings/options_drawing/qg_dlgoptionsdrawing.h
|
| 1361 |
+
librecad/src/ui/dialogs/settings/options_general/qg_dlgoptionsgeneral.cpp
|
| 1362 |
+
librecad/src/ui/dialogs/settings/options_general/qg_dlgoptionsgeneral.h
|
| 1363 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_dlgiconssetup.cpp
|
| 1364 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_iconcolorsoptions.cpp
|
| 1365 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_iconcolorsoptions.h
|
| 1366 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_iconengineshared.cpp
|
| 1367 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_widgetoptionsdialog.cpp
|
| 1368 |
+
librecad/src/ui/dialogs/settings/options_widget/lc_widgetoptionsdialog.h
|
| 1369 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_actionsshortcutsdialog.cpp
|
| 1370 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_actionsshortcutsdialog.h
|
| 1371 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutbutton.cpp
|
| 1372 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutbutton.h
|
| 1373 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutstreemodel.cpp
|
| 1374 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutstreemodel.h
|
| 1375 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutstreeview.cpp
|
| 1376 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcutstreeview.h
|
| 1377 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcuttreeitem.cpp
|
| 1378 |
+
librecad/src/ui/dialogs/settings/shortcuts/lc_shortcuttreeitem.h
|
| 1379 |
+
librecad/src/ui/dock_widgets/block_widget/qg_blockwidget.cpp
|
| 1380 |
+
librecad/src/ui/dock_widgets/block_widget/qg_blockwidget.h
|
| 1381 |
+
librecad/src/ui/dock_widgets/cad/lc_caddockwidget.cpp
|
| 1382 |
+
librecad/src/ui/dock_widgets/cad/lc_caddockwidget.h
|
| 1383 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandedit.cpp
|
| 1384 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandedit.h
|
| 1385 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandhistory.cpp
|
| 1386 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandhistory.h
|
| 1387 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandwidget.cpp
|
| 1388 |
+
librecad/src/ui/dock_widgets/command_line/qg_commandwidget.h
|
| 1389 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfobasedata.cpp
|
| 1390 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfoentitydata.cpp
|
| 1391 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfopointsdata.cpp
|
| 1392 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfopointsdata.h
|
| 1393 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfowidget.cpp
|
| 1394 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfowidgetoptions.cpp
|
| 1395 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfowidgetoptions.h
|
| 1396 |
+
librecad/src/ui/dock_widgets/entity_info/lc_quickinfowidgetoptionsdialog.cpp
|
| 1397 |
+
librecad/src/ui/dock_widgets/layer_widget/qg_layerwidget.cpp
|
| 1398 |
+
librecad/src/ui/dock_widgets/layer_widget/qg_layerwidget.h
|
| 1399 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layerdialog_ex.cpp
|
| 1400 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layerdialog_ex.h
|
| 1401 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreeitem.cpp
|
| 1402 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreeitem.h
|
| 1403 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreemodel.cpp
|
| 1404 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreemodel.h
|
| 1405 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreemodel_options.cpp
|
| 1406 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreeoptionsdialog.cpp
|
| 1407 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreeview.cpp
|
| 1408 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreeview.h
|
| 1409 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreewidget.cpp
|
| 1410 |
+
librecad/src/ui/dock_widgets/layers_tree/lc_layertreewidget.h
|
| 1411 |
+
librecad/src/ui/dock_widgets/lc_dockwidget.cpp
|
| 1412 |
+
librecad/src/ui/dock_widgets/lc_dockwidget.h
|
| 1413 |
+
librecad/src/ui/dock_widgets/lc_graphicviewawarewidget.cpp
|
| 1414 |
+
librecad/src/ui/dock_widgets/lc_graphicviewawarewidget.h
|
| 1415 |
+
librecad/src/ui/dock_widgets/library_widget/qg_librarywidget.cpp
|
| 1416 |
+
librecad/src/ui/dock_widgets/library_widget/qg_librarywidget.h
|
| 1417 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_peninforegistry.cpp
|
| 1418 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_peninforegistry.h
|
| 1419 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penitem.cpp
|
| 1420 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penitem.h
|
| 1421 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpalettedata.cpp
|
| 1422 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpalettedata.h
|
| 1423 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpalettemodel.cpp
|
| 1424 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpaletteoptions.cpp
|
| 1425 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpaletteoptionsdialog.cpp
|
| 1426 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpalettewidget.cpp
|
| 1427 |
+
librecad/src/ui/dock_widgets/pen_palette/lc_penpalettewidget.h
|
| 1428 |
+
librecad/src/ui/dock_widgets/pen_wizard/colorcombobox.cpp
|
| 1429 |
+
librecad/src/ui/dock_widgets/pen_wizard/colorcombobox.h
|
| 1430 |
+
librecad/src/ui/dock_widgets/pen_wizard/colorwizard.cpp
|
| 1431 |
+
librecad/src/ui/dock_widgets/pen_wizard/colorwizard.h
|
| 1432 |
+
librecad/src/ui/dock_widgets/pen_wizard/lc_penwizard.cpp
|
| 1433 |
+
librecad/src/ui/dock_widgets/pen_wizard/lc_penwizard.h
|
| 1434 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_dlgucslistoptions.cpp
|
| 1435 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_dlgucslistoptions.h
|
| 1436 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_dlgucsproperties.cpp
|
| 1437 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_dlgucsproperties.h
|
| 1438 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistbutton.cpp
|
| 1439 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistbutton.h
|
| 1440 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistmodel.cpp
|
| 1441 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistmodel.h
|
| 1442 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistoptions.cpp
|
| 1443 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistoptions.h
|
| 1444 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistwidget.cpp
|
| 1445 |
+
librecad/src/ui/dock_widgets/ucs_list/lc_ucslistwidget.h
|
| 1446 |
+
librecad/src/ui/dock_widgets/views_list/lc_dlgnamedviewslistoptions.cpp
|
| 1447 |
+
librecad/src/ui/dock_widgets/views_list/lc_dlgnamedviewslistoptions.h
|
| 1448 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewsbutton.cpp
|
| 1449 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewsbutton.h
|
| 1450 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewslistoptions.cpp
|
| 1451 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewslistwidget.cpp
|
| 1452 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewslistwidget.h
|
| 1453 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewsmodel.cpp
|
| 1454 |
+
librecad/src/ui/dock_widgets/views_list/lc_namedviewsmodel.h
|
| 1455 |
+
librecad/src/ui/dock_widgets/workspaces/lc_workspacelistbutton.cpp
|
| 1456 |
+
librecad/src/ui/dock_widgets/workspaces/lc_workspacelistbutton.h
|
| 1457 |
+
librecad/src/ui/lc_actionhandlerfactory.cpp
|
| 1458 |
+
librecad/src/ui/lc_actionhandlerfactory.h
|
| 1459 |
+
librecad/src/ui/lc_snapmanager.cpp
|
| 1460 |
+
librecad/src/ui/lc_snapmanager.h
|
| 1461 |
+
librecad/src/ui/lc_uiutils.cpp
|
| 1462 |
+
librecad/src/ui/lc_uiutils.h
|
| 1463 |
+
librecad/src/ui/main/fontviewer/lc_fontfileviewer.cpp
|
| 1464 |
+
librecad/src/ui/main/fontviewer/lc_fontfileviewer.h
|
| 1465 |
+
librecad/src/ui/main/init/lc_actionfactory.cpp
|
| 1466 |
+
librecad/src/ui/main/init/lc_actionfactory.h
|
| 1467 |
+
librecad/src/ui/main/init/lc_applicationwindowinitializer.cpp
|
| 1468 |
+
librecad/src/ui/main/init/lc_applicationwindowinitializer.h
|
| 1469 |
+
librecad/src/ui/main/init/lc_menufactory.cpp
|
| 1470 |
+
librecad/src/ui/main/init/lc_menufactory.h
|
| 1471 |
+
librecad/src/ui/main/init/lc_toolbarfactory.cpp
|
| 1472 |
+
librecad/src/ui/main/init/lc_toolbarfactory.h
|
| 1473 |
+
librecad/src/ui/main/init/lc_widgetfactory.cpp
|
| 1474 |
+
librecad/src/ui/main/init/lc_widgetfactory.h
|
| 1475 |
+
librecad/src/ui/main/lc_appwindowaware.cpp
|
| 1476 |
+
librecad/src/ui/main/lc_appwindowaware.h
|
| 1477 |
+
librecad/src/ui/main/lc_defaultactioncontext.cpp
|
| 1478 |
+
librecad/src/ui/main/lc_defaultactioncontext.h
|
| 1479 |
+
librecad/src/ui/main/lc_mdiapplicationwindow.cpp
|
| 1480 |
+
librecad/src/ui/main/lc_mdiapplicationwindow.h
|
| 1481 |
+
librecad/src/ui/main/mainwindowx.cpp
|
| 1482 |
+
librecad/src/ui/main/mainwindowx.h
|
| 1483 |
+
librecad/src/ui/main/persistence/lc_documentsstorage.cpp
|
| 1484 |
+
librecad/src/ui/main/persistence/lc_documentsstorage.h
|
| 1485 |
+
librecad/src/ui/main/qc_applicationwindow.cpp
|
| 1486 |
+
librecad/src/ui/main/qc_applicationwindow.h
|
| 1487 |
+
librecad/src/ui/main/qc_mdiwindow.cpp
|
| 1488 |
+
librecad/src/ui/main/qc_mdiwindow.h
|
| 1489 |
+
librecad/src/ui/main/release_check/lc_releasechecker.cpp
|
| 1490 |
+
librecad/src/ui/main/release_check/lc_releasechecker.h
|
| 1491 |
+
librecad/src/ui/main/support/lc_appwindowdialogsinvoker.cpp
|
| 1492 |
+
librecad/src/ui/main/support/lc_appwindowdialogsinvoker.h
|
| 1493 |
+
librecad/src/ui/main/support/lc_customstylehelper.cpp
|
| 1494 |
+
librecad/src/ui/main/support/lc_customstylehelper.h
|
| 1495 |
+
librecad/src/ui/main/support/lc_gridviewinvoker.cpp
|
| 1496 |
+
librecad/src/ui/main/support/lc_gridviewinvoker.h
|
| 1497 |
+
librecad/src/ui/main/support/lc_infocursorsettingsmanager.cpp
|
| 1498 |
+
librecad/src/ui/main/support/lc_infocursorsettingsmanager.h
|
| 1499 |
+
librecad/src/ui/main/support/lc_lastopenfilesopener.cpp
|
| 1500 |
+
librecad/src/ui/main/support/lc_lastopenfilesopener.h
|
| 1501 |
+
librecad/src/ui/main/support/qg_recentfiles.cpp
|
| 1502 |
+
librecad/src/ui/main/support/qg_recentfiles.h
|
| 1503 |
+
librecad/src/ui/main/workspaces/lc_workspacesinvoker.cpp
|
| 1504 |
+
librecad/src/ui/main/workspaces/lc_workspacesinvoker.h
|
| 1505 |
+
librecad/src/ui/main/workspaces/lc_workspacesmanager.cpp
|
| 1506 |
+
librecad/src/ui/main/workspaces/lc_workspacesmanager.h
|
| 1507 |
+
librecad/src/ui/not_used/LC_DlgParabola.cpp
|
| 1508 |
+
librecad/src/ui/qg_actionhandler.cpp
|
| 1509 |
+
librecad/src/ui/qg_actionhandler.h
|
| 1510 |
+
librecad/src/ui/view/lc_centralwidget.cpp
|
| 1511 |
+
librecad/src/ui/view/lc_centralwidget.h
|
| 1512 |
+
librecad/src/ui/view/lc_printpreviewview.cpp
|
| 1513 |
+
librecad/src/ui/view/lc_printpreviewview.h
|
| 1514 |
+
librecad/src/ui/view/qg_graphicview.cpp
|
| 1515 |
+
librecad/src/ui/view/qg_graphicview.h
|
| 1516 |
+
)
|
| 1517 |
+
|
| 1518 |
+
set(MUPARSER_SOURCES
|
| 1519 |
+
libraries/muparser/include/muParser.h
|
| 1520 |
+
libraries/muparser/include/muParserBase.h
|
| 1521 |
+
libraries/muparser/include/muParserBytecode.h
|
| 1522 |
+
libraries/muparser/include/muParserCallback.h
|
| 1523 |
+
libraries/muparser/include/muParserDLL.h
|
| 1524 |
+
libraries/muparser/include/muParserDef.h
|
| 1525 |
+
libraries/muparser/include/muParserError.h
|
| 1526 |
+
libraries/muparser/include/muParserFixes.h
|
| 1527 |
+
libraries/muparser/include/muParserInt.h
|
| 1528 |
+
libraries/muparser/include/muParserTemplateMagic.h
|
| 1529 |
+
libraries/muparser/include/muParserToken.h
|
| 1530 |
+
libraries/muparser/include/muParserTokenReader.h
|
| 1531 |
+
libraries/muparser/src/muParser.cpp
|
| 1532 |
+
libraries/muparser/src/muParserBase.cpp
|
| 1533 |
+
libraries/muparser/src/muParserBytecode.cpp
|
| 1534 |
+
libraries/muparser/src/muParserCallback.cpp
|
| 1535 |
+
libraries/muparser/src/muParserDLL.cpp
|
| 1536 |
+
libraries/muparser/src/muParserError.cpp
|
| 1537 |
+
libraries/muparser/src/muParserInt.cpp
|
| 1538 |
+
libraries/muparser/src/muParserTokenReader.cpp
|
| 1539 |
+
)
|
| 1540 |
+
|
| 1541 |
+
# Static library from shared sources
|
| 1542 |
+
qt_add_library(librecad_lib STATIC
|
| 1543 |
+
${MUPARSER_SOURCES}
|
| 1544 |
+
${SHARED_SOURCES}
|
| 1545 |
+
)
|
| 1546 |
+
target_compile_definitions(librecad_lib PRIVATE
|
| 1547 |
+
DWGSUPPORT
|
| 1548 |
+
MUPARSER_STATIC
|
| 1549 |
+
LC_VERSION=2.2.2.5-alpha
|
| 1550 |
+
LC_PRERELEASE=true
|
| 1551 |
+
)
|
| 1552 |
+
target_include_directories(librecad_lib PRIVATE
|
| 1553 |
+
${SHARED_INCLUDES}
|
| 1554 |
+
${MUPARSER_SOURCES}
|
| 1555 |
+
)
|
| 1556 |
+
|
| 1557 |
+
target_link_libraries(librecad_lib PRIVATE
|
| 1558 |
+
Qt6::Core Qt6::Widgets Qt6::Gui Qt6::PrintSupport Qt6::Svg Qt6::Network
|
| 1559 |
+
)
|
| 1560 |
+
set_property(TARGET librecad_lib PROPERTY AUTOUIC_OPTIONS --connections string)
|
| 1561 |
+
|
| 1562 |
+
if(WIN32)
|
| 1563 |
+
target_compile_definitions(librecad_lib PRIVATE _USE_MATH_DEFINES)
|
| 1564 |
+
endif()
|
| 1565 |
+
|
| 1566 |
+
set(MAIN_SOURCES
|
| 1567 |
+
librecad/src/main/main.cpp
|
| 1568 |
+
librecad/src/main/console_dxf2pdf/console_dxf2pdf.cpp
|
| 1569 |
+
librecad/src/main/console_dxf2pdf/console_dxf2pdf.h
|
| 1570 |
+
librecad/src/main/console_dxf2pdf/pdf_print_loop.cpp
|
| 1571 |
+
librecad/src/main/console_dxf2pdf/pdf_print_loop.h
|
| 1572 |
+
librecad/src/main/console_dxf2png.cpp
|
| 1573 |
+
librecad/src/main/console_dxf2png.h
|
| 1574 |
+
librecad/src/ui/dialogs/main/qg_dlginitial.cpp
|
| 1575 |
+
librecad/src/ui/dialogs/main/qg_dlginitial.h
|
| 1576 |
+
${LIBRECAD_RES}
|
| 1577 |
+
)
|
| 1578 |
+
|
| 1579 |
+
# Main executable
|
| 1580 |
+
qt_add_executable(librecad
|
| 1581 |
+
${MAIN_SOURCES}
|
| 1582 |
+
)
|
| 1583 |
+
target_include_directories(librecad PRIVATE
|
| 1584 |
+
${SHARED_INCLUDES}
|
| 1585 |
+
)
|
| 1586 |
+
|
| 1587 |
+
target_link_libraries(librecad PRIVATE
|
| 1588 |
+
librecad_lib
|
| 1589 |
+
Qt6::Core Qt6::Widgets Qt6::Gui Qt6::PrintSupport Qt6::Svg Qt6::Network
|
| 1590 |
+
)
|
| 1591 |
+
install(TARGETS librecad RUNTIME DESTINATION bin)
|
| 1592 |
+
|
| 1593 |
+
# Translations
|
| 1594 |
+
set(TS_DIR librecad/ts)
|
| 1595 |
+
set(TS_FILES
|
| 1596 |
+
librecad/ts/librecad_ar.ts
|
| 1597 |
+
librecad/ts/librecad_ca.ts
|
| 1598 |
+
librecad/ts/librecad_cs.ts
|
| 1599 |
+
librecad/ts/librecad_da.ts
|
| 1600 |
+
librecad/ts/librecad_de.ts
|
| 1601 |
+
librecad/ts/librecad_el.ts
|
| 1602 |
+
librecad/ts/librecad_en_au.ts
|
| 1603 |
+
librecad/ts/librecad_en.ts
|
| 1604 |
+
librecad/ts/librecad_es_ar.ts
|
| 1605 |
+
librecad/ts/librecad_es_bo.ts
|
| 1606 |
+
librecad/ts/librecad_es_cl.ts
|
| 1607 |
+
librecad/ts/librecad_es_co.ts
|
| 1608 |
+
librecad/ts/librecad_es_cr.ts
|
| 1609 |
+
librecad/ts/librecad_es_do.ts
|
| 1610 |
+
librecad/ts/librecad_es_ec.ts
|
| 1611 |
+
librecad/ts/librecad_es_gt.ts
|
| 1612 |
+
librecad/ts/librecad_es_hn.ts
|
| 1613 |
+
librecad/ts/librecad_es_mx.ts
|
| 1614 |
+
librecad/ts/librecad_es_ni.ts
|
| 1615 |
+
librecad/ts/librecad_es_pa.ts
|
| 1616 |
+
librecad/ts/librecad_es_pe.ts
|
| 1617 |
+
librecad/ts/librecad_es_pr.ts
|
| 1618 |
+
librecad/ts/librecad_es_py.ts
|
| 1619 |
+
librecad/ts/librecad_es_sv.ts
|
| 1620 |
+
librecad/ts/librecad_es.ts
|
| 1621 |
+
librecad/ts/librecad_es_us.ts
|
| 1622 |
+
librecad/ts/librecad_es_uy.ts
|
| 1623 |
+
librecad/ts/librecad_es_ve.ts
|
| 1624 |
+
librecad/ts/librecad_et.ts
|
| 1625 |
+
librecad/ts/librecad_eu.ts
|
| 1626 |
+
librecad/ts/librecad_fi.ts
|
| 1627 |
+
librecad/ts/librecad_fr.ts
|
| 1628 |
+
librecad/ts/librecad_gl.ts
|
| 1629 |
+
librecad/ts/librecad_he.ts
|
| 1630 |
+
librecad/ts/librecad_hi.ts
|
| 1631 |
+
librecad/ts/librecad_hu.ts
|
| 1632 |
+
librecad/ts/librecad_id_ID.ts
|
| 1633 |
+
librecad/ts/librecad_it.ts
|
| 1634 |
+
librecad/ts/librecad_ja.ts
|
| 1635 |
+
librecad/ts/librecad_ka.ts
|
| 1636 |
+
librecad/ts/librecad_ko.ts
|
| 1637 |
+
librecad/ts/librecad_lv.ts
|
| 1638 |
+
librecad/ts/librecad_mk.ts
|
| 1639 |
+
librecad/ts/librecad_nl.ts
|
| 1640 |
+
librecad/ts/librecad_no.ts
|
| 1641 |
+
librecad/ts/librecad_pa.ts
|
| 1642 |
+
librecad/ts/librecad_pl.ts
|
| 1643 |
+
librecad/ts/librecad_pt_br.ts
|
| 1644 |
+
librecad/ts/librecad_pt_pt.ts
|
| 1645 |
+
librecad/ts/librecad_ro_ro.ts
|
| 1646 |
+
librecad/ts/librecad_ru.ts
|
| 1647 |
+
librecad/ts/librecad_sk.ts
|
| 1648 |
+
librecad/ts/librecad_sl.ts
|
| 1649 |
+
librecad/ts/librecad_sq_al.ts
|
| 1650 |
+
librecad/ts/librecad_sr.ts
|
| 1651 |
+
librecad/ts/librecad_sv.ts
|
| 1652 |
+
librecad/ts/librecad_ta.ts
|
| 1653 |
+
librecad/ts/librecad_th.ts
|
| 1654 |
+
librecad/ts/librecad_tr.ts
|
| 1655 |
+
librecad/ts/librecad_uk.ts
|
| 1656 |
+
librecad/ts/librecad_zh_cn.ts
|
| 1657 |
+
librecad/ts/librecad_zh_tw.ts
|
| 1658 |
+
)
|
| 1659 |
+
qt_add_translations(librecad TS_FILE_DIR ${TS_DIR} TS_FILES ${TS_FILES})
|
| 1660 |
+
|
| 1661 |
+
# Optional ttf2lff
|
| 1662 |
+
if(FREETYPE_FOUND AND NOT WIN32)
|
| 1663 |
+
add_executable(ttf2lff
|
| 1664 |
+
tools/ttf2lff/main.cpp)
|
| 1665 |
+
target_link_libraries(ttf2lff PRIVATE ${FREETYPE_LIBRARIES})
|
| 1666 |
+
target_include_directories(ttf2lff PRIVATE
|
| 1667 |
+
${FREETYPE_INCLUDE_DIRS}
|
| 1668 |
+
${SHARED_INCLUDES}
|
| 1669 |
+
)
|
| 1670 |
+
endif()
|
| 1671 |
+
|
| 1672 |
+
add_subdirectory(libraries/lciconengine)
|
| 1673 |
+
add_subdirectory(plugins)
|
| 1674 |
+
|
| 1675 |
+
option(BUILD_TESTS "Build unit tests for LibreCAD" OFF)
|
| 1676 |
+
|
| 1677 |
+
if(BUILD_TESTS)
|
| 1678 |
+
# Add Catch2 as a subdirectory (assumes Catch2 is in externals/Catch2)
|
| 1679 |
+
add_subdirectory(externals/Catch2)
|
| 1680 |
+
|
| 1681 |
+
# Define test executable
|
| 1682 |
+
qt_add_executable(librecad_tests
|
| 1683 |
+
# this is needed to allow testing methods used by main()
|
| 1684 |
+
# main() is excluded when BUILD_TEST=ON
|
| 1685 |
+
${MAIN_SOURCES}
|
| 1686 |
+
${LIBRECAD_RES}
|
| 1687 |
+
### The actual tests
|
| 1688 |
+
librecad/src/lib/engine/document/entities/tests/lc_splinehelper_tests.cpp
|
| 1689 |
+
librecad/src/lib/engine/document/entities/tests/lc_hyperbola_tests.cpp
|
| 1690 |
+
librecad/src/lib/engine/document/entities/tests/rs_ellipse_tests.cpp
|
| 1691 |
+
librecad/src/lib/engine/document/entities/tests/rs_spline_tests.cpp
|
| 1692 |
+
librecad/src/lib/math/tests/rs_math_tests.cpp
|
| 1693 |
+
librecad/src/lib/math/tests/lc_quadratic_tests.cpp
|
| 1694 |
+
)
|
| 1695 |
+
|
| 1696 |
+
# Include directories for rs_math.h and other dependencies
|
| 1697 |
+
target_include_directories(librecad_tests PRIVATE
|
| 1698 |
+
${SHARED_INCLUDES}
|
| 1699 |
+
)
|
| 1700 |
+
|
| 1701 |
+
# Link Catch2 and other required libraries (e.g., Boost, Qt)
|
| 1702 |
+
target_link_libraries(librecad_tests PRIVATE
|
| 1703 |
+
librecad_lib
|
| 1704 |
+
Catch2::Catch2WithMain
|
| 1705 |
+
Qt6::Core
|
| 1706 |
+
Qt6::Gui
|
| 1707 |
+
Qt6::Network
|
| 1708 |
+
Qt6::PrintSupport
|
| 1709 |
+
Qt6::Svg
|
| 1710 |
+
Qt6::Widgets
|
| 1711 |
+
)
|
| 1712 |
+
|
| 1713 |
+
# Enable C++17 for the test target (matching LibreCAD's standard)
|
| 1714 |
+
target_compile_features(librecad_tests PRIVATE cxx_std_17)
|
| 1715 |
+
# compiling time defines
|
| 1716 |
+
target_compile_definitions(librecad_tests PRIVATE BUILD_TESTS=1)
|
| 1717 |
+
endif()
|
CMakePresets.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 3,
|
| 3 |
+
"cmakeMinimumRequired": { "major": 3, "minor": 21 },
|
| 4 |
+
"configurePresets": [
|
| 5 |
+
{
|
| 6 |
+
"name": "x64-debug",
|
| 7 |
+
"displayName": "Debug-x64",
|
| 8 |
+
"generator": "Ninja",
|
| 9 |
+
"binaryDir": "${sourceDir}/build/${presetName}",
|
| 10 |
+
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }
|
| 11 |
+
},
|
| 12 |
+
{
|
| 13 |
+
"name": "x64-relwithdebug",
|
| 14 |
+
"displayName": "Rel-DbgInfo-x64",
|
| 15 |
+
"inherits": "x64-debug",
|
| 16 |
+
"cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" }
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "x64-release",
|
| 20 |
+
"displayName": "Rel-x64",
|
| 21 |
+
"inherits": "x64-debug",
|
| 22 |
+
"cacheVariables": { "CMAKE_BUILD_TYPE": "Release" }
|
| 23 |
+
}
|
| 24 |
+
],
|
| 25 |
+
"buildPresets": [
|
| 26 |
+
{
|
| 27 |
+
"name": "x64-debug",
|
| 28 |
+
"configurePreset": "x64-debug",
|
| 29 |
+
"jobs": 8
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "x64-relwithdebug",
|
| 33 |
+
"configurePreset": "x64-relwithdebug"
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"name": "x64-release",
|
| 37 |
+
"configurePreset": "x64-release"
|
| 38 |
+
}
|
| 39 |
+
]
|
| 40 |
+
}
|
ChangeLogs/ACTIONS_README.md
ADDED
|
@@ -0,0 +1,993 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
This pull request includes several handy actions for entities editing and modification (see below).
|
| 3 |
+
|
| 4 |
+
Actions are:
|
| 5 |
+
1) Draw Cross (https://youtu.be/H9Lul0J02a0)
|
| 6 |
+
2) Draw Star (https://youtu.be/bAD7kkAR5wA)
|
| 7 |
+
3) Draw Rectangle - 1 Point (https://youtu.be/eOscpTiWJMY)
|
| 8 |
+
4) Draw Rectangle - 2 Points (https://youtu.be/9bjBZAcEmVc)
|
| 9 |
+
4) Draw Rectangle - 3 Points (https://youtu.be/IJhG3Rz9U5o)
|
| 10 |
+
5) Draw Line of Points (https://youtu.be/8kDSSKg-vqU)
|
| 11 |
+
6) Draw Snake Line (https://youtu.be/bXom0IWw4R4)
|
| 12 |
+
7) Draw Snake (X) Line (https://youtu.be/bXom0IWw4R4)
|
| 13 |
+
8) Draw Snake (X) Line (https://youtu.be/bXom0IWw4R4)
|
| 14 |
+
9) Draw Angle From Line (https://youtu.be/ZcnIUXZdSBI)
|
| 15 |
+
10) Draw Orthogonal From Line (https://youtu.be/sfO2aUeQ_2E)
|
| 16 |
+
11) Draw Line from Point To Line (https://youtu.be/3bEWIryP6jQ)
|
| 17 |
+
12) Slice/Divide Line (https://youtu.be/z0I8N73aWFM)
|
| 18 |
+
13) Slice/Divide Circle/Arc (https://youtu.be/ILACvThv6I4)
|
| 19 |
+
14) Draw Circle by Arc (https://youtu.be/xSJnC-Mvczw)
|
| 20 |
+
15) Duplicate entity (https://youtu.be/xSJnC-Mvczw)
|
| 21 |
+
16) Lines Join (https://youtu.be/NCqodd0i_gE)
|
| 22 |
+
17) Break/Divide (line, arc, circle) https://youtu.be/_UHawUJXZe0
|
| 23 |
+
18) Line Gap (https://youtu.be/0Y0YsNSZIJA)
|
| 24 |
+
|
| 25 |
+
### Action Details
|
| 26 |
+
|
| 27 |
+
The following actions are included:
|
| 28 |
+
|
| 29 |
+
### Cross Action
|
| 30 |
+
|
| 31 |
+
This action draws cross for selected circle, arc, ellipse or ellipse arc. Intersection of cross lines is located in the center point of entity.
|
| 32 |
+
|
| 33 |
+
Cross is drawn using active pen and layer.
|
| 34 |
+
|
| 35 |
+
#### Example Video: https://youtu.be/H9Lul0J02a0
|
| 36 |
+
|
| 37 |
+
**Options:**
|
| 38 |
+
|
| 39 |
+
1) **X** - horizontal size value
|
| 40 |
+
|
| 41 |
+
2) **Y** - vertical size value
|
| 42 |
+
|
| 43 |
+
3) **Angle** - angle used to rotate the cross (between x-axis and horizontal line)
|
| 44 |
+
|
| 45 |
+
4) **Type** - defines type of cross size calculation. There are the following size types:
|
| 46 |
+
- **Extension** - cross extends selected entity on specified x and y values (so the lengths of lines is radius + specified x or y)
|
| 47 |
+
- **Total Length** - x and y values are considered as absolute length value
|
| 48 |
+
- **Percentage** - x and y values are considered as percentage of entity's radius
|
| 49 |
+
|
| 50 |
+
#### Existing Pre-Selection:
|
| 51 |
+
|
| 52 |
+
If there are selected entities during action's invocation, cross for each applicable entity type is created based previously on saved settings.
|
| 53 |
+
|
| 54 |
+
#### Command widget
|
| 55 |
+
Action is not fully scriptable, as requires mouse selection of entity.
|
| 56 |
+
|
| 57 |
+
#### Invocation Commands:
|
| 58 |
+
|
| 59 |
+
```cross``` or ```cx```
|
| 60 |
+
|
| 61 |
+
##### Action Commands:
|
| 62 |
+
|
| 63 |
+
No additional commands
|
| 64 |
+
|
| 65 |
+
#### Mouse + SHIFT mode:
|
| 66 |
+
No support
|
| 67 |
+
|
| 68 |
+
---
|
| 69 |
+
### Star Action
|
| 70 |
+
This action draws a star with given amount of rays. It is possible to create symmetric or non-symmetric star, and specify rounding radiuses for outer and inner vertexes.
|
| 71 |
+
|
| 72 |
+
Star is drawn using active pen and layer.
|
| 73 |
+
|
| 74 |
+
#### Example Video: https://youtu.be/bAD7kkAR5wA
|
| 75 |
+
|
| 76 |
+
#### Options:
|
| 77 |
+
|
| 78 |
+
1) **Symmetric** - flag that indicates whether star is symmetric
|
| 79 |
+
|
| 80 |
+
2) **Number** - number of rays (min is 3)
|
| 81 |
+
|
| 82 |
+
3) **Radius Outer** - Rounding radius for outer vertexes of rays (if any)
|
| 83 |
+
|
| 84 |
+
3) **Radius Inner**
|
| 85 |
+
Rounding radius for inner vertexes of rays (if any)
|
| 86 |
+
|
| 87 |
+
4) **Polyline** Flag indicates whether all elements of start should be drawn as individual entities or as single polyline.
|
| 88 |
+
|
| 89 |
+
#### Existing Selection:
|
| 90 |
+
|
| 91 |
+
No support
|
| 92 |
+
|
| 93 |
+
#### Command widget
|
| 94 |
+
|
| 95 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 96 |
+
|
| 97 |
+
##### Invocation Command:
|
| 98 |
+
|
| 99 |
+
```star``` or ```st```
|
| 100 |
+
|
| 101 |
+
##### Action Commands:
|
| 102 |
+
|
| 103 |
+
Positions for center of star, outer ray vertex and inner ray vertex may be entered as coordinates.
|
| 104 |
+
Also, the following commands are supported:
|
| 105 |
+
|
| 106 |
+
```number``` - specified amount of rays
|
| 107 |
+
|
| 108 |
+
```radius``` - allows to specify rounding radiuses
|
| 109 |
+
|
| 110 |
+
```sym``` - specified that star is symmetric
|
| 111 |
+
|
| 112 |
+
```nosym``` - specifies that start is not symmetric
|
| 113 |
+
|
| 114 |
+
```nopoly``` - do not create polyline
|
| 115 |
+
|
| 116 |
+
```usepoly``` - draw star as single polyline
|
| 117 |
+
|
| 118 |
+
#### Mouse + SHIFT mode:
|
| 119 |
+
For setting center point of star state of the action, allows snapping center to relative zero point.
|
| 120 |
+
|
| 121 |
+
----
|
| 122 |
+
### Draw Rectangle (1 Point) Action
|
| 123 |
+
This action draws a rectangle of specified size and places it into specified insertion point.
|
| 124 |
+
|
| 125 |
+
Rectangle is drawn using active pen and layer.
|
| 126 |
+
|
| 127 |
+
#### Example Video: https://youtu.be/eOscpTiWJMY
|
| 128 |
+
|
| 129 |
+
#### Options:
|
| 130 |
+
|
| 131 |
+
1) **Width** - width of rectangle
|
| 132 |
+
|
| 133 |
+
2) **Height** - height of rectangle
|
| 134 |
+
|
| 135 |
+
3) **Snap** - defines which part of rectangle will be used as as snap point (and so it will be placed into insertion point)
|
| 136 |
+
there are the following options for snap:
|
| 137 |
+
* **Top Left** - top left corner of rect
|
| 138 |
+
* **Top** - middle of top edge
|
| 139 |
+
* **Top-Right** - top-right corner
|
| 140 |
+
* **Left** - middle point of left edge
|
| 141 |
+
* **Middle** - central point of rectangle
|
| 142 |
+
* **Right** - middle point of right edge
|
| 143 |
+
* **Bottom-left** - bottom-left corner
|
| 144 |
+
* **Bottom** - middle of bottom edge
|
| 145 |
+
* **Bottom-Right** - bottom-right corner
|
| 146 |
+
4) **Base Angle** - rotation angle of rectangle (betwen x-axis and bottom edge)
|
| 147 |
+
5) **Polyline** - Flag indicates whether all elements of rectangle should be drawn as individual entities or as single polyline.
|
| 148 |
+
6) **Corners** - Defines now corners of rectangle should be drawn. The following options are available:
|
| 149 |
+
* **Straight** - normal 90 degrees corners
|
| 150 |
+
* **Round** - rounded (arc) corners with specified radius
|
| 151 |
+
* **Bevel** - bevels with specified size
|
| 152 |
+
7) **Edges** - for _Straight_ corner mode, allows to specify which edges of rectangle should be shown. If not all edges are set, it is possible to draw 2 parallel lines. Options are:
|
| 153 |
+
* **Both** - all edges are draws, so result is rect
|
| 154 |
+
* **Vertical** - only vertical edges are drawn, 2 parallel lines
|
| 155 |
+
* **Horizontal** - only horizontal edges are drawn, 2 parallel lines
|
| 156 |
+
9) **Radius** - for _Round_ corners mode, radius of rounding corners arcs
|
| 157 |
+
10) **Snap Shift** - for _Round_ corners mode, flag indicates that normal snap point should be adjusted and be located, say, not at the corner of rect, but in the center point of rounding arc
|
| 158 |
+
11) **Size inner** - for _Round_ corners mode, if set this flag indicates that size of rectangle should be applied not to outer size of rectangle, but for size between centers of rounding arcs.
|
| 159 |
+
12) **Length X** - for _Bevel_ corners mode, specifies bevel size by x-axis
|
| 160 |
+
13) **Length Y** - for _Bevel_ corners mode, specifies bevel size by y-axis
|
| 161 |
+
|
| 162 |
+
#### Existing Selection:
|
| 163 |
+
|
| 164 |
+
No support
|
| 165 |
+
|
| 166 |
+
#### Command widget
|
| 167 |
+
|
| 168 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 169 |
+
|
| 170 |
+
##### Invocation Command:
|
| 171 |
+
|
| 172 |
+
```rect1``` or ```re1```
|
| 173 |
+
|
| 174 |
+
##### Action Commands:
|
| 175 |
+
|
| 176 |
+
Position for insertion point may be entered as coordinates.
|
| 177 |
+
|
| 178 |
+
Also, the following commands are supported:
|
| 179 |
+
|
| 180 |
+
```width``` - initiates entering width
|
| 181 |
+
|
| 182 |
+
```height``` - initiates entering height
|
| 183 |
+
|
| 184 |
+
```size``` - initiates entering size of rect (as width, height pair, similar to coordinates)
|
| 185 |
+
|
| 186 |
+
```pos``` - switches to entering insertion point coordinates
|
| 187 |
+
|
| 188 |
+
```snap1``` - initiates entering snap mode for insertion point. Commands for snap point type are:
|
| 189 |
+
```topl, top, topr, left, middle, right, bottoml, bottom, bottomr```
|
| 190 |
+
|
| 191 |
+
```snapcorner``` - switches to snap to corner mode (opposite to ```snapshift```)
|
| 192 |
+
|
| 193 |
+
```snapshift``` - switches to snap to center of rounded corner arc mode (opposite to ```snapshift```)
|
| 194 |
+
|
| 195 |
+
```sizeout``` - switches sizes calculation relating to corners (opposite to ```sizein```)
|
| 196 |
+
|
| 197 |
+
```sizein``` - switches sizes calculation relating to centers of rounding arcs (opposite to ```sizeout```)
|
| 198 |
+
|
| 199 |
+
```angle``` - initiates entering of base angle of rect (angle from corner1 to corner2)
|
| 200 |
+
|
| 201 |
+
```radius``` - initiates entering rounding radius for corners
|
| 202 |
+
|
| 203 |
+
```bevels``` - initiates entering of bevels or setting bevels corners mode
|
| 204 |
+
|
| 205 |
+
```corners``` - initiates entering corners mode. Command values for corners are: ```str, round, bevels```
|
| 206 |
+
|
| 207 |
+
```edges``` - initiates entering corners mode. Command values for corners are: ```both, hor, vert```
|
| 208 |
+
|
| 209 |
+
```usepoly``` - draw rectangle as single polyline
|
| 210 |
+
|
| 211 |
+
```usepoly``` - disables drawing rect as polyline (so all elements are individual entities)
|
| 212 |
+
|
| 213 |
+
#### Mouse + SHIFT mode
|
| 214 |
+
If relative zero point is valid, uses it as rectangle insertion point.
|
| 215 |
+
|
| 216 |
+
----
|
| 217 |
+
### Draw Rectangle (2 Points) Action
|
| 218 |
+
This action draws a rectangle by specifying positions of two snap points (specified by settings) of rectangle.
|
| 219 |
+
Such customizable snapping mode allows better positioning of created rectangle.
|
| 220 |
+
|
| 221 |
+
Rectangle is drawn using active pen and layer.
|
| 222 |
+
|
| 223 |
+
#### Example Video: https://youtu.be/9bjBZAcEmVc
|
| 224 |
+
|
| 225 |
+
#### Options:
|
| 226 |
+
|
| 227 |
+
1) **Start Snap** - defines which part of rectangle will be used as a first snap point (and so it will be placed into insertion point)
|
| 228 |
+
there are the following options for snap:
|
| 229 |
+
* **Corner** - corner of rectangle
|
| 230 |
+
* **Mid-Vertical** - middle of vertical edge
|
| 231 |
+
* **Mid-Horizontal** - middle point of horizontal edge
|
| 232 |
+
* **Middle** - central point of rectangle
|
| 233 |
+
2) **End Snap** - defines which part of rectangle will be used as a first snap point (and so it will be placed into insertion point)
|
| 234 |
+
there are the following options for snap:
|
| 235 |
+
* **Corner** - corner of rectangle
|
| 236 |
+
* **Mid-Vertical** - middle of vertical edge
|
| 237 |
+
* **Mid-Horizontal** - middle point of horizontal edge
|
| 238 |
+
* **Middle** - central point of rectangle
|
| 239 |
+
4) **Base Angle** - rotation angle of rectangle (between x-axis and bottom edge)
|
| 240 |
+
5) **Polyline** - Flag indicates whether all elements of rectangle should be drawn as individual entities or as single polyline.
|
| 241 |
+
6) **Corners** - Defines now corners of rectangle should be drawn. The following options are available:
|
| 242 |
+
* **Straight** - normal 90 degrees corners
|
| 243 |
+
* **Round** - rounded (arc) corners with specified radius
|
| 244 |
+
* **Bevel** - bevels with specified size
|
| 245 |
+
7) **Edges** - for _Straight_ corner mode, allows to specify which edges of rectangle should be shown. If not all edges are set, it is possible to draw 2 parallel lines. Options are:
|
| 246 |
+
* **Both** - all edges are draws, so result is rect
|
| 247 |
+
* **Vertical** - only vertical edges are drawn, 2 parallel lines
|
| 248 |
+
* **Horizontal** - only horizontal edges are drawn, 2 parallel lines
|
| 249 |
+
9) **Radius** - for _Round_ corners mode, radius of rounding corners arcs
|
| 250 |
+
10) **Snap Shift** - for _Round_ corners mode, flag indicates that normal snap point should be adjusted and be located, say, not at the corner of rect, but in the center point of rounding arc
|
| 251 |
+
12) **Length X** - for _Bevel_ corners mode, specifies bevel size by x-axis
|
| 252 |
+
13) **Length Y** - for _Bevel_ corners mode, specifies bevel size by y-axis
|
| 253 |
+
|
| 254 |
+
|
| 255 |
+
#### Existing Selection:
|
| 256 |
+
|
| 257 |
+
No support
|
| 258 |
+
|
| 259 |
+
#### Command widget
|
| 260 |
+
|
| 261 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 262 |
+
|
| 263 |
+
##### Invocation Command:
|
| 264 |
+
|
| 265 |
+
```rect2``` or ```re2```
|
| 266 |
+
|
| 267 |
+
##### Action Commands:
|
| 268 |
+
|
| 269 |
+
Position for start snap point and end snap point may be entered as coordinates.
|
| 270 |
+
|
| 271 |
+
Also, the following commands are supported:
|
| 272 |
+
|
| 273 |
+
```snap1``` - starts entering of snap mode for point 1. Options for snap point type are:
|
| 274 |
+
```corner, mid-vert, mid-hor, middle```
|
| 275 |
+
|
| 276 |
+
```snap2``` - starts entering of snap mode for point 1. Options for snap point type are:
|
| 277 |
+
```corner, mid-vert, mid-hor, middle```
|
| 278 |
+
|
| 279 |
+
```size``` - initiates entering size of rect (as width, height pair, similar to coordinates)
|
| 280 |
+
|
| 281 |
+
```pos``` - switches to entering insertion point coordinates
|
| 282 |
+
|
| 283 |
+
```snapcorner``` - switches to snap to corner mode (opposite to ```snapshift```)
|
| 284 |
+
|
| 285 |
+
```snapshift``` - switches to snap to center of rounded corner arc mode (opposite to ```snapshift```)
|
| 286 |
+
|
| 287 |
+
```angle``` - initiates entering of base angle of rect (angle from corner1 to corner2)
|
| 288 |
+
|
| 289 |
+
```radius``` - initiates entering rounding radius for corners
|
| 290 |
+
|
| 291 |
+
```bevels``` - initiates entering of bevels or setting bevels corners mode
|
| 292 |
+
|
| 293 |
+
```corners``` - initiates entering corners mode. Command values for corners are: ```str, round, bevels```
|
| 294 |
+
|
| 295 |
+
```edges``` - initiates entering corners mode. Command values for corners are: ```both, hor, vert```
|
| 296 |
+
|
| 297 |
+
```usepoly``` - draw rectangle as single polyline
|
| 298 |
+
|
| 299 |
+
```usepoly``` - disables drawing rect as polyline (so all elements are individual entities)
|
| 300 |
+
|
| 301 |
+
#### Mouse + SHIFT mode
|
| 302 |
+
Depends on state of the action.
|
| 303 |
+
|
| 304 |
+
1) For setting first snap point - uses relative zero point as first snap point.
|
| 305 |
+
2) For setting second snap point - draws SQUARE instead of rectangle.
|
| 306 |
+
|
| 307 |
+
---
|
| 308 |
+
### Draw Rectangle (3 Points) Action
|
| 309 |
+
This action draws a rectangle or quadrangle by specifying positions of 3 corner points.
|
| 310 |
+
|
| 311 |
+
Rectangle is drawn using active pen and layer.
|
| 312 |
+
|
| 313 |
+
#### Example Video: https://youtu.be/IJhG3Rz9U5o
|
| 314 |
+
|
| 315 |
+
#### Options:
|
| 316 |
+
|
| 317 |
+
1) **Quadrangle** - flag that indicates that quadrangle (non 90 degree angle between edges) should be created instead of rectangle
|
| 318 |
+
2) **Fixed inner angle** - for _Quadrangle_ mode - defines (if any) inner angle of quadrangle (angle between edges)
|
| 319 |
+
3) **Fixed Base Angle** - if specified, base angle (between bottom edge and x-axis) is fixed to specified angle value. If not set, the angle is defined by points for first and second corners.
|
| 320 |
+
5) **Polyline** - Flag indicates whether all elements of rectangle should be drawn as individual entities or as single polyline.
|
| 321 |
+
6) **Corners** - for _Rectangle_ mode - Defines now corners of rectangle should be drawn. The following options are available:
|
| 322 |
+
* **Straight** - normal 90 degrees corners
|
| 323 |
+
* **Round** - rounded (arc) corners with specified radius
|
| 324 |
+
* **Bevel** - bevels with specified size
|
| 325 |
+
7) **Edges** - for _Straight_ corner mode, allows to specify which edges of rectangle should be shown. If not all edges are set, it is possible to draw 2 parallel lines. Options are:
|
| 326 |
+
* **Both** - all edges are draws, so result is rect
|
| 327 |
+
* **Vertical** - only vertical edges are drawn, 2 parallel lines
|
| 328 |
+
* **Horizontal** - only horizontal edges are drawn, 2 parallel lines
|
| 329 |
+
9) **Radius** - for _Round_ corners mode, radius of rounding corners arcs
|
| 330 |
+
10) **Snap Shift** - for _Round_ corners mode, flag indicates that normal snap point should be adjusted and be located, say, not at the corner of rect, but in the center point of rounding arc
|
| 331 |
+
12) **Length X** - for _Bevel_ corners mode, specifies bevel size by x-axis
|
| 332 |
+
13) **Length Y** - for _Bevel_ corners mode, specifies bevel size by y-axis
|
| 333 |
+
|
| 334 |
+
#### Existing Selection:
|
| 335 |
+
|
| 336 |
+
No support
|
| 337 |
+
|
| 338 |
+
#### Command widget
|
| 339 |
+
|
| 340 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 341 |
+
|
| 342 |
+
##### Invocation Command:
|
| 343 |
+
|
| 344 |
+
```rect3``` or ```re3```
|
| 345 |
+
|
| 346 |
+
##### Action Commands:
|
| 347 |
+
|
| 348 |
+
Position for start snap point and end snap point may be entered as coordinates.
|
| 349 |
+
|
| 350 |
+
Also, the following commands are supported:
|
| 351 |
+
|
| 352 |
+
```pos``` - switches to entering insertion point coordinates
|
| 353 |
+
|
| 354 |
+
```quad``` - sets quadrangle mode
|
| 355 |
+
|
| 356 |
+
```noquad``` - sets rectangle mode
|
| 357 |
+
|
| 358 |
+
```angle_inner``` - starts entering of inner angle for quadrangle (and enables quadrangle mode)
|
| 359 |
+
|
| 360 |
+
```width``` - starts entering width value
|
| 361 |
+
|
| 362 |
+
```height``` - starts entering height value
|
| 363 |
+
|
| 364 |
+
```size``` - initiates entering size of rect (as width, height pair, similar to coordinates)
|
| 365 |
+
|
| 366 |
+
```snapcorner``` - switches to snap to corner mode (opposite to ```snapshift```)
|
| 367 |
+
|
| 368 |
+
```snapshift``` - switches to snap to center of rounded corner arc mode (opposite to ```snapshift```)
|
| 369 |
+
|
| 370 |
+
```angle``` - initiates entering of base angle of rect (angle from corner1 to corner2)
|
| 371 |
+
|
| 372 |
+
```radius``` - initiates entering rounding radius for corners
|
| 373 |
+
|
| 374 |
+
```bevels``` - initiates entering of bevels or setting bevels corners mode
|
| 375 |
+
|
| 376 |
+
```corners``` - initiates entering corners mode. Command values for corners are: ```str, round, bevels```
|
| 377 |
+
|
| 378 |
+
```edges``` - initiates entering corners mode. Command values for corners are: ```both, hor, vert```
|
| 379 |
+
|
| 380 |
+
```usepoly``` - draw rectangle as single polyline
|
| 381 |
+
|
| 382 |
+
```usepoly``` - disables drawing rect as polyline (so all elements are individual entities)
|
| 383 |
+
|
| 384 |
+
#### Mouse + SHIFT mode
|
| 385 |
+
Depends on state of the action.
|
| 386 |
+
|
| 387 |
+
1) For setting first corner - uses relative zero point as first snap point.
|
| 388 |
+
2) For setting second corner - uses Angle snap (similar to line) for defining base angle of rectangle
|
| 389 |
+
2) For setting third corner - draws SQUARE instead of rectangle.
|
| 390 |
+
|
| 391 |
+
---
|
| 392 |
+
### Draw Line of Points Action
|
| 393 |
+
This action draws a set of points located on the same line. Distance between points may be either fixed or calculated based on specified number of points.
|
| 394 |
+
|
| 395 |
+
Rectangle is drawn using active pen and layer.
|
| 396 |
+
|
| 397 |
+
#### Example Video: https://youtu.be/8kDSSKg-vqU
|
| 398 |
+
|
| 399 |
+
#### Options:
|
| 400 |
+
|
| 401 |
+
3) **Angle** - if specified, defines direction angle for the line
|
| 402 |
+
1) **Number of Points** - amount of inner (non-edge) points to draw (not always applicable).
|
| 403 |
+
2) **Fixed Distance** - flag that indicates whether distance between points is fixed (otherwise, it's calculated based on length of line and number of points)
|
| 404 |
+
3) **Fit Line** - for _Fixed Distance_ mode. If enabled, amount of points will be determined dynamically based on the length of line and distance. If disabled - only specified number of points will be created.
|
| 405 |
+
6) **Edge Points** - defines how to draw points on edge points of line.
|
| 406 |
+
* **None** - no points are in start and end point of line
|
| 407 |
+
* **Both** - points are placed in start and end points of line
|
| 408 |
+
* **Start** - point is in start point, no point in end point
|
| 409 |
+
* **End** - point in end point, no point in start point of line
|
| 410 |
+
|
| 411 |
+
#### Existing Selection:
|
| 412 |
+
|
| 413 |
+
No support
|
| 414 |
+
|
| 415 |
+
#### Command widget
|
| 416 |
+
|
| 417 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 418 |
+
|
| 419 |
+
##### Invocation Command:
|
| 420 |
+
|
| 421 |
+
```linepoints``` or ```lpoints```
|
| 422 |
+
|
| 423 |
+
##### Action Commands:
|
| 424 |
+
|
| 425 |
+
Position for start point of line and end point line may be entered as coordinates.
|
| 426 |
+
|
| 427 |
+
The following commands are supported:
|
| 428 |
+
|
| 429 |
+
```angle``` - initiates entering of line angle
|
| 430 |
+
|
| 431 |
+
```x``` - fixes direction of line to horizontal and ask for entering line length
|
| 432 |
+
|
| 433 |
+
```y``` - fixes direction of line to vertical and ask for entering line length
|
| 434 |
+
|
| 435 |
+
```p``` - switches line to free direction (point) as it is supported by default line drawing action. Default directions mode
|
| 436 |
+
|
| 437 |
+
```number``` - initiates entering number of points
|
| 438 |
+
|
| 439 |
+
```dist_fixed``` - switches to fixed distance mode between points
|
| 440 |
+
|
| 441 |
+
```dist_flex``` - switches to calculated distance mode between points (opposite to _dist_fixed_)
|
| 442 |
+
|
| 443 |
+
```distance``` - for _Fixed Points Distance_ mode, initiates entering distance between points
|
| 444 |
+
|
| 445 |
+
```fit``` - for fixed distance mode, ensures that all point are within the line defined by start and end point. Option for number of points is ignored.
|
| 446 |
+
|
| 447 |
+
```nofit``` - for fixed distance mode, indicates creation of point according to distance between points and number of points starting from start point of line. Endpoint of line is used for specifying line direction only.
|
| 448 |
+
|
| 449 |
+
```edges``` - initiates entering edge points mode. Command values for corners are: ```none, both, start, end```. There is also shortcuts for edge points mode, single commands as ```edge_none, edge_both, edge_start, edge_end```
|
| 450 |
+
|
| 451 |
+
#### Mouse + SHIFT mode
|
| 452 |
+
Depends on state of the action.
|
| 453 |
+
|
| 454 |
+
1) For setting first point state - uses relative zero point as first snap point.
|
| 455 |
+
2) For setting second point state
|
| 456 |
+
- if angle of line is not fixed - uses Angle snap (with 15 degrees step) for defining angle of line
|
| 457 |
+
- if angle of line is fixed - uses angle that is mirrored to specified (180 degrees - angle)
|
| 458 |
+
|
| 459 |
+
---
|
| 460 |
+
### Draw Snake Line Action
|
| 461 |
+
This action draws a set of line segments (similar to standard draw line action). The major intent of this action - simpler usage via command widget, as well as support of fixed angle direction.
|
| 462 |
+
Action is the most suitable for drawing the set of horizontal/vertical lines, as it automatically switch direction mode.
|
| 463 |
+
|
| 464 |
+
Rectangle is drawn using active pen and layer.
|
| 465 |
+
|
| 466 |
+
#### Example Video: https://youtu.be/bXom0IWw4R4
|
| 467 |
+
|
| 468 |
+
#### Options:
|
| 469 |
+
|
| 470 |
+
1) **Direction** - controls direction of line drawing. The following modes are supported:
|
| 471 |
+
* **X** - horizontal line segment will be drawn, and after setting endpoint of it direction will be switched to Y
|
| 472 |
+
* **Y** - vertical line segment will be drawn, and after setting endpoint of it direction will be switched to X
|
| 473 |
+
* **Point** - line segment will be drawn in arbitrary direction (as in default draw line action)
|
| 474 |
+
* **Angle** - line segment will be drawn in specified angle
|
| 475 |
+
2) * **Rel** - if _Angle_ direction is set, flag indicates whether angle value is absolute or relative to previous segment
|
| 476 |
+
|
| 477 |
+
Also, it's possible to close line, create polyline and perform undo/redo operations via options buttons.
|
| 478 |
+
|
| 479 |
+
#### Existing Selection:
|
| 480 |
+
|
| 481 |
+
No support
|
| 482 |
+
|
| 483 |
+
#### Command widget
|
| 484 |
+
|
| 485 |
+
Action is fully scriptable and operations may be performed via command widget only.
|
| 486 |
+
|
| 487 |
+
##### Invocation Command:
|
| 488 |
+
|
| 489 |
+
```sline``` or ```sli``` or ```sl```
|
| 490 |
+
|
| 491 |
+
##### Action Commands:
|
| 492 |
+
|
| 493 |
+
Position for start point of line and end point of line segment may be entered as coordinates.
|
| 494 |
+
|
| 495 |
+
The following commands are supported:
|
| 496 |
+
|
| 497 |
+
```x``` - fixes direction of line to horizontal and ask for entering segment length
|
| 498 |
+
|
| 499 |
+
```y``` - fixes direction of line to vertical and ask for entering segment length
|
| 500 |
+
|
| 501 |
+
```p``` - switches line to free direction (point) as it is supported by default line drawing action. Default directions mode
|
| 502 |
+
|
| 503 |
+
```angle``` - initiates entering of line angle
|
| 504 |
+
|
| 505 |
+
```anglerel``` - specifies that relative angle should be used
|
| 506 |
+
|
| 507 |
+
```close``` - closes the line if possible (by connecting enpoint of last segment and start point of first segment)
|
| 508 |
+
|
| 509 |
+
```undo``` - perform undo operation and removes last segment
|
| 510 |
+
|
| 511 |
+
```redo``` - performs re-do operation if possible
|
| 512 |
+
|
| 513 |
+
```start``` - switches action to setting new start point of line segment
|
| 514 |
+
|
| 515 |
+
```polyline```or ```pl``` - creates polyline
|
| 516 |
+
|
| 517 |
+
#### Mouse + SHIFT mode
|
| 518 |
+
Depends on state of the action.
|
| 519 |
+
|
| 520 |
+
1) For setting start point state - uses relative zero point as first snap point.
|
| 521 |
+
2) For setting second point state
|
| 522 |
+
- if angle of line is not fixed - uses Angle snap (with 15 degrees step) for defining angle of line
|
| 523 |
+
- if angle of line is fixed - uses angle that is mirrored to specified (180 degrees - angle)
|
| 524 |
+
|
| 525 |
+
---
|
| 526 |
+
### Draw Snake (X) Line Action
|
| 527 |
+
This action is actually the same as **Snake Line**, except that it starts new segment series with X-mode
|
| 528 |
+
enabled by default, so it is convenient for drawing horizontal lines.
|
| 529 |
+
|
| 530 |
+
#### Example Video: https://youtu.be/bXom0IWw4R4
|
| 531 |
+
|
| 532 |
+
##### Invocation Command:
|
| 533 |
+
|
| 534 |
+
```slinex``` or ```slix``` or ```slx```
|
| 535 |
+
|
| 536 |
+
---
|
| 537 |
+
### Draw Snake (Y) Line Action
|
| 538 |
+
This action is actually the same as **Snake Line**, except that it starts new segment series with Y-mode
|
| 539 |
+
enabled by default, so it is convenient for drawing vertical lines.
|
| 540 |
+
|
| 541 |
+
#### Example Video: https://youtu.be/bXom0IWw4R4
|
| 542 |
+
|
| 543 |
+
##### Invocation Command:
|
| 544 |
+
|
| 545 |
+
```sliney``` or ```sliy``` or ```sly```
|
| 546 |
+
|
| 547 |
+
---
|
| 548 |
+
### Draw Angle From Line Action
|
| 549 |
+
This action draws a line that is directed by specific angle to selected line. In general, it is similar to **Relative Angle** action, however:
|
| 550 |
+
* it has fine-grained support of positioning angle line within base line
|
| 551 |
+
* allows specifying length of angle line by value and by mouse
|
| 552 |
+
* support both absolute and relative angles
|
| 553 |
+
* can create angle line with some offset from base line
|
| 554 |
+
* can divide base line to two segments based on lines intersection points
|
| 555 |
+
|
| 556 |
+
Line is drawn using active pen and layer.
|
| 557 |
+
|
| 558 |
+
#### Example Video: https://youtu.be/ZcnIUXZdSBI
|
| 559 |
+
|
| 560 |
+
#### Options:
|
| 561 |
+
|
| 562 |
+
1) **Length** - length of angle line
|
| 563 |
+
2) **Free** - if this flag is enabled, instead of fixed lenght of angle line, the user should specify end point of angle line
|
| 564 |
+
3) **Angle** - angle value
|
| 565 |
+
5) **Rel** - Flag that controls whether absolute (from x-axis) or relative (taking into consideration own angle of base line) angle should be used.
|
| 566 |
+
6) **Line Snap** - defines which snap point on base line should be used. Values are:
|
| 567 |
+
* **Free** - any point within base line, the user should select it
|
| 568 |
+
* **Start** - start point of base line
|
| 569 |
+
* **Middle** - middle point of base line
|
| 570 |
+
* **End** - end point of base line
|
| 571 |
+
3) **Snap Distance** - distance from snap point on the base line to the point where angle line will intersect with base line. Not applicable for _Free_ Line Snap mode.
|
| 572 |
+
7) **Tick Snap** - defines which point on angle line should be used as snap (intersection) on base line. Values are:
|
| 573 |
+
* **Start** - start point of angle line will be snapped to base line
|
| 574 |
+
* **Middle** - middle point of angle line will be snapped to base line
|
| 575 |
+
* **End** - end point of angle line will be snapped to base line
|
| 576 |
+
9) **Offset** - value of offset of the angle line snap point from base line (so it is possible to have a gap between line, if needed)
|
| 577 |
+
10) **Divide** - if this flag is set, base line will be divided on two line segments, based on intersection point between angle line and base line.
|
| 578 |
+
|
| 579 |
+
#### Existing Selection:
|
| 580 |
+
|
| 581 |
+
No support
|
| 582 |
+
|
| 583 |
+
#### Command widget
|
| 584 |
+
|
| 585 |
+
Action is not scriptable, as it requires selection of base line by mouse.
|
| 586 |
+
|
| 587 |
+
##### Invocation Command:
|
| 588 |
+
|
| 589 |
+
```angleline``` or ```aline```
|
| 590 |
+
|
| 591 |
+
##### Action Commands:
|
| 592 |
+
|
| 593 |
+
No additional commands are supportes.
|
| 594 |
+
|
| 595 |
+
#### Mouse + SHIFT mode
|
| 596 |
+
|
| 597 |
+
Uses alternative mirrored angle (180-angle) instead of specified one.
|
| 598 |
+
|
| 599 |
+
---
|
| 600 |
+
### Draw Orthogonal From Line Action
|
| 601 |
+
This action is actually the same as **Angle From Line**, except that angle is fixed and is 90 degrees
|
| 602 |
+
so it is convenient for creation of perpendicular lines.
|
| 603 |
+
|
| 604 |
+
#### Example Video: https://youtu.be/sfO2aUeQ_2E
|
| 605 |
+
|
| 606 |
+
##### Invocation Command:
|
| 607 |
+
|
| 608 |
+
```ortline``` or ```oline```
|
| 609 |
+
|
| 610 |
+
|
| 611 |
+
---
|
| 612 |
+
### Draw line From Point To Line Action
|
| 613 |
+
This action draws a line from selected point to specified target line, with possibility to specify the angle of intersection of base line and created line.
|
| 614 |
+
|
| 615 |
+
Line is drawn using active pen and layer.
|
| 616 |
+
|
| 617 |
+
#### Example Video: https://youtu.be/3bEWIryP6jQ
|
| 618 |
+
|
| 619 |
+
#### Options:
|
| 620 |
+
|
| 621 |
+
1) **Orthogonal** - if flag is set, the action will create a line that is perpendicular to target line and that starts in selected point.
|
| 622 |
+
2) **Angle** - if not perpendicular mode, specifies that angle between created line and target line.
|
| 623 |
+
3) **Size** - defines which size of created line should be used. Values are:
|
| 624 |
+
* **To intersection** - line will be created from selected point to intersection with target line
|
| 625 |
+
* **Fixed Length** - fixed length line will be created from selected point in direction to intersection with target line
|
| 626 |
+
4) **Length** - applicable for _Fixed Length_ mode, represents a length of created line.
|
| 627 |
+
6) **Tick Snap** - applicable for _Fixed Length_ mode, defines which point on created line should be used as snap point (located in initial point). Values are
|
| 628 |
+
* **Start** - start point of created line will be snapped to initial point
|
| 629 |
+
* **Middle** - middle point of created line will be snapped to initial point
|
| 630 |
+
* **End** - end point of created line will be snapped to initial point
|
| 631 |
+
9) **End Offset** - applicable for _To intersection_ mode, represent offset of end point of created line from target line.
|
| 632 |
+
|
| 633 |
+
#### Existing Selection:
|
| 634 |
+
|
| 635 |
+
No support
|
| 636 |
+
|
| 637 |
+
#### Command widget
|
| 638 |
+
|
| 639 |
+
Action is not scriptable, as it requires selection of target line by mouse.
|
| 640 |
+
|
| 641 |
+
##### Invocation Command:
|
| 642 |
+
|
| 643 |
+
```point2line``` or ```p2l```
|
| 644 |
+
|
| 645 |
+
##### Action Commands:
|
| 646 |
+
|
| 647 |
+
No additional commands are supported.
|
| 648 |
+
|
| 649 |
+
#### Mouse + SHIFT mode
|
| 650 |
+
|
| 651 |
+
Uses alternative mirrored angle (180-angle) instead of specified one (for non-orthogonal mode).
|
| 652 |
+
|
| 653 |
+
|
| 654 |
+
---
|
| 655 |
+
### Slice/Divide Line Action
|
| 656 |
+
This is combined action, that allows to draw specified number of tick lines along selected target line using specified length and angle to target line,
|
| 657 |
+
and also optionally divides target line by points of ticks intersections. If tick length is set to 0, may just divide target line to the set of line segments.
|
| 658 |
+
|
| 659 |
+
In general, this action may be also used as a replacement to "Divide" plugin.
|
| 660 |
+
|
| 661 |
+
Tick lines ares drawn using active pen and layer, if entity is divided - original attributes are used for created segments.
|
| 662 |
+
|
| 663 |
+
#### Example Video: https://youtu.be/z0I8N73aWFM
|
| 664 |
+
|
| 665 |
+
#### Options:
|
| 666 |
+
|
| 667 |
+
1) **Fixed** - flag defines whether distance between tick lines is fixed or should be calculated.
|
| 668 |
+
2) **Distance** - for **Fixed** tick distance mode, defines distance between individual tick lines
|
| 669 |
+
3) **Count** - for non-**Fixed** tick distance mode, defines amount of inner (non-edge) ticks to be created.
|
| 670 |
+
4) **Tick Length** - length of each tick line. If **Tick Length** is 0, it is possible just divide line by tick positions.
|
| 671 |
+
5) **Angle** - angle value used to draw tick lines
|
| 672 |
+
6) **Rel** - flag that indicates whether angle is absolute (to x-axis) or relative (to target line)
|
| 673 |
+
7) **Offset** - offset distance between target line and tick snap point
|
| 674 |
+
8) **Tick Snap** - defines which point on tick lines should be used as snap point (located on intersection with base line). Values are
|
| 675 |
+
* **Start** - start point of created tick line will be snapped to target line
|
| 676 |
+
* **Middle** - middle point of created tick line will be snapped to target line
|
| 677 |
+
* **End** - end point of created tick line will be snapped to target line
|
| 678 |
+
9) **Edge Tick** - defines how tick lines should be drawn at endpoints of target line. Values are:
|
| 679 |
+
* **None** - no tick lines at edges of target line
|
| 680 |
+
* **Both** - tick lines are in both edges of target line
|
| 681 |
+
* **Start** - tick line in start point of target line
|
| 682 |
+
* **End** - tick line in end point of target line
|
| 683 |
+
10) **Divide** - if flag is set, in addition to creation of tick lines, the action will divide target line to the set of line segments. Division points are tick lines snap points.
|
| 684 |
+
|
| 685 |
+
#### Existing Selection:
|
| 686 |
+
|
| 687 |
+
No support
|
| 688 |
+
|
| 689 |
+
#### Command widget
|
| 690 |
+
|
| 691 |
+
Action is not scriptable, as it requires selection of target entity by mouse.
|
| 692 |
+
|
| 693 |
+
##### Invocation Command:
|
| 694 |
+
|
| 695 |
+
```slicel``` or ```sll```
|
| 696 |
+
|
| 697 |
+
##### Action Commands:
|
| 698 |
+
|
| 699 |
+
No additional commands are supported.
|
| 700 |
+
|
| 701 |
+
#### Mouse + SHIFT mode
|
| 702 |
+
|
| 703 |
+
Uses alternative mirrored angle (180-angle) for tick lines instead of specified one.
|
| 704 |
+
|
| 705 |
+
---
|
| 706 |
+
### Slice/Divide Circle/Arc Action
|
| 707 |
+
The action is similar to Slice/Divide Line action, yet instead of line it operates with circles and arcs.
|
| 708 |
+
This is combined action, that allows to draw specified number of tick lines along selected target circle or arc using specified length and angle to entity,
|
| 709 |
+
and also optionally divides target line by points of ticks intersections. If tick length is set to 0, may just divide target sentity to the set of arc segments.
|
| 710 |
+
|
| 711 |
+
Line is drawn using active pen and layer.
|
| 712 |
+
|
| 713 |
+
#### Example Video: https://youtu.be/ILACvThv6I4
|
| 714 |
+
|
| 715 |
+
#### Options:
|
| 716 |
+
|
| 717 |
+
1) **Count** - defines amount of inner (non-edge) ticks to be created.
|
| 718 |
+
2) **Tick Length** - length of each tick line. If **Tick Length** is 0, it is possible just perform divide
|
| 719 |
+
3) **Angle** - angle value used to draw tick lines
|
| 720 |
+
4) **Rel** - flag that indicates whether angle is absolute (to x-axis) or relative (to target entity)
|
| 721 |
+
5) **Offset** - offset distance between target entity and tick snap point
|
| 722 |
+
6) **Tick Snap** - defines which point on tick lines should be used as snap point (located on intersection with target entity). Values are
|
| 723 |
+
* **Start** - start point of created tick line will be snapped to target entity
|
| 724 |
+
* **Middle** - middle point of created tick line will be snapped to target entity
|
| 725 |
+
* **End** - end point of created tick line will be snapped to target entity
|
| 726 |
+
7) **Edge Tick** - defines how tick lines should be drawn at endpoints of target arc (not applicable to circle). Values are:
|
| 727 |
+
* **None** - no tick lines at edges of target arc
|
| 728 |
+
* **Both** - tick lines are in both edges of target arc
|
| 729 |
+
* **Start** - tick line in start point of target arc
|
| 730 |
+
* **End** - tick line in end point of target arc
|
| 731 |
+
8) **Start Circle Action** - if target entity is circle, defines start angle from which tick line positions will be calculated.
|
| 732 |
+
9) **Divide** - if flag is set, in addition to creation of tick lines, the action will divide target entity to the set of arc segments. Division points are tick lines snap points.
|
| 733 |
+
|
| 734 |
+
#### Existing Selection:
|
| 735 |
+
|
| 736 |
+
No support
|
| 737 |
+
|
| 738 |
+
#### Command widget
|
| 739 |
+
|
| 740 |
+
Action is not scriptable, as it requires selection of target entity by mouse.
|
| 741 |
+
|
| 742 |
+
##### Invocation Command:
|
| 743 |
+
|
| 744 |
+
```slicec``` or ```slc```
|
| 745 |
+
|
| 746 |
+
##### Action Commands:
|
| 747 |
+
|
| 748 |
+
No additional commands are supported.
|
| 749 |
+
|
| 750 |
+
#### Mouse + SHIFT mode
|
| 751 |
+
|
| 752 |
+
Uses alternative mirrored angle (180-angle) for tick lines instead of specified one.
|
| 753 |
+
|
| 754 |
+
---
|
| 755 |
+
### Draw Circle by Arc Action
|
| 756 |
+
|
| 757 |
+
Simple action that creates circle based on selected arc entity (or ellipse by ellipse arc). Center of circle is the same as center of arc, radius of created circle may be either the same of with specified offset to arc's radius.
|
| 758 |
+
Also, it is possible to specify:
|
| 759 |
+
* in which layer (original or active) created circle should be placed to
|
| 760 |
+
* which pen should be used for circle
|
| 761 |
+
* should circle replace arc or not.
|
| 762 |
+
|
| 763 |
+
#### Example Video: https://youtu.be/xSJnC-Mvczw
|
| 764 |
+
|
| 765 |
+
#### Options:
|
| 766 |
+
|
| 767 |
+
1) **Replace arc** - flag defines whether original arc should be deleted or not
|
| 768 |
+
2) **Radius Shift** - if arc is not replaced, allows to specify offset to original radius of arc. Thus it is possible to create circle with offset relating to arc.
|
| 769 |
+
3) **Pen** - defines which pen should be applied to created circle. Options:
|
| 770 |
+
* **Active** - active pen
|
| 771 |
+
* **Original** - original pen of that was used by arc
|
| 772 |
+
* **Original Resolved** - resolved pen that was used by arc (so "By Layer" etc. attributes are not used and actual values are applied)
|
| 773 |
+
7) **Layer** - defines to which layer created circle will be placed
|
| 774 |
+
* **Active** - active layer
|
| 775 |
+
* **Original** - the same layer as one of arc's layer.
|
| 776 |
+
|
| 777 |
+
#### Existing Selection:
|
| 778 |
+
|
| 779 |
+
If there are selected entities on action's invocation, for arcs creates circles based on previously saved settings.
|
| 780 |
+
|
| 781 |
+
#### Command widget
|
| 782 |
+
|
| 783 |
+
Action is not scriptable, as it requires selection of target arc by mouse.
|
| 784 |
+
|
| 785 |
+
##### Invocation Command:
|
| 786 |
+
|
| 787 |
+
```circlebyarc``` or ```cba```
|
| 788 |
+
|
| 789 |
+
##### Action Commands:
|
| 790 |
+
|
| 791 |
+
No additional commands are supported.
|
| 792 |
+
|
| 793 |
+
#### Mouse + SHIFT mode
|
| 794 |
+
|
| 795 |
+
No support
|
| 796 |
+
|
| 797 |
+
---
|
| 798 |
+
### Duplicate Entity Action
|
| 799 |
+
|
| 800 |
+
Creates duplicate of entity with optional offset and possibility to specify which layer and pen should be applied. Action may be considered as a kind of shortcut for copying via "Move/Copy" action.
|
| 801 |
+
|
| 802 |
+
#### Example Video: https://youtu.be/xSJnC-Mvczw
|
| 803 |
+
|
| 804 |
+
#### Options:
|
| 805 |
+
|
| 806 |
+
1) **In Place** - flag defines whether entity's duplicate will be created in the same coordinates as original entity or whether it should be with offset. The major purpose of creation of in-place entity - make duplicate of entity in the same position as original, but in active layer
|
| 807 |
+
2) **Offset X** - if duplicate is created not _In Place_, specifies coordinates offset by x-axis for duplicate entity from original entity.
|
| 808 |
+
2) **Offset Y** - if duplicate is created not _In Place_, specifies coordinates offset by x-axis for duplicate entity from original entity.
|
| 809 |
+
3) **Pen** - defines which pen should be applied to created duplicate. Options:
|
| 810 |
+
* **Active** - active pen
|
| 811 |
+
* **Original** - original pen of that was used by original entity
|
| 812 |
+
* **Original Resolved** - resolved pen that was used by original entity (so "By Layer" etc. attributes are not used and actual values are applied)
|
| 813 |
+
7) **Layer** - defines to which layer created duplicate will be placed
|
| 814 |
+
* **Active** - active layer
|
| 815 |
+
* **Original** - the same layer as layer of original entity.
|
| 816 |
+
|
| 817 |
+
#### Existing Selection:
|
| 818 |
+
|
| 819 |
+
If there are selected entities on actions' invocation, duplicates for them will be created based on previously specified settings.
|
| 820 |
+
|
| 821 |
+
#### Command widget
|
| 822 |
+
|
| 823 |
+
Action is not scriptable, as it requires selection of source entities by mouse.
|
| 824 |
+
|
| 825 |
+
##### Invocation Command:
|
| 826 |
+
|
| 827 |
+
```duplicate``` or ```dup```
|
| 828 |
+
|
| 829 |
+
##### Action Commands:
|
| 830 |
+
|
| 831 |
+
No additional commands are supported.
|
| 832 |
+
|
| 833 |
+
#### Mouse + SHIFT mode
|
| 834 |
+
|
| 835 |
+
No support
|
| 836 |
+
|
| 837 |
+
---
|
| 838 |
+
### Line Join Action
|
| 839 |
+
|
| 840 |
+
Joins to selected line to their intersection point. Based on options, action may
|
| 841 |
+
* extend lines
|
| 842 |
+
* add additional segments to intersection point
|
| 843 |
+
* trim line.
|
| 844 |
+
|
| 845 |
+
For lines that lies on the same ray, it is possible to merge them into one line.
|
| 846 |
+
|
| 847 |
+
#### Example Video: https://youtu.be/NCqodd0i_gE
|
| 848 |
+
|
| 849 |
+
#### Options:
|
| 850 |
+
|
| 851 |
+
1) **Line 1** - defines which operation should be performed with first selected line. Values:
|
| 852 |
+
* **Extend/Trim** - the line will be extended or trimmed, thus so its edge will be in intersection point
|
| 853 |
+
* **Add segment** - the line will not be affected, however, line segment will be created from the edge of line to intersection point
|
| 854 |
+
* **No Change** - line will be not affected.
|
| 855 |
+
2) **Line 2** - defines which operation should be performed with second selected line. Values:
|
| 856 |
+
* **Extend/Trim** - the line will be extended or trimmed, thus so its edge will be in intersection point
|
| 857 |
+
* **Add segment** - the line will not be affected, however, line segment will be created from the edge of line to intersection point
|
| 858 |
+
* **No Change** - line will be not affected.
|
| 859 |
+
3) **Attributes** - defines how pen and layer attributes should be applied during joining segments. Options are:
|
| 860 |
+
* **Active** - active pen and layer will be used
|
| 861 |
+
* Line 1 - attributes of line 1 will be applied
|
| 862 |
+
* Line 2 - attributes of line 2 will be applied
|
| 863 |
+
* Both lines - attributes from each line will be applied to corresponding line segment.
|
| 864 |
+
4) **Create polyline** - defines whether polyline that joins two lines (or segments) should be created or whether individual lines should be used.
|
| 865 |
+
4) **Remove originals** - defines whether original lines should be removed.
|
| 866 |
+
|
| 867 |
+
#### Existing Selection:
|
| 868 |
+
|
| 869 |
+
No support
|
| 870 |
+
|
| 871 |
+
#### Command widget
|
| 872 |
+
|
| 873 |
+
Action is not scriptable, as it requires selection of source entities by mouse.
|
| 874 |
+
|
| 875 |
+
##### Invocation Command:
|
| 876 |
+
|
| 877 |
+
```linejoin``` or ```lj```
|
| 878 |
+
|
| 879 |
+
##### Action Commands:
|
| 880 |
+
|
| 881 |
+
No additional commands are supported.
|
| 882 |
+
|
| 883 |
+
#### Mouse + SHIFT mode
|
| 884 |
+
|
| 885 |
+
No support
|
| 886 |
+
|
| 887 |
+
---
|
| 888 |
+
### Break/Divide Action
|
| 889 |
+
|
| 890 |
+
Action allows to break or divide selected line, arc or circle to segments based on intersection points with another entities.
|
| 891 |
+
|
| 892 |
+
#### Example Video: https://youtu.be/_UHawUJXZe0
|
| 893 |
+
|
| 894 |
+
#### Options:
|
| 895 |
+
|
| 896 |
+
1) **Remove Segments** - if specified, segment of entity will be removed (so original entity will be split to remaining parts). Otherwise, entity will be divided.
|
| 897 |
+
2) **Remove Selected** - if segments removal is set, this flag determines which segment should be removed. If set, segment of entity that was selected by mouse that that lies between intersection points will be selected. If not set, selected segment will survive, but other parts of entity will be removed.
|
| 898 |
+
|
| 899 |
+
#### Existing Selection:
|
| 900 |
+
|
| 901 |
+
No support
|
| 902 |
+
|
| 903 |
+
#### Command widget
|
| 904 |
+
|
| 905 |
+
Action is not scriptable, as it requires selection of source entities by mouse.
|
| 906 |
+
|
| 907 |
+
##### Invocation Command:
|
| 908 |
+
|
| 909 |
+
```breakdivide``` or ```bd```
|
| 910 |
+
|
| 911 |
+
##### Action Commands:
|
| 912 |
+
|
| 913 |
+
No additional commands are supported.
|
| 914 |
+
|
| 915 |
+
#### Mouse + SHIFT mode
|
| 916 |
+
|
| 917 |
+
No support
|
| 918 |
+
|
| 919 |
+
---
|
| 920 |
+
### Line Gap
|
| 921 |
+
|
| 922 |
+
Action creates gap in specified line.
|
| 923 |
+
|
| 924 |
+
#### Example Video: https://youtu.be/0Y0YsNSZIJA
|
| 925 |
+
|
| 926 |
+
#### Options:
|
| 927 |
+
|
| 928 |
+
1) **Gap Size** - length of the gap
|
| 929 |
+
2) **Free** - if enabled, length of gap is not fixed and the user should specify end point of gap
|
| 930 |
+
3) **Line Snap** - defines how gap start point should be snapped to the line
|
| 931 |
+
* **Free** - any point within selected line, the user should select it
|
| 932 |
+
* **Start** - start point of selected line
|
| 933 |
+
* **Middle** - middle point of selected line
|
| 934 |
+
* **End** - end point of selected line
|
| 935 |
+
4) **Snap Distance** - distance of snap point from line snap point
|
| 936 |
+
6) **Gap Snap** - if not _Free_ size gap mode, defines how gap should be positioned to snap point.
|
| 937 |
+
* **Start** - start point of gap will be snapped
|
| 938 |
+
* **Middle** - middle point of gap will be snapped
|
| 939 |
+
* **End** - end point of gap will be snapped
|
| 940 |
+
|
| 941 |
+
#### Existing Selection:
|
| 942 |
+
|
| 943 |
+
No support
|
| 944 |
+
|
| 945 |
+
#### Command widget
|
| 946 |
+
|
| 947 |
+
Action is not scriptable, as it requires selection of line by mouse.
|
| 948 |
+
|
| 949 |
+
##### Invocation Command:
|
| 950 |
+
|
| 951 |
+
```gapline``` or ```gl```
|
| 952 |
+
|
| 953 |
+
##### Action Commands:
|
| 954 |
+
|
| 955 |
+
No additional commands are supported.
|
| 956 |
+
|
| 957 |
+
#### Mouse + SHIFT mode
|
| 958 |
+
|
| 959 |
+
If _Line Snap_ is not _Free_, mirrors edges of line (i.e setting for start edge of line are applied to end edge, and vise versa).
|
| 960 |
+
|
| 961 |
+
---
|
| 962 |
+
### Other functionality
|
| 963 |
+
|
| 964 |
+
There is convenient base classes with predefined lifecycles and utility methods:
|
| 965 |
+
1) Basic class for actions (LC_AbstractActionWithPreview)
|
| 966 |
+
2) Basic class for action options widget (LC_AbstractOptionsWidget)
|
| 967 |
+
|
| 968 |
+
Also, a couple of convenient utility functions were added:
|
| 969 |
+
|
| 970 |
+
1) Automatic reopening files that were open during last close of application (controlled by the "Open last opened files" setting on "Defaults" tab in Application Preferences). This is good timesaver for development and debugging, yet it might be useful for users too.
|
| 971 |
+
2) Setting for defining amount of columns for left toolbar (located in Widget Options). Using this setting, it will be possible to address left toolbar size for small resolutions.
|
| 972 |
+
|
| 973 |
+
**Video** for settings is there: https://youtu.be/_f-mgKy449c
|
| 974 |
+
|
| 975 |
+
### Ideas for generic improvements
|
| 976 |
+
|
| 977 |
+
There are several issues that might be discussed and implemented:
|
| 978 |
+
|
| 979 |
+
1) Different way of handling action options widgets lifecycle
|
| 980 |
+
|
| 981 |
+
Such approach does not rely on static fields, as action creates and holds the reference to options widget. Examples - actions within pull request.
|
| 982 |
+
|
| 983 |
+
2) Better support of relative zero with mouse-based operations.
|
| 984 |
+
|
| 985 |
+
In general, there is support for relative zero point in command (via shortcut and relative coordinates settings).
|
| 986 |
+
|
| 987 |
+
However, it is not possible to snap to relative zero point using mouse (say, use existing relative zero as starting point for line etc.)
|
| 988 |
+
|
| 989 |
+
New actions (where practical) lets the user start the action with relative zero point as initial point (if SHIFT is pressed during mouse move) event.
|
| 990 |
+
|
| 991 |
+
Adding such functionality to existing actions may deliver better user experience and be convenient for the user.
|
| 992 |
+
|
| 993 |
+
|
ChangeLogs/ARCS_AND_SPLINES_README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This merge request includes the following functionality:
|
| 2 |
+
|
| 3 |
+
### Arc drawing actions
|
| 4 |
+
|
| 5 |
+
Several actions were added for drawing arcs. These arcs-related actions are:
|
| 6 |
+
|
| 7 |
+
1) **2 points and Angle** - creates the arc using arc's start point, end point and angle of the arc
|
| 8 |
+
2) **2 points and Length** - creates the arc using arc's start point, end point and length of the arc
|
| 9 |
+
3) **2 points and Radius** - creates the arc using arc's start point, end point and radius of the arc
|
| 10 |
+
4) **2 points and Height** - creates the arc using arc's start point, end point and the height of the arc (the distance between chord and middle point of the arc)
|
| 11 |
+
|
| 12 |
+
Also, support of alternative drawing modes (drawing reversed arc) was added to
|
| 13 |
+
1) **Draw Arc Center, radius** action
|
| 14 |
+
2) **Draw Arc by 3 points** action
|
| 15 |
+
3) **Arc Tangential** action
|
| 16 |
+
|
| 17 |
+
### Points-related actions
|
| 18 |
+
1) **Lattice of points** - creates XxY lattice of points
|
| 19 |
+
2) **Select Points** - selects/deselects point entities in specified window (actually, this is a shortcut for "Select Window" action)
|
| 20 |
+
3) **Insert to points** - a variant of "Paste" action, that uses selected Point objects as reference points for copied data.
|
| 21 |
+
|
| 22 |
+
### Selection of entities by type
|
| 23 |
+
|
| 24 |
+
**Select/De-select Window** action was expanded and now the user is able to specify which types of entities should be selected/de-selected using actions options widget.
|
| 25 |
+
|
| 26 |
+
Selection of entities by selecting area in default action is not affected by this change and works as before.
|
| 27 |
+
|
| 28 |
+
### Spline-related actions
|
| 29 |
+
|
| 30 |
+
Operations with splines were extended by the following actions:
|
| 31 |
+
|
| 32 |
+
1) **Spline from Polyline** - allows to create spline (or spline by points) from selected polyline
|
| 33 |
+
2) **Append Point** - allows to append start/end point to existing spline/spline by points
|
| 34 |
+
3) **Insert Point** - allows to insert control/fit point to existing spline.
|
| 35 |
+
4) **Delete Point** - deleted control/fit point of the spline
|
| 36 |
+
5) **Delete between 2 points** - deletes control points between two points of the spline
|
| 37 |
+
6) **Lines from Spline** - replaces spline by polyline/set of lines. Each segment of spline is replaced by specified amount of line segments (either by one extracted from the document's settings, or by one set explicitly)
|
| 38 |
+
|
| 39 |
+
Also, fit points for Spline by Points now are properly restored from DXF (so they are not lost after save and re-open of the drawing).
|
| 40 |
+
|
| 41 |
+
### Polyline Append Point
|
| 42 |
+
|
| 43 |
+
The action was fixed (or rather completed), so now it supports appending all segment types supported by polyline, not only line as it was before.
|
| 44 |
+
|
| 45 |
+
### Default Action
|
| 46 |
+
Now it's possible to de-select entities if SHIFT is pressed at the end of the overlay box selection.
|
| 47 |
+
|
| 48 |
+
### UI changes
|
| 49 |
+
The structure of menu, toolbars and docking widgets with actions wase chaged to be more precise - so now there are separate categories for points, arcs and splines related actions.
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
### Bug Fixes ###
|
| 53 |
+
Fixes for the following issues are included:
|
| 54 |
+
1) LibreCAD#1950
|
| 55 |
+
2) LibreCAD#1920
|
| 56 |
+
3) LibreCAD#1951
|
| 57 |
+
4) Fix for finding intersection with construction lines.
|
| 58 |
+
|
| 59 |
+
### Sources Re-layout
|
| 60 |
+
The source code for acs/splines actions was re-layouted for better separation and consistency.
|
ChangeLogs/Arc1Point and Dimensions PR.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This pull request includes several new actions as well as minor fixes.
|
| 2 |
+
|
| 3 |
+
### Ellipse 1 Point action
|
| 4 |
+
Demo - https://youtu.be/tLHZan4BUUY
|
| 5 |
+
|
| 6 |
+
A couple of command were added for drawing actions
|
| 7 |
+
|
| 8 |
+
1) **Ellipse (1 Point) Action** - This action allows to create an ellipse with specified major and minor radius of specified lengths.
|
| 9 |
+
The user should specify location of ellipse center.
|
| 10 |
+
The angle of major axis may be set either to fixed value, or be selected by the mouse (free mode).
|
| 11 |
+
|
| 12 |
+
2) **Ellipse Arc (1 Point) Action** - This actions allows to draw elliptic arc using similar logic as Ellipse (1 Point) action.
|
| 13 |
+
|
| 14 |
+
Also, Draw Ellipse Arc (Axis) was improved and now the user may specify whether arc is reversed or not.
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
### Dimension Baseline and Continue Actions
|
| 18 |
+
Demo - https://youtu.be/DHluOAF86k0
|
| 19 |
+
|
| 20 |
+
Two handy actions for creating dimensions were added.
|
| 21 |
+
|
| 22 |
+
1) **Dimension Baseline Action** - the action creates baseline dimensions base on specified source dimension.
|
| 23 |
+
|
| 24 |
+
The distance between dimensions may be fixed or be specified by the mouse.
|
| 25 |
+
|
| 26 |
+
2) **Dimension Continue Action** - the allows to create several dimensions that continue selected original dimension.
|
| 27 |
+
|
| 28 |
+
So far only linear and aligned dimensions are supported (no support for angular dimensions).
|
| 29 |
+
|
| 30 |
+
Both actions supports keyboard modifiers:
|
| 31 |
+
- for alternating base extension points that will be used as start points (selected either closer or distant point of original dimension to mouse position);
|
| 32 |
+
- for baseline action, for alternating the offset direction for next dimension.
|
| 33 |
+
|
| 34 |
+
### Radial and Diametric Dimensions Actions
|
| 35 |
+
Demo - https://youtu.be/dOW5O-37gjo
|
| 36 |
+
|
| 37 |
+
The overall flow for creation of radial and diametric dimensions is improved and made shorter (fewer mouse clicks).
|
| 38 |
+
|
| 39 |
+
Also, it is possible to specify the angle for dimensions and so draw dimensions using uniform style.
|
| 40 |
+
|
| 41 |
+
With CTRL keyboard modifier, the user may adjust the position of the dimension if fixed (not free) angle mode is used.
|
| 42 |
+
|
| 43 |
+
### Minor Fixes
|
| 44 |
+
|
| 45 |
+
There are some minor fixes well as corrections that address the following issues:
|
| 46 |
+
|
| 47 |
+
1) #1854 - for print preview, white color is used instead of foreground color for color correction and previewing black/white colors
|
| 48 |
+
2) #1847 - actually, #1847 is just visual effect of more serious bug in settings system, were negative int values were stored in settings incorrectly. That bug was a side effect of #PR1461
|
| 49 |
+
3) #1858 - subtle improvement for snap point on Modify Scale action for isotropic scaling
|
| 50 |
+
|
| 51 |
+
### Persistent Dialogs Positions
|
| 52 |
+
|
| 53 |
+
If corresponding setting is enabled in Action Preferences Dialog, position and size of the dialog is saved.
|
| 54 |
+
|
| 55 |
+
On next invocation the dialog will be shown with stored dimensions and (optionally) in previous position.
|
ChangeLogs/DIM_ORDINATE_README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This PR adds support of Ordinate dimension.
|
| 2 |
+
|
| 3 |
+
#### Generic support of the Ordinate Dimension
|
| 4 |
+
|
| 5 |
+
Demo: https://youtu.be/56kGlFMSZlg
|
| 6 |
+
|
| 7 |
+
Common functionality related to Ordinate Dimension was added:
|
| 8 |
+
|
| 9 |
+
1) Ordinate Dimension entity added (for x and y ordinates)
|
| 10 |
+
2) Support of ordinate dimension entity was added to DXF reading/writing
|
| 11 |
+
3) Ordinate dimension properties dialog added
|
| 12 |
+
4) Support of ordinate dimension was added to informational cursor and entity info widget.
|
| 13 |
+
|
| 14 |
+
Ordinate dimensions supports both WCS and UCS.
|
| 15 |
+
|
| 16 |
+
#### Related actions
|
| 17 |
+
|
| 18 |
+
Several actions related to ordinate dimensions were added (located in Dimensions group):
|
| 19 |
+
|
| 20 |
+
1) Ordinate - the text command is **"dimord"**. Allows to create new ordinate dimension.
|
| 21 |
+
The origin/definition point of the dimension - zero (0,0) point is located in the origin of the current Coordinate System (UCS or WCS).
|
| 22 |
+
|
| 23 |
+
Therefore, before creation of ordinate dimensions, a proper UCS should be set.
|
| 24 |
+
|
| 25 |
+
2) Select Ordinates by base - allows the user to pick one ordinate dimension and select all ordinate dimensions within drawing with the same defining point and direction of horizontal.
|
| 26 |
+
|
| 27 |
+
3) Ordinates Re-base - (command is **"dimordrebase"**). Allows to set the defining point for selected ordinate dimensions to the origin point of the current UCS.
|
| 28 |
+
|
| 29 |
+
This command is useful for editing ordinate dimensions, if either base point was changed, or if dimension entities were moved.
|
| 30 |
+
|
| 31 |
+
4) "Set UCS by Ordinate Dimension" - this action allows the user to set the UCS that corresponds the defining point and horizontal angle of the selected Ordinate Dimension.
|
| 32 |
+
|
| 33 |
+
### Other changes
|
| 34 |
+
|
| 35 |
+
1) Small fix for styling of linear dimensions line (if the text is inline of dimension line)
|
| 36 |
+
2) Very initial support for DIMSTYLES (this is work in progress)
|
| 37 |
+
3) Very initial support of other dimension-related entities (also WIP)
|
| 38 |
+
|
| 39 |
+
In general, the next PR will include more changes for dimension entities and actions are planned.
|
| 40 |
+
|
| 41 |
+
### Small Fixes
|
ChangeLogs/DIM_STYLES_1_README.md
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Dimension Styles and Context Actions
|
| 2 |
+
|
| 3 |
+
This pull request contains the following major functionality:
|
| 4 |
+
|
| 5 |
+
1. Initial support of dimension styles.
|
| 6 |
+
2. Changes in dimension-related actions; new actions for dimension styles.
|
| 7 |
+
3. Support of the "context entity" by actions.
|
| 8 |
+
4. Reworked default context popup menu for drawing area; support of entity-specific context menus.
|
| 9 |
+
5. Reworked Custom Toolbar Creator and Custom Menu Creator; wide support of invocation shortcuts for custom menus.
|
| 10 |
+
6. Added support of the drawing's metadata (author, title, subject, description, etc.).
|
| 11 |
+
7. Added support of predefined and custom user data for the drawing document.
|
| 12 |
+
8. Interactive input of action's parameters and entities properties - Measure Instead of Type.
|
| 13 |
+
9. Keyboard support improvements; moving selected entities by keys.
|
| 14 |
+
10. Various minor fixes and improvements.
|
| 15 |
+
|
| 16 |
+
### Dimension Styles
|
| 17 |
+
|
| 18 |
+
The major focus of this PR is to provide full support of dimension styles reading, editing, and storing by adding DXF parsing and writing functionality, as well as adding UI needed for dimension styles management and editing.
|
| 19 |
+
|
| 20 |
+
**NOTE: Support of rendering of dimensions according to dimension style attributes is STILL LIMITED and NOT ALL attributes of dimension style affect created dimensions!**
|
| 21 |
+
|
| 22 |
+
The logic of dimensions creation should be reworked deeper, and full support of dimension style attributes will be included in the next Pull Request.
|
| 23 |
+
|
| 24 |
+
#### Dimensions Styles Management
|
| 25 |
+
|
| 26 |
+
Dimension styles included in the drawing are managed using the Drawing Preferences dialog, in the Dimensions tab.
|
| 27 |
+
|
| 28 |
+
`XXX_IMAGE`
|
| 29 |
+
|
| 30 |
+
Here the list of dimension styles is present, as well as a set of corresponding related commands, such as:
|
| 31 |
+
|
| 32 |
+
* New Style
|
| 33 |
+
* Remove Style
|
| 34 |
+
* Edit Style
|
| 35 |
+
* Rename Style
|
| 36 |
+
* Mark as Active (so it will be used as default for newly created dimensions)
|
| 37 |
+
* Export/Import
|
| 38 |
+
|
| 39 |
+
A live preview of dimensions with the applied dimension style is also available.
|
| 40 |
+
|
| 41 |
+
#### Editing Dimension Style
|
| 42 |
+
|
| 43 |
+
Editing of the dimension style attributes is performed via a new dialog that contains UI for entering attributes and a preview area that reflects dimension style rendering.
|
| 44 |
+
|
| 45 |
+
`XXX_IMAGE`
|
| 46 |
+
|
| 47 |
+
**Demo Video:** https://youtu.be/bYCbS-gcDR8
|
| 48 |
+
|
| 49 |
+
#### Dimension Entity Properties, Style Override
|
| 50 |
+
|
| 51 |
+
The dialog for dimension entity properties now includes functionality for selecting a dimension style.
|
| 52 |
+
|
| 53 |
+
Also, using that dialog, it is possible to specify a dimension style override. A style override is a set of dimension style attributes that is specific for a particular dimension only.
|
| 54 |
+
|
| 55 |
+
`XXX_IMAGE`
|
| 56 |
+
|
| 57 |
+
**Demo Video:** https://youtu.be/aOacuCBkwFA
|
| 58 |
+
|
| 59 |
+
Using style override, it is possible to fine-tune individual dimension entities.
|
| 60 |
+
|
| 61 |
+
#### Specifying Dimension Style During Dimension Entity Creation
|
| 62 |
+
|
| 63 |
+
The dimension options toolbar now includes a style selection combobox.
|
| 64 |
+
|
| 65 |
+
`XXX_IMAGE`
|
| 66 |
+
|
| 67 |
+
### Dimension Actions
|
| 68 |
+
|
| 69 |
+
Several changes were introduced to actions related to dimensions.
|
| 70 |
+
|
| 71 |
+
#### New Actions
|
| 72 |
+
|
| 73 |
+
Several new actions related to dimensions were added:
|
| 74 |
+
|
| 75 |
+
1. **Copy Style Action** - allows you to pick the style from one dimension entity and apply it to another one.
|
| 76 |
+
2. **Regenerate Dimensions Action** - forcefully re-creates a dimension.
|
| 77 |
+
3. **Dimension Styles Action** - invokes the Dimension Styles manager.
|
| 78 |
+
|
| 79 |
+
`XXX_IMAGE`
|
| 80 |
+
|
| 81 |
+
**Demo Video:** https://youtu.be/lGD_dR25VOU
|
| 82 |
+
|
| 83 |
+
#### Changes in Dimension Related actions - faster dimensioning
|
| 84 |
+
|
| 85 |
+
1. For linear dimensions, it's possible to select line entity (that might be standalone or a part of polyline) using context menu or pressed CTRL key.
|
| 86 |
+
Linear, Aligned, Horizontal or Vertical dimension will be created with base points that corresponds to the line start and end points.
|
| 87 |
+
|
| 88 |
+
2. In action used for creation of Horizontal or Vertical dimension, now it is possible to change direction using CTRL key modifier.
|
| 89 |
+
|
| 90 |
+
**Demo Video:** https://youtu.be/Qt2Q3daDQhU
|
| 91 |
+
|
| 92 |
+
### Support of "Context Entity" in Actions
|
| 93 |
+
|
| 94 |
+
Now all actions support the notion of a "Context" entity - the entity that is passed to the action on action's invocation.
|
| 95 |
+
|
| 96 |
+
If a context entity is available, the action will be executed for that entity only (regardless of whether a selection is present in the drawing). Also, where possible, the initial entity selection state of the action is skipped, and so the user is not prompted to select an entity for the action's execution.
|
| 97 |
+
|
| 98 |
+
At the moment, the context entity is set to the action via the context popup menu (if the user invoked the menu near an entity).
|
| 99 |
+
|
| 100 |
+
`XXX_IMAGE`
|
| 101 |
+
|
| 102 |
+
However, later this concept may be used, for example, in plugins.
|
| 103 |
+
|
| 104 |
+
#### Context Menu
|
| 105 |
+
|
| 106 |
+
The default popup menu that is shown in the drawing area by a right mouse button click was reworked to include more operations and support more efficient drawing operations. The popup menu in the graphic view is now truly context-aware.
|
| 107 |
+
|
| 108 |
+
There are two major modes of the menu's operation:
|
| 109 |
+
|
| 110 |
+
1. **Generic Popup menu:** Shown when no selected entities are present and the click is not on an entity.
|
| 111 |
+
XXX_IMAGE
|
| 112 |
+
|
| 113 |
+
2. **Selection Popup menu:** Show it there are selected entities in the drawing and the click point this is outside of drawing entity;
|
| 114 |
+
XXX_IMAGE
|
| 115 |
+
|
| 116 |
+
3. **Entity Context menu:** Shown when menu is invoked with a click on an entity.
|
| 117 |
+
`XXX_IMAGE`
|
| 118 |
+
|
| 119 |
+
For the context menu, the structure of the menu is adapted to correspond to the clicked entity type, and it reflects operations that are relevant for the selected entity.
|
| 120 |
+
|
| 121 |
+
`XXX_IMAGE`
|
| 122 |
+
|
| 123 |
+
The entity for the context menu is pre-selected and is passed to the invoked action as a "context" entity.
|
| 124 |
+
|
| 125 |
+
Due to this, the user is not required to select the entity again during the action's invocation, and thus the drawing operation is performed in a more convenient and faster way.
|
| 126 |
+
|
| 127 |
+
**Demo Video:** https://youtu.be/Px-JoJdCJg4
|
| 128 |
+
|
| 129 |
+
### Custom Toolbar and Custom Menu Creator
|
| 130 |
+
|
| 131 |
+
The Custom Toolbar Creator tool was reworked internally; from a UI point of view, it's a small facelift without significant changes to the functionality.
|
| 132 |
+
|
| 133 |
+
`XXX_IMAGE`
|
| 134 |
+
|
| 135 |
+
The Custom Menu Creator tool was also reworked internally, with a couple of important improvements:
|
| 136 |
+
|
| 137 |
+
1. Added wider support of invocation shortcuts. The user may specify various key modifiers and mouse buttons that are used for the menu invocation.
|
| 138 |
+
`XXX_IMAGE`
|
| 139 |
+
2. Assigned invocation shortcuts are visible in the list of menus.
|
| 140 |
+
`XXX_IMAGE`
|
| 141 |
+
3. Automatic invocation of actions in menus that contain only one action. This mechanism allows the invocation of a specified action using an assigned mouse/keys shortcut.
|
| 142 |
+
|
| 143 |
+
Custom menus are also context-aware; if a menu is clicked on an entity, that entity will be passed to the action.
|
| 144 |
+
|
| 145 |
+
Also, it is possible to create several menus for the same shortcut but for different entity types.
|
| 146 |
+
|
| 147 |
+
**Demo Video:** https://youtu.be/m-RyW-Vq8r4
|
| 148 |
+
|
| 149 |
+
### Support of Metadata for Drawing
|
| 150 |
+
|
| 151 |
+
It is now possible to manage DXF metadata fields in the Drawing Preferences dialog.
|
| 152 |
+
|
| 153 |
+
`XXX_IMAGE`
|
| 154 |
+
|
| 155 |
+
### Support of User Data
|
| 156 |
+
|
| 157 |
+
User data of the drawing document are manageable in the Drawing Preferences dialog.
|
| 158 |
+
|
| 159 |
+
`XXX_IMAGE`
|
| 160 |
+
|
| 161 |
+
### Other Changes in Actions
|
| 162 |
+
|
| 163 |
+
In addition to support of context entity, there are small changes in action workflows:
|
| 164 |
+
|
| 165 |
+
1. "Select Intersecting Entities" action now allows you to specify an entity, and all entities that intersect it will be selected.
|
| 166 |
+
2. Linear dimensions actions allow you to select a line for faster creation of the dimension.
|
| 167 |
+
3. Dim Ordinate Action - if invoked with a context, may snap to a line endpoint or circle/arc center.
|
| 168 |
+
4. Trim and Trim Two actions - if invoked with a context, consider the provided entity as an entity that should be trimmed.
|
| 169 |
+
5. Draw Arc Tangential action - if invoked with a context, starts arc creation from the nearest endpoint of the selected entity.
|
| 170 |
+
6. Draw tangential lines actions - state depends on provided context entity type.
|
| 171 |
+
|
| 172 |
+
**Demo Video:**
|
| 173 |
+
|
| 174 |
+
### Interactive Input
|
| 175 |
+
|
| 176 |
+
This update introduces a new user experience. The user is now able to measure a value on the drawing instead of directly typing that value into an input field. This makes it possible to enter values that are equal to other geometry values present in the drawing.
|
| 177 |
+
|
| 178 |
+
The following types of values are supported:
|
| 179 |
+
|
| 180 |
+
* Position coordinates
|
| 181 |
+
* Linear value (length)
|
| 182 |
+
* Angle value
|
| 183 |
+
|
| 184 |
+
#### Interactive Input in Tool Options Toolbar
|
| 185 |
+
|
| 186 |
+
The Tool Options toolbar may now include buttons that initiate interactive input of values.
|
| 187 |
+
|
| 188 |
+
There is a setting in the Application Preferences dialog that allows you to enable or disable interactive input support for Tool Options.
|
| 189 |
+
|
| 190 |
+
`XXX_IMAGE`
|
| 191 |
+
|
| 192 |
+
#### Entity Properties Dialog
|
| 193 |
+
|
| 194 |
+
The Entity Properties dialog now includes support for interactive input.
|
| 195 |
+
|
| 196 |
+
`XXX_IMAGE`
|
| 197 |
+
|
| 198 |
+
#### Specifics of Measuring Values
|
| 199 |
+
|
| 200 |
+
When interactive input is initiated, the user is prompted to measure the corresponding value on the drawing.
|
| 201 |
+
|
| 202 |
+
Supported functionality depends on the type of value being measured.
|
| 203 |
+
|
| 204 |
+
##### Pick Point Coordinates
|
| 205 |
+
|
| 206 |
+
For point coordinates, the user should select a location and click on it. The coordinates of that location will be set to the appropriate inputs.
|
| 207 |
+
|
| 208 |
+
##### Pick Distance
|
| 209 |
+
|
| 210 |
+
For measuring distance, there are several possible modes:
|
| 211 |
+
|
| 212 |
+
1. **Major flow:** The user specifies positions of the first and second point; the resulting length is calculated as the distance between these points.
|
| 213 |
+
2. **SHIFT pressed:** Distance is determined based on the geometry of the object under the mouse cursor:
|
| 214 |
+
* Line - the length of the line is selected.
|
| 215 |
+
* Circle, Arc - the radius is selected. With CTRL pressed - the diameter is picked instead of the radius.
|
| 216 |
+
3. **CTRL pressed:** For a line under the cursor, the length of the line segment between points of intersections with other entities will be used.
|
| 217 |
+
|
| 218 |
+
##### Pick Angle
|
| 219 |
+
|
| 220 |
+
Picking the angle value also supports several modes:
|
| 221 |
+
|
| 222 |
+
1. **Major - 3 points angle:** The user specifies 3 points (edge, intersection, second edge) and the angle is measured as the angle between two lines directed from the edge points to the intersection.
|
| 223 |
+
2. **Angle of Line:** Click on a line with the CTRL key pressed will pick the angle of the line. If SHIFT is pressed during the click, a supplementary angle (the angle that supplements the line's angle to 180 degrees) will be used.
|
| 224 |
+
3. **Click on Line with SHIFT key:** Allows the user to select two existing lines and measure the angle between them.
|
| 225 |
+
4. **2 points angle:** If a 3-point angle measurement is started, and the second point is selected with CTRL pressed, the angle between two points will be selected.
|
| 226 |
+
|
| 227 |
+
Based on the angle selection method, it is possible to pick the measured angle value or the value of its supplementary angle.
|
| 228 |
+
|
| 229 |
+
**Demo Video:** https://youtu.be/GvpN6Y6PQsk
|
| 230 |
+
|
| 231 |
+
#### Point Coordinates Info Action
|
| 232 |
+
|
| 233 |
+
An additional Info action was added - **Point Coordinates**. This action allows the user to select a point on the drawing, and its coordinates are added to the command widget.
|
| 234 |
+
|
| 235 |
+
`XXX_IMAGE`
|
| 236 |
+
|
| 237 |
+
### Keyboard Support Improvement
|
| 238 |
+
|
| 239 |
+
Support for keyboard was slightly improved (though focus management still requires polishing). Changes are:
|
| 240 |
+
|
| 241 |
+
1. Better visual support of setting Free Snap via the SPACE key (if enabled by settings).
|
| 242 |
+
2. Scrolling the drawing area by pressing LEFT, RIGHT, UP, or DOWN keys.
|
| 243 |
+
3. Zoom in/out by + and - keys.
|
| 244 |
+
4. Moving currently selected entities by keyboard.
|
| 245 |
+
|
| 246 |
+
Keyboard support for scroll and moving selected objects may be enabled/disabled via the appropriate setting in the General Preferences dialog.
|
| 247 |
+
|
| 248 |
+
`XXX_IMAGE`
|
| 249 |
+
|
| 250 |
+
#### Moving Selected Objects by Keyboard
|
| 251 |
+
|
| 252 |
+
If there are selected entities within the drawing, their position may be adjusted via the keyboard. Depending on the used modifiers, the offset for moving entities is calculated differently. The offset depends on the current grid size and meta grid step.
|
| 253 |
+
|
| 254 |
+
The offset is calculated as follows:
|
| 255 |
+
|
| 256 |
+
1. **SHIFT + DIRECTION_KEY:** Default mode. The offset is the width of the current grid cell in the specified direction.
|
| 257 |
+
2. **CTRL + DIRECTION_KEY:** Precise mode. The offset is the current grid cell size divided by the meta-grid step value. Used for fine-tuning.
|
| 258 |
+
3. **CTRL + SHIFT + DIRECTION_KEY:** Fast mode. The offset is the current grid cell size multiplied by the meta-grid step value. Used for faster, rough positioning.
|
| 259 |
+
|
| 260 |
+
Where **DIRECTION_KEY** is one of the **LEFT / RIGHT / UP / DOWN** keys.
|
| 261 |
+
|
| 262 |
+
**Demo Video:** https://youtu.be/frAccXDuTIk
|
| 263 |
+
|
| 264 |
+
### Various Minor Fixes and Improvements
|
| 265 |
+
|
| 266 |
+
1. Displaying tooltips with toolbar name (plus setting in General Preferences).
|
| 267 |
+
2. Support of the user-defined step of the meta-grid (GRIDMAJOR) - with a corresponding setting in General Preferences.
|
| 268 |
+
3. Default location of custom icons engine is added as library path (directory is APP_DIR + "/iconengines"), so if icon engine dll is located there icon theeming settings should work.
|
| 269 |
+
3. Lots of small polishings and minor improvements.
|
| 270 |
+
|
| 271 |
+
### Changes in General Preferences
|
| 272 |
+
|
| 273 |
+
1. Added option for meta-grid step.
|
| 274 |
+
2. Added option for displaying tooltips for toolbars.
|
| 275 |
+
3. Added option for enabling/disabling interactive input controls in tool options toolbars.
|
| 276 |
+
4. Added option for enabling/disabling moving entities via keyboard.
|
| 277 |
+
|
| 278 |
+
XXX_IMAGE
|
| 279 |
+
|
| 280 |
+
#### Widget Preferences
|
| 281 |
+
|
| 282 |
+
Added an option that controls whether buttons for interactive input should be flat or not.
|
| 283 |
+
|
| 284 |
+
### Fixed Issues
|
| 285 |
+
1) LibreCAD#2144
|
| 286 |
+
2) LibreCAD#2174
|
| 287 |
+
3) LibreCAD#2177
|
| 288 |
+
4) LibreCAD#2190
|
| 289 |
+
5) LibreCAD#2194
|
| 290 |
+
6) LibreCAD#2197
|
| 291 |
+
7) LibreCAD#2198
|
| 292 |
+
8) LibreCAD#2199
|
| 293 |
+
9) LibreCAD#2203
|
ChangeLogs/ENTITY_INFO_WIDGET_README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Entity Info Widget
|
| 2 |
+
|
| 3 |
+
This is a small yet handy dockable widget. It is focused on two major functions:
|
| 4 |
+
1) Displaying properties of selected entity in quick manner;
|
| 5 |
+
2) Collection of arbitrary coordinates picked from drawing.
|
| 6 |
+
|
| 7 |
+
Thus, the widget operates in two modes.
|
| 8 |
+
|
| 9 |
+
### Demo Video
|
| 10 |
+
|
| 11 |
+
Small demo clip that illustrates the widget functions is located there: https://youtu.be/H06BQGNLBQ4
|
| 12 |
+
|
| 13 |
+
#### Common operations
|
| 14 |
+
There are several common operations for both modes:
|
| 15 |
+
|
| 16 |
+
1) Clearing displayed content;
|
| 17 |
+
2) Copying displayed content to clipboard.
|
| 18 |
+
3) Setting relative zero for coordinate value
|
| 19 |
+
4) Highlighting points with specific displayed coordinate in drawing;
|
| 20 |
+
5) Support of various coordinates modes;
|
| 21 |
+
6) Support of context popup menu on view widget by right mouse button (additional menu items are shown if menu is invoked on link).
|
| 22 |
+
|
| 23 |
+
### Entity Info Mode
|
| 24 |
+
|
| 25 |
+
This mode of widget is used for displaying the set of properties for selected entity.
|
| 26 |
+
|
| 27 |
+
#### Entity Selection
|
| 28 |
+
|
| 29 |
+
Properties are shown to one entity only. Entity may be selected either (according to setting):
|
| 30 |
+
|
| 31 |
+
1) If no specific action is in progress (so default action is executed) - just as entity under mouse cursor;
|
| 32 |
+
2) For entity under cursor in default action if CTRL/META key is pressed together with mouse move;
|
| 33 |
+
3) By explicit selection via action provided by the widget.
|
| 34 |
+
|
| 35 |
+
Supported way of entity's selection is controlled by appropriate settings.
|
| 36 |
+
|
| 37 |
+
#### Selected Entity
|
| 38 |
+
As soon as the entity is selected, the widget displays set of entity properties.
|
| 39 |
+
|
| 40 |
+
The list of properties depends on type of selected entity.
|
| 41 |
+
|
| 42 |
+
Using options, it is possible to define whether:
|
| 43 |
+
1) Entity boundaries (minV, MaxV) should be shown;
|
| 44 |
+
2) For polyline entity - whether detailed information about polyline segments (lines and arc) should be shown in addition to vertexes.
|
| 45 |
+
|
| 46 |
+
Property values that represent coordinates may be used for setting new position of relative zero.
|
| 47 |
+
|
| 48 |
+
Also, it is possible to insert coordinates and single values of properties to input control of Cmd widget.
|
| 49 |
+
|
| 50 |
+
Additional operations:
|
| 51 |
+
1) Selection of entity that is used for displaying properties in drawing.
|
| 52 |
+
2) Invocation of Edit Properties dialog for selected entities.
|
| 53 |
+
|
| 54 |
+
#### Coordinates View Mode
|
| 55 |
+
For the entity, all relevant coordinates may be shown either as:
|
| 56 |
+
* absolute ones
|
| 57 |
+
* relative to relative zero point.
|
| 58 |
+
|
| 59 |
+
#### NOTE: Outdated entity info
|
| 60 |
+
In some cases, displayed properties of entity may be outdated. The most possible reason for this - editing of entity via different operations.
|
| 61 |
+
So far internal technical implementation does various operations on individual actions level, therefore it is technically challenged to insure proper realtime refreshing entity properties.
|
| 62 |
+
|
| 63 |
+
Therefore, in order to see the actual properties of entities after editing operations, it better to select respecting entity again.
|
| 64 |
+
|
| 65 |
+
### Coordinates Mode
|
| 66 |
+
|
| 67 |
+
This mode of the widget allows to pick the set of coordinates from the drawing for later use.
|
| 68 |
+
|
| 69 |
+
#### Coordinates selection
|
| 70 |
+
|
| 71 |
+
Coordinates selection is performed via appropriate action invoked from the widget interface. For picking the coordinate, the user should do mouse click in specific location.
|
| 72 |
+
|
| 73 |
+
Actually picked coordinate is extracted according to currently used snap mode.
|
| 74 |
+
|
| 75 |
+
If *SHIFT* key is pressed, FREE snap is used.
|
| 76 |
+
|
| 77 |
+
#### Coordinates list
|
| 78 |
+
This mode, the widget displays zero point (that depends on used coordinates mode) and the list of picked coordinates.
|
| 79 |
+
Also, the total length of path between selected points is displayed.
|
| 80 |
+
|
| 81 |
+
Based on settings, the list of coordinates may also include distance and angle from zero point to each picked coordinate.
|
| 82 |
+
|
| 83 |
+
#### Operations with coordinates
|
| 84 |
+
In addition to picking specific coordinate, the following operations are supported:
|
| 85 |
+
1) Copying all displayed content to the clipboard;
|
| 86 |
+
2) Removing specific coordinate (available via popup content menu);
|
| 87 |
+
3) Inserting coordinate in specific position of the list (available via popup content menu);
|
| 88 |
+
4) Highlighting coordinate on drawing;
|
| 89 |
+
5) Setting relative zero point in specific coordinate.
|
| 90 |
+
|
| 91 |
+
#### Coordinate View mode
|
| 92 |
+
For coordinates mode, collected coordinates may be displayed in several ways, as:
|
| 93 |
+
* Absolute coordinates;
|
| 94 |
+
* Relative coordinates to relative zero point;
|
| 95 |
+
* Relative coordinates to first picked point in the list;
|
| 96 |
+
* Relative coordinate to previous picked point in the list.
|
| 97 |
+
|
| 98 |
+
### Settings
|
| 99 |
+
Using settings, it is possible to control:
|
| 100 |
+
1) Integration of the widget with default action and entity selection way;
|
| 101 |
+
2) Entity display options (boundary coordinates, polyline details)
|
| 102 |
+
3) Displaying distance/angel for collected points;
|
| 103 |
+
4) Preview for collected point;
|
| 104 |
+
5) Pen used for highlighting coordinate values.
|
| 105 |
+
|
| 106 |
+
### Misc notes
|
| 107 |
+
At the moment, the content is copied to the clipboard in the same format as it is displayed by the widget.
|
| 108 |
+
However, if it will be useful, support of additional formats (csv, xml etc.) may be added (as well as support of saving it to some file).
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
|
ChangeLogs/ICONS AND WORKSPACES README.md
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Styled icons and workspaces support
|
| 2 |
+
|
| 3 |
+
This PR is concentrated on generic UI and face-lifting, and includes support of
|
| 4 |
+
1) Styled icons
|
| 5 |
+
2) External icons
|
| 6 |
+
2) User-defined workspaces
|
| 7 |
+
3) Application preferences exchange (export/import).
|
| 8 |
+
|
| 9 |
+
### Demo
|
| 10 |
+
|
| 11 |
+
https://youtu.be/mbYkwPAdKJU - icons styling
|
| 12 |
+
|
| 13 |
+
https://youtu.be/FwvXs1eDYBA - workspaces
|
| 14 |
+
|
| 15 |
+
### 1) Styled Icons
|
| 16 |
+
|
| 17 |
+
Now the user may specify the color scheme of icons. That's convenient for users with non-standard windows color scheme (dark etc.), where default LibreCAD look non-naturl.
|
| 18 |
+
|
| 19 |
+
Now each icon, used by LibreCAD is in SVG format (except splash images and cursors, which are PNG).
|
| 20 |
+
|
| 21 |
+
All SVG icons were reviewed and optimized.
|
| 22 |
+
|
| 23 |
+
#### Colors Substitution
|
| 24 |
+
|
| 25 |
+
It is assumed that each item should include 3 customizable colors:
|
| 26 |
+
|
| 27 |
+
1) Main - originally black - SVG color value is "#000"
|
| 28 |
+
2) Accent - originally green - SVG color value - is "#00ff7f"
|
| 29 |
+
3) Background - originally white - SVG color value is "#fff"
|
| 30 |
+
|
| 31 |
+
#### Icons Styling Setup
|
| 32 |
+
|
| 33 |
+
Using UI in "Widget Options"->"Icons Styling", the user may specify new values of these color.
|
| 34 |
+
|
| 35 |
+
Also, via "Widget Options"->"Advanced Styling", its is possible to specify color values for icons in different Modes (Normal, Active, Disabled, Selected) and states (On, Off).
|
| 36 |
+
This allows to achieve more interactive feedback from icons in different states as well as address icons visibility issues.
|
| 37 |
+
|
| 38 |
+
### 2) External Items
|
| 39 |
+
|
| 40 |
+
The user may specify location of the folder where external icons may be stored. If icons found in that location, it will **OVERRIDE** default icon.
|
| 41 |
+
|
| 42 |
+
Name of the icon should match the name of the original icons.
|
| 43 |
+
|
| 44 |
+
Support of icons for different modes and styles is performed via naming of images, with generic format of icon name as:
|
| 45 |
+
|
| 46 |
+
**{BASE_NAME}\_{MODE}_{STATE}.{EXT}**
|
| 47 |
+
|
| 48 |
+
Where
|
| 49 |
+
1) **BASE_NAME** - base name of icon (like "circle")
|
| 50 |
+
2) **MODE** - suffix for desired icon mode. Supported values are:
|
| 51 |
+
* normal
|
| 52 |
+
* active
|
| 53 |
+
* disabled
|
| 54 |
+
* selected
|
| 55 |
+
2) **STATE** icon state. Values are:
|
| 56 |
+
*on
|
| 57 |
+
*off
|
| 58 |
+
3) **EXT** extension. Supported extensions are:
|
| 59 |
+
* svg - ordinary svg file. No colors substitutions will be applied.
|
| 60 |
+
* lci - svg file. However, the same colors substitution as described above will be applied to the icon.
|
| 61 |
+
|
| 62 |
+
*MODE* and *STATE* components are optional. If they omitted, the icon will be applied for all modes and states.
|
| 63 |
+
|
| 64 |
+
It is possible ot override icon via external file only for specific state of the image (say, normal and on (pressed button)).
|
| 65 |
+
|
| 66 |
+
Such scheme allows to replace built-in icons by the user-provided external ones.
|
| 67 |
+
|
| 68 |
+
#### Example of naming:
|
| 69 |
+
|
| 70 |
+
Original built-in image path: ":/icons/angle_3_points.svg"
|
| 71 |
+
|
| 72 |
+
Name of external icon that will override built-in image (for normal and pressed button state):
|
| 73 |
+
|
| 74 |
+
*<OVERRIDES_DIR>/icons/angle_3_points_normal_on.svg*
|
| 75 |
+
|
| 76 |
+
or
|
| 77 |
+
|
| 78 |
+
*<OVERRIDES_DIR>/icons/**angle_3_points_normal_on.lci***
|
| 79 |
+
|
| 80 |
+
Where OVERRIDES_DIR is path to external icons.
|
| 81 |
+
|
| 82 |
+
#### Persistent Icons Styles
|
| 83 |
+
|
| 84 |
+
The set of icons styling settings may be saved as named style.
|
| 85 |
+
|
| 86 |
+
Styles are saved in external files. Internal format is JSON and extension is "**.lcis**".
|
| 87 |
+
|
| 88 |
+
These files are located in icons overrides directory, therefore if directory is not set - support of styles is disabled.
|
| 89 |
+
|
| 90 |
+
It is possible to exchange icons styles between users just by copying style files.
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
### 3) Icons Engine - developers note
|
| 94 |
+
|
| 95 |
+
Support of icons styling was implemented via custom implementation of QIconEngine (with internal implementation similar to built-in QSVGIconEngine).
|
| 96 |
+
|
| 97 |
+
That custom IconEngine is packed as standard QT icon engine plugin.
|
| 98 |
+
|
| 99 |
+
That icon engine handles SVG images but with "**.lci**" extensions. Therefore, while in /res directory icons in SVG format are stored, the QT-resources file includes alias for each icon.
|
| 100 |
+
|
| 101 |
+
That alias is name of the icon with "**.lci**" extension. The code that refers to icon resources (.ui files, c++ files) requests icons by alias (i.e. as resource with "**.lci**") extension instead of "**.svg**".
|
| 102 |
+
|
| 103 |
+
Functionality of custom Icon Engine is located in **/libraries/lciconengine**.
|
| 104 |
+
|
| 105 |
+
On deploy/installation, it should be built as DLL for Windows (or shared lib for other platforms) and be installed to the direction where svgiconengine.dll is deployed (i.e *\LibreCAD\iconengines\*").
|
| 106 |
+
|
| 107 |
+
For development purposed, icon engine plugin might be also installed into QT (near to SVGIconEngine plugin).
|
| 108 |
+
|
| 109 |
+
If icon engine plugin is not installed - the '.lci' resources will be handled by standard QT SVG icons plugin - and, of course, colors substitutions will not work.
|
| 110 |
+
|
| 111 |
+
**NOTE:**
|
| 112 |
+
|
| 113 |
+
So far, only QT project support build of icon engine plugin.
|
| 114 |
+
|
| 115 |
+
CMake build - **DOES NOT SUPPORT** creation of DLL/shared libraries.
|
| 116 |
+
|
| 117 |
+
Deployment, installation script - **DOES NOT SUPPORT** proper deployment of icon engine plugin to the installation package.
|
| 118 |
+
|
| 119 |
+
Here an additional support in creation proper buid/deployment scripts is needed.
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
#### NOTE REGARDING INSTALLATION PACKAGE:
|
| 123 |
+
|
| 124 |
+
Just a couple of ideas how icons styling may affect the installation package (they are not implemented).
|
| 125 |
+
|
| 126 |
+
##### Source icons as part of installation package
|
| 127 |
+
|
| 128 |
+
It is quite reasonable to add original icons as archive to installation layout.
|
| 129 |
+
That will let the ordinary user to understand the name of each icon and override it, if necessary, without trying to find the icon in sources of the application.
|
| 130 |
+
|
| 131 |
+
##### Default Styles
|
| 132 |
+
|
| 133 |
+
Potentially, it is possible also to include some template icons override directory into installation as well as add several predefined styles into it.
|
| 134 |
+
|
| 135 |
+
---
|
| 136 |
+
|
| 137 |
+
#### How to add icons to the codebase
|
| 138 |
+
|
| 139 |
+
Here is the description of adding icons so that colors substitution/external icon override will be supported:
|
| 140 |
+
|
| 141 |
+
1) Create SVG (as before), ensure that colors within that SVG corresponds to colors used for colors substitution (Main - "**#000**", Accent - "**#00ff7f**", Background - "**#fff**").
|
| 142 |
+
2) Optimize SVG - for example, using SVGCleaner - https://github.com/RazrFalcon/svgcleaner
|
| 143 |
+
3) Store icon in needed location under /res directory
|
| 144 |
+
4) Add icon to resources file (.qrc)
|
| 145 |
+
5) Add alias for icon (name of file + .lci)
|
| 146 |
+
6) Refer icon resources from .ui or code using alias.
|
| 147 |
+
|
| 148 |
+
**Important!**
|
| 149 |
+
|
| 150 |
+
Icons should be initialized **AFTER** qApp macro start returning not-null value (in other workds, QCoreApplication::instance() is initialized).
|
| 151 |
+
|
| 152 |
+
If initialization is performed earlier - loading icons from external direction will not work.
|
| 153 |
+
|
| 154 |
+
|
| 155 |
+
### 5) Icons size control
|
| 156 |
+
|
| 157 |
+
Using "Preferences->Widget options" dialog, the user may preform fune-tuning sizes of buttons that are shown in:
|
| 158 |
+
|
| 159 |
+
1) Toolbars
|
| 160 |
+
2) Left Sidebar Panel (Dock widget with commands)
|
| 161 |
+
3) Toolbars in Docking widgets that are docked to right (like Layer list, Block list etc.)
|
| 162 |
+
|
| 163 |
+
Also, it's possible to specify whether buttons in left sidebar and buttons in doc widgets on right should be flat (auto-rise) or not.
|
| 164 |
+
|
| 165 |
+
### 6) Support of Workspaces
|
| 166 |
+
|
| 167 |
+
Support of workspaces was added.
|
| 168 |
+
|
| 169 |
+
Workspace represents just a named configuration of window size as well as positions of widgets that are visible on the screen.
|
| 170 |
+
|
| 171 |
+
Workspaces allows the user to optimise UI of the application and make it more suitable for specific tasks (i.e - editing, inspecting drawings, adding dimensions etc.).
|
| 172 |
+
|
| 173 |
+
### 6) Support of extended main menu
|
| 174 |
+
|
| 175 |
+
Now the user may control the state of the main menu and select between 3 forms of the menu
|
| 176 |
+
1) default one (with lots of commands packed to "Tools" menu
|
| 177 |
+
2) expanded compact - where instead of using single "Tools" menu, all commands are grouped into more focused "Draw", "Modify", "Dimensions" and "Info" menus.
|
| 178 |
+
3) expanded to entity group - as previous, yet command in "Draw" menu are expanded to individual menus that corresponds to the entity's type.
|
| 179 |
+
|
| 180 |
+
The type of the manin menu to be shown is controlled by settings in Application Preferences -> Defaults tab.
|
| 181 |
+
|
| 182 |
+
Widgets and Drawings menus were combined into "Workspaces" menu.
|
| 183 |
+
|
| 184 |
+
### 7) Settings Exchange
|
| 185 |
+
|
| 186 |
+
Now it's possible to export Application Preferences to external file and import them back.
|
| 187 |
+
|
| 188 |
+
Format for file is human-readable, it's just an ordinary JSON.
|
| 189 |
+
|
| 190 |
+
This functionality is located in Application Preferences -> Paths.
|
| 191 |
+
|
| 192 |
+
### 8) Issues addressed
|
| 193 |
+
|
| 194 |
+
The following issues were addressed by PR:
|
| 195 |
+
|
| 196 |
+
LibreCAD#102
|
| 197 |
+
|
| 198 |
+
LibreCAD#752
|
| 199 |
+
|
| 200 |
+
LibreCAD#1144
|
| 201 |
+
|
| 202 |
+
LibreCAD#1929
|
ChangeLogs/INFO_CURSOR_README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This pull requests is focused mostly on adding more interactivity and information to drawing operations.
|
| 2 |
+
|
| 3 |
+
### Informational Cursor
|
| 4 |
+
Well, while the term may be not the most straightforward one, the idea behind it is quite simple - provide the user with additional context aware feedback.
|
| 5 |
+
|
| 6 |
+
That feedback displayed by overlay, that is associated with current cursor position.
|
| 7 |
+
|
| 8 |
+
That functionality should assist new users understand the functionality of specific actions.
|
| 9 |
+
|
| 10 |
+
Also, it allows to save some space on the screen by disabling several duplicated widgets (Coordinates Widget, Mouse Widget) from status bar (if status bar is in floating mode).
|
| 11 |
+
|
| 12 |
+
#### Zones and shown information
|
| 13 |
+
|
| 14 |
+
Informational cursor includes several zones:
|
| 15 |
+
|
| 16 |
+
1) Zone 1 - current coordinates of snap point
|
| 17 |
+
2) Zone 2 - displays information about current snap mode/restrictions, as well as properties of caught entity, properties of entity to be created or action-specific information.
|
| 18 |
+
3) Zone 3 - displays relative coordinates of snap point
|
| 19 |
+
4) Zone 4 - displays name of active action, command prompt and information about modifiers keys.
|
| 20 |
+
|
| 21 |
+
#### Settings
|
| 22 |
+
The content and appearance of informational cursor is controlled by settings in Application Preferences.
|
| 23 |
+
It is possible to disable either specific zones or the complete informational cursor displaying.
|
| 24 |
+
|
| 25 |
+
#### Informational cursor toolbar
|
| 26 |
+
For the convenience of quick enabling/disabling specific zones of informational cursor, an additional toolbar was added.
|
| 27 |
+
|
| 28 |
+
#### Quick object properties
|
| 29 |
+
An action was added that allows to display properties of the object in informational toolbar.
|
| 30 |
+
|
| 31 |
+
### Other Features
|
| 32 |
+
|
| 33 |
+
There are several other features that are included into this merge request:
|
| 34 |
+
|
| 35 |
+
1) Added option for controlling whether text/mtext should be drawn as draft during panning operations or not
|
| 36 |
+
2) Flip Horizontally / Flip Vertically was added to Mirror Operation (available if "mirror to line" is selected)
|
| 37 |
+
|
| 38 |
+
### Bug fixes
|
| 39 |
+
The following issues were fixed
|
| 40 |
+
LibreCAD#1983 (and probably LibreCAD##1984)
|
| 41 |
+
LibreCAD#1973 - Changing of relative point position is now undoable
|
| 42 |
+
LibreCAD#1972 - regressing for PDF export
|
ChangeLogs/LAYER_TREE_VIEW.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Layer Tree View Widget Overview
|
| 2 |
+
|
| 3 |
+
### The Problem
|
| 4 |
+
|
| 5 |
+
Some complex drawings may include lots of layers. Also, one layer may be used for single part/view, and separate layers
|
| 6 |
+
may be used for dimensions, alternative position of part or for some additional meta information (notes, sketches and so on).
|
| 7 |
+
|
| 8 |
+
If some parts belong to some units, it is convenient to name layers for such parts in uniform way, or, what is even
|
| 9 |
+
better, organize hierarchy of layers.
|
| 10 |
+
|
| 11 |
+
Unfortunately, DXF format does not support hierarchy of layer as well as LibreCAD (so far).
|
| 12 |
+
|
| 13 |
+
Even with plain list of layers it is possible to use logical grouping or layers - by relying on some common
|
| 14 |
+
logical prefix in their names. However, while artificial naming of layers simplifies layers related operations a bit,
|
| 15 |
+
it is still limited.
|
| 16 |
+
|
| 17 |
+
### The Solution
|
| 18 |
+
|
| 19 |
+
In order to provide more convenient way of working with layers, support of hierarchical layers was added and implemented
|
| 20 |
+
in Layer Tree widget. The widget is similar to standard Layer List widget, yet brings a bit more functions.
|
| 21 |
+
|
| 22 |
+
Layers hierarchy is built purely based on naming convention, which assumes that some uniform substring is used as separator
|
| 23 |
+
of layer's levels).
|
| 24 |
+
|
| 25 |
+
In addition to support of hierarchical view of layers, the widget adds some additional features that are listed below.
|
| 26 |
+
|
| 27 |
+
### Features
|
| 28 |
+
|
| 29 |
+
Here is a brief list of features, implemented in widget
|
| 30 |
+
|
| 31 |
+
### General
|
| 32 |
+
* Two modes of layers displaying - hierarchical (tree) and flat (list)
|
| 33 |
+
* Regexp-based filter, that allows to filter layers OR highlight layers that matches regexp string
|
| 34 |
+
* Drag&Drop restructure
|
| 35 |
+
* Group operations on layers hierarchy
|
| 36 |
+
|
| 37 |
+
Several predefined layer types are supported:
|
| 38 |
+
* Normal (ordinary layer)
|
| 39 |
+
* Dimensional (stores dimensions for corresponding normal layer)
|
| 40 |
+
* Informational (for notes and sketches)
|
| 41 |
+
* Alternative position (same part but located in different position)
|
| 42 |
+
* Virtual - holder for layers of other types, may be considered as something similar to folder
|
| 43 |
+
|
| 44 |
+
#### Toolbar Actions
|
| 45 |
+
* Show all Layers
|
| 46 |
+
* Hide all Layers
|
| 47 |
+
* Show/Hide Secondary layers
|
| 48 |
+
* Show Active layer Only
|
| 49 |
+
* Expand All Items (Tree mode)
|
| 50 |
+
* Collapse All Items (Tree Mode)
|
| 51 |
+
* Collapse Secondary Layers (Tree Mode)
|
| 52 |
+
* Lock All Layers
|
| 53 |
+
* Unlock All Layers
|
| 54 |
+
* Add layer
|
| 55 |
+
* Add Dimensional layer
|
| 56 |
+
* Remove Active Layer
|
| 57 |
+
* Edit Active Layer
|
| 58 |
+
|
| 59 |
+
#### Filtering Box
|
| 60 |
+
* If Highlight Mode check is selected, items that matches provided regexp will be highlighted in the list.
|
| 61 |
+
* Otherwise - only layer items that matches regexp will be shown in the list.
|
| 62 |
+
|
| 63 |
+
#### Layers Tree View
|
| 64 |
+
* Displaying logical structure of layers based on naming convention
|
| 65 |
+
* Icons that display type of layer
|
| 66 |
+
* Columns for layers flags (frozen, locked, print enabled, construction)
|
| 67 |
+
* Support of **GROUP operations** on flags - i.e. click on top layer flag also is applied on descendant layers
|
| 68 |
+
* Drag&Drop for restructuring hierarchy
|
| 69 |
+
* Double-click on virtual layer item - expands children
|
| 70 |
+
* Double-click on actual layer item - invokes Layer Edit dialog
|
| 71 |
+
* Item-aware context menu
|
| 72 |
+
* Customizable appearance (colors, items displaying)
|
| 73 |
+
* Showing full layer name as tooltip
|
| 74 |
+
* Optional indentation of layer names according to the level in hierarchy
|
| 75 |
+
|
| 76 |
+
#### Operations With Layers
|
| 77 |
+
* Layer creation (with support of **default pen** for specific layer type)
|
| 78 |
+
* Layer editing
|
| 79 |
+
* Hierarchy-aware layers rename (mass rename of descendent children based on parent layer)
|
| 80 |
+
* Single layer removal
|
| 81 |
+
* Hierarchy-aware layers removal (layer and its children, or children only)
|
| 82 |
+
* Add child layers with predefined type
|
| 83 |
+
* Change of layer type
|
| 84 |
+
* Freeze all layers **except** selected
|
| 85 |
+
* **Copy** of layer (hierarchy aware) - copies the structure of layers with attributes copy)
|
| 86 |
+
* **Duplicate** Layer (hierarchy aware) - copies the structure of layers with attributes copy **AND** copies entities from
|
| 87 |
+
source levels to their copies
|
| 88 |
+
* Removing empty layers without entities
|
| 89 |
+
|
| 90 |
+
#### Operations with entities
|
| 91 |
+
* Select layer entities (hierarchy aware)
|
| 92 |
+
* Move current entities selection to layer
|
| 93 |
+
* Copy current entities selection to layer
|
| 94 |
+
|
| 95 |
+
#### Customization options
|
| 96 |
+
* Naming convention, that defines string used as separator of layer levels and set of prefixes that are used to identify
|
| 97 |
+
particular layer type
|
| 98 |
+
* Prefix and suffix for autogenerated names that may occur in order to prevent layer name's duplication
|
| 99 |
+
* Colors (highlighted matched item, grid, background for virtual layer, background for selected item, background for active layer)
|
| 100 |
+
* Minor UI adjustments options (tooltips, drag&drop support, names indentation, layer type options)
|
| 101 |
+
* **DEFAULT PEN** for each layer type - that pen will be set in layer creation dialog
|
| 102 |
+
|
| 103 |
+
#### Implementation notes
|
| 104 |
+
|
| 105 |
+
This is pure UI implementation that does not affect internal structures of layers or underlying storage format. Original
|
| 106 |
+
plain layers list is not affected and two widgets may be used in parallel.
|
| 107 |
+
|
| 108 |
+
The current implementation tried to affect existing codebase as minimal as it is possible and minimize refactoring of the
|
| 109 |
+
existing codebase in order to avoid introducing regression issues.
|
| 110 |
+
|
| 111 |
+
No additional libraries or dependencies were added, it's just plain C++/QT code with comments.
|
| 112 |
+
|
| 113 |
+
While such approach allows to have quite isolated and self-contained implementation, it is not clear how does it fit in
|
| 114 |
+
general architecture of the existing code.
|
| 115 |
+
|
| 116 |
+
Possible candidates for further refactorings (if it will be reasonable) - classes for actions, code for working with
|
| 117 |
+
entities, original layers list (RS_LayersList).
|
| 118 |
+
|
| 119 |
+
#### Localization
|
| 120 |
+
All strings used are localizable, yet it is necessary to create actual language-specific values for them.
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
|
ChangeLogs/MORE_ACTIONS_AND_FIXES.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This pull requests is focused mostly on adding drawing modification actions and fixing bugs.
|
| 2 |
+
|
| 3 |
+
### Modification actions
|
| 4 |
+
|
| 5 |
+
There are several nice actions, which are quite simple but which are very helpful and convenient for positioning entities.
|
| 6 |
+
|
| 7 |
+
#### Align
|
| 8 |
+
|
| 9 |
+
A really handy action that allows aligning selection vertically and horizontally to entity, coordinate or drawing.
|
| 10 |
+
|
| 11 |
+
#### Align Single
|
| 12 |
+
|
| 13 |
+
Another variation of entities align that allows to align individual entities one by one to designed base entity or point.
|
| 14 |
+
|
| 15 |
+
#### Align Reference Points
|
| 16 |
+
|
| 17 |
+
Powerful transformation action, allows to move\rotate\scale selected entities transforming them based mapping 2 source points to 2 target points.
|
| 18 |
+
|
| 19 |
+
### Drawing Actions
|
| 20 |
+
|
| 21 |
+
Several utility drawing actions were added:
|
| 22 |
+
|
| 23 |
+
#### Middle Point
|
| 24 |
+
Creates point in the middle of line between start and end point. Might be considered as a shortcut for Snap Middle Manual, except that it a bit simpler to invoke and allows to specify the amount of middle points.
|
| 25 |
+
The major purpose for such action - use points as corner snaps for further drawings.
|
| 26 |
+
|
| 27 |
+
#### Middle Line
|
| 28 |
+
Simple action that draws line that connects middle points of lines between endpoints of two lines (with specified offset of endpoints). The major purpose for this action is to simplify drawing axis for parallel lines (say, for bi-section of the hole or cylinder), however, it may be also used for other geometrical drawings.
|
| 29 |
+
|
| 30 |
+
#### Bounding Box
|
| 31 |
+
Simple action that allows to draw either bonding box around entity or selection (with specified offset), or just draw a points in the corners of the box.
|
| 32 |
+
|
| 33 |
+
### Polygon Actions
|
| 34 |
+
All actions that draws polygons now supports:
|
| 35 |
+
1) Rounded corners of created polygon;
|
| 36 |
+
2) Entire polygon drawn by polyline.
|
| 37 |
+
|
| 38 |
+
Also, the action that allows creation of polygon by 2 points (either Side/Side of edge Or by Vertex/Vertex) was added.
|
| 39 |
+
|
| 40 |
+
### Creation of entities COPIES in default action
|
| 41 |
+
|
| 42 |
+
If CTRL is pressed during mouse button release after dragging selected entities in default action, instead of moving original entities (which is normal behavior), a copies of them will be created in new location.
|
| 43 |
+
|
| 44 |
+
### More natural positioning for Text/MText
|
| 45 |
+
Now it's possible to move these entities using insertion points/second point which now are used as first-class handles. This allows to position texts that use different text alignment easily.
|
| 46 |
+
|
| 47 |
+
### Other changes
|
| 48 |
+
|
| 49 |
+
1) Draw method is added for construction line entity, reference construction line for preview is supported.
|
| 50 |
+
2) Layout of some source files was changed.
|
| 51 |
+
3) All entities modification actions that allows the user to select entities first, now supports bulk window selection mode in addition to individual entity selection mode.
|
| 52 |
+
4) Setting was added to the Application Preferences that controls whether entities that were modified should stay selected after modification or not.
|
| 53 |
+
5) Preview mode for snap middle manual operation was improved.
|
| 54 |
+
|
| 55 |
+
### Issues fixed
|
| 56 |
+
#1937
|
| 57 |
+
#1944
|
| 58 |
+
#1949
|
| 59 |
+
#1948
|
| 60 |
+
#1952
|
| 61 |
+
#1957
|
| 62 |
+
#1959
|
| 63 |
+
#1968
|
| 64 |
+
#1969
|
ChangeLogs/NAMED VIEWS README.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This pull request is focused on adding initial support of persistent named views as well as some minor improvements.
|
| 2 |
+
They ara listed below:
|
| 3 |
+
|
| 4 |
+
### Named Views
|
| 5 |
+
The following functionality was added:
|
| 6 |
+
|
| 7 |
+
1) Support of VIEW table on DXF level (read/write)
|
| 8 |
+
2) Dockable widget "Named Views" for views management
|
| 9 |
+
3) "Named Views" toolbar for saving/restoring views
|
| 10 |
+
4) Actions for quick restoring of 5 top views via shortcuts (default shortcuts were not set for them, however)
|
| 11 |
+
|
| 12 |
+
Of course, only 2D views are supported (no 3D).
|
| 13 |
+
|
| 14 |
+
So far, named views for paper space are supported partially - if they are created outside LibreCAD, they are parsed, shown in the widget and saved back to DXF.
|
| 15 |
+
However, so far they can't be created within LibreCAD and there is no navigation to paper space view.
|
| 16 |
+
|
| 17 |
+
Implementation of named views on DXF level is interoperable at least with QCAD (so QCAD and LibreCAD can properly open files with named views).
|
| 18 |
+
|
| 19 |
+
Interoperability with other CAD software (AutoCAD, Draftsight etc.) for named views should be tested.
|
| 20 |
+
|
| 21 |
+
### Action Icon in Options Widget
|
| 22 |
+
|
| 23 |
+
Now it's possible to specify via application preferences that the icon for active action should be shown in options widget too.
|
| 24 |
+
This allows to hide Mouse Widget (if status bar is not in "classic" mode) if needed, as its functionality is duplicated by bottom status bar and options widget.
|
| 25 |
+
|
| 26 |
+
### Variables Viewer
|
| 27 |
+
|
| 28 |
+
Drawing Preferences dialog was extended and "Variables" tab was added. On that tab there is a table that lists all variables of the drawing as well as their values.
|
| 29 |
+
|
| 30 |
+
### Localization
|
| 31 |
+
|
| 32 |
+
Localization files were regenerated to reflect latest changes in the codebase.
|
| 33 |
+
|
| 34 |
+
### Source Code layout
|
| 35 |
+
The additional sub-directories were added for source code in /lib/engine in order to have more specific and focused source code files hierarchy.
|
ChangeLogs/PEN_PALETTE_README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Pen Palette Widget
|
| 2 |
+
|
| 3 |
+
The small yet nice widget improves way of dealing with pen attributes.
|
| 4 |
+
|
| 5 |
+
It provides possibility to manage a list of named pens and perform various operations related to them, as well as selecting entities and applying pen attributes to selection.
|
| 6 |
+
|
| 7 |
+
In addition to this, feature contains improvements for current color comboboxes, allowing better displaying of current (and user-picked color).
|
| 8 |
+
|
| 9 |
+
Demo for the widget is located on YouTube here: https://youtu.be/YSU0K3-PfbI
|
| 10 |
+
|
| 11 |
+
### Widget Structure
|
| 12 |
+
The widget is standard dockable widget. UI of it includes several sections:
|
| 13 |
+
|
| 14 |
+
1) toolbar with set of actions
|
| 15 |
+
2) pen editor area (pressing Enter in pen's name saves pen)
|
| 16 |
+
3) filter section with regexp expression (that is used for items filtering/or highlighting according to provided regexp)
|
| 17 |
+
4) table view with list of items.
|
| 18 |
+
|
| 19 |
+
### Major Features
|
| 20 |
+
|
| 21 |
+
1) Managing list of named pens (creation, editing, remove or multi-remove of pens);
|
| 22 |
+
2) Persistent storage of created pens;
|
| 23 |
+
3) Filtering or highlighting pens in the list according to provided regexp string (with optional case-insensitive match);
|
| 24 |
+
4) Support of "Unchanged" value for pen attributes as "any value", allowing partial pen match operations.
|
| 25 |
+
5) Support of "By Layer" and "By Block" pen attributes
|
| 26 |
+
|
| 27 |
+
#### Operations supported
|
| 28 |
+
1) Selection of entities - by specified pen attributes by matching entity's pen attributes and specified pen attributes. Logical AND operations is used and particular match via "unchanged" values of pen's attributes that are considered as "any matched" is supported.
|
| 29 |
+
2) Selection of entities - by specified **DRAWING** pen attributes (i.e - by actual appearance of the entity described by "resolved" pen)
|
| 30 |
+
3) Picking pen - from selected entity's attributes for further editing or storing;
|
| 31 |
+
4) Picking DRAWING pen - from selected entity for further pen's editing or storing;
|
| 32 |
+
5) Applying pen - to selected entities (this is similar to "Modify Attributes" action, yet probably is a bit more convenient);
|
| 33 |
+
6) Picking pen - from active pen (Pen Tool Bar) for editing or storing;
|
| 34 |
+
7) Setting active pen - in Pen Toolbar by pen from widget (from pen's editor or from table item);
|
| 35 |
+
8) Setting active pen - pen from active layer is applied to current pen in Pen Tool Bar
|
| 36 |
+
9) Picking pen - from active layer (for editing or storing);
|
| 37 |
+
10) Setting pen - for active layer;
|
| 38 |
+
11) Creation, Editing, Removing individual named pens.
|
| 39 |
+
12) Operations may be invoked either from widget's toolbar or via context menu on pens table.
|
| 40 |
+
|
| 41 |
+
##### Various features
|
| 42 |
+
|
| 43 |
+
Options dialog that supports:
|
| 44 |
+
|
| 45 |
+
1) Customizable columns in table view;
|
| 46 |
+
2) Various ways of displaying color names (rbg, hex, color names);
|
| 47 |
+
3) Optional tooltip with pen info for table view;
|
| 48 |
+
4) Customizable double-click on pen item operation;
|
| 49 |
+
5) Customizable UI colors for widget table
|
| 50 |
+
6) Customizable path for pen's storage
|
| 51 |
+
|
| 52 |
+
### Implementation
|
| 53 |
+
|
| 54 |
+
Standard QT/C++, no additional dependencies/libraries are introduced. During implementation, one of the goals was minimization of existing codebase affecting in order to eliminate possible regressions.
|
| 55 |
+
Strings withing code are localizable via ::tr(), specific translations for languages are needed.
|
| 56 |
+
|
| 57 |
+
|
ChangeLogs/RELATIVE_POINT_ETC_README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This pull request includes various functionality in different areas, as well as fixes, improvements and new actions.
|
| 2 |
+
|
| 3 |
+
Most notable changes are below.
|
| 4 |
+
|
| 5 |
+
### Entities Highlighting
|
| 6 |
+
|
| 7 |
+
Demo - https://youtu.be/5w2fVDpUGQQ
|
| 8 |
+
|
| 9 |
+
Highlighting of entities on mouse move or mouse selection was expanded.
|
| 10 |
+
|
| 11 |
+
There are new options in options dialog, that controls whether:
|
| 12 |
+
1) entities are highlighted on mouse move;
|
| 13 |
+
2) start/stop endpoint indicators should be shown for highlighted entities.
|
| 14 |
+
|
| 15 |
+
Overlay-based highlighting was added in addition to the original one.
|
| 16 |
+
|
| 17 |
+
Due to that, highlighting may be applied to individual entities within containers (like segments of polyline) as well as have better visual appearance of highlighted entities (especially, with large line widths).
|
| 18 |
+
|
| 19 |
+
### Support of keyboard modifiers in actions
|
| 20 |
+
|
| 21 |
+
Demo - https://youtu.be/wDSFxoWt1gw
|
| 22 |
+
|
| 23 |
+
All drawing actions now have additional support of keyboard modifiers (SHIFT, CTRL).
|
| 24 |
+
|
| 25 |
+
The functionality of action is extended, if keyboard modifier is pressed during mouse-move or mouse click events.
|
| 26 |
+
|
| 27 |
+
However, some specific actions processes keyboard modifiers in their own specific way (like performing lengthen operation or repeating paste operation).
|
| 28 |
+
|
| 29 |
+
For providing the user with additional hint that keyboard operations are available for currently executed action, UI of the Mouse Widget is extended.
|
| 30 |
+
|
| 31 |
+
If support of keyboard modifier is supported by the current state of active action, appropriate icon is shown as part of Mouse Widget.
|
| 32 |
+
|
| 33 |
+
Hint on that icon provides description for details of operation that may be performed with corresponding pressed key.
|
| 34 |
+
|
| 35 |
+
### Support of Snap to Relative Point and Angle Snap
|
| 36 |
+
|
| 37 |
+
Demo - https://youtu.be/wDSFxoWt1gw
|
| 38 |
+
|
| 39 |
+
Now most actions allows to perform where it is reasonable by the action's context:
|
| 40 |
+
1) Snap to relative point position;
|
| 41 |
+
2) Perform angle snap to context-specific point (say, start of line). The value of single step for angle snap is defined by options (1,3,5,15 degrees).
|
| 42 |
+
|
| 43 |
+
In order to perform such snaps, specific keyboard modifier (CTRL or SHIFT key) should be pressed together with mouse operation (move, click);
|
| 44 |
+
|
| 45 |
+
### Preview With Reference entities
|
| 46 |
+
|
| 47 |
+
Demo - https://youtu.be/9ti4LW-XTA0
|
| 48 |
+
|
| 49 |
+
Preview mode for all actions was extended by drasing additional reference points and entities that are part of drawing operation. The puprpose is to make drawing operations more intuitive and understandable to the user (especially new one) and to provide the user with:
|
| 50 |
+
1) Better visual feedback for already performed operation (say, previously specified points);
|
| 51 |
+
2) Indication of interim calculations which are part of the action (like axes and reference points of ellipse to be created);
|
| 52 |
+
3) Projected results of action's execution (like expected positions of reference points or created entities positions);
|
| 53 |
+
|
| 54 |
+
An additional options were added to the Application Options dialog for:
|
| 55 |
+
|
| 56 |
+
1) Enabling/disabling displaying reference entities on preview;
|
| 57 |
+
2) Specifying shape/size for temporary reference points shown during preview;
|
| 58 |
+
3) Specifying color for reference entities;
|
| 59 |
+
|
| 60 |
+
Highlighting of entities in preview mode also takes into account whether the entity that the user tries to select is suitable for current operation. Only entities that are valid for the current context are highlighted.
|
| 61 |
+
|
| 62 |
+
### Drawing Actions
|
| 63 |
+
|
| 64 |
+
Demo - https://youtu.be/N0OEmWbzElM
|
| 65 |
+
|
| 66 |
+
Preview for drawing actions may include additional important points that are used for building specific entity (centers of circles, tangent points, user selections points etc.).
|
| 67 |
+
Support of key modifiers is action and context (action state) dependent.
|
| 68 |
+
|
| 69 |
+
Some improvements for actions:
|
| 70 |
+
|
| 71 |
+
1) "chordlen" command for DrawArc - creation of arch with specified horde
|
| 72 |
+
2) Parallel Through Point option - now it's possible to create parallels that are placed in both sides symmetrically to selected entity.
|
| 73 |
+
|
| 74 |
+
### Polyline Actions
|
| 75 |
+
|
| 76 |
+
Demo - https://youtu.be/KI6C7FkLRpg
|
| 77 |
+
|
| 78 |
+
Preview for polyline editing actions improved and allows to perform such operations like deleting node, delete between nodes in more visual and understandable way.
|
| 79 |
+
|
| 80 |
+
### New Info Actions
|
| 81 |
+
|
| 82 |
+
Demo - https://youtu.be/aBu8AP-f95M
|
| 83 |
+
|
| 84 |
+
New simple yet handy info actions were added. They are:
|
| 85 |
+
|
| 86 |
+
1) **Distance from Point to Entity** - allows to check the distance from specified point to selected action
|
| 87 |
+
2) **Angle between 3 points** - allows to measure the angle set by 3 points that defines 2 crossed lines. Points are line 1 edge, lines intersection point, line 2 edge. By its logic, the action is similar to "Angle Between Lines" action, except that it does not require that lines should exist.
|
| 88 |
+
|
| 89 |
+
Output for info commands was slightly improved.
|
| 90 |
+
|
| 91 |
+
### Modify operations
|
| 92 |
+
|
| 93 |
+
Demo (quick overview) - https://youtu.be/7ioHtLuqXfA
|
| 94 |
+
|
| 95 |
+
Modify operations were reworked and dialogs were replaced by options widgets, so now dialogs are not part of action's flow. The code for dialogs is still present and there is a flag that allows old way of options operations, yet, in general, the value of showing dialogs is unclear now.
|
| 96 |
+
|
| 97 |
+
Preview now includes multiple copies (if specific action supports that if multiple copies are requested).
|
| 98 |
+
|
| 99 |
+
Other improvements:
|
| 100 |
+
1) **Modify Mirror** - now it's possible select existing line that used as mirror axis;
|
| 101 |
+
2) **Rotate** - the flow is changed, the user should select reference point first and rotation center is selected after that. However, the setting for enabling old mode (center-first) may be added, if needed.
|
| 102 |
+
2) **Rotate** - allows to specify second rotation angle (so entity is rotated first via specified center, and rotated copy is rotated on second angle)
|
| 103 |
+
3) **Lengthen** - allows to do symmetric lengthen (so needed length change is applied to both ends of the line);
|
| 104 |
+
|
| 105 |
+
Also, various small improvements for specific actions are added.
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
### New Copy/Paste Actions
|
| 109 |
+
|
| 110 |
+
Demo - https://youtu.be/KFKRDoV8KJc
|
| 111 |
+
|
| 112 |
+
New actions were added:
|
| 113 |
+
|
| 114 |
+
1) **Copy/Cut** operations - if CTRL is pressed during selection of reference point, paste operation is invoked immediately after copy;
|
| 115 |
+
2) **Paste** Operation - if CTRL is pressed during paste, paste operation is repeated (**multiple paste**);
|
| 116 |
+
3) **Copy Quick/Cut Quick** - current selection is copied, and the user is not asked for specifying reference point. The reference point is calculated as center point of copied selection.
|
| 117 |
+
4) **Paste Transform** - actions allows to paste copied entities with **transformation** (scale, rotate) and create **array** of copies with specified number of columns, rows and rotation angle
|
| 118 |
+
|
| 119 |
+
### Dimensions Snapping
|
| 120 |
+
|
| 121 |
+
Demo - https://youtu.be/PEJG_3Q54hs
|
| 122 |
+
|
| 123 |
+
Snapping for adjacent linear dimensions was added, so now it's simpler to draw continuous dimensions.
|
| 124 |
+
|
| 125 |
+
### Default Action Changes
|
| 126 |
+
Demo - https://youtu.be/kBHrHpn12i0
|
| 127 |
+
|
| 128 |
+
Functionality of dimension action improved. Now it's possible lengthen line and arc by mouse (by moving endpoint with pressed CTRL key).
|
| 129 |
+
|
| 130 |
+
Also, generic moving of entities and endpoints now include visual reference line, and move/angle distance is reflected by coordinates widget.
|
| 131 |
+
|
| 132 |
+
### Snap options
|
| 133 |
+
|
| 134 |
+
Demo - https://youtu.be/MOG1ctOK6r4
|
| 135 |
+
|
| 136 |
+
Settings for position of options widgets for Snap Middle and Snap Distance was added to Application Options dialog. Based on settings value, options may be shown either in options toolbar (as before) or within Snap Toolbar.
|
| 137 |
+
|
| 138 |
+
### UI in Print Preview Mode
|
| 139 |
+
|
| 140 |
+
Demo - https://youtu.be/I0M7W51SbqQ
|
| 141 |
+
|
| 142 |
+
Minor improvements were added to Print Preview:
|
| 143 |
+
1) Not applicable actions and widgets are now disabled in Print Preview mode;
|
| 144 |
+
2) Quick buttons added on options toolbar for setting page orientation and print settings;
|
| 145 |
+
3) Added ability to zoom to print area (paper);
|
| 146 |
+
4) Added explicit settings for number of pages in tiled print.
|
| 147 |
+
|
| 148 |
+
While print preview is operational, most probably it requires an additional improvements in order to make it more convenient.
|
| 149 |
+
|
| 150 |
+
### Keyboard Shortcuts Editing Dialog, Tooltips with Shortcuts
|
| 151 |
+
|
| 152 |
+
Demo - https://youtu.be/DTn0lCbrPn8
|
| 153 |
+
|
| 154 |
+
Support of keyboard was slightly improved, so:
|
| 155 |
+
|
| 156 |
+
1) Now the user may assign keyboard shortcuts to actions via UI - using Keyboard Shortcuts options dialog. Withing this dialog, now it is possible to manage shortcuts, as well as export and import them.
|
| 157 |
+
2) An option was added to Application Preferences dialog that allows to control whether keyboard shortcuts should be shown as part of the action's tooltip or not.
|
| 158 |
+
|
| 159 |
+
While this functionality is quite operational, some actions may be not invoked by keyboard.
|
| 160 |
+
|
| 161 |
+
The overall application-wise processing of keyboard shortcuts and keyboard support requires additional review and improvements.
|
| 162 |
+
It will be added later.
|
| 163 |
+
|
| 164 |
+
### Other
|
| 165 |
+
|
| 166 |
+
In addition to visible changes mentioned above, there are lots of minor improvements of existing actions (like support of symmetric mode for "Line Parallel Through Point" and "Lengthen" actions) as well as various bugfixes.
|
| 167 |
+
|
| 168 |
+
#### Action Option widgets
|
| 169 |
+
|
| 170 |
+
Action options widgets were reviewed, missing tooltips and options were added.
|
| 171 |
+
|
| 172 |
+
The internal implementation of action options subsystem was reworked, memory leak for Option Widgets UI fixed, ownership of all Options Widgets instances is passed to corresponding actions.
|
| 173 |
+
|
| 174 |
+
#### Some minor changes
|
| 175 |
+
1) **Active Action on Tab Switch** - Now switching tab or creation of new drawing finishes current active action, so no confusion by action that is active in other tab.
|
| 176 |
+
2) **Selection in selection widget** - Selected entities count/length is updated on layer hiding/displaying to reflect only visible selected entities.
|
| 177 |
+
|
| 178 |
+
### Implementation notes
|
| 179 |
+
The existing code base (for actions) historically contains lots of code duplications and therefore there are not needed redundancy and verbosity.
|
| 180 |
+
Actions code was refactored, and repeating code and obvious copy/paste blocks were eliminated.
|
| 181 |
+
In addition, reusable and glue code was extracted to base methods of action classes and additional base methods for overriding/usage were added.
|
| 182 |
+
|
| 183 |
+
The major intents for such refactoring are:
|
| 184 |
+
1) making implementation of specific actions more lightweight, less verbose and easier to read;
|
| 185 |
+
2) removing glue code and repetitive code and focus on action-specific logic;
|
| 186 |
+
3) improving/cleaning code;
|
| 187 |
+
4) using consistent code style and common approaches across the codebase;
|
| 188 |
+
|
| 189 |
+
Areas which are mostly affected are /actions and /ui.
|
| 190 |
+
|
| 191 |
+
The overall layout of source files was also affected. Historically, the amount of files within the same directory reached huge numbers that makes navigation within codebase quite complicated.
|
| 192 |
+
|
| 193 |
+
Layout of source files was changed to achieve more granular separation of functionality and simpler navigation. Git history of changes for source files was saved during source code reallocation.
|
| 194 |
+
|
| 195 |
+
I'm not aware of any functional regressions, so end users should be not affected by refactoring.
|
| 196 |
+
|
| 197 |
+
The functionality is stable enough and may be a good candidate at least for night build for wide user testing.
|
| 198 |
+
|
| 199 |
+
However, the changes in the code base are, well, quite significant, so most probably the process of comparing/reviewing changes may be challenging.
|
| 200 |
+
|
| 201 |
+
It might be also practical to make a new tag for this PR.
|
ChangeLogs/RENDERING README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Rendering pipeline optimization
|
| 2 |
+
It possible to find mentions that LibreCAD is not suitable for large drawings due to slow rendering speed.
|
| 3 |
+
It was not clear for me why LibreCAD renders drawing slower than other similar programs, so I've decided to deep into this deeper.
|
| 4 |
+
|
| 5 |
+
Rendering pipeline ("paintEvent") was reviewed as optimized (by eliminating not needed/duplicated checks, pre-calculating values needed for paining, avoiding extra calls and so on).
|
| 6 |
+
|
| 7 |
+
The primary goal was to achieve good/acceptable performance, especially for large drawings.
|
| 8 |
+
|
| 9 |
+
While internally the code in some places now is less elegant, the reason for that was optimization of painting speed.
|
| 10 |
+
|
| 11 |
+
As result, depending on specific entities included into drawing, the performance of rendering (on Windows machine) as increased.
|
| 12 |
+
|
| 13 |
+
In my environment, rendering is up **to 7 times faster** comparing to previous AppImage (measurements for painting time may be enabled by DEBUG_RENDERING define in rs_graphicview.h:42).
|
| 14 |
+
On other machines/operating systems, of course, results may be different.
|
| 15 |
+
|
| 16 |
+
NOTE: As changes in rendering are sensitive, despite that various cases were tested, it still might be that some painting issues/glitches may occur (as they may depend on actual data).
|
| 17 |
+
|
| 18 |
+
Files for testing (opening time for them is long):
|
| 19 |
+
|
| 20 |
+
lines_large.dxf - 190084 entities in drawing (mostly lines)
|
| 21 |
+
circles_large.dxf - 720409 circles
|
| 22 |
+
arcs_large.dxf - 180100 arcs
|
| 23 |
+
ellipse_large.dxf - 165747 ellipses
|
| 24 |
+
polyline.dxf - 16402 polylines (each polyline has 16 lines/arc)
|
| 25 |
+
ellipse_solid - 39631 entities, solid fill
|
| 26 |
+
spline_points_large.dxf - 162020 spline point entities
|
| 27 |
+
splines.dxf - 3474 splines
|
| 28 |
+
solid.dxf - 60024 leaders
|
| 29 |
+
lorem_one.dxf - 10 large mtext entities
|
| 30 |
+
|
| 31 |
+
Archive is attached
|
| 32 |
+
|
| 33 |
+
#### Other changes
|
| 34 |
+
|
| 35 |
+
1) Better preview for MText/Text entities (baselines for text lines are shown instead of boundary rectangle on preview)
|
| 36 |
+
2) Additional button that allows to render entities with default length in non-draft mode.
|
| 37 |
+
3) Restored snapping to grid if grid is not shown.
|
| 38 |
+
4) New version check improvement
|
| 39 |
+
|
| 40 |
+
#### Changes in settings
|
| 41 |
+
##### General Settings
|
| 42 |
+
1) Added settings to control colors/linetype/fill for selection overlay box
|
| 43 |
+
2) Added settings for minimum values that affects rendering
|
| 44 |
+
3) Added "no grid" default value for new drawings
|
| 45 |
+
4) Added setting for default zoom factor used for scroll zoom
|
| 46 |
+
|
| 47 |
+
##### Drawing Settings
|
| 48 |
+
1) Added settings for specifying line joins and line caps.
|
| 49 |
+
|
| 50 |
+
### Issues addressed:
|
| 51 |
+
|
| 52 |
+
#1916
|
| 53 |
+
|
| 54 |
+
#1917
|
| 55 |
+
|
| 56 |
+
#1921
|
ChangeLogs/UCS.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## User Coordinates System and Angles Basis
|
| 2 |
+
|
| 3 |
+
This pull request includes relatively small amount of new functionality (yet affects the codebase quite significantly).
|
| 4 |
+
|
| 5 |
+
It introduced a couple of concepts, that are new for LibreCAD.
|
| 6 |
+
|
| 7 |
+
### Angles Basis
|
| 8 |
+
|
| 9 |
+
Not it is possible to specify positive direction for angles as well as where angle 0 is located.
|
| 10 |
+
|
| 11 |
+
In terms of DXF variables, now LC supports both ___ANGDIR___ and ___ANGBASE___ variables. These variables are stored in drawing.
|
| 12 |
+
|
| 13 |
+
It is possible to edit settings in Drawing Preferences on Units tab.
|
| 14 |
+
|
| 15 |
+
By default, **ANGDIR** is counterclockwise and **ANGBASE** is 0 (so zero angle is at 3 pm) - standard basis of angles used by LibreCAD.
|
| 16 |
+
|
| 17 |
+
Values of variables affects (all over the codebase, for all actions and ui):
|
| 18 |
+
|
| 19 |
+
1) Handling values of angles, entered by the user for commands via command line or action options.
|
| 20 |
+
2) Handling values of angles that are parts of polar coordinates.
|
| 21 |
+
3) Displaying angles in UI (in informational cursor, informational actions, entity info widget etc.)
|
| 22 |
+
4) Displaying relative polar coordinates.
|
| 23 |
+
5) Snapping via "Snap to Angle"
|
| 24 |
+
|
| 25 |
+
It is assumed that the user enters angles in currently active angles basis, and such angle values are translated to internal angles in LC default angles system (counterclockwise, 0 at 3pm).
|
| 26 |
+
|
| 27 |
+
#### Angles Basic Overlay
|
| 28 |
+
|
| 29 |
+
For providing the user with information about currently active angles basis, an overlay that displays what is possible direction of angles as well as direction of basis zero angle.
|
| 30 |
+
|
| 31 |
+
The appearance of that overall customizable via Application Preferences Dialog.
|
| 32 |
+
|
| 33 |
+
#### Angles Basis Toolbar
|
| 34 |
+
|
| 35 |
+
Also, informational toolbar "Angles Basis" was added. That toolbar also includes information about direction and zero angle value.
|
| 36 |
+
|
| 37 |
+
Click on that toolbar invokes Drawing Settings dialog that allows to edit angles basis.
|
| 38 |
+
|
| 39 |
+
#### Settings
|
| 40 |
+
|
| 41 |
+
Appropriate settings related to angles basis were added to Application Preferences and Drawing Options.
|
| 42 |
+
|
| 43 |
+
### Angles and Polar coordinates Input formats
|
| 44 |
+
|
| 45 |
+
Now it's possible to enter angles (and so, polar coordinates) in several formats:
|
| 46 |
+
|
| 47 |
+
1) Decimal degrees (as it was before)
|
| 48 |
+
2) **Surveyor** e.g. N21d33'19.9"E
|
| 49 |
+
3) **Radiant** - e.g. 2.7r
|
| 50 |
+
4) **Grad** - e.g. 231g
|
| 51 |
+
5) **Degrees** - e.g. 85d23'3
|
| 52 |
+
6) **Bearing** - e.g. 83b24'7"
|
| 53 |
+
|
| 54 |
+
Also, there is an option in Application Preferences that allows to disable input in all formats except decimal degrees.
|
| 55 |
+
|
| 56 |
+
### User Coordinates System (UCS)
|
| 57 |
+
|
| 58 |
+
Previously LibreCAD supported only one fixed coordinates system, with origin located in 0,0 and angle of X axis equal to 0 in coordinates of model space of the drawing.
|
| 59 |
+
|
| 60 |
+
This coordinate system is still supported and is considered as World Coordinates System (**WCS**).
|
| 61 |
+
|
| 62 |
+
Now, a support of the user-defined coordinate systems (**UCS**) was added. The user is able dynamically specify new zero point of the coordinate system (in WCS coordinates) and direction of X axis.
|
| 63 |
+
|
| 64 |
+
As soon as such UCS will be applied, the content of drawing will be rotated on rendering (if necessary) and all coordinates that are entered by the user or be shown to the user will be considered as ones, specified in newly-defined UCS.
|
| 65 |
+
|
| 66 |
+
Such approach simplifies creating of non-orthogonal parts of the drawing.
|
| 67 |
+
|
| 68 |
+
#### Coordinates Mapping
|
| 69 |
+
|
| 70 |
+
Internally, all coordinates data are stored in WCS coordinates (as before).
|
| 71 |
+
|
| 72 |
+
If custom UCS is active:
|
| 73 |
+
|
| 74 |
+
1. All necessary translations of coordinates are performed either during processing of the user's input or as part of rendering process.
|
| 75 |
+
|
| 76 |
+
2. While the user performs drawing in local UCS coordinates, the drawing data is still in WCS.
|
| 77 |
+
|
| 78 |
+
3. Displaying of user's coordinates (in info actions, entity info widget, informational cursor, coordinates toolbars etc.) is performed in UCS coordinates.
|
| 79 |
+
|
| 80 |
+
If non-default Angles Basis is active, this is also properly handled, so it's absolutely fine to combine custom UCS and Angles Basis.
|
| 81 |
+
|
| 82 |
+
Information about UCS is stored in DXF using standard tag of DXF (so parsing/generation of DXF was extended too).
|
| 83 |
+
|
| 84 |
+
#### Entering WCS coordinates
|
| 85 |
+
|
| 86 |
+
If UCS is active, it is possible to enter absolute coordinate in WCS using command line widget.
|
| 87 |
+
|
| 88 |
+
WCS coordinates should start with exclamation mark which is __!__.
|
| 89 |
+
|
| 90 |
+
Format of WCS coordinate:
|
| 91 |
+
1. For cartesian coordinates: __!X,Y__ (like !200,100)
|
| 92 |
+
2. For polar coordinates : **!dist<angle** (like !100<45)
|
| 93 |
+
|
| 94 |
+
If WCS is active - it still possible to use this format, yet it is not clear what for...
|
| 95 |
+
|
| 96 |
+
#### Coordinates System Marker Overlay
|
| 97 |
+
|
| 98 |
+
Overlay that draws position of UCS and WCS is shown. Which markers are shown as well as their visual appearance is controlled by options in Application Preferences.
|
| 99 |
+
|
| 100 |
+
#### UCS Toolbar
|
| 101 |
+
|
| 102 |
+
A UCS toolbar was added. It provides the user with information about currently active coordinates system.
|
| 103 |
+
|
| 104 |
+
#### UCS widget
|
| 105 |
+
|
| 106 |
+
A dock widget was added for managing the list of UCS of drawing.
|
| 107 |
+
|
| 108 |
+
#### Named View widget
|
| 109 |
+
|
| 110 |
+
Named views widget was extended to provide the information about UCS related to named view. When view is restored, appropriate saved UCS is applied too.
|
| 111 |
+
|
| 112 |
+
If UCS is active when VIEW is created, information about that view is stored as part of view.
|
| 113 |
+
|
| 114 |
+
#### Settings
|
| 115 |
+
|
| 116 |
+
Related settings were added to Application Preferences and settings of UCS list widget.
|
| 117 |
+
|
| 118 |
+
#### UCS Limitations
|
| 119 |
+
|
| 120 |
+
At the moment, there are several limitations in current implementation of UCS support. Mostly, they are related to determining the bounding box of entities within active UCS.
|
| 121 |
+
So far, the entire WCS bounding box is rotated for UCS (instead of proper recalculation of the bounding box for new basis).
|
| 122 |
+
|
| 123 |
+
1. If UCS is rotated to WCS, selection of entities by window may work not always correctly (and some additional entities outsider of selecting box may be selected).
|
| 124 |
+
This is due to current selection logic that assumes that selection region represent rectangle parallel to x.
|
| 125 |
+
2. Bounding box action creates bounding box in WCS only.
|
| 126 |
+
3. Align and Align Single actions does not support UCS.
|
| 127 |
+
|
| 128 |
+
### Internal Refactorings
|
| 129 |
+
|
| 130 |
+
Several internal refactorings were performed.
|
| 131 |
+
|
| 132 |
+
#### Mouse event handling methods in actions.
|
| 133 |
+
|
| 134 |
+
More generic and uniform processing of mouse events was added to base actions. Due to this, implementation of mouse hanlding events in inherited actions now is more iniform and simpler.
|
| 135 |
+
The major reason there was to ensure that mouse events are handled by all actions using the same generic flow.
|
| 136 |
+
|
| 137 |
+
#### RS_GraphicView refactoring
|
| 138 |
+
|
| 139 |
+
Historically, this class was over-complicated and has too many responsibilities.
|
| 140 |
+
|
| 141 |
+
Now the code of it was separated to more focused notions:
|
| 142 |
+
|
| 143 |
+
* UI-agnostic LC_GraphicViewport class, that may be considered as part of the model.
|
| 144 |
+
* a set of LC_GraphicViewportRenderer classes, what are responsible for drawing the content of viewport
|
| 145 |
+
* RS_GraphicView, that represents a widget that controls viewport and uses renderer for painting.
|
| 146 |
+
|
| 147 |
+
With such decomposition, lots of appropriate code now does not depend on objects of UI layer and widgets (like RS_Modification).
|
| 148 |
+
Where possible, dependencies to RS_GraphicView were replaced by LC_GraphicViewport.
|
| 149 |
+
|
| 150 |
+
RS_Painter was also refactored, both for support of UCS/WCS coordinates translations, and for making rendering to be not dependent on RS_GraphicView.
|
| 151 |
+
|
| 152 |
+
In general, the major goal for such refactoring (aside of code separation and simplification, of course) - is to achieve more independent rendering.
|
| 153 |
+
|
| 154 |
+
Later, this concept could be extended further - to support several viewports in paper space and layouts.
|
| 155 |
+
|
| 156 |
+
Thus, this refactoring may be considered rather as a preparation step for later functionality.
|
| 157 |
+
|
| 158 |
+
### Other changes
|
| 159 |
+
|
| 160 |
+
* Option that allows to disable marking the drawing as "modified" if zoom or pan was performed only was added to the Application Preferences (inspired by johnfound)
|
| 161 |
+
* Layout of Application Preferences dialog was changed (again :( ), several pages were added to use more focused groupping of settings.
|
| 162 |
+
* Settings that allows to control rendering of arc/circles were added, and now it's possible to define whether arcs should be drawn natively by QT or be interpolated by line segments.
|
| 163 |
+
* Added option that allows to ignore "Snap To Grid" mode during snapping if the grid is not visible (inspired by johnfound)
|
| 164 |
+
* Added options for fine-tuning of snap constants (inspired by johnfound)
|
| 165 |
+
* Line Horizontal/Vertical actions - if there is non-standard UCS basis, options added that allows to create lines, orthogonal to angles basis axis
|
| 166 |
+
* Added ability to customize "Draft" mode marker
|
| 167 |
+
|
| 168 |
+
### Bugfixes
|
| 169 |
+
A couple of issues were fixed:
|
| 170 |
+
|
| 171 |
+
* LibreCAD#1978
|
| 172 |
+
* LibreCAD#1992
|
| 173 |
+
* LibreCAD#2002
|
| 174 |
+
* LibreCAD#2012
|
ChangeLogs/VARIOUS_FIXES_1.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
This is just interim PR, that does not bring some notable new functionality - it is rather focused on internal code cleanup and bugfixing.
|
| 2 |
+
|
| 3 |
+
### Generic refactoring
|
| 4 |
+
|
| 5 |
+
Some generic refactorings were performed:
|
| 6 |
+
|
| 7 |
+
1) initialization of the application (QC_ApplicationWindow) was reviewed and initialization/assembling logic was extracted to specialized classes.
|
| 8 |
+
2) documents reading/writing logic was encapsulated and moved outside RS_Document (and inherited) entities (partially so far);
|
| 9 |
+
3) the logic of working with drawings in QC_ApplicationWindow was reviewed and refined (events for opening, activation, closing etc.)
|
| 10 |
+
4) several invalid/bad dependencies from model entities to view/ui, static references were removed
|
| 11 |
+
5) all connections were modernized to modern reference-based form of signals and slots (SIGNAL()/SLOT() were almost fully eliminated)
|
| 12 |
+
6) not used classes were removed (old CAD Toolbars/widgets)
|
| 13 |
+
7) refactoring for actions invocations, QG_ActionHandler refactoring, separate factory for actions creation, actions adjustments
|
| 14 |
+
8) bugfixes
|
| 15 |
+
9) generic code cleanup, fields renaming to conform m_ naming pattern (WIP)
|
| 16 |
+
10) Includes optimization, using forward declarations where possible
|
| 17 |
+
11) Entity's layer actions
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
### Widget Options
|
| 21 |
+
The Widget Options dialog was expanded so now it's possible to control specifics of docking better - set nested docking mode and allow vertical title bars
|
| 22 |
+
|
| 23 |
+
### Block/Library widgets
|
| 24 |
+
Inserting block and drawing from library was corrected so now they properly supports rotation angle if UCS is active.
|
| 25 |
+
|
| 26 |
+
### Command widget
|
| 27 |
+
Command widget may be activated by focus action even if the widget is not visible (it will be shown)
|
| 28 |
+
|
| 29 |
+
### Application Preference
|
| 30 |
+
1) added settings for naming of auto-save file (Librecad#2061)
|
| 31 |
+
2) added setting for font files rendering if they are open as file - controls how many columns should be used for rendering letters in the opened font's file.
|
| 32 |
+
|
| 33 |
+
### Layers export
|
| 34 |
+
Generic refactoring, more export options in the save dialog, ability to save also UCSs and Named Views as part of export.
|
| 35 |
+
|
| 36 |
+
### 2092 - commands for layers
|
| 37 |
+
Two simple commands were added to let management of layers via script file.
|
| 38 |
+
|
| 39 |
+
1) cslayer - activates layer with specified name
|
| 40 |
+
2) cnlayer - creates and activates layer with given name
|
| 41 |
+
|
| 42 |
+
### Entity's layer actions
|
| 43 |
+
Several small actions (and toolbar for them) where added for layer-related operations based on the entity.
|
| 44 |
+
|
| 45 |
+
Using them the user is able to select some entity, and for the layer of this selected entity:
|
| 46 |
+
* activate layer
|
| 47 |
+
* make layer invisible
|
| 48 |
+
* lock layer
|
| 49 |
+
* toggle layer's printing and construction flag.
|
| 50 |
+
|
| 51 |
+
Thus, these actions allows the user to perform quick invocation of some common operations without switching to the Layers List or Layers Tree widgets.
|
| 52 |
+
|
| 53 |
+
### Other
|
| 54 |
+
|
| 55 |
+
* Support of creation of sharing library for LC_IconEngine in cmake build. So now the dll/shared lib is created.
|
| 56 |
+
* Build of plugins for WIN is updated to include plugin-specific RC file
|
| 57 |
+
* *.llf and *.cxf files may be also opened by drag&drop them to main window
|
| 58 |
+
* copy&paste and generic entities selection functionality improvements
|
| 59 |
+
|
| 60 |
+
### Fixed Issues
|
| 61 |
+
* LibreCAD#2111
|
| 62 |
+
* LibreCAD#2110
|
| 63 |
+
* LibreCAD#2108
|
| 64 |
+
* LibreCAD#2103
|
| 65 |
+
* LibreCAD#2098
|
| 66 |
+
* LibreCAD#2092
|
| 67 |
+
* LibreCAD#2090
|
| 68 |
+
* LibreCAD#2086 (?)*
|
| 69 |
+
* LibreCAD#2082
|
| 70 |
+
* LibreCAD#2075
|
| 71 |
+
* LibreCAD#2074
|
| 72 |
+
* LibreCAD#2071
|
| 73 |
+
* LibreCAD#2062
|
| 74 |
+
* LibreCAD#2061
|
| 75 |
+
* LibreCAD#2043
|
| 76 |
+
* LibreCAD#2041
|
| 77 |
+
* LibreCAD#2013
|
| 78 |
+
* LibreCAD#2004
|
| 79 |
+
* LibreCAD#1986
|
ChangeLogs/germar.txt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2017-02-16 Germar <github.com/Germar>
|
| 2 |
+
|
| 3 |
+
* rs.h (LinearFormat)
|
| 4 |
+
* rs_dimaligned.cpp (getMeasuredLabel)
|
| 5 |
+
* rs_dimdiametric.cpp (getMeasuredLabel)
|
| 6 |
+
* rs_dimlinear.cpp (getMeasuredLabel)
|
| 7 |
+
* rs_dimradial.cpp (getMeasuredLabel)
|
| 8 |
+
* rs_graphic.cpp (getLinearFormat)
|
| 9 |
+
* rs_units.cpp (formatLinear)
|
| 10 |
+
* rs_units.h (public):
|
| 11 |
+
added ArchitecturalMetric using DIN 406 (issue #861)
|
| 12 |
+
|
| 13 |
+
* qg_dlgoptionsdrawing.cpp (validate):
|
| 14 |
+
add warning about unit for length format 'ArchitecturalMetric' must be 'Meter'
|
ChangeLogs/obsole_issues.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
***Issues To Close***
|
| 2 |
+
|
| 3 |
+
This issues in GitHub seems to be obsolete and not actual, please review:
|
| 4 |
+
|
| 5 |
+
#359 - functionality is included into Entity Info widget (pick coordinates)
|
| 6 |
+
|
| 7 |
+
#399 - implemented in LayerTree Widget
|
| 8 |
+
|
| 9 |
+
#458 - supported by LayerTree Widget
|
| 10 |
+
|
| 11 |
+
#586 - supported by LayerTree Widget
|
| 12 |
+
|
| 13 |
+
#597 - fixed
|
| 14 |
+
|
| 15 |
+
#648 - seems to be fixed already
|
| 16 |
+
|
| 17 |
+
#731 - supported by Line from Point to Line action
|
| 18 |
+
|
| 19 |
+
#795 - PenPalette widget?
|
| 20 |
+
|
| 21 |
+
#874 - supported either by plugin, or by Entity Info Widget
|
| 22 |
+
|
| 23 |
+
#939 - not relevant anymore, persistent positions of dialogs are supported
|
| 24 |
+
|
| 25 |
+
#959 - supported by plugin, supported by Slice/Divide action
|
| 26 |
+
|
| 27 |
+
#960 - PR merged to master already
|
| 28 |
+
|
| 29 |
+
#1047 - fixed already (in my previous PR)
|
| 30 |
+
|
| 31 |
+
#1124 - implemented already
|
| 32 |
+
|
| 33 |
+
#1173 - implemented already
|
| 34 |
+
|
| 35 |
+
#1192 - implemented by Slice/Divide action
|
| 36 |
+
|
| 37 |
+
#1509 - supported via *chordlen* command
|
| 38 |
+
|
| 39 |
+
#1338 - supported already added to Scale command
|
| 40 |
+
|
| 41 |
+
#1340 - seems to be fixed?
|
| 42 |
+
|
| 43 |
+
#1352 - break of polyline, break of line are supported
|
| 44 |
+
|
| 45 |
+
#1374 - partially supported via Line Gap action
|
| 46 |
+
|
| 47 |
+
#1210 - supported by Line Snake command
|
| 48 |
+
|
| 49 |
+
#1480 - merged already
|
| 50 |
+
|
| 51 |
+
#1614 - supported by Entity Info Widget
|
| 52 |
+
|
| 53 |
+
#1631 - fixed already?
|
| 54 |
+
|
| 55 |
+
#1805 - fixed
|
| 56 |
+
|
| 57 |
+
#1787 - fixed
|
| 58 |
+
|
| 59 |
+
#1762 - fixed
|
| 60 |
+
|
| 61 |
+
#1736 - fixed
|
| 62 |
+
|
| 63 |
+
#1858 - fixed
|
| 64 |
+
|
| 65 |
+
#1846 - fixed
|
| 66 |
+
|
| 67 |
+
#1813 - supported by Layer Tree Widget
|
| 68 |
+
|
| 69 |
+
***Implemented in this PR***
|
| 70 |
+
|
| 71 |
+
This MR includes the following major changes:
|
| 72 |
+
|
| 73 |
+
1) Proper rendering of X,Y-axis in drawing, options for them;
|
| 74 |
+
2) Rework of grid rendering, support of lines grid in isometric view, grid-related options
|
| 75 |
+
3) Restructured Application Preferences Dialog
|
| 76 |
+
4) Dockable status bar components (enabled by options) + widget with relative point position (so now they may be mixed up with toolbars);
|
| 77 |
+
5) Indication of currently active action in MouseWidget
|
| 78 |
+
6) Check for New Version functionality (on startup and explicit), rework of About dialog. NOTE: during preparing public build, in addition to LC_VERSION it's necessary to set LC_PRERELEASE define (true for pre-release version, false - for release ones). Also, it's better use unique release versions even for "latest" updates (like 2.2.2.1-latest, 2.2.2.2-latest etc. instead of one generic 2.2.2-latest), otherwise it might be hard to distinguish fresher updates.
|
| 79 |
+
7) Changes for draft mode for text/mtext rendering - now instead of rectangle around the text, baselines for text lines are drawn.
|
| 80 |
+
8) Bugfixes
|
| 81 |
+
|
| 82 |
+
The following list of issues were addressed by this MR:
|
| 83 |
+
|
| 84 |
+
#1550
|
| 85 |
+
|
| 86 |
+
#1688
|
| 87 |
+
|
| 88 |
+
#1477
|
| 89 |
+
|
| 90 |
+
#1852
|
| 91 |
+
|
| 92 |
+
#1728
|
| 93 |
+
|
| 94 |
+
#1849
|
| 95 |
+
|
| 96 |
+
#1861
|
| 97 |
+
|
| 98 |
+
#1870
|
| 99 |
+
|
| 100 |
+
#1875
|
| 101 |
+
|
| 102 |
+
#1877
|
| 103 |
+
|
| 104 |
+
#1878
|
| 105 |
+
|
| 106 |
+
#1879
|
| 107 |
+
|
| 108 |
+
#1881
|
| 109 |
+
|
| 110 |
+
#1864
|
| 111 |
+
|
| 112 |
+
#1885
|
| 113 |
+
|
| 114 |
+
#1896
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
**Issues to consider (sand):**
|
| 118 |
+
|
| 119 |
+
#601
|
| 120 |
+
|
| 121 |
+
#606
|
| 122 |
+
|
| 123 |
+
#467
|
| 124 |
+
|
| 125 |
+
#599
|
| 126 |
+
|
| 127 |
+
#584
|
| 128 |
+
|
| 129 |
+
#614 - as focus on field in widget option, focus
|
| 130 |
+
|
| 131 |
+
#570
|
| 132 |
+
|
| 133 |
+
#712 - may be fixed already, check
|
| 134 |
+
|
| 135 |
+
#710 - ordinal dimensions
|
| 136 |
+
|
| 137 |
+
#626 - text improvement by counter
|
| 138 |
+
|
| 139 |
+
#622 - action in tb? and close
|
| 140 |
+
|
| 141 |
+
#825 - individual dimensions format
|
| 142 |
+
|
| 143 |
+
#853 - Feature Request: Provide Mapping Angular Layout - review in details
|
| 144 |
+
|
| 145 |
+
#846 -[feature] Changing fonts of all texts
|
| 146 |
+
|
| 147 |
+
#951 - Huge dxf: delete all (unused) blocks
|
| 148 |
+
|
| 149 |
+
#949 - Dogbone?
|
| 150 |
+
|
| 151 |
+
#910 - metadata
|
| 152 |
+
|
| 153 |
+
#906 - Snap on entity does not work in front of imported image - bug?
|
| 154 |
+
|
| 155 |
+
#1033 - implemented already, yet not completely
|
| 156 |
+
|
| 157 |
+
#1005 - tooltip for command improvement (Command Line Commands in Tooltips, Menus)
|
| 158 |
+
|
| 159 |
+
#1110 - new position for grip by command (Grip points, a small improvement
|
| 160 |
+
#1090 - Feature Request: Filter selection by properties #1090
|
| 161 |
+
|
| 162 |
+
#1082 ??
|
| 163 |
+
|
| 164 |
+
#1127 - dimension scale should apply to measurement tools too
|
| 165 |
+
#1129 - groupping
|
| 166 |
+
|
| 167 |
+
##1131 - apply colors from prefs?
|
| 168 |
+
|
| 169 |
+
#1627
|
| 170 |
+
#1651
|
| 171 |
+
#1648
|
ChangeLogs/r-a-v-a-s.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2016-10-31 ravas <github.com/r-a-v-a-s>
|
| 2 |
+
|
| 3 |
+
* rs_actionlayerstoggleview.cpp (trigger):
|
| 4 |
+
added calculateBorders (issue #784)
|
ChangeLogs/readme.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
A ChangeLog file is for describing all the changes made to the source files.
|
| 2 |
+
|
| 3 |
+
Developers can keep their ChangeLog in ChangeLogs/github_username.txt
|
| 4 |
+
|
| 5 |
+
- <https://www.gnu.org/prep/standards/html_node/index.html>
|
| 6 |
+
- <https://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs>
|
LICENSE
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## LibreCAD and the GPLv2 ##
|
| 2 |
+
|
| 3 |
+
LibreCAD is free software; you can redistribute it and/or modify
|
| 4 |
+
it under the terms of the GNU General Public License version 2 (GPLv2)
|
| 5 |
+
as published by the Free Software Foundation.
|
| 6 |
+
|
| 7 |
+
This program is distributed in the hope that it will be useful,
|
| 8 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 9 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
| 10 |
+
See the GNU General Public License for more details.
|
| 11 |
+
|
| 12 |
+
The GPLv2 can be found in the `licenses` folder as `gpl-2.0.txt`.
|
| 13 |
+
|
| 14 |
+
- <https://github.com/LibreCAD/LibreCAD/tree/master/licenses>
|
| 15 |
+
- <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>
|
| 16 |
+
|
| 17 |
+
### History ###
|
| 18 |
+
|
| 19 |
+
QCAD community edition version 2.0.5.0 was released under the GPLv2.
|
| 20 |
+
> Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
|
| 21 |
+
|
| 22 |
+
- <http://www.ribbonsoft.com>
|
| 23 |
+
|
| 24 |
+
LibreCAD is a fork of QCAD community edition version 2.0.5.0;
|
| 25 |
+
therefore, any modifications of or additions to the program
|
| 26 |
+
are also released under the GPLv2.
|
| 27 |
+
|
| 28 |
+
The project's first commit on Github was Aug 16, 2010.
|
| 29 |
+
|
| 30 |
+
- <http://librecad.org/>
|
| 31 |
+
- <https://github.com/LibreCAD/LibreCAD>
|
| 32 |
+
|
| 33 |
+
### Rights holders of the code ###
|
| 34 |
+
|
| 35 |
+
Some of the following may be composites of multiple copyright notices.
|
| 36 |
+
|
| 37 |
+
Copyright (C):
|
| 38 |
+
|
| 39 |
+
- 1999, 2001, 2007 Frank Warmerdam
|
| 40 |
+
- 2001-2003 RibbonSoft. All rights reserved.
|
| 41 |
+
- 2004-2014 Ingo Berg
|
| 42 |
+
- 2010, 2011, 2012, 2015 R. van Twisk (librecad@rvt.dds.nl)
|
| 43 |
+
- 2011-2015 Dongxu Li (dongxuli2011@gmail.com)
|
| 44 |
+
- 2011-2015 José F. Soriano (rallazz@gmail.com)
|
| 45 |
+
- 2014 cgrzemba (cgrzemba@opencsw.org)
|
| 46 |
+
- 2014 Pavel Krejcir (pavel@pamsoft.cz)
|
| 47 |
+
- 2014-2015 Christian Luginbühl (dinkel@pimprecords.com)
|
| 48 |
+
- 2015 A. Stebich (librecad@mail.lordofbikes.de)
|
| 49 |
+
- 2015-2016 ravas (github.com/r-a-v-a-s)
|
| 50 |
+
|
| 51 |
+
### Rights holders of the fonts ###
|
| 52 |
+
|
| 53 |
+
Copyright (C):
|
| 54 |
+
|
| 55 |
+
- 2002 Yoshimune Kobayashi (cfg47520@syd.odn.ne.jp)
|
| 56 |
+
- 2004 by Saka.N (Saka.N.06@b3.mnx.ne.jp)
|
| 57 |
+
- 2010-2013 Khaled Hosny (khaledhosny@eglug.org)
|
| 58 |
+
- 2011, 2012 Rallaz (rallazz@gmail.com)
|
| 59 |
+
- 2014 stranger573 (stranger573@mail.ru)
|
| 60 |
+
- 2015 AZO (typesylph@gmail.com)
|
| 61 |
+
|
| 62 |
+
### Rights holders of the art ###
|
| 63 |
+
|
| 64 |
+
Copyright (C):
|
| 65 |
+
|
| 66 |
+
- 2011 Diego Alejandro Torres M. "Daltom Designer" (http://daltom.2082studio.com)
|
| 67 |
+
- 2011 Pablo Ramrez Alem (www.librecad.com.ar)
|
| 68 |
+
|
| 69 |
+
### Honorable mention ###
|
| 70 |
+
|
| 71 |
+
These are known contributors whose copyright notice could not be found.
|
| 72 |
+
|
| 73 |
+
- Claude Sylvain | <csylvain@electro-technica.com>
|
| 74 |
+
- Scott Howard | <showard@debian.org>
|
| 75 |
+
- Lisandro Damián Nicanor Pérez Meyer | <perezmeyer@gmail.com>
|
| 76 |
+
|
| 77 |
+
A list of contributors to the LibreCAD repository can be found at:
|
| 78 |
+
<https://github.com/LibreCAD/LibreCAD/graphs/contributors>
|
| 79 |
+
|
| 80 |
+
## Licenses of bundled content ##
|
| 81 |
+
|
| 82 |
+
The LibreCAD source code is released as a whole under the GPLv2.
|
| 83 |
+
The following refers to the licenses used by these resources,
|
| 84 |
+
when they were released independently from LibreCAD.
|
| 85 |
+
|
| 86 |
+
The SVG icons in `librecad/res/icons` were all released under the CC0 license.
|
| 87 |
+
|
| 88 |
+
- <https://github.com/LibreCAD/Resources>
|
| 89 |
+
- <https://creativecommons.org/publicdomain/zero/1.0/>
|
| 90 |
+
|
| 91 |
+
libdxfrw was released under GPLv2 "or any later version".
|
| 92 |
+
|
| 93 |
+
- <https://sourceforge.net/projects/libdxfrw/>
|
| 94 |
+
|
| 95 |
+
muParser was released under the MIT license.
|
| 96 |
+
|
| 97 |
+
- <http://beltoforion.de/article.php?a=muparser&hl=en&p=licence>
|
| 98 |
+
|
| 99 |
+
Shapelib was released under a "MIT Style" license or LGPLv2.
|
| 100 |
+
|
| 101 |
+
- <https://github.com/LibreCAD/LibreCAD/tree/master/plugins/importshp/shapelib>
|
| 102 |
+
|
| 103 |
+
The AZOmix fonts were released under the KST32B version 2.0 license.
|
| 104 |
+
|
| 105 |
+
- <https://github.com/LibreCAD/LibreCAD/blob/master/licenses/KST32B_v2.txt>
|
| 106 |
+
- <http://domisan.sakura.ne.jp/article/cadfont/cadfont.html>
|
| 107 |
+
|
| 108 |
+
The Amiri font was released under the Open Font License.
|
| 109 |
+
|
| 110 |
+
- <http://www.amirifont.org/>
|
| 111 |
+
- <https://github.com/khaledhosny/amiri-font/blob/0.108/OFL.txt>
|
| 112 |
+
|
| 113 |
+
The Hershey Fonts were originally created by Dr. A. V. Hershey
|
| 114 |
+
while working at the U. S. National Bureau of Standards.
|
| 115 |
+
The format of the Font data in this distribution was originally created by:
|
| 116 |
+
> James Hurt
|
| 117 |
+
> Cognition, Inc.
|
| 118 |
+
> 900 Technology Park Drive
|
| 119 |
+
> Billerica, MA 01821
|
| 120 |
+
|
README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# LibreCAD [](https://travis-ci.org/LibreCAD/LibreCAD)
|
| 2 |
+
|
| 3 |
+
[→ **Download** ←](https://github.com/LibreCAD/LibreCAD/wiki/Download)
|
| 4 |
+
|
| 5 |
+
[LibreCAD](https://www.librecad.org) is a 2D CAD drawing tool
|
| 6 |
+
based on the community edition of [QCAD](https://www.qcad.org).
|
| 7 |
+
LibreCAD uses the cross-platform framework [Qt](https://www.qt.io/download-open-source/),
|
| 8 |
+
which means it works with most operating systems.
|
| 9 |
+
The user interface is translated in over 30 languages. https://translate.librecad.org
|
| 10 |
+
|
| 11 |
+
LibreCAD is free software; you can redistribute it and/or modify
|
| 12 |
+
it under the terms of the [GNU General Public License version 2](https://www.gnu.org/licenses/gpl-2.0.html) (GPLv2)
|
| 13 |
+
as published by the Free Software Foundation.
|
| 14 |
+
Please read the [LICENSE](LICENSE) file for additional information.
|
| 15 |
+
|
| 16 |
+
The master branch represents the latest pre-release code.
|
| 17 |
+
The 2.2.2 branch requires Qt 6.4.0 or newer.
|
| 18 |
+
The 2.2.1 branch requires Qt 5.15.0 or newer.
|
| 19 |
+
The 2.2 branch requires Qt 5.2.1 or newer.
|
| 20 |
+
The 2.1 branch will be the last to support Qt4.
|
| 21 |
+
The 2.0 branch will be the last to support the QCAD toolbar.
|
| 22 |
+
](https://travis-ci.org/LibreCAD/LibreCAD)
|
| 23 |
+
|
| 24 |
+
## DXF Converter
|
| 25 |
+
|
| 26 |
+
LibreCAD can be used as DXF to a PDF, PNG, or SVG converter. For example, to convert a `foo.dxf` to `foo.pdf`, `foo.png`, or `foo.svg`:
|
| 27 |
+
|
| 28 |
+
```bash
|
| 29 |
+
$ librecad dxf2pdf foo.dxf
|
| 30 |
+
$ librecad dxf2png foo.dxf
|
| 31 |
+
$ librecad dxf2svg foo.dxf
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
## Releases and Milestones
|
| 35 |
+
|
| 36 |
+
- [Releases and Prereleases](https://github.com/LibreCAD/LibreCAD/releases)
|
| 37 |
+
- [Milestones](https://github.com/LibreCAD/LibreCAD/milestones)
|
| 38 |
+
|
| 39 |
+
For macOS arm64 builds, the app is __NOT__ signed. To workaround the "damaged" error ([#2162](https://github.com/LibreCAD/LibreCAD/issues/2162)):
|
| 40 |
+
```bash
|
| 41 |
+
xattr -rc LibreCAD.app
|
| 42 |
+
sudo codesign --force --deep --sign - LibreCAD.app
|
| 43 |
+
```
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
## Built with libdxfrw
|
| 47 |
+
[`libdxfrw`](https://github.com/LibreCAD/libdxfrw) is an associated project that allows LibreCAD to read DXF and DWG files.
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
## Requests and Bug Reports
|
| 51 |
+
|
| 52 |
+
- [GitHub Issues (preferred)](https://github.com/LibreCAD/LibreCAD/issues)
|
| 53 |
+
- [SourceForge tickets (disabled)](https://sourceforge.net/p/librecad/_list/tickets?source=navbar)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
## Users Documentation
|
| 57 |
+
|
| 58 |
+
- [Users Manual](https://librecad.readthedocs.io/)
|
| 59 |
+
- [Wiki Main Page](https://dokuwiki.librecad.org/)
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
## Questions or Comments
|
| 63 |
+
|
| 64 |
+
- [LibreCAD's Forum](https://forum.librecad.org/)
|
| 65 |
+
- IRC: [#librecad](https://web.libera.chat/#librecad) at libera.chat
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
## Building
|
| 69 |
+
|
| 70 |
+
### Requirements
|
| 71 |
+
|
| 72 |
+
- [Qt](https://www.qt.io/download-open-source/) 6.4.0+ (MinGW version on Windows)
|
| 73 |
+
- [Boost](https://www.boost.org/) 1.55.0+
|
| 74 |
+
|
| 75 |
+
More information: [Build from source](https://github.com/LibreCAD/LibreCAD/wiki/Build-from-source)
|
| 76 |
+
|
| 77 |
+
### Building Unit Tests
|
| 78 |
+
|
| 79 |
+
To build unit tests (e.g., for `rs_math.cpp`), enable the `BUILD_TESTS` flag:
|
| 80 |
+
|
| 81 |
+
```bash
|
| 82 |
+
cmake -DBUILD_TESTS=ON ..
|
| 83 |
+
make
|
| 84 |
+
./build/librecad_tests
|
| 85 |
+
```
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
## Contributing
|
| 89 |
+
|
| 90 |
+
[Git and GitHub](https://github.com/LibreCAD/LibreCAD/wiki/Git-and-GitHub)
|
| 91 |
+
|
| 92 |
+
[Becoming a developer](https://github.com/LibreCAD/LibreCAD/wiki/Becoming-a-developer)
|
| 93 |
+
|
| 94 |
+
There is a [resources repository](https://github.com/LibreCAD/Resources) for people that want to indirectly
|
| 95 |
+
contribute to the project by supplying icons, stylesheets, documentation, templates...
|
| 96 |
+
|
| 97 |
+
Associated downloads: <https://sourceforge.net/projects/librecad/files/Resources/>
|
common.pri
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# include user-defined things in every qmake project
|
| 3 |
+
exists( custom.pro ):include( custom.pro )
|
| 4 |
+
exists( custom.pri ):include( custom.pri )
|
| 5 |
+
|
| 6 |
+
include( settings.pri )
|
| 7 |
+
|
| 8 |
+
# Store intermedia stuff somewhere else
|
| 9 |
+
isEmpty(GENERATED_DIR){
|
| 10 |
+
GENERATED_DIR = generated
|
| 11 |
+
}
|
| 12 |
+
# Store intermedia stuff somewhere else
|
| 13 |
+
OBJECTS_DIR = $${GENERATED_DIR}/obj
|
| 14 |
+
MOC_DIR = $${GENERATED_DIR}/moc
|
| 15 |
+
RCC_DIR = $${GENERATED_DIR}/rcc
|
| 16 |
+
UI_DIR = $${GENERATED_DIR}/ui
|
| 17 |
+
UI_HEADERS_DIR = $${GENERATED_DIR}/ui
|
| 18 |
+
UI_SOURCES_DIR = $${GENERATED_DIR}/ui
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
# Copy command
|
| 22 |
+
win32 {
|
| 23 |
+
COPY = copy /y
|
| 24 |
+
} else {
|
| 25 |
+
COPY = cp
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
# use c++ only
|
| 29 |
+
QMAKE_CC = g++
|
| 30 |
+
QMAKE_CFLAGS = -std=c++17
|
| 31 |
+
|
| 32 |
+
# Windows compiler settings
|
| 33 |
+
win32 {
|
| 34 |
+
QMAKE_CXXFLAGS += -U__STRICT_ANSI__
|
| 35 |
+
QMAKE_CFLAGS_THREAD -= -mthreads
|
| 36 |
+
QMAKE_CXXFLAGS_THREAD -= -mthreads
|
| 37 |
+
QMAKE_LFLAGS_THREAD -= -mthreads
|
| 38 |
+
#qt version check for mingw
|
| 39 |
+
win32-g++ {
|
| 40 |
+
contains(QT_VERSION, ^4\\.8\\.[0-4]) {
|
| 41 |
+
DEFINES += QT_NO_CONCURRENT=0
|
| 42 |
+
}
|
| 43 |
+
# Silence warning: typedef '...' locally defined but not used [-Wunused-local-typedefs]
|
| 44 |
+
# this was caused by boost headers and g++ 4.8.0 (Qt 5.1 / MinGW 4.8)
|
| 45 |
+
greaterThan( QT_MAJOR_VERSION, 4 ) {
|
| 46 |
+
QMAKE_CXXFLAGS += -Wno-unused-local-typedefs
|
| 47 |
+
}
|
| 48 |
+
}else{
|
| 49 |
+
!build_pass:verbose:message(Setting up support for MSVC.)
|
| 50 |
+
# define the M_PI etc macros for MSVC compilers.
|
| 51 |
+
DEFINES += _USE_MATH_DEFINES
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
# The .NET 2003 compiler (at least) is touchy about its own headers ...
|
| 55 |
+
win32-msvc2003 {
|
| 56 |
+
# Silence "unused formal parameter" warnings about unused `_Iosbase`
|
| 57 |
+
# in the header file `xloctime` (a Vc7 header after all!).
|
| 58 |
+
QMAKE_CXXFLAGS += /wd4100
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
unix|macx|win32-g++ {
|
| 63 |
+
# no such option for MSVC
|
| 64 |
+
QMAKE_CXXFLAGS_DEBUG += -g
|
| 65 |
+
QMAKE_CXXFLAGS += -g
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
# fix for GitHub Issue #880
|
| 69 |
+
# prevent QMake from using -isystem flag for system include path
|
| 70 |
+
# this breaks gcc 6 builds because of its #include_next feature
|
| 71 |
+
QMAKE_CFLAGS_ISYSTEM = ""
|
| 72 |
+
|
| 73 |
+
# svg support
|
| 74 |
+
QT += svg
|
| 75 |
+
|
| 76 |
+
greaterThan( QT_MAJOR_VERSION, 5) {
|
| 77 |
+
CONFIG += c++17
|
| 78 |
+
}else{
|
| 79 |
+
unix|macx|win32-g++ {
|
| 80 |
+
# no such option for MSVC
|
| 81 |
+
QMAKE_CXXFLAGS += -std=c++17
|
| 82 |
+
QMAKE_CXXFLAGS_DEBUG += -std=c++17
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
DEFINES += MUPARSER_STATIC
|
| 87 |
+
# RVT July 12 2015, I believe we need these here
|
| 88 |
+
#macx{
|
| 89 |
+
# QMAKE_CXXFLAGS_DEBUG += -mmacosx-version-min=10.8
|
| 90 |
+
# QMAKE_CXXFLAGS += -mmacosx-version-min=10.8
|
| 91 |
+
#}
|
desktop/graphics_icons_and_splash/Icon LibreCAD/Icon_Librecad.svg
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 16x16.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 24x24.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 256x256.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 32x32.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon 48x48.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/LibreCAD_Icon All Sizes.ico
ADDED
|
|
desktop/graphics_icons_and_splash/Icon LibreCAD/README.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
**DEPRECATED**
|
| 2 |
+
|
| 3 |
+
This folder and its files may be deleted in future.
|
| 4 |
+
|
| 5 |
+
The contained files were copied to:
|
| 6 |
+
[LibreCAD-ROOT]/desktop/media/icons
|
| 7 |
+
|
| 8 |
+
Please use these files from their new location.
|
desktop/graphics_icons_and_splash/Logo LibreCAD/Logo LibreCAD.svg
ADDED
|
|
desktop/graphics_icons_and_splash/Logo LibreCAD/LogoLibrecad_335x33_bgw.png
ADDED
|
|