New Upstream Release - leocad

Ready changes

Summary

Merged new upstream version: 23.03 (was: 21.06).

Resulting package

Built on 2023-04-20T22:50 (took 6m50s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases leocad-dbgsymapt install -t fresh-releases leocad

Lintian Result

Diff

diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml
new file mode 100644
index 0000000..b859dec
--- /dev/null
+++ b/.github/workflows/continuous.yml
@@ -0,0 +1,65 @@
+name: LeoCAD CI
+
+on:
+  push:
+    branches: [ "master" ]
+
+jobs:
+  build-ubuntu:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v3
+    - name: Install Qt
+      uses: jurplel/install-qt-action@v3  
+      with:
+        cache: 'true'
+    - name: Get number of CPU cores
+      uses: SimenB/github-actions-cpu-cores@v1
+      id: cpu-cores
+    - name: Generate Makefile
+      run: qmake PREFIX=/usr
+    - name: Build
+      run: make -j ${{ steps.cpu-cores.outputs.count }}
+
+  build-macos:
+    runs-on: macos-latest
+    steps:
+    - uses: actions/checkout@v3
+    - name: Install Qt
+      uses: jurplel/install-qt-action@v3  
+      with:
+        cache: 'true'
+    - name: Cache Library
+      uses: actions/cache@v3
+      id: cache-library
+      with:
+        path: library.bin
+        key: library-20.03
+    - name: Download Library
+      if: steps.cache-library.outputs.cache-hit != 'true'
+      run: |
+        wget https://github.com/leozide/leocad/releases/download/v19.07.1/Library-20.03.zip -O library.zip
+        unzip library.zip
+    - name: Cache POV-Ray
+      uses: actions/cache@v3
+      id: cache-povray
+      with:
+        path: povray
+        key: povray-20.03
+    - name: Download POV-Ray
+      if: steps.cache-povray.outputs.cache-hit != 'true'
+      run: |
+        wget https://github.com/leozide/povray/releases/download/continuous/povray
+        chmod +x povray
+        curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt
+        echo < repo.txt
+        echo export REMOTE=$(grep -Po '(?<=: \")(([a-z0-9])\w+)(?=\")' -m 1 repo.txt)
+        export REMOTE=$(grep -Po '(?<=: \")(([a-z0-9])\w+)(?=\")' -m 1 repo.txt)
+        echo $REMOTE        
+    - name: Get number of CPU cores
+      uses: SimenB/github-actions-cpu-cores@v1
+      id: cpu-cores
+    - name: Generate Makefile
+      run: qmake PREFIX=/usr
+    - name: Build
+      run: make -j ${{ steps.cpu-cores.outputs.count }}
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 43a2db9..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,107 +0,0 @@
-language: cpp
-
-jobs:
- include:
-  - os: linux
-    name: Linux amd64
-    dist: xenial
-    addons:
-      apt:
-        sources:
-          - sourceline: "ppa:beineri/opt-qt-5.15.2-xenial"
-        packages:
-          - qt515base
-          - qt5153d
-          - libgl1-mesa-dev
-    compiler: gcc
-    script:
-     - source /opt/qt*/bin/qt*-env.sh
-     - qmake PREFIX=/usr -v
-     - qmake PREFIX=/usr
-     - make -j$(nproc)
-    after_success:
-     - make install INSTALL_ROOT=AppDir
-     - wget https://github.com/leozide/leocad/releases/download/v19.07.1/Library-20.03.zip -O library.zip
-     - unzip library.zip
-     - mkdir -p AppDir/usr/share/leocad
-     - mv library.bin AppDir/usr/share/leocad/library.bin
-     - cp qt/leocad.desktop AppDir/leocad.desktop
-     - cp tools/icon/256x256/apps/leocad.png AppDir/leocad.png
-     - wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
-     - chmod a+x linuxdeployqt*.AppImage 
-     - unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
-     - export VERSION=$(git rev-parse --short HEAD)
-     - ./linuxdeployqt*.AppImage ./AppDir/usr/share/applications/*.desktop -bundle-non-qt-libs
-     - ./linuxdeployqt*.AppImage --appimage-extract
-     - export PATH=$(readlink -f ./squashfs-root/usr/bin/):$PATH
-     - ./squashfs-root/usr/bin/appimagetool AppDir/
-     - mv ./LeoCAD-$VERSION-x86_64.AppImage ./LeoCAD-Linux-$VERSION-x86_64.AppImage 
-     - 'curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt'
-     - 'export REMOTE=$(grep -Po ''(?<=: \")(([a-z0-9])\w+)(?=\")'' -m 1 repo.txt)'
-     - export LOCAL=$(git rev-parse HEAD)
-     - if [[ "$REMOTE" != "$LOCAL" ]]; then echo "Build no longer current. $REMOTE vs $LOCAL - aborting upload."; exit 0; fi;
-     - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
-     - bash upload.sh LeoCAD*.AppImage*
-     
-  - os: linux
-    name: Linux arm64
-    arch: arm64
-    dist: focal
-    addons:
-      apt:
-        packages:
-          - qt5-default
-          - qtbase5-dev
-          - qttools5-dev-tools
-          - libqt5opengl5-dev
-          - zip
-    compiler: gcc
-    script:
-     - qmake -v
-     - qmake PREFIX=/usr
-     - make
-    after_success:
-     - cp build/release/leocad .
-     - export VERSION=$(git rev-parse --short HEAD)
-     - zip LeoCAD-Linux-$VERSION-arm64.zip leocad
-     - 'curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt'
-     - 'export REMOTE=$(grep -Po ''(?<=: \")(([a-z0-9])\w+)(?=\")'' -m 1 repo.txt)'
-     - export LOCAL=$(git rev-parse HEAD)
-     - if [[ "$REMOTE" != "$LOCAL" ]]; then echo "Build no longer current. $REMOTE vs $LOCAL - aborting upload."; travis_terminate 0; fi;
-     - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
-     - bash upload.sh LeoCAD*.zip
-
-  - os: osx
-    name: macOS
-    osx_image: xcode11
-    compiler: clang
-    addons:
-      homebrew:
-        packages:
-          - grep
-          - qt5
-    install:
-     - brew link --force qt5
-     - wget https://github.com/leozide/povray/releases/download/continuous/povray
-     - chmod +x povray
-     - wget https://github.com/leozide/leocad/releases/download/v19.07.1/Library-20.03.zip -O library.zip
-     - unzip library.zip
-    script:
-     - qmake -v
-     - qmake
-     - make -j$(sysctl -n hw.ncpu)
-    after_success:
-     - cd build/release
-     - macdeployqt LeoCAD.app -dmg
-     - mv LeoCAD.dmg LeoCAD-macOS-$(git rev-parse --short HEAD).dmg
-     - 'curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt'
-     - 'export REMOTE=$(ggrep -Po ''(?<=: \")(([a-z0-9])\w+)(?=\")'' -m 1 repo.txt)'
-     - export LOCAL=$(git rev-parse HEAD)
-     - if [[ "$REMOTE" != "$LOCAL" ]]; then echo "Build no longer current. $REMOTE vs $LOCAL - aborting upload."; exit 0; fi;
-     - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
-     - bash upload.sh LeoCAD*.dmg*
-
-branches:
-  except:
-    - # Do not build tags that we create when we upload to GitHub Releases
-    - /^(?i:continuous)/
diff --git a/appveyor.yml b/appveyor.yml
index 7cc7212..aab8f6c 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,48 +1,130 @@
 version: '{branch}.{build}'
-skip_tags: true
 image:
+- Ubuntu1604
+- macos
 - Visual Studio 2019
 configuration: Release
 platform: x64
 
 environment:
   GITHUB_TOKEN:
-    secure: +EZPzYX4wUEc6MYg4kBLx9TogAqeeeWUPgtEW3VtAJATrBtxwpuOQIHrrR4hbc7a
+    secure: ZaApxtWM3JA1AdJqs2pv+BCE5XIUrrVKXNy05q8f6f4zRZ7H/lMEJ6gZ1o2yp6NT
 
-before_build:
-- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
-- set PATH=C:\Qt\5.15\msvc2019_64\bin;%PATH%
-- git rev-parse --short HEAD > version.txt
-- set /p VERSION= < version.txt
-- qmake -v
-- qmake -tp vc
+for:
+  -
+    matrix:
+      only:
+        - image: Visual Studio 2019
+        
+    before_build:
+    - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
+    - set PATH=C:\Qt\5.15\msvc2019_64\bin;%PATH%
+    - git rev-parse --short HEAD > version.txt
+    - set /p VERSION= < version.txt
+    - qmake -v
+    - qmake -tp vc
 
-build:
-  project: leocad.vcxproj
-  verbosity: minimal
+    build:
+      project: leocad.vcxproj
+      verbosity: minimal
 
-after_build:
-- 7z a symbols.zip build/release/leocad.exe build/release/leocad.pdb
-- mkdir appdir
-- copy build\release\leocad.exe appdir
-- copy docs\readme.md appdir\readme.txt
-- appveyor DownloadFile https://github.com/leozide/leocad/releases/download/v19.07.1/Library-20.03.zip -FileName library.zip
-- 7z e library.zip
-- copy library.bin appdir\\library.bin
-- appveyor DownloadFile https://github.com/leozide/povray/releases/download/continuous/povconsole32-sse2.exe -FileName appdir\povconsole32-sse2.exe 
-- windeployqt appdir\leocad.exe
-- copy tools\setup\leocad.nsi .
-- copy tools\setup\setup.ico .
-- 'copy "%VCToolsRedistDir%\vcredist_x64.exe" appdir'
-- '"C:\Program Files (x86)\NSIS\makensis.exe" /V4 /DX64 "/XOutFile LeoCAD-Windows-%VERSION%.exe" leocad.nsi'
-- set TRAVIS_TAG=%APPVEYOR_REPO_TAG_NAME%
-- set TRAVIS_REPO_SLUG=%APPVEYOR_REPO_NAME%
-- set TRAVIS_COMMIT=%APPVEYOR_REPO_COMMIT%
-- appveyor DownloadFile https://github.com/probonopd/uploadtool/raw/master/upload.sh
-- if not defined APPVEYOR_PULL_REQUEST_NUMBER (bash upload.sh LeoCAD*.exe)
+    after_build:
+    - 7z a symbols.zip build/release/leocad.exe build/release/leocad.pdb
+    - mkdir appdir
+    - copy build\release\leocad.exe appdir
+    - copy docs\readme.md appdir\readme.txt
+    - appveyor DownloadFile https://github.com/leozide/leocad/releases/download/v21.06/Library-23.01.zip -FileName library.zip
+    - 7z e library.zip
+    - copy library.bin appdir\\library.bin
+    - appveyor DownloadFile https://github.com/leozide/povray/releases/download/continuous/povconsole32-sse2.exe -FileName appdir\povconsole32-sse2.exe 
+    - windeployqt appdir\leocad.exe
+    - copy tools\setup\leocad.nsi .
+    - copy tools\setup\setup.ico .
+    - 'copy "%VCToolsRedistDir%\vcredist_x64.exe" appdir'
+    - '"C:\Program Files (x86)\NSIS\makensis.exe" /V4 /DX64 "/XOutFile LeoCAD-Windows-%VERSION%.exe" leocad.nsi'
+    - set TRAVIS_TAG=%APPVEYOR_REPO_TAG_NAME%
+    - set TRAVIS_REPO_SLUG=%APPVEYOR_REPO_NAME%
+    - set TRAVIS_COMMIT=%APPVEYOR_REPO_COMMIT%
+    - appveyor DownloadFile https://github.com/probonopd/uploadtool/raw/master/upload.sh
+    - if not defined APPVEYOR_PULL_REQUEST_NUMBER (bash upload.sh LeoCAD*.exe)
 
-artifacts:
-- path: symbols.zip
-  name: symbols
-- path: LeoCAD-Windows-$(VERSION).exe
-  name: leocad
+    artifacts:
+    - path: symbols.zip
+      name: symbols
+    - path: LeoCAD-Windows-$(VERSION).exe
+      name: leocad
+      
+  -
+    matrix:
+      only:
+        - image: Ubuntu1604
+        
+    install:
+      - sudo apt-get -y install libqt5opengl5-dev libxcb-xinerama0
+      
+    before_build:
+      - export PATH=$HOME/Qt/5.15/gcc_64/bin:$PATH
+      - export TRAVIS_TAG=$APPVEYOR_REPO_TAG_NAME
+      - export TRAVIS_REPO_SLUG=$APPVEYOR_REPO_NAME
+      - export TRAVIS_COMMIT=$APPVEYOR_REPO_COMMIT
+    
+    build_script:
+      - qmake PREFIX=/usr
+      - make
+      
+    after_build:
+      - make install INSTALL_ROOT=AppDir
+      - appveyor DownloadFile https://github.com/leozide/leocad/releases/download/v21.06/Library-23.01.zip -FileName library.zip
+      - unzip library.zip
+      - mkdir -p AppDir/usr/share/leocad
+      - mv library.bin AppDir/usr/share/leocad/library.bin
+      - cp qt/leocad.desktop AppDir/leocad.desktop
+      - cp tools/icon/256x256/apps/leocad.png AppDir/leocad.png
+      - appveyor DownloadFile https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
+      - chmod a+x linuxdeployqt*.AppImage 
+      - unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
+      - export VERSION=$(git rev-parse --short HEAD)
+      - ./linuxdeployqt*.AppImage ./AppDir/usr/share/applications/*.desktop -bundle-non-qt-libs
+      - ./linuxdeployqt*.AppImage --appimage-extract
+      - export PATH=$(readlink -f ./squashfs-root/usr/bin/):$PATH
+      - ./squashfs-root/usr/bin/appimagetool AppDir/
+      - mv ./LeoCAD-$VERSION-x86_64.AppImage ./LeoCAD-Linux-$VERSION-x86_64.AppImage 
+      - 'curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt'
+      - 'export REMOTE=$(grep -Po ''(?<=: \")(([a-z0-9])\w+)(?=\")'' -m 1 repo.txt)'
+      - export LOCAL=$(git rev-parse HEAD)
+      - if [[ "$REMOTE" != "$LOCAL" ]]; then echo "Build no longer current. $REMOTE vs $LOCAL - aborting upload."; exit 0; fi;
+      - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
+      - bash upload.sh LeoCAD*.AppImage*
+
+  -
+    matrix:
+      only:
+        - image: macos
+
+    install:
+       - brew install grep
+       
+    before_build:
+      - export PATH=$HOME/Qt/5.15/clang_64/bin:$PATH
+      - export TRAVIS_TAG=$APPVEYOR_REPO_TAG_NAME
+      - export TRAVIS_REPO_SLUG=$APPVEYOR_REPO_NAME
+      - export TRAVIS_COMMIT=$APPVEYOR_REPO_COMMIT
+      - appveyor DownloadFile https://github.com/leozide/povray/releases/download/continuous/povray
+      - chmod +x povray
+      - appveyor DownloadFile https://github.com/leozide/leocad/releases/download/v21.06/Library-23.01.zip -FileName library.zip
+      - unzip library.zip
+     
+    build_script:
+      - qmake PREFIX=/usr
+      - make
+    
+    after_build:
+      - cd build/release
+      - macdeployqt LeoCAD.app -dmg
+      - mv LeoCAD.dmg LeoCAD-macOS-$(git rev-parse --short HEAD).dmg
+      - 'curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/leozide/leocad/commits/master -o repo.txt' 
+      - 'export REMOTE=$(ggrep -Po ''(?<=: \")(([a-z0-9])\w+)(?=\")'' -m 1 repo.txt)'
+      - export LOCAL=$(git rev-parse HEAD)
+      - if [[ "$REMOTE" != "$LOCAL" ]]; then echo "Build no longer current. $REMOTE vs $LOCAL - aborting upload."; exit 0; fi;
+      - appveyor DownloadFile https://github.com/probonopd/uploadtool/raw/master/upload.sh
+      - bash upload.sh LeoCAD*.dmg*
diff --git a/common/camera.cpp b/common/camera.cpp
index e8d64ae..ae8a0a1 100644
--- a/common/camera.cpp
+++ b/common/camera.cpp
@@ -126,7 +126,7 @@ void lcCamera::CreateName(const lcArray<lcCamera*>& Cameras)
 		if (CameraName.startsWith(Prefix))
 		{
 			bool Ok = false;
-			int CameraNumber = CameraName.midRef(Prefix.size()).toInt(&Ok);
+			int CameraNumber = CameraName.mid(Prefix.size()).toInt(&Ok);
 
 			if (Ok && CameraNumber > MaxCameraNumber)
 				MaxCameraNumber = CameraNumber;
@@ -138,7 +138,7 @@ void lcCamera::CreateName(const lcArray<lcCamera*>& Cameras)
 
 void lcCamera::SaveLDraw(QTextStream& Stream) const
 {
-	QLatin1String LineEnding("\r\n");
+	const QLatin1String LineEnding("\r\n");
 
 	Stream << QLatin1String("0 !LEOCAD CAMERA FOV ") << m_fovy << QLatin1String(" ZNEAR ") << m_zNear << QLatin1String(" ZFAR ") << m_zFar << LineEnding;
 
@@ -400,7 +400,7 @@ void lcCamera::MoveSelected(lcStep Step, bool AddKey, const lcVector3& Distance)
 		mUpVectorKeys.ChangeKey(mUpVector, Step, AddKey);
 	}
 
-	lcVector3 FrontVector(mTargetPosition - mPosition);
+	const lcVector3 FrontVector(mTargetPosition - mPosition);
 	lcVector3 SideVector = lcCross(FrontVector, mUpVector);
 
 	if (fabsf(lcDot(mUpVector, SideVector)) > 0.99f)
@@ -415,7 +415,7 @@ void lcCamera::MoveRelative(const lcVector3& Distance, lcStep Step, bool AddKey)
 	if (IsSimple())
 		AddKey = false;
 
-	lcVector3 Relative = lcMul30(Distance, lcMatrix44Transpose(mWorldView)) * 5.0f;
+	const lcVector3 Relative = lcMul30(Distance, lcMatrix44Transpose(mWorldView)) * 5.0f;
 
 	mPosition += Relative;
 	mPositionKeys.ChangeKey(mPosition, Step, AddKey);
@@ -435,8 +435,8 @@ void lcCamera::UpdatePosition(lcStep Step)
 		mUpVector = mUpVectorKeys.CalculateKey(Step);
 	}
 
-	lcVector3 FrontVector(mPosition - mTargetPosition);
-	lcVector3 SideVector = lcCross(FrontVector, mUpVector);
+	const lcVector3 FrontVector(mPosition - mTargetPosition);
+	const lcVector3 SideVector = lcCross(FrontVector, mUpVector);
 	mUpVector = lcNormalize(lcCross(SideVector, FrontVector));
 
 	mWorldView = lcMatrix44LookAt(mPosition, mTargetPosition, mUpVector);
@@ -472,7 +472,7 @@ void lcCamera::DrawInterface(lcContext* Context, const lcScene& Scene) const
 	lcMatrix44 ViewWorldMatrix = lcMatrix44AffineInverse(mWorldView);
 	ViewWorldMatrix.SetTranslation(lcVector3(0, 0, 0));
 
-	lcMatrix44 CameraViewMatrix = lcMul(ViewWorldMatrix, lcMatrix44Translation(mPosition));
+	const lcMatrix44 CameraViewMatrix = lcMul(ViewWorldMatrix, lcMatrix44Translation(mPosition));
 	Context->SetWorldMatrix(CameraViewMatrix);
 
 	float Verts[(12 + 8 + 8 + 3 + 4) * 3];
@@ -537,12 +537,16 @@ void lcCamera::DrawInterface(lcContext* Context, const lcScene& Scene) const
 	Context->SetVertexFormatPosition(3);
 	Context->SetIndexBufferPointer(Indices);
 
-	float LineWidth = lcGetPreferences().mLineWidth;
+	const lcPreferences& Preferences = lcGetPreferences();
+	const float LineWidth = Preferences.mLineWidth;
+	const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+	const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+	const lcVector4 CameraColor = lcVector4FromColor(Preferences.mCameraColor);
 
 	if (!IsSelected())
 	{
 		Context->SetLineWidth(LineWidth);
-		Context->SetInterfaceColor(LC_COLOR_CAMERA);
+		Context->SetColor(CameraColor);
 
 		Context->DrawIndexedPrimitives(GL_LINES, 40 + 24 + 24 + 4, GL_UNSIGNED_SHORT, 0);
 	}
@@ -552,14 +556,14 @@ void lcCamera::DrawInterface(lcContext* Context, const lcScene& Scene) const
 		{
 			Context->SetLineWidth(2.0f * LineWidth);
 			if (IsFocused(LC_CAMERA_SECTION_POSITION))
-				Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+				Context->SetColor(FocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_SELECTED);
+				Context->SetColor(SelectedColor);
 		}
 		else
 		{
 			Context->SetLineWidth(LineWidth);
-			Context->SetInterfaceColor(LC_COLOR_CAMERA);
+			Context->SetColor(CameraColor);
 		}
 
 		Context->DrawIndexedPrimitives(GL_LINES, 40, GL_UNSIGNED_SHORT, 0);
@@ -568,14 +572,14 @@ void lcCamera::DrawInterface(lcContext* Context, const lcScene& Scene) const
 		{
 			Context->SetLineWidth(2.0f * LineWidth);
 			if (IsFocused(LC_CAMERA_SECTION_TARGET))
-				Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+				Context->SetColor(FocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_SELECTED);
+				Context->SetColor(SelectedColor);
 		}
 		else
 		{
 			Context->SetLineWidth(LineWidth);
-			Context->SetInterfaceColor(LC_COLOR_CAMERA);
+			Context->SetColor(CameraColor);
 		}
 
 		Context->DrawIndexedPrimitives(GL_LINES, 24, GL_UNSIGNED_SHORT, 40 * 2);
@@ -584,19 +588,19 @@ void lcCamera::DrawInterface(lcContext* Context, const lcScene& Scene) const
 		{
 			Context->SetLineWidth(2.0f * LineWidth);
 			if (IsFocused(LC_CAMERA_SECTION_UPVECTOR))
-				Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+				Context->SetColor(FocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_SELECTED);
+				Context->SetColor(SelectedColor);
 		}
 		else
 		{
 			Context->SetLineWidth(LineWidth);
-			Context->SetInterfaceColor(LC_COLOR_CAMERA);
+			Context->SetColor(CameraColor);
 		}
 
 		Context->DrawIndexedPrimitives(GL_LINES, 24, GL_UNSIGNED_SHORT, (40 + 24) * 2);
 
-		Context->SetInterfaceColor(LC_COLOR_CAMERA);
+		Context->SetColor(CameraColor);
 		Context->SetLineWidth(LineWidth);
 
 		float SizeY = tanf(LC_DTOR * m_fovy / 2) * Length;
@@ -632,11 +636,14 @@ void lcCamera::RayTest(lcObjectRayTest& ObjectRayTest) const
 	lcVector3 End = lcMul31(ObjectRayTest.End, mWorldView);
 
 	float Distance;
-	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr) && (Distance < ObjectRayTest.Distance))
+	lcVector3 Plane;
+
+	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr, &Plane) && (Distance < ObjectRayTest.Distance))
 	{
 		ObjectRayTest.ObjectSection.Object = const_cast<lcCamera*>(this);
 		ObjectRayTest.ObjectSection.Section = LC_CAMERA_SECTION_POSITION;
 		ObjectRayTest.Distance = Distance;
+		ObjectRayTest.PieceInfoRayTest.Plane = Plane;
 	}
 
 	Min = lcVector3(-LC_CAMERA_TARGET_EDGE, -LC_CAMERA_TARGET_EDGE, -LC_CAMERA_TARGET_EDGE);
@@ -648,15 +655,16 @@ void lcCamera::RayTest(lcObjectRayTest& ObjectRayTest) const
 	Start = lcMul31(ObjectRayTest.Start, WorldView);
 	End = lcMul31(ObjectRayTest.End, WorldView);
 
-	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr) && (Distance < ObjectRayTest.Distance))
+	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr, &Plane) && (Distance < ObjectRayTest.Distance))
 	{
 		ObjectRayTest.ObjectSection.Object = const_cast<lcCamera*>(this);
 		ObjectRayTest.ObjectSection.Section = LC_CAMERA_SECTION_TARGET;
 		ObjectRayTest.Distance = Distance;
+		ObjectRayTest.PieceInfoRayTest.Plane = Plane;
 	}
 
-	lcMatrix44 ViewWorld = lcMatrix44AffineInverse(mWorldView);
-	lcVector3 UpVectorPosition = lcMul31(lcVector3(0, 25, 0), ViewWorld);
+	const lcMatrix44 ViewWorld = lcMatrix44AffineInverse(mWorldView);
+	const lcVector3 UpVectorPosition = lcMul31(lcVector3(0, 25, 0), ViewWorld);
 
 	WorldView = mWorldView;
 	WorldView.SetTranslation(lcMul30(-UpVectorPosition, WorldView));
@@ -664,11 +672,12 @@ void lcCamera::RayTest(lcObjectRayTest& ObjectRayTest) const
 	Start = lcMul31(ObjectRayTest.Start, WorldView);
 	End = lcMul31(ObjectRayTest.End, WorldView);
 
-	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr) && (Distance < ObjectRayTest.Distance))
+	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr, &Plane) && (Distance < ObjectRayTest.Distance))
 	{
 		ObjectRayTest.ObjectSection.Object = const_cast<lcCamera*>(this);
 		ObjectRayTest.ObjectSection.Section = LC_CAMERA_SECTION_UPVECTOR;
 		ObjectRayTest.Distance = Distance;
+		ObjectRayTest.PieceInfoRayTest.Plane = Plane;
 	}
 }
 
@@ -681,7 +690,7 @@ void lcCamera::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 
 	for (int PlaneIdx = 0; PlaneIdx < 6; PlaneIdx++)
 	{
-		lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], mWorldView);
+		const lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], mWorldView);
 		LocalPlanes[PlaneIdx] = lcVector4(Normal, ObjectBoxTest.Planes[PlaneIdx][3] - lcDot3(mWorldView[3], Normal));
 	}
 
@@ -699,7 +708,7 @@ void lcCamera::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 
 	for (int PlaneIdx = 0; PlaneIdx < 6; PlaneIdx++)
 	{
-		lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldView);
+		const lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldView);
 		LocalPlanes[PlaneIdx] = lcVector4(Normal, ObjectBoxTest.Planes[PlaneIdx][3] - lcDot3(WorldView[3], Normal));
 	}
 
@@ -709,15 +718,15 @@ void lcCamera::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 		return;
 	}
 
-	lcMatrix44 ViewWorld = lcMatrix44AffineInverse(mWorldView);
-	lcVector3 UpVectorPosition = lcMul31(lcVector3(0, 25, 0), ViewWorld);
+	const lcMatrix44 ViewWorld = lcMatrix44AffineInverse(mWorldView);
+	const lcVector3 UpVectorPosition = lcMul31(lcVector3(0, 25, 0), ViewWorld);
 
 	WorldView = mWorldView;
 	WorldView.SetTranslation(lcMul30(-UpVectorPosition, WorldView));
 
 	for (int PlaneIdx = 0; PlaneIdx < 6; PlaneIdx++)
 	{
-		lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldView);
+		const lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldView);
 		LocalPlanes[PlaneIdx] = lcVector4(Normal, ObjectBoxTest.Planes[PlaneIdx][3] - lcDot3(WorldView[3], Normal));
 	}
 
@@ -758,23 +767,23 @@ void lcCamera::ZoomExtents(float AspectRatio, const lcVector3& Center, const std
 			MaxY = lcMax(MaxY, Point.y);
 		}
 
-		lcVector3 ViewCenter = lcMul30(Center, mWorldView);
+		const lcVector3 ViewCenter = lcMul30(Center, mWorldView);
 		float Width = qMax(fabsf(MaxX - ViewCenter.x), fabsf(ViewCenter.x - MinX)) * 2;
 		float Height = qMax(fabsf(MaxY - ViewCenter.y), fabsf(ViewCenter.y - MinY)) * 2;
 
 		if (Width > Height * AspectRatio)
 			Height = Width / AspectRatio;
 
-		float f = Height / (m_fovy * (LC_PI / 180.0f));
+		const float f = Height / (m_fovy * (LC_PI / 180.0f));
 
-		lcVector3 FrontVector(mTargetPosition - mPosition);
+		const lcVector3 FrontVector(mTargetPosition - mPosition);
 		mPosition = Center - lcNormalize(FrontVector) * f;
 		mTargetPosition = Center;
 	}
 	else
 	{
-		lcVector3 Position(mPosition + Center - mTargetPosition);
-		lcMatrix44 ProjectionMatrix = lcMatrix44Perspective(m_fovy, AspectRatio, m_zNear, m_zFar);
+		const lcVector3 Position(mPosition + Center - mTargetPosition);
+		const lcMatrix44 ProjectionMatrix = lcMatrix44Perspective(m_fovy, AspectRatio, m_zNear, m_zFar);
 
 		std::tie(mPosition, std::ignore) = lcZoomExtents(Position, mWorldView, ProjectionMatrix, Points.data(), Points.size());
 		mTargetPosition = Center;
@@ -797,7 +806,7 @@ void lcCamera::ZoomRegion(float AspectRatio, const lcVector3& Position, const lc
 
 		for (int PointIdx = 0; PointIdx < 2; PointIdx++)
 		{
-			lcVector3 Point = lcMul30(Corners[PointIdx], mWorldView);
+			const lcVector3 Point = lcMul30(Corners[PointIdx], mWorldView);
 
 			MinX = lcMin(MinX, Point.x);
 			MinY = lcMin(MinY, Point.y);
@@ -811,16 +820,16 @@ void lcCamera::ZoomRegion(float AspectRatio, const lcVector3& Position, const lc
 		if (Width > Height * AspectRatio)
 			Height = Width / AspectRatio;
 
-		float f = Height / (m_fovy * (LC_PI / 180.0f));
+		const float f = Height / (m_fovy * (LC_PI / 180.0f));
 
-		lcVector3 FrontVector(mTargetPosition - mPosition);
+		const lcVector3 FrontVector(mTargetPosition - mPosition);
 		mPosition = TargetPosition - lcNormalize(FrontVector) * f;
 		mTargetPosition = TargetPosition;
 	}
 	else
 	{
-		lcMatrix44 WorldView = lcMatrix44LookAt(Position, TargetPosition, mUpVector);
-		lcMatrix44 ProjectionMatrix = lcMatrix44Perspective(m_fovy, AspectRatio, m_zNear, m_zFar);
+		const lcMatrix44 WorldView = lcMatrix44LookAt(Position, TargetPosition, mUpVector);
+		const lcMatrix44 ProjectionMatrix = lcMatrix44Perspective(m_fovy, AspectRatio, m_zNear, m_zFar);
 
 		std::tie(mPosition, std::ignore) = lcZoomExtents(Position, WorldView, ProjectionMatrix, Corners, 2);
 		mTargetPosition = TargetPosition;
@@ -892,8 +901,8 @@ void lcCamera::Orbit(float DistanceX, float DistanceY, const lcVector3& CenterPo
 		Z[1] = -Z[1];
 	}
  
-	lcMatrix44 YRot(lcVector4(Z[0], Z[1], 0.0f, 0.0f), lcVector4(-Z[1], Z[0], 0.0f, 0.0f), lcVector4(0.0f, 0.0f, 1.0f, 0.0f), lcVector4(0.0f, 0.0f, 0.0f, 1.0f));
-	lcMatrix44 transform = lcMul(lcMul(lcMul(lcMatrix44AffineInverse(YRot), lcMatrix44RotationY(DistanceY)), YRot), lcMatrix44RotationZ(-DistanceX));
+	const lcMatrix44 YRot(lcVector4(Z[0], Z[1], 0.0f, 0.0f), lcVector4(-Z[1], Z[0], 0.0f, 0.0f), lcVector4(0.0f, 0.0f, 1.0f, 0.0f), lcVector4(0.0f, 0.0f, 0.0f, 1.0f));
+	const lcMatrix44 transform = lcMul(lcMul(lcMul(lcMatrix44AffineInverse(YRot), lcMatrix44RotationY(DistanceY)), YRot), lcMatrix44RotationZ(-DistanceX));
 
 	mPosition = lcMul31(mPosition - CenterPosition, transform) + CenterPosition;
 	mTargetPosition = lcMul31(mTargetPosition - CenterPosition, transform) + CenterPosition;
@@ -912,8 +921,8 @@ void lcCamera::Orbit(float DistanceX, float DistanceY, const lcVector3& CenterPo
 
 void lcCamera::Roll(float Distance, lcStep Step, bool AddKey)
 {
-	lcVector3 FrontVector(mPosition - mTargetPosition);
-	lcMatrix44 Rotation = lcMatrix44FromAxisAngle(FrontVector, Distance);
+	const lcVector3 FrontVector(mPosition - mTargetPosition);
+	const lcMatrix44 Rotation = lcMatrix44FromAxisAngle(FrontVector, Distance);
 
 	mUpVector = lcMul30(mUpVector, Rotation);
 
@@ -949,7 +958,7 @@ void lcCamera::Center(const lcVector3& NewCenter, lcStep Step, bool AddKey)
 	mTargetPosition = NewCenter;
 
 	lcVector3 FrontVector(mPosition - mTargetPosition);
-	lcMatrix44 Rotation = lcMatrix44FromAxisAngle(FrontVector, Roll);
+	const lcMatrix44 Rotation = lcMatrix44FromAxisAngle(FrontVector, Roll);
 
 	lcVector3 UpVector(0, 0, 1), SideVector;
 	FrontVector.Normalize();
@@ -1032,7 +1041,7 @@ void lcCamera::SetViewpoint(const lcVector3& Position, const lcVector3& Target,
 	mPosition = Position;
 	mTargetPosition = Target;
 
-	lcVector3 Direction = Target - Position;
+	const lcVector3 Direction = Target - Position;
 	lcVector3 UpVector, SideVector;
 	SideVector = lcCross(Direction, Up);
 	UpVector = lcCross(SideVector, Direction);
@@ -1052,11 +1061,11 @@ void lcCamera::SetAngles(float Latitude, float Longitude, float Distance)
 	mTargetPosition = lcVector3(0, 0, 0);
 	mUpVector = lcVector3(0, 0, 1);
 
-	lcMatrix33 LongitudeMatrix = lcMatrix33RotationZ(LC_DTOR * Longitude);
+	const lcMatrix33 LongitudeMatrix = lcMatrix33RotationZ(LC_DTOR * Longitude);
 	mPosition = lcMul(mPosition, LongitudeMatrix);
 
-	lcVector3 SideVector = lcMul(lcVector3(-1, 0, 0), LongitudeMatrix);
-	lcMatrix33 LatitudeMatrix = lcMatrix33FromAxisAngle(SideVector, LC_DTOR * Latitude);
+	const lcVector3 SideVector = lcMul(lcVector3(-1, 0, 0), LongitudeMatrix);
+	const lcMatrix33 LatitudeMatrix = lcMatrix33FromAxisAngle(SideVector, LC_DTOR * Latitude);
 	mPosition = lcMul(mPosition, LatitudeMatrix) * Distance;
 	mUpVector = lcMul(mUpVector, LatitudeMatrix);
 
@@ -1070,14 +1079,14 @@ void lcCamera::SetAngles(float Latitude, float Longitude, float Distance)
 void lcCamera::GetAngles(float& Latitude, float& Longitude, float& Distance) const
 {
 	lcVector3 FrontVector(mPosition - mTargetPosition);
-	lcVector3 X(1, 0, 0);
-	lcVector3 Y(0, 1, 0);
-	lcVector3 Z(0, 0, 1);
+	const lcVector3 X(1, 0, 0);
+	const lcVector3 Y(0, 1, 0);
+	const lcVector3 Z(0, 0, 1);
 
 	FrontVector.Normalize();
 	Latitude = acos(lcDot(-FrontVector, Z)) * LC_RTOD - 90.0f;
 
-	lcVector3 CameraXY = -lcNormalize(lcVector3(FrontVector.x, FrontVector.y, 0.0f));
+	const lcVector3 CameraXY = -lcNormalize(lcVector3(FrontVector.x, FrontVector.y, 0.0f));
 	Longitude = acos(lcDot(CameraXY, Y)) * LC_RTOD;
 
 	if (lcDot(CameraXY, X) > 0)
diff --git a/common/camera.h b/common/camera.h
index 61fb728..14bff4e 100644
--- a/common/camera.h
+++ b/common/camera.h
@@ -44,7 +44,9 @@ public:
 	~lcCamera();
 
 	lcCamera(const lcCamera&) = delete;
+	lcCamera(lcCamera&&) = delete;
 	lcCamera& operator=(const lcCamera&) = delete;
+	lcCamera& operator=(lcCamera&&) = delete;
 
 	static lcViewpoint GetViewpoint(const QString& ViewpointName);
 
@@ -261,7 +263,7 @@ public:
 		//                d               d
 		//   a = 2 atan(------) => ~ a = --- => d = af
 		//                2f              f
-		float f = (mPosition - mTargetPosition).Length();
+		const float f = (mPosition - mTargetPosition).Length();
 		return (m_fovy * f) * (LC_PI / 180.0f);
 	}
 
diff --git a/common/image.cpp b/common/image.cpp
index 82acb6b..00ae0aa 100644
--- a/common/image.cpp
+++ b/common/image.cpp
@@ -4,8 +4,8 @@
 
 static void CopyFromQImage(const QImage& Src, Image& Dest)
 {
-	bool Alpha = Src.hasAlphaChannel();
-	Dest.Allocate(Src.width(), Src.height(), Alpha ? LC_PIXEL_FORMAT_R8G8B8A8 : LC_PIXEL_FORMAT_R8G8B8);
+	const bool Alpha = Src.hasAlphaChannel();
+	Dest.Allocate(Src.width(), Src.height(), Alpha ? lcPixelFormat::R8G8B8A8 : lcPixelFormat::R8G8B8);
 
 	quint8* Bytes = (quint8*)Dest.mData;
 
@@ -30,7 +30,7 @@ Image::Image()
 	mData = nullptr;
 	mWidth = 0;
 	mHeight = 0;
-	mFormat = LC_PIXEL_FORMAT_INVALID;
+	mFormat = lcPixelFormat::Invalid;
 }
 
 Image::Image(Image&& Other)
@@ -43,7 +43,7 @@ Image::Image(Image&& Other)
 	Other.mData = nullptr;
 	Other.mWidth = 0;
 	Other.mHeight = 0;
-	Other.mFormat = LC_PIXEL_FORMAT_INVALID;
+	Other.mFormat = lcPixelFormat::Invalid;
 }
 
 Image::~Image()
@@ -55,15 +55,15 @@ int Image::GetBPP() const
 {
 	switch (mFormat)
 	{
-	case LC_PIXEL_FORMAT_INVALID:
+	case lcPixelFormat::Invalid:
 		return 0;
-	case LC_PIXEL_FORMAT_A8:
+	case lcPixelFormat::A8:
 		return 1;
-	case LC_PIXEL_FORMAT_L8A8:
+	case lcPixelFormat::L8A8:
 		return 2;
-	case LC_PIXEL_FORMAT_R8G8B8:
+	case lcPixelFormat::R8G8B8:
 		return 3;
-	case LC_PIXEL_FORMAT_R8G8B8A8:
+	case lcPixelFormat::R8G8B8A8:
 		return 4;
 	}
 
@@ -74,15 +74,15 @@ bool Image::HasAlpha() const
 {
 	switch (mFormat)
 	{
-	case LC_PIXEL_FORMAT_INVALID:
+	case lcPixelFormat::Invalid:
 		return false;
-	case LC_PIXEL_FORMAT_A8:
+	case lcPixelFormat::A8:
 		return true;
-	case LC_PIXEL_FORMAT_L8A8:
+	case lcPixelFormat::L8A8:
 		return true;
-	case LC_PIXEL_FORMAT_R8G8B8:
+	case lcPixelFormat::R8G8B8:
 		return false;
-	case LC_PIXEL_FORMAT_R8G8B8A8:
+	case lcPixelFormat::R8G8B8A8:
 		return true;
 	}
 
@@ -95,7 +95,7 @@ void Image::FreeData()
 	mData = nullptr;
 	mWidth = 0;
 	mHeight = 0;
-	mFormat = LC_PIXEL_FORMAT_INVALID;
+	mFormat = lcPixelFormat::Invalid;
 }
 
 void Image::Allocate(int Width, int Height, lcPixelFormat Format)
@@ -133,7 +133,7 @@ void Image::Resize(int width, int height)
 	unsigned char* bits = nullptr;
 
 	components = GetBPP();
-	int BufferSize = width * height * components;
+	const int BufferSize = width * height * components;
 
 	if (BufferSize)
 	{
@@ -168,8 +168,8 @@ bool Image::FileLoad(lcMemFile& File)
 {
 	QImage Image;
 
-	unsigned char* Buffer = File.mBuffer + File.mPosition;
-	size_t BufferLength = File.mFileSize - File.mPosition;
+	const unsigned char* Buffer = File.mBuffer + File.mPosition;
+	const size_t BufferLength = File.mFileSize - File.mPosition;
 
 	if (!Image.loadFromData(Buffer, (int)BufferLength))
 		return false;
diff --git a/common/image.h b/common/image.h
index 880130e..dce0917 100644
--- a/common/image.h
+++ b/common/image.h
@@ -4,13 +4,13 @@
 #define LC_IMAGE_TRANSPARENT	0x2000
 //#define LC_IMAGE_MASK		0x7000
 
-enum lcPixelFormat
+enum class lcPixelFormat
 {
-	LC_PIXEL_FORMAT_INVALID,
-	LC_PIXEL_FORMAT_A8,
-	LC_PIXEL_FORMAT_L8A8,
-	LC_PIXEL_FORMAT_R8G8B8,
-	LC_PIXEL_FORMAT_R8G8B8A8
+	Invalid,
+	A8,
+	L8A8,
+	R8G8B8,
+	R8G8B8A8
 };
 
 class Image
@@ -18,7 +18,7 @@ class Image
 public:
 	Image();
 	Image(Image&& Other);
-	virtual ~Image();
+	~Image();
 
 	Image(const Image&) = delete;
 	Image& operator=(const Image&) = delete;
diff --git a/common/lc_application.cpp b/common/lc_application.cpp
index ff59510..e8bcfa1 100644
--- a/common/lc_application.cpp
+++ b/common/lc_application.cpp
@@ -12,6 +12,10 @@
 #include "camera.h"
 #include "lc_previewwidget.h"
 
+#ifdef Q_OS_WIN
+#include <QtPlatformHeaders\QWindowsWindowFunctions>
+#endif
+
 lcApplication* gApplication;
 
 void lcPreferences::LoadDefaults()
@@ -67,6 +71,12 @@ void lcPreferences::LoadDefaults()
 	mPartEdgeContrast = lcGetProfileFloat(LC_PROFILE_PART_EDGE_CONTRAST);
 	mPartColorValueLDIndex = lcGetProfileFloat(LC_PROFILE_PART_COLOR_VALUE_LD_INDEX);
 	mAutomateEdgeColor = lcGetProfileInt(LC_PROFILE_AUTOMATE_EDGE_COLOR);
+	mObjectSelectedColor = lcGetProfileUInt(LC_PROFILE_OBJECT_SELECTED_COLOR);
+	mObjectFocusedColor = lcGetProfileUInt(LC_PROFILE_OBJECT_FOCUSED_COLOR);
+	mCameraColor = lcGetProfileUInt(LC_PROFILE_CAMERA_COLOR);
+	mLightColor = lcGetProfileUInt(LC_PROFILE_LIGHT_COLOR);
+	mControlPointColor = lcGetProfileUInt(LC_PROFILE_CONTROL_POINT_COLOR);
+	mControlPointFocusedColor = lcGetProfileUInt(LC_PROFILE_CONTROL_POINT_FOCUSED_COLOR);
 }
 
 void lcPreferences::SaveDefaults()
@@ -121,6 +131,12 @@ void lcPreferences::SaveDefaults()
 	lcSetProfileFloat(LC_PROFILE_PART_EDGE_CONTRAST, mPartEdgeContrast);
 	lcSetProfileFloat(LC_PROFILE_PART_COLOR_VALUE_LD_INDEX, mPartColorValueLDIndex);
 	lcSetProfileInt(LC_PROFILE_AUTOMATE_EDGE_COLOR, mAutomateEdgeColor);
+	lcSetProfileUInt(LC_PROFILE_OBJECT_SELECTED_COLOR, mObjectSelectedColor);
+	lcSetProfileUInt(LC_PROFILE_OBJECT_FOCUSED_COLOR, mObjectFocusedColor);
+	lcSetProfileUInt(LC_PROFILE_CAMERA_COLOR, mCameraColor);
+	lcSetProfileUInt(LC_PROFILE_LIGHT_COLOR, mLightColor);
+	lcSetProfileUInt(LC_PROFILE_CONTROL_POINT_COLOR, mControlPointColor);
+	lcSetProfileUInt(LC_PROFILE_CONTROL_POINT_FOCUSED_COLOR, mControlPointFocusedColor);
 }
 
 void lcPreferences::SetInterfaceColors(lcColorTheme ColorTheme)
@@ -338,20 +354,6 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 
 	lcCommandLineOptions Options;
 
-	Options.ParseOK = true;
-	Options.Exit = false;
-	Options.SaveImage = false;
-	Options.SaveWavefront = false;
-	Options.Save3DS = false;
-	Options.SaveCOLLADA = false;
-	Options.SaveHTML = false;
-	Options.SetCameraAngles = false;
-	Options.SetCameraPosition = false;
-	Options.Orthographic = false;
-	Options.SetFoV = false;
-	Options.SetZPlanes = false;
-	Options.SetFadeStepsColor = false;
-	Options.SetHighlightColor = false;
 	Options.FadeSteps = Preferences.mFadeSteps;
 	Options.ImageHighlight = Preferences.mHighlightNewParts;
 	Options.ImageWidth = lcGetProfileInt(LC_PROFILE_IMAGE_WIDTH);
@@ -552,7 +554,7 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 			QString LibPath;
 
 			if (ParseString(LibPath, true))
-				Options.LibraryPaths += qMakePair<QString, bool>(LibPath, false);
+				Options.LibraryPaths += QPair<QString, bool>(LibPath, false);
 		}
 		else if (Option == QLatin1String("-i") || Option == QLatin1String("--image"))
 		{
@@ -772,6 +774,11 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 			Options.SaveCOLLADA = true;
 			ParseString(Options.SaveCOLLADAName, false);
 		}
+		else if (Option == QLatin1String("-csv") || Option == QLatin1String("--export-csv"))
+		{
+			Options.SaveCSV = true;
+			ParseString(Options.SaveCSVName, false);
+		}
 		else if (Option == QLatin1String("-html") || Option == QLatin1String("--export-html"))
 		{
 			Options.SaveHTML = true;
@@ -814,7 +821,7 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 			Options.StdOut += tr("  --no-highlight: Do not highlight parts in the steps they appear.\n");
 			Options.StdOut += tr("  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).\n");
 			Options.StdOut += tr("  --shading <wireframe|flat|default|full>: Select shading mode for rendering.\n");
-			Options.StdOut += tr("  --line-width <width>: Set the with of the edge lines.\n");
+			Options.StdOut += tr("  --line-width <width>: Set the width of the edge lines.\n");
 			Options.StdOut += tr("  --aa-samples <count>: AntiAliasing sample size (1, 2, 4, or 8).\n");
 			Options.StdOut += tr("  -scc, --stud-cylinder-color <#AARRGGBB>: High contrast stud cylinder color.\n");
 			Options.StdOut += tr("  -ec, --edge-color <#AARRGGBB>: High contrast edge color.\n");
@@ -826,6 +833,7 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 			Options.StdOut += tr("  -obj, --export-wavefront <outfile.obj>: Export the model to Wavefront OBJ format.\n");
 			Options.StdOut += tr("  -3ds, --export-3ds <outfile.3ds>: Export the model to 3D Studio 3DS format.\n");
 			Options.StdOut += tr("  -dae, --export-collada <outfile.dae>: Export the model to COLLADA DAE format.\n");
+			Options.StdOut += tr("  -csv, --export-csv <outfile.csv>: Export the list of parts used in csv format.\n");
 			Options.StdOut += tr("  -html, --export-html <folder>: Create an HTML page for the model.\n");
 			Options.StdOut += tr("  -v, --version: Output version information and exit.\n");
 			Options.StdOut += tr("  -?, --help: Display this help message and exit.\n");
@@ -872,7 +880,7 @@ lcCommandLineOptions lcApplication::ParseCommandLineOptions()
 			Options.StdErr += tr("--camera-position is ignored when --camera-angles is set.\n");
 	}
 
-	const bool SaveAndExit = (Options.SaveImage || Options.SaveWavefront || Options.Save3DS || Options.SaveCOLLADA || Options.SaveHTML);
+	const bool SaveAndExit = (Options.SaveImage || Options.SaveWavefront || Options.Save3DS || Options.SaveCOLLADA || Options.SaveCSV || Options.SaveHTML);
 
 	if (SaveAndExit && Options.ProjectName.isEmpty())
 	{
@@ -913,7 +921,7 @@ lcStartupMode lcApplication::Initialize(const QList<QPair<QString, bool>>& Libra
 		return lcStartupMode::Error;
 	}
 
-	const bool SaveAndExit = (Options.SaveImage || Options.SaveWavefront || Options.Save3DS || Options.SaveCOLLADA || Options.SaveHTML);
+	const bool SaveAndExit = (Options.SaveImage || Options.SaveWavefront || Options.Save3DS || Options.SaveCOLLADA || Options.SaveCSV || Options.SaveHTML);
 
 	if (!SaveAndExit)
 	{
@@ -1175,6 +1183,31 @@ lcStartupMode lcApplication::Initialize(const QList<QPair<QString, bool>>& Libra
 				StdOut << tr("Saved '%1'.\n").arg(FileName);
 		}
 
+		if (Options.SaveCSV)
+		{
+			QString FileName;
+
+			if (!Options.SaveCSVName.isEmpty())
+				FileName = Options.SaveCSVName;
+			else
+				FileName = Options.ProjectName;
+
+			QString Extension = QFileInfo(FileName).suffix().toLower();
+
+			if (Extension.isEmpty())
+			{
+				FileName += ".csv";
+			}
+			else if (Extension != "csv")
+			{
+				FileName = FileName.left(FileName.length() - Extension.length() - 1);
+				FileName += ".csv";
+			}
+
+			if (mProject->ExportCSV(FileName))
+				StdOut << tr("Saved '%1'.\n").arg(FileName);
+		}
+
 		if (Options.SaveHTML)
 		{
 			lcHTMLExportOptions HTMLOptions(mProject);
@@ -1192,6 +1225,10 @@ lcStartupMode lcApplication::Initialize(const QList<QPair<QString, bool>>& Libra
 		gMainWindow->GetPartSelectionWidget()->SetDefaultPart();
 		gMainWindow->UpdateRecentFiles();
 		gMainWindow->show();
+
+#ifdef Q_OS_WIN
+		QWindowsWindowFunctions::setHasBorderInFullScreen(gMainWindow->windowHandle(), true);
+#endif
 	}
 
 	return SaveAndExit ? lcStartupMode::Success : lcStartupMode::ShowWindow;
diff --git a/common/lc_application.h b/common/lc_application.h
index a22f46a..6dd1cf8 100644
--- a/common/lc_application.h
+++ b/common/lc_application.h
@@ -77,6 +77,13 @@ public:
 	bool mAutoLoadMostRecent;
 	bool mRestoreTabLayout;
 	lcColorTheme mColorTheme;
+	quint32 mObjectSelectedColor;
+	quint32 mObjectFocusedColor;
+	quint32 mCameraColor;
+	quint32 mLightColor;
+	quint32 mControlPointColor;
+	quint32 mControlPointFocusedColor;
+
 
 	int mPreviewViewSphereEnabled;
 	int mPreviewViewSphereSize;
@@ -94,23 +101,24 @@ public:
 
 struct lcCommandLineOptions
 {
-	bool ParseOK;
-	bool Exit;
-	bool SaveImage;
-	bool SaveWavefront;
-	bool Save3DS;
-	bool SaveCOLLADA;
-	bool SaveHTML;
-	bool SetCameraAngles;
-	bool SetCameraPosition;
-	bool Orthographic;
-	bool SetFoV;
-	bool SetZPlanes;
-	bool SetFadeStepsColor;
-	bool SetHighlightColor;
-	bool FadeSteps;
-	bool ImageHighlight;
-	bool AutomateEdgeColor;
+	bool ParseOK = true;
+	bool Exit = false;
+	bool SaveImage = false;
+	bool SaveWavefront = false;
+	bool Save3DS = false;
+	bool SaveCOLLADA = false;
+	bool SaveCSV = false;
+	bool SaveHTML = false;
+	bool SetCameraAngles = false;
+	bool SetCameraPosition = false;
+	bool Orthographic = false;
+	bool SetFoV = false;
+	bool SetZPlanes = false;
+	bool SetFadeStepsColor = false;
+	bool SetHighlightColor = false;
+	bool FadeSteps = false;
+	bool ImageHighlight = false;
+	bool AutomateEdgeColor = false;
 	int ImageWidth;
 	int ImageHeight;
 	int AASamples;
@@ -139,6 +147,7 @@ struct lcCommandLineOptions
 	QString SaveWavefrontName;
 	QString Save3DSName;
 	QString SaveCOLLADAName;
+	QString SaveCSVName;
 	QString SaveHTMLName;
 	QList<QPair<QString, bool>> LibraryPaths;
 	QString StdOut;
@@ -160,6 +169,11 @@ public:
 	lcApplication(int& Argc, char** Argv);
 	~lcApplication();
 
+	lcApplication(const lcApplication&) = delete;
+	lcApplication(lcApplication&&) = delete;
+	lcApplication& operator=(const lcApplication&) = delete;
+	lcApplication& operator=(lcApplication&&) = delete;
+
 	void SetProject(Project* Project);
 	static lcCommandLineOptions ParseCommandLineOptions();
 	lcStartupMode Initialize(const QList<QPair<QString, bool>>& LibraryPaths);
diff --git a/common/lc_array.h b/common/lc_array.h
index 2a1b703..d655fed 100644
--- a/common/lc_array.h
+++ b/common/lc_array.h
@@ -154,7 +154,8 @@ public:
 	T& Add()
 	{
 		AllocGrow(1);
-		return mData[mLength++];
+		mData[mLength++] = T();
+		return mData[mLength - 1];
 	}
 
 	T& InsertAt(int Index)
diff --git a/common/lc_colors.cpp b/common/lc_colors.cpp
index a33b257..df61cf9 100644
--- a/common/lc_colors.cpp
+++ b/common/lc_colors.cpp
@@ -10,16 +10,6 @@ lcColorGroup gColorGroups[LC_NUM_COLORGROUPS];
 int gEdgeColor;
 int gDefaultColor;
 
-lcVector4 gInterfaceColors[LC_NUM_INTERFACECOLORS] = // todo: make the colors configurable and include the grid and other hardcoded colors here as well.
-{
-	lcVector4(0.898f, 0.298f, 0.400f, 1.000f), // LC_COLOR_SELECTED
-	lcVector4(0.400f, 0.298f, 0.898f, 1.000f), // LC_COLOR_FOCUSED
-	lcVector4(0.500f, 0.800f, 0.500f, 1.000f), // LC_COLOR_CAMERA
-	lcVector4(0.500f, 0.800f, 0.500f, 1.000f), // LC_COLOR_LIGHT
-	lcVector4(0.500f, 0.800f, 0.500f, 0.500f), // LC_COLOR_CONTROL_POINT
-	lcVector4(0.400f, 0.298f, 0.898f, 0.500f), // LC_COLOR_CONTROL_POINT_FOCUSED
-};
-
 static void GetToken(char*& Ptr, char* Token)
 {
 	while (*Ptr && *Ptr <= 32)
@@ -47,7 +37,7 @@ static void lcAdjustStudStyleColors(std::vector<lcColor>& Colors, lcStudStyle St
 
 	for (lcColor& Color : Colors)
 	{
-		lcVector3 LinearColor = lcSRGBToLinear(lcVector3(Color.Value));
+		const lcVector3 LinearColor = lcSRGBToLinear(lcVector3(Color.Value));
 		const float ValueLuminescence = lcLuminescence(LinearColor);
 
 		if (Preferences.mAutomateEdgeColor)
diff --git a/common/lc_colors.h b/common/lc_colors.h
index f4ec9ec..c85f835 100644
--- a/common/lc_colors.h
+++ b/common/lc_colors.h
@@ -33,18 +33,6 @@ struct lcColorGroup
 	QString Name;
 };
 
-enum lcInterfaceColor
-{
-	LC_COLOR_SELECTED,
-	LC_COLOR_FOCUSED,
-	LC_COLOR_CAMERA,
-	LC_COLOR_LIGHT,
-	LC_COLOR_CONTROL_POINT,
-	LC_COLOR_CONTROL_POINT_FOCUSED,
-	LC_NUM_INTERFACECOLORS
-};
-
-extern lcVector4 gInterfaceColors[LC_NUM_INTERFACECOLORS];
 extern std::vector<lcColor> gColorList;
 extern lcColorGroup gColorGroups[LC_NUM_COLORGROUPS];
 extern int gEdgeColor;
diff --git a/common/lc_commands.cpp b/common/lc_commands.cpp
index 963d911..8fcdc45 100644
--- a/common/lc_commands.cpp
+++ b/common/lc_commands.cpp
@@ -1816,6 +1816,20 @@ const lcCommand gCommands[] =
 		QT_TRANSLATE_NOOP("Status", "Move the selected parts into this step"),
 		""
 	},
+	// LC_TIMELINE_MOVE_SELECTION_BEFORE
+	{
+		"",
+		QT_TRANSLATE_NOOP("Menu", "Move Selection Before"),
+		QT_TRANSLATE_NOOP("Status", "Move the selected parts into a new step before this"),
+		""
+	},
+	// LC_TIMELINE_MOVE_SELECTION_AFTER
+	{
+		"",
+		QT_TRANSLATE_NOOP("Menu", "Move Selection After"),
+		QT_TRANSLATE_NOOP("Status", "Move the selected parts into a new step after this"),
+		""
+	},
 	// LC_TIMELINE_SET_CURRENT
 	{
 		"",
diff --git a/common/lc_commands.h b/common/lc_commands.h
index 31951fe..9dec3ce 100644
--- a/common/lc_commands.h
+++ b/common/lc_commands.h
@@ -277,6 +277,8 @@ enum lcCommandId
 	LC_TIMELINE_INSERT_AFTER,
 	LC_TIMELINE_DELETE,
 	LC_TIMELINE_MOVE_SELECTION,
+	LC_TIMELINE_MOVE_SELECTION_BEFORE,
+	LC_TIMELINE_MOVE_SELECTION_AFTER,
 	LC_TIMELINE_SET_CURRENT,
 	LC_NUM_COMMANDS
 };
diff --git a/common/lc_context.cpp b/common/lc_context.cpp
index 2d0088d..3bca6c2 100644
--- a/common/lc_context.cpp
+++ b/common/lc_context.cpp
@@ -9,6 +9,7 @@
 #include "texfont.h"
 #include "lc_view.h"
 #include "lc_viewsphere.h"
+#include "lc_viewmanipulator.h"
 #include "lc_stringcache.h"
 #include "lc_partselectionwidget.h"
 #include <QOpenGLFunctions_3_2_Core>
@@ -46,9 +47,12 @@ lcContext::lcContext()
 	mPolygonOffset = lcPolygonOffset::None;
 	mDepthWrite = true;
 	mDepthFunction = lcDepthFunction::LessEqual;
+	mDepthTest = true;
+	mColorWrite = true;
+	mColorBlend = false;
 	mCullFace = false;
 	mLineWidth = 1.0f;
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 	mMatrixMode = GL_MODELVIEW;
 	mTextureEnabled = false;
 #endif
@@ -88,12 +92,12 @@ bool lcContext::InitializeRenderer()
 
 	lcInitializeGLExtensions(mOffscreenContext.get());
 
-	// TODO: Find a better place for the grid texture and font
 	gStringCache.Initialize(Context);
 	gTexFont.Initialize(Context);
 
 	Context->CreateResources();
 	lcView::CreateResources(Context);
+	lcViewManipulator::CreateResources(Context);
 	lcViewSphere::CreateResources(Context);
 
 	if (!gSupportsShaderObjects && lcGetPreferences().mShadingMode == lcShadingMode::DefaultLights)
@@ -121,6 +125,7 @@ void lcContext::ShutdownRenderer()
 
 	lcView::DestroyResources(Context);
 	Context->DestroyResources();
+	lcViewManipulator::DestroyResources(Context);
 	lcViewSphere::DestroyResources(Context);
 
 	mGlobalOffscreenContext.reset();
@@ -317,7 +322,7 @@ void lcContext::CreateShaderPrograms()
 		mPrograms[MaterialType].EyePositionLocation = glGetUniformLocation(Program, "EyePosition");
 		mPrograms[MaterialType].HighlightParamsLocation = glGetUniformLocation(Program, "HighlightParams");
 
-		GLint TextureLocation = glGetUniformLocation(Program, "Texture");
+		const GLint TextureLocation = glGetUniformLocation(Program, "Texture");
 
 		if (TextureLocation != -1)
 		{
@@ -378,9 +383,17 @@ void lcContext::SetDefaultState()
 #endif
 
 	glEnable(GL_DEPTH_TEST);
+	mDepthTest = true;
+
 	glDepthFunc(GL_LEQUAL);
 	mDepthFunction = lcDepthFunction::LessEqual;
 
+	mColorWrite = true;
+	glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+
+	mColorBlend = false;
+	glDisable(GL_BLEND);
+
 	if (gSupportsBlendFuncSeparate)
 		glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_ONE);
 	else
@@ -406,7 +419,7 @@ void lcContext::SetDefaultState()
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		glEnableClientState(GL_VERTEX_ARRAY);
 		glDisableClientState(GL_NORMAL_ARRAY);
 		glDisableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -456,7 +469,7 @@ void lcContext::SetDefaultState()
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		glMatrixMode(GL_MODELVIEW);
 		mMatrixMode = GL_MODELVIEW;
 		glShadeModel(GL_FLAT);
@@ -482,7 +495,7 @@ void lcContext::ClearResources()
 {
 	ClearVertexBuffer();
 	ClearIndexBuffer();
-	BindTexture2D(0);
+	ClearTexture2D();
 }
 
 void lcContext::SetMaterial(lcMaterialType MaterialType)
@@ -502,7 +515,7 @@ void lcContext::SetMaterial(lcMaterialType MaterialType)
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		switch (MaterialType)
 		{
 		case lcMaterialType::UnlitTextureModulate:
@@ -603,6 +616,45 @@ void lcContext::SetDepthFunction(lcDepthFunction DepthFunction)
 	mDepthFunction = DepthFunction;
 }
 
+void lcContext::EnableDepthTest(bool Enable)
+{
+	if (Enable == mDepthTest)
+		return;
+
+	if (Enable)
+		glEnable(GL_DEPTH_TEST);
+	else
+		glDisable(GL_DEPTH_TEST);
+
+	mDepthTest = Enable;
+}
+
+void lcContext::EnableColorWrite(bool Enable)
+{
+	if (Enable == mColorWrite)
+		return;
+
+	if (Enable)
+		glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+	else
+		glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+
+	mColorWrite = Enable;
+}
+
+void lcContext::EnableColorBlend(bool Enable)
+{
+	if (Enable == mColorBlend)
+		return;
+
+	if (Enable)
+		glEnable(GL_BLEND);
+	else
+		glDisable(GL_BLEND);
+
+	mColorBlend = Enable;
+}
+
 void lcContext::EnableCullFace(bool Enable)
 {
 	if (Enable == mCullFace)
@@ -625,50 +677,165 @@ void lcContext::SetLineWidth(float LineWidth)
 	mLineWidth = LineWidth;
 }
 
-void lcContext::SetSmoothShading(bool Smooth)
+void lcContext::BindTexture2D(const lcTexture* Texture)
 {
-#ifndef LC_OPENGLES
-	if (gSupportsShaderObjects)
-		glShadeModel(Smooth ? GL_SMOOTH : GL_FLAT);
-#endif
-}
+	GLuint TextureObject = Texture->mTexture;
 
-void lcContext::BindTexture2D(GLuint Texture)
-{
-	if (mTexture2D == Texture)
+	if (mTexture2D == TextureObject)
 		return;
 
-	glBindTexture(GL_TEXTURE_2D, Texture);
-	mTexture2D = Texture;
+	glBindTexture(GL_TEXTURE_2D, TextureObject);
+	mTexture2D = TextureObject;
 }
 
-void lcContext::BindTextureCubeMap(GLuint Texture)
+void lcContext::BindTextureCubeMap(const lcTexture* Texture)
 {
-	if (mTextureCubeMap == Texture)
+	GLuint TextureObject = Texture->mTexture;
+
+	if (mTextureCubeMap == TextureObject)
 		return;
 
-	glBindTexture(GL_TEXTURE_CUBE_MAP, Texture);
-	mTextureCubeMap = Texture;
+	glBindTexture(GL_TEXTURE_CUBE_MAP, TextureObject);
+	mTextureCubeMap = TextureObject;
 }
 
-void lcContext::UnbindTexture2D(GLuint Texture)
+void lcContext::ClearTexture2D()
 {
-	if (mTexture2D != Texture)
+	if (mTexture2D == 0)
 		return;
 
 	glBindTexture(GL_TEXTURE_2D, 0);
 	mTexture2D = 0;
 }
 
-void lcContext::UnbindTextureCubeMap(GLuint Texture)
+void lcContext::ClearTextureCubeMap()
 {
-	if (mTextureCubeMap != Texture)
+	if (mTexture2D == 0)
 		return;
 
 	glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
 	mTextureCubeMap = 0;
 }
 
+void lcContext::UploadTexture(lcTexture* Texture)
+{
+	if (!Texture->mTexture)
+		glGenTextures(1, &Texture->mTexture);
+
+	constexpr int Filters[2][5] =
+	{
+		{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR },
+		{ GL_NEAREST, GL_LINEAR, GL_LINEAR, GL_LINEAR, GL_LINEAR  },
+	};
+
+	const int Flags = Texture->GetFlags();
+	const int FilterFlags = Flags & LC_TEXTURE_FILTER_MASK;
+	const int FilterIndex = FilterFlags >> LC_TEXTURE_FILTER_SHIFT;
+	const int MipIndex = Flags & LC_TEXTURE_MIPMAPS ? 0 : 1;
+
+	unsigned int Faces, Target;
+
+	if ((Flags & LC_TEXTURE_CUBEMAP) == 0)
+	{
+		Faces = 1;
+		Target = GL_TEXTURE_2D;
+		BindTexture2D(Texture);
+	}
+	else
+	{
+		Faces = 6;
+		Target = GL_TEXTURE_CUBE_MAP;
+		BindTextureCubeMap(Texture);
+	}
+
+	glTexParameteri(Target, GL_TEXTURE_WRAP_S, (Flags & LC_TEXTURE_WRAPU) ? GL_REPEAT : GL_CLAMP_TO_EDGE);
+	glTexParameteri(Target, GL_TEXTURE_WRAP_T, (Flags & LC_TEXTURE_WRAPV) ? GL_REPEAT : GL_CLAMP_TO_EDGE);
+	glTexParameteri(Target, GL_TEXTURE_MIN_FILTER, Filters[MipIndex][FilterIndex]);
+	glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, Filters[1][FilterIndex]);
+	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
+
+	if (gSupportsAnisotropic && FilterFlags == LC_TEXTURE_ANISOTROPIC)
+		glTexParameterf(Target, GL_TEXTURE_MAX_ANISOTROPY_EXT, lcMin(4.0f, gMaxAnisotropy));
+
+	int Format;
+	switch (Texture->GetImage(0).mFormat)
+	{
+	default:
+	case lcPixelFormat::Invalid:
+		Format = 0;
+		break;
+	case lcPixelFormat::A8:
+		Format = GL_ALPHA;
+		break;
+	case lcPixelFormat::L8A8:
+		Format = GL_LUMINANCE_ALPHA;
+		break;
+	case lcPixelFormat::R8G8B8:
+		Format = GL_RGB;
+		break;
+	case lcPixelFormat::R8G8B8A8:
+		Format = GL_RGBA;
+		break;
+	}
+
+	int CurrentImage = 0;
+	if (Flags & LC_TEXTURE_CUBEMAP)
+		Target = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
+
+	for (size_t FaceIdx = 0; FaceIdx < Faces; FaceIdx++)
+	{
+		void* Data = Texture->GetImage(CurrentImage).mData;
+		glTexImage2D(Target, 0, Format, Texture->mWidth, Texture->mHeight, 0, Format, GL_UNSIGNED_BYTE, Data);
+
+		if (Flags & LC_TEXTURE_MIPMAPS || FilterFlags >= LC_TEXTURE_BILINEAR)
+		{
+			int Width = Texture->mWidth;
+			int Height = Texture->mHeight;
+			int Components = Texture->GetImage(CurrentImage).GetBPP();
+
+			for (int Level = 1; ((Width != 1) || (Height != 1)); Level++)
+			{
+				int RowStride = Width * Components;
+
+				Width = lcMax(1, Width >> 1);
+				Height = lcMax(1, Height >> 1);
+
+				if (Texture->GetImageCount() == Faces)
+				{
+					GLubyte* Out, * In;
+
+					In = Out = (GLubyte*)Data;
+
+					for (int y = 0; y < Height; y++, In += RowStride)
+						for (int x = 0; x < Width; x++, Out += Components, In += 2 * Components)
+							for (int c = 0; c < Components; c++)
+								Out[c] = (In[c] + In[c + Components] + In[RowStride] + In[c + RowStride + Components]) / 4;
+				}
+				else
+					Data = Texture->GetImage(++CurrentImage).mData;
+
+				glTexImage2D(Target, Level, Format, Width, Height, 0, Format, GL_UNSIGNED_BYTE, Data);
+			}
+
+			if (Texture->GetImageCount() == Faces)
+				CurrentImage++;
+		}
+		else
+			CurrentImage++;
+
+		Target++;
+	}
+
+	if ((Flags & LC_TEXTURE_CUBEMAP) == 0)
+		ClearTexture2D();
+	else
+		ClearTextureCubeMap();
+}
+
 void lcContext::SetColor(float Red, float Green, float Blue, float Alpha)
 {
 	SetColor(lcVector4(Red, Green, Blue, Alpha));
@@ -679,9 +846,9 @@ void lcContext::SetColorIndex(int ColorIndex)
 	SetColor(gColorList[ColorIndex].Value);
 }
 
-void lcContext::SetColorIndexTinted(int ColorIndex, lcInterfaceColor InterfaceColor, float Weight)
+void lcContext::SetColorIndexTinted(int ColorIndex, const lcVector4& Tint, float Weight)
 {
-	const lcVector3 Color(gColorList[ColorIndex].Value * Weight + gInterfaceColors[InterfaceColor] * (1.0f - Weight));
+	const lcVector3 Color(gColorList[ColorIndex].Value * Weight + Tint * (1.0f - Weight));
 	SetColor(lcVector4(Color, gColorList[ColorIndex].Value.w));
 }
 
@@ -700,11 +867,6 @@ void lcContext::SetEdgeColorIndexTinted(int ColorIndex, const lcVector4& Tint)
 	SetColor(gColorList[ColorIndex].Edge * Tint);
 }
 
-void lcContext::SetInterfaceColor(lcInterfaceColor InterfaceColor)
-{
-	SetColor(gInterfaceColors[InterfaceColor]);
-}
-
 lcVertexBuffer lcContext::CreateVertexBuffer(int Size, const void* Data)
 {
 	lcVertexBuffer VertexBuffer;
@@ -821,7 +983,7 @@ void lcContext::ClearVertexBuffer()
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		if (mNormalEnabled)
 			glDisableClientState(GL_NORMAL_ARRAY);
 
@@ -928,6 +1090,7 @@ void lcContext::SetVertexFormatPosition(int PositionSize)
 	}
 	else
 	{
+#if LC_FIXED_FUNCTION
 		if (mVertexBufferOffset != mVertexBufferPointer)
 		{
 			glVertexPointer(PositionSize, GL_FLOAT, VertexSize, VertexBufferPointer);
@@ -951,12 +1114,13 @@ void lcContext::SetVertexFormatPosition(int PositionSize)
 			glDisableClientState(GL_COLOR_ARRAY);
 			mColorEnabled = false;
 		}
+#endif
 	}
 }
 
 void lcContext::SetVertexFormatConditional(int BufferOffset)
 {
-	const int VertexSize = 12 * sizeof(float);
+	constexpr int VertexSize = 12 * sizeof(float);
 	const char* VertexBufferPointer = mVertexBufferPointer + BufferOffset;
 
 	if (gSupportsShaderObjects)
@@ -1016,7 +1180,7 @@ void lcContext::SetVertexFormat(int BufferOffset, int PositionSize, int NormalSi
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		if (mVertexBufferOffset != VertexBufferPointer)
 		{
 			glVertexPointer(PositionSize, GL_FLOAT, VertexSize, VertexBufferPointer);
@@ -1218,7 +1382,7 @@ void lcContext::FlushState()
 	}
 	else
 	{
-#ifndef LC_OPENGLES
+#if LC_FIXED_FUNCTION
 		glColor4fv(mColor);
 
 		if (mWorldMatrixDirty || mViewMatrixDirty)
diff --git a/common/lc_context.h b/common/lc_context.h
index 3f19f12..ef8e115 100644
--- a/common/lc_context.h
+++ b/common/lc_context.h
@@ -113,7 +113,9 @@ public:
 	~lcContext();
 
 	lcContext(const lcContext&) = delete;
+	lcContext(lcContext&&) = delete;
 	lcContext& operator=(const lcContext&) = delete;
+	lcContext& operator=(lcContext&&) = delete;
 
 	static bool InitializeRenderer();
 	static void ShutdownRenderer();
@@ -163,13 +165,17 @@ public:
 	void SetPolygonOffset(lcPolygonOffset PolygonOffset);
 	void SetDepthWrite(bool Enable);
 	void SetDepthFunction(lcDepthFunction DepthFunction);
+	void EnableDepthTest(bool Enable);
+	void EnableColorWrite(bool Enable);
+	void EnableColorBlend(bool Enable);
 	void EnableCullFace(bool Enable);
 	void SetLineWidth(float LineWidth);
-	void SetSmoothShading(bool Smooth);
-	void BindTexture2D(GLuint Texture);
-	void BindTextureCubeMap(GLuint Texture);
-	void UnbindTexture2D(GLuint Texture);
-	void UnbindTextureCubeMap(GLuint Texture);
+
+	void BindTexture2D(const lcTexture* Texture);
+	void BindTextureCubeMap(const lcTexture* Texture);
+	void ClearTexture2D();
+	void ClearTextureCubeMap();
+	void UploadTexture(lcTexture* Texture);
 
 	void SetColor(const lcVector4& Color)
 	{
@@ -188,11 +194,10 @@ public:
 
 	void SetColor(float Red, float Green, float Blue, float Alpha);
 	void SetColorIndex(int ColorIndex);
-	void SetColorIndexTinted(int ColorIndex, lcInterfaceColor InterfaceColor, float Weight);
+	void SetColorIndexTinted(int ColorIndex, const lcVector4& Tint, float Weight);
 	void SetColorIndexTinted(int ColorIndex, const lcVector4& Tint);
 	void SetEdgeColorIndex(int ColorIndex);
 	void SetEdgeColorIndexTinted(int ColorIndex, const lcVector4& Tint);
-	void SetInterfaceColor(lcInterfaceColor InterfaceColor);
 
 	lcVertexBuffer CreateVertexBuffer(int Size, const void* Data);
 	void DestroyVertexBuffer(lcVertexBuffer& VertexBuffer);
@@ -247,6 +252,9 @@ protected:
 	lcPolygonOffset mPolygonOffset;
 	bool mDepthWrite;
 	lcDepthFunction mDepthFunction;
+	bool mDepthTest;
+	bool mColorWrite;
+	bool mColorBlend;
 	bool mCullFace;
 	float mLineWidth;
 	int mMatrixMode;
diff --git a/common/lc_edgecolordialog.cpp b/common/lc_edgecolordialog.cpp
index af4d730..77310b4 100644
--- a/common/lc_edgecolordialog.cpp
+++ b/common/lc_edgecolordialog.cpp
@@ -45,14 +45,14 @@ lcAutomateEdgeColorDialog::lcAutomateEdgeColorDialog(QWidget* Parent, bool ShowH
 		EdgeSettingsLayout->addWidget(ResetPartEdgeContrastButton,0,3);
 	}
 
-	QLabel* PartColorValueLDIndexLabel = new QLabel(tr(ShowHighContrastDialog ? "Light/Dark Value:" : "Saturation:"), this);
+	QLabel* PartColorValueLDIndexLabel = new QLabel(ShowHighContrastDialog ? tr("Light/Dark Value:") : tr("Saturation:"), this);
 	PartColorValueLDIndex = new QLabel(this);
 	PartColorValueLDIndexSlider = new QSlider(Qt::Horizontal, this);
 	PartColorValueLDIndexSlider->setRange(0, 100);
 	PartColorValueLDIndexSlider->setValue(mPartColorValueLDIndex * 100);
-	PartColorValueLDIndexSlider->setToolTip(tr(ShowHighContrastDialog ?
-		"Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39." :
-		"Set to specify amount of edge color tint or shade from the saturation adjusted part color"));
+	PartColorValueLDIndexSlider->setToolTip(ShowHighContrastDialog ?
+		tr("Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.") :
+		tr("Set to specify amount of edge color tint or shade from the saturation adjusted part color"));
 	connect(PartColorValueLDIndexSlider, SIGNAL(valueChanged(int)), this, SLOT(SliderValueChanged(int)));
 	emit PartColorValueLDIndexSlider->valueChanged(PartColorValueLDIndexSlider->value());
 
@@ -176,7 +176,7 @@ void lcAutomateEdgeColorDialog::ColorButtonClicked()
 		if (lcGetPreferences().mAutomateEdgeColor)
 		{
 			QMessageBox msgBox;
-			msgBox.setText("Automate edge color appears to be enabled.<br>Black parts edge color will not be accessible.<br>Do you want to continue ?");
+			msgBox.setText(tr("Automate edge color appears to be enabled.<br>Black parts edge color will not be accessible.<br>Do you want to continue?"));
 			if (msgBox.exec() != QMessageBox::Accepted)
 				return;
 		}
@@ -188,7 +188,7 @@ void lcAutomateEdgeColorDialog::ColorButtonClicked()
 		if (lcGetPreferences().mAutomateEdgeColor)
 		{
 			QMessageBox msgBox;
-			msgBox.setText("Automate edge color appears to be enabled.<br>Dark parts edge color will not be accessible.<br>Do you want to continue ?");
+			msgBox.setText(tr("Automate edge color appears to be enabled.<br>Dark parts edge color will not be accessible.<br>Do you want to continue?"));
 			if (msgBox.exec() != QMessageBox::Accepted)
 				return;
 		}
diff --git a/common/lc_global.h b/common/lc_global.h
index 007b511..2452f10 100644
--- a/common/lc_global.h
+++ b/common/lc_global.h
@@ -4,12 +4,14 @@
 #ifdef __cplusplus
 
 #include <QtGlobal>
-#include <QWidget>
+#include <QtWidgets>
+#include <QtConcurrent>
 #include <QtOpenGL>
-#include <QGLWidget>
 #include <QtGui>
+#include <QWidget>
+#include <QOpenGLWidget>
 #include <QPrinter>
-#include <QtConcurrent>
+#include <QPrintDialog>
 #include <map>
 #include <vector>
 #include <array>
@@ -21,6 +23,7 @@
 #pragma warning(default : 4062) // enumerator 'identifier' in switch of enum 'enumeration' is not handled
 #pragma warning(default : 4388) // 'token' : signed/unsigned mismatch
 #pragma warning(default : 4389) // 'equality-operator' : signed/unsigned mismatch
+#pragma warning(default : 5038) // data member 'A::y' will be initialized after data member 'A::x'
 #endif
 
 #ifndef Q_FALLTHROUGH
@@ -36,8 +39,14 @@
 #define LC_ARRAY_SIZE_CHECK(a,s) static_assert(LC_ARRAY_COUNT(a) == static_cast<int>(s), QT_STRINGIFY(a) " size mismatch.")
 
 #if !defined(EGL_VERSION_1_0) && !defined(GL_ES_VERSION_2_0) && !defined(GL_ES_VERSION_3_0) && !defined(QT_OPENGL_ES)
+#ifdef Q_OS_MACOS
+#define LC_FIXED_FUNCTION 0
+#else
+#define LC_FIXED_FUNCTION 1
+#endif
 #else
 #define LC_OPENGLES 1
+#define LC_FIXED_FUNCTION 0
 #endif
 
 // Old defines and declarations.
@@ -54,10 +63,10 @@ char* strupr(char* string);
 #endif
 
 // Version number.
-#define LC_VERSION_MAJOR 21
-#define LC_VERSION_MINOR 06
+#define LC_VERSION_MAJOR 23
+#define LC_VERSION_MINOR 03
 #define LC_VERSION_PATCH 0
-#define LC_VERSION_TEXT "21.06"
+#define LC_VERSION_TEXT "23.03"
 
 // Forward declarations.
 class Project;
@@ -95,10 +104,14 @@ class lcMesh;
 struct lcMeshSection;
 struct lcRenderMesh;
 struct lcObjectSection;
+struct lcPieceInfoRayTest;
 class lcTexture;
 class lcScene;
+class lcViewManipulator;
 class lcViewSphere;
 enum class lcRenderMeshState : int;
+enum class lcTrackTool;
+enum class lcTrackButton;
 
 class lcFile;
 class lcMemFile;
diff --git a/common/lc_instructions.cpp b/common/lc_instructions.cpp
index 8596ffa..dacd33d 100644
--- a/common/lc_instructions.cpp
+++ b/common/lc_instructions.cpp
@@ -83,7 +83,7 @@ bool lcInstructions::GetBoolProperty(lcInstructionsPropertyType Type, lcModel* M
 QColor lcInstructions::GetColorProperty(lcInstructionsPropertyType Type, lcModel* Model, lcStep Step) const
 {
 	QVariant Value = GetProperty(Type, Model, Step);
-	return lcRGBAFromQColor(Value.toUInt());
+	return lcQColorFromRGBA(Value.toUInt());
 }
 
 QFont lcInstructions::GetFontProperty(lcInstructionsPropertyType Type, lcModel* Model, lcStep Step) const
@@ -186,7 +186,7 @@ void lcInstructions::AddDefaultPages(lcModel* Model, std::vector<const lcModel*>
 			{
 				lcModel* SubModel = Piece->mPieceInfo->GetModel();
 
-				if (std::find(AddedModels.begin(), AddedModels.end(), SubModel) != AddedModels.end())
+				if (std::find(AddedModels.begin(), AddedModels.end(), SubModel) == AddedModels.end())
 					StepSubModels.insert(SubModel);
 			}
 		}
@@ -250,4 +250,7 @@ void lcInstructions::AddDefaultPages(lcModel* Model, std::vector<const lcModel*>
 			}
 		}
 	}
+
+	if (!Page.Steps.empty())
+		mPages.emplace_back(std::move(Page));
 }
diff --git a/common/lc_instructionsdialog.cpp b/common/lc_instructionsdialog.cpp
index 068f775..45b5488 100644
--- a/common/lc_instructionsdialog.cpp
+++ b/common/lc_instructionsdialog.cpp
@@ -133,17 +133,15 @@ void lcInstructionsPageWidget::SelectionChanged()
 	mPropertiesWidget->SelectionChanged(Focus);
 }
 
-void lcInstructionsPageWidget::SetCurrentPage(const lcInstructionsPage* Page)
+static void lcUpdateInstructionsPageScene(lcInstructions* Instructions, const lcInstructionsPage* Page, QGraphicsScene* Scene)
 {
-	QGraphicsScene* Scene = scene();
-
 	Scene->clear();
 
 	if (!Page)
 		return;
 
-	const lcInstructionsPageSetup& PageSetup = mInstructions->mPageSetup;
-//	Scene->setSceneRect(0, 0, mInstructions->mPageSetup.Width, mInstructions->mPageSetup.Height);
+	const lcInstructionsPageSetup& PageSetup = Instructions->mPageSetup;
+	//	Scene->setSceneRect(0, 0, mInstructions->mPageSetup.Width, mInstructions->mPageSetup.Height);
 
 	QGraphicsRectItem* PageItem = Scene->addRect(QRectF(0.0f, 0.0f, PageSetup.Width, PageSetup.Height), QPen(Qt::black), QBrush(Qt::white));
 	PageItem->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
@@ -152,20 +150,27 @@ void lcInstructionsPageWidget::SetCurrentPage(const lcInstructionsPage* Page)
 
 	for (const lcInstructionsStep& Step : Page->Steps)
 	{
-		lcInstructionsStepImageItem* StepImageItem = new lcInstructionsStepImageItem(PageItem, mInstructions, Step.Model, Step.Step);
+		lcInstructionsStepImageItem* StepImageItem = new lcInstructionsStepImageItem(PageItem, Instructions, Step.Model, Step.Step);
 		StepImageItem->setPos(MarginsRect.left() + MarginsRect.width() * Step.Rect.x(), MarginsRect.top() + MarginsRect.height() * Step.Rect.y());
 		StepImageItem->SetImageSize(MarginsRect.width() * Step.Rect.width(), MarginsRect.height() * Step.Rect.height());
 		StepImageItem->Update();
 
-		lcInstructionsStepNumberItem* StepNumberItem = new lcInstructionsStepNumberItem(StepImageItem, mInstructions, Step.Model, Step.Step);
+		lcInstructionsStepNumberItem* StepNumberItem = new lcInstructionsStepNumberItem(StepImageItem, Instructions, Step.Model, Step.Step);
 		StepNumberItem->Update();
 
-		lcInstructionsPartsListItem* PartsImageItem = new lcInstructionsPartsListItem(StepImageItem, mInstructions, Step.Model, Step.Step);
+		lcInstructionsPartsListItem* PartsImageItem = new lcInstructionsPartsListItem(StepImageItem, Instructions, Step.Model, Step.Step);
 		PartsImageItem->setPos(StepNumberItem->boundingRect().topRight());
 		PartsImageItem->Update();
 	}
 }
 
+void lcInstructionsPageWidget::SetCurrentPage(const lcInstructionsPage* Page)
+{
+	QGraphicsScene* Scene = scene();
+
+	lcUpdateInstructionsPageScene(mInstructions, Page, Scene);
+}
+
 lcInstructionsPageListWidget::lcInstructionsPageListWidget(QWidget* Parent, lcInstructions* Instructions)
 	: QDockWidget(Parent), mInstructions(Instructions)
 {
@@ -181,7 +186,7 @@ lcInstructionsPageListWidget::lcInstructionsPageListWidget(QWidget* Parent, lcIn
 	Layout->addLayout(ButtonsLayout);
 
 	QToolButton* PageSetupButton = new QToolButton();
-	PageSetupButton->setText("Page Setup");
+	PageSetupButton->setText(tr("Page Setup"));
 	ButtonsLayout->addWidget(PageSetupButton);
 
 	connect(PageSetupButton, SIGNAL(clicked()), this, SLOT(ShowPageSetupDialog()));
@@ -544,9 +549,12 @@ lcInstructionsDialog::lcInstructionsDialog(QWidget* Parent, Project* Project)
 	mPageSettingsToolBar->setFloatable(false);
 	mPageSettingsToolBar->setMovable(false);
 
-	mVerticalPageAction = mPageSettingsToolBar->addAction("Vertical");
+	mPrintAction = mPageSettingsToolBar->addAction(tr("Print"));
+
+	mVerticalPageAction = mPageSettingsToolBar->addAction(tr("Vertical"));
 	mVerticalPageAction->setCheckable(true);
-	mHorizontalPageAction = mPageSettingsToolBar->addAction("Horizontal");
+
+	mHorizontalPageAction = mPageSettingsToolBar->addAction(tr("Horizontal"));
 	mHorizontalPageAction->setCheckable(true);
 
 	mRowsSpinBox = new QSpinBox(mPageSettingsToolBar);
@@ -560,17 +568,114 @@ lcInstructionsDialog::lcInstructionsDialog(QWidget* Parent, Project* Project)
 	PageDirectionGroup->addAction(mHorizontalPageAction);
 
 	for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++)
-		mPageListWidget->mThumbnailsWidget->addItem(QString("Page %1").arg(PageNumber + 1));
+		mPageListWidget->mThumbnailsWidget->addItem(QString(tr("Page %1")).arg(PageNumber + 1));
 
 	connect(mPageListWidget->mThumbnailsWidget, SIGNAL(currentRowChanged(int)), this, SLOT(CurrentThumbnailChanged(int)));
 	mPageListWidget->mThumbnailsWidget->setCurrentRow(0);
 
+	connect(mPrintAction, &QAction::triggered, this, &lcInstructionsDialog::ShowPrintDialog);
 	connect(mVerticalPageAction, SIGNAL(toggled(bool)), this, SLOT(UpdatePageSettings()));
 	connect(mHorizontalPageAction, SIGNAL(toggled(bool)), this, SLOT(UpdatePageSettings()));
 	connect(mRowsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(UpdatePageSettings()));
 	connect(mColumnsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(UpdatePageSettings()));
 }
 
+void lcInstructionsDialog::ShowPrintDialog()
+{
+#ifndef QT_NO_PRINTER
+	int PageCount = static_cast<int>(mInstructions->mPages.size());
+
+	QPrinter Printer(QPrinter::HighResolution);
+	Printer.setFromTo(1, PageCount + 1);
+
+	QPrintDialog PrintDialog(&Printer, this);
+
+	if (PrintDialog.exec() == QDialog::Accepted)
+		Print(&Printer);
+#endif
+}
+
+void lcInstructionsDialog::Print(QPrinter* Printer)
+{
+#ifndef QT_NO_PRINTER
+	int DocCopies;
+	int PageCopies;
+
+	const int PageCount = static_cast<int>(mInstructions->mPages.size());
+
+	if (Printer->collateCopies())
+	{
+		DocCopies = 1;
+		PageCopies = Printer->supportsMultipleCopies() ? 1 : Printer->copyCount();
+	}
+	else
+	{
+		DocCopies = Printer->supportsMultipleCopies() ? 1 : Printer->copyCount();
+		PageCopies = 1;
+	}
+
+	int FromPage = Printer->fromPage();
+	int ToPage = Printer->toPage();
+	bool Ascending = true;
+
+	if (FromPage == 0 && ToPage == 0)
+	{
+		FromPage = 1;
+		ToPage = PageCount;
+	}
+
+	FromPage = qMax(1, FromPage);
+	ToPage = qMin(PageCount, ToPage);
+
+	if (ToPage < FromPage)
+		return;
+
+	if (Printer->pageOrder() == QPrinter::LastPageFirst)
+	{
+		std::swap(FromPage, ToPage);
+		Ascending = false;
+	}
+
+	QGraphicsScene* Scene = new QGraphicsScene();
+	QPainter Painter(Printer);
+	bool FirstPage = true;
+
+	for (int DocCopy = 0; DocCopy < DocCopies; DocCopy++)
+	{
+		int Page = FromPage;
+
+		for (;;)
+		{
+			for (int PageCopy = 0; PageCopy < PageCopies; PageCopy++)
+			{
+				if (Printer->printerState() == QPrinter::Aborted || Printer->printerState() == QPrinter::Error)
+					return;
+
+				if (!FirstPage)
+					Printer->newPage();
+				else
+					FirstPage = false;
+
+				const lcInstructionsPage* InstructionsPage = &mInstructions->mPages[Page - 1];
+				lcUpdateInstructionsPageScene(mInstructions, InstructionsPage, Scene);
+
+				Scene->render(&Painter);
+			}
+
+			if (Page == ToPage)
+				break;
+
+			if (Ascending)
+				Page++;
+			else
+				Page--;
+		}
+	}
+
+	delete Scene;
+#endif
+}
+
 void lcInstructionsDialog::UpdatePageSettings()
 {
 	lcInstructionsPageSettings PageSettings;
diff --git a/common/lc_instructionsdialog.h b/common/lc_instructionsdialog.h
index 6fbdb10..bc53cd3 100644
--- a/common/lc_instructionsdialog.h
+++ b/common/lc_instructionsdialog.h
@@ -161,10 +161,13 @@ public:
 	lcInstructionsDialog(QWidget* Parent, Project* Project);
 
 protected slots:
+	void ShowPrintDialog();
 	void UpdatePageSettings();
 	void CurrentThumbnailChanged(int Index);
 
 protected:
+	void Print(QPrinter* Printer);
+
 	Project* mProject = nullptr;
 
 	int mCurrentPageNumber;
@@ -175,6 +178,7 @@ protected:
 	lcInstructionsPropertiesWidget* mPropertiesWidget = nullptr;
 
 	QToolBar* mPageSettingsToolBar = nullptr;
+	QAction* mPrintAction = nullptr;
 	QAction* mVerticalPageAction = nullptr;
 	QAction* mHorizontalPageAction = nullptr;
 	QSpinBox* mRowsSpinBox = nullptr;
diff --git a/common/lc_library.cpp b/common/lc_library.cpp
index dcdec69..5484a6c 100644
--- a/common/lc_library.cpp
+++ b/common/lc_library.cpp
@@ -29,7 +29,9 @@
 #define LC_LIBRARY_CACHE_DIRECTORY 0x0002
 
 lcPiecesLibrary::lcPiecesLibrary()
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
 	: mLoadMutex(QMutex::Recursive)
+#endif
 {
 	QStringList cachePathList = QStandardPaths::standardLocations(QStandardPaths::CacheLocation);
 	mCachePath = cachePathList.first();
@@ -162,7 +164,7 @@ PieceInfo* lcPiecesLibrary::FindPiece(const char* PieceName, Project* CurrentPro
 	{
 		PieceInfo* Info = PieceIt->second;
 
-		if ((!CurrentProject || !Info->IsModel() || CurrentProject->GetModels().FindIndex(Info->GetModel()) != -1) && (!ProjectPath.isEmpty() || !Info->IsProject()))
+		if ((!CurrentProject || !Info->IsModel() || CurrentProject->GetModels().FindIndex(Info->GetModel()) != -1) && (!ProjectPath.isEmpty() || !Info->IsProject() || Info->IsProjectPiece()))
 			return Info;
 	}
 
@@ -828,7 +830,7 @@ void lcPiecesLibrary::ReadDirectoryDescriptions(const QFileInfoList (&FileLists)
 			if (NewIndexFile.WriteBuffer(Info->m_strDescription, strlen(Info->m_strDescription) + 1) == 0)
 				return;
 
-			NewIndexFile.WriteU8(Info->mFolderType);
+			NewIndexFile.WriteU8(static_cast<quint8>(Info->mFolderType));
 
 			quint64 FileTime = FileLists[Info->mFolderType][Info->mFolderIndex].lastModified().toMSecsSinceEpoch();
 
@@ -869,7 +871,11 @@ bool lcPiecesLibrary::ReadArchiveCacheFile(const QString& FileName, lcMemFile& C
 	CacheFile.SetLength(UncompressedSize);
 	CacheFile.Seek(0, SEEK_SET);
 
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+	constexpr qsizetype CHUNK = 16384;
+#else
 	constexpr int CHUNK = 16384;
+#endif
 	int ret;
 	unsigned have;
 	z_stream strm;
@@ -1166,7 +1172,7 @@ void lcPiecesLibrary::LoadPieceInfo(PieceInfo* Info, bool Wait, bool Priority)
 			Info->Load();
 		else
 		{
-			if (Info->mState == LC_PIECEINFO_UNLOADED)
+			if (Info->mState == lcPieceInfoState::Unloaded)
 			{
 				Info->Load();
 				emit PartLoaded(Info);
@@ -1175,7 +1181,7 @@ void lcPiecesLibrary::LoadPieceInfo(PieceInfo* Info, bool Wait, bool Priority)
 			{
 				LoadLock.unlock();
 
-				while (Info->mState != LC_PIECEINFO_LOADED)
+				while (Info->mState != lcPieceInfoState::Loaded)
 					lcSleeper::msleep(10);
 			}
 		}
@@ -1212,9 +1218,9 @@ void lcPiecesLibrary::LoadQueuedPiece()
 	{
 		Info = mLoadQueue.takeFirst();
 
-		if (Info->mState == LC_PIECEINFO_UNLOADED && Info->GetRefCount() > 0)
+		if (Info->mState == lcPieceInfoState::Unloaded && Info->GetRefCount() > 0)
 		{
-			Info->mState = LC_PIECEINFO_LOADING;
+			Info->mState = lcPieceInfoState::Loading;
 			break;
 		}
 
@@ -1496,7 +1502,7 @@ void lcPiecesLibrary::UnloadUnusedParts()
 	for (const auto& PieceIt : mPieces)
 	{
 		PieceInfo* Info = PieceIt.second;
-		if (Info->GetRefCount() == 0 && Info->mState != LC_PIECEINFO_UNLOADED)
+		if (Info->GetRefCount() == 0 && Info->mState != lcPieceInfoState::Unloaded)
 			ReleasePieceInfo(Info);
 	}
 }
@@ -1577,7 +1583,7 @@ void lcPiecesLibrary::SetStudStyle(lcStudStyle StudStyle, bool Reload)
 		{
 			PieceInfo* Info = PieceIt.second;
 
-			if (Info->mState == LC_PIECEINFO_LOADED && Info->GetMesh() && Info->GetMesh()->mFlags & lcMeshFlag::HasStyleStud)
+			if (Info->mState == lcPieceInfoState::Loaded && Info->GetMesh() && Info->GetMesh()->mFlags & lcMeshFlag::HasStyleStud)
 			{
 				Info->Unload();
 				mLoadQueue.append(Info);
diff --git a/common/lc_library.h b/common/lc_library.h
index 9a0817e..83f5114 100644
--- a/common/lc_library.h
+++ b/common/lc_library.h
@@ -23,7 +23,7 @@ enum class lcStudStyle
 	Count
 };
 
-inline bool lcIsHighContrast(lcStudStyle StudStyle)
+constexpr bool lcIsHighContrast(lcStudStyle StudStyle)
 {
 	return StudStyle == lcStudStyle::HighContrast || StudStyle == lcStudStyle::HighContrastLogo;
 }
@@ -98,12 +98,19 @@ enum class lcLibrarySourceType
 
 struct lcLibrarySource
 {
+	lcLibrarySource() = default;
+
 	~lcLibrarySource()
 	{
 		for (const auto& PrimitiveIt : Primitives)
 			delete PrimitiveIt.second;
 	}
 
+	lcLibrarySource(const lcLibrarySource&) = delete;
+	lcLibrarySource(lcLibrarySource&&) = delete;
+	lcLibrarySource& operator=(const lcLibrarySource&) = delete;
+	lcLibrarySource& operator=(lcLibrarySource&&) = delete;
+
 	lcLibrarySourceType Type;
 	std::map<std::string, lcLibraryPrimitive*> Primitives;
 };
@@ -117,7 +124,9 @@ public:
 	~lcPiecesLibrary();
 
 	lcPiecesLibrary(const lcPiecesLibrary&) = delete;
+	lcPiecesLibrary(lcPiecesLibrary&&) = delete;
 	lcPiecesLibrary& operator=(const lcPiecesLibrary&) = delete;
+	lcPiecesLibrary& operator=(lcPiecesLibrary&&) = delete;
 
 	bool Load(const QString& LibraryPath, bool ShowProgress);
 	void LoadColors();
@@ -215,7 +224,11 @@ protected:
 
 	std::vector<std::unique_ptr<lcLibrarySource>> mSources;
 
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+	QRecursiveMutex mLoadMutex;
+#else
 	QMutex mLoadMutex;
+#endif
 	QList<QFuture<void>> mLoadFutures;
 	QList<PieceInfo*> mLoadQueue;
 
diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp
index d34e127..429c1ff 100644
--- a/common/lc_mainwindow.cpp
+++ b/common/lc_mainwindow.cpp
@@ -1971,6 +1971,8 @@ void lcMainWindow::UpdateSelectedObjects(bool SelectionChanged)
 		mActions[LC_PIECE_SHOW_EARLIER]->setEnabled(Flags & LC_SEL_PIECE); // FIXME: disable if current step is 1
 		mActions[LC_PIECE_SHOW_LATER]->setEnabled(Flags & LC_SEL_PIECE);
 		mActions[LC_TIMELINE_MOVE_SELECTION]->setEnabled(Flags & LC_SEL_PIECE);
+		mActions[LC_TIMELINE_MOVE_SELECTION_BEFORE]->setEnabled(Flags & LC_SEL_PIECE);
+		mActions[LC_TIMELINE_MOVE_SELECTION_AFTER]->setEnabled(Flags & LC_SEL_PIECE);
 
 		mActions[LC_PIECE_EDIT_END_SUBMODEL]->setEnabled(GetCurrentTabModel() != ActiveModel);
 	}
@@ -2590,7 +2592,7 @@ void lcMainWindow::HandleCommand(lcCommandId CommandId)
 		break;
 
 	case LC_FILE_EXPORT_CSV:
-		lcGetActiveProject()->ExportCSV();
+		lcGetActiveProject()->ExportCSV(QString());
 		break;
 
 	case LC_FILE_EXPORT_POVRAY:
@@ -3413,6 +3415,14 @@ void lcMainWindow::HandleCommand(lcCommandId CommandId)
 		mTimelineWidget->MoveSelection();
 		break;
 
+	case LC_TIMELINE_MOVE_SELECTION_BEFORE:
+		mTimelineWidget->MoveSelectionBefore();
+		break;
+
+	case LC_TIMELINE_MOVE_SELECTION_AFTER:
+		mTimelineWidget->MoveSelectionAfter();
+		break;
+
 	case LC_TIMELINE_SET_CURRENT:
 		mTimelineWidget->SetCurrentStep();
 		break;
diff --git a/common/lc_mainwindow.h b/common/lc_mainwindow.h
index b2cbd4b..582681d 100644
--- a/common/lc_mainwindow.h
+++ b/common/lc_mainwindow.h
@@ -66,7 +66,7 @@ public:
 		mActiveView = ActiveView;
 	}
 
-	void RemoveView(lcView* View)
+	void RemoveView(const lcView* View)
 	{
 		if (View == mActiveView)
 			mActiveView = nullptr;
diff --git a/common/lc_math.h b/common/lc_math.h
index 2a3d4f1..bc7eb1b 100644
--- a/common/lc_math.h
+++ b/common/lc_math.h
@@ -819,10 +819,8 @@ inline lcMatrix33 lcMatrix33RotationY(const float Radians)
 
 inline lcMatrix33 lcMatrix33RotationZ(const float Radians)
 {
-	float s, c;
-
-	s = sinf(Radians);
-	c = cosf(Radians);
+	float s = sinf(Radians);
+	float c = cosf(Radians);
 
 	lcMatrix33 m;
 
@@ -835,27 +833,25 @@ inline lcMatrix33 lcMatrix33RotationZ(const float Radians)
 
 inline lcMatrix33 lcMatrix33FromAxisAngle(const lcVector3& Axis, const float Radians)
 {
-	float s, c, mag, xx, yy, zz, xy, yz, zx, xs, ys, zs, one_c;
-
-	s = sinf(Radians);
-	c = cosf(Radians);
-	mag = Axis.Length();
+	float s = sinf(Radians);
+	float c = cosf(Radians);
+	float mag = Axis.Length();
 
 	if (mag == 0.0f)
 		return lcMatrix33Identity();
 
 	lcVector3 Normal = Axis * (1.0f / mag);
 
-	xx = Normal[0] * Normal[0];
-	yy = Normal[1] * Normal[1];
-	zz = Normal[2] * Normal[2];
-	xy = Normal[0] * Normal[1];
-	yz = Normal[1] * Normal[2];
-	zx = Normal[2] * Normal[0];
-	xs = Normal[0] * s;
-	ys = Normal[1] * s;
-	zs = Normal[2] * s;
-	one_c = 1.0f - c;
+	float xx = Normal[0] * Normal[0];
+	float yy = Normal[1] * Normal[1];
+	float zz = Normal[2] * Normal[2];
+	float xy = Normal[0] * Normal[1];
+	float yz = Normal[1] * Normal[2];
+	float zx = Normal[2] * Normal[0];
+	float xs = Normal[0] * s;
+	float ys = Normal[1] * s;
+	float zs = Normal[2] * s;
+	float one_c = 1.0f - c;
 
 	lcMatrix33 m;
 
@@ -1850,7 +1846,7 @@ inline bool lcTriangleIntersectsPlanes(const float* p1, const float* p2, const f
 }
 
 // Return true if a ray intersects a bounding box, and calculates the distance from the start of the ray (adapted from Graphics Gems).
-inline bool lcBoundingBoxRayIntersectDistance(const lcVector3& Min, const lcVector3& Max, const lcVector3& Start, const lcVector3& End, float* Dist, lcVector3* Intersection)
+inline bool lcBoundingBoxRayIntersectDistance(const lcVector3& Min, const lcVector3& Max, const lcVector3& Start, const lcVector3& End, float* Dist, lcVector3* Intersection, lcVector3* Plane)
 {
 	bool MiddleQuadrant[3];
 	bool Inside = true;
@@ -1888,6 +1884,9 @@ inline bool lcBoundingBoxRayIntersectDistance(const lcVector3& Min, const lcVect
 		if (Intersection)
 			*Intersection = Start;
 
+		if (Plane)
+			*Plane = Start;
+
 		return true;
 	}
 
@@ -1931,6 +1930,32 @@ inline bool lcBoundingBoxRayIntersectDistance(const lcVector3& Min, const lcVect
 	if (Intersection)
 		*Intersection = Point;
 
+	if (Plane)
+	{
+		*Plane = lcVector3(0.0f, 0.0f, 0.0f);
+		(*Plane)[WhichPlane] = CandidatePlane[WhichPlane];
+	}
+
+	return true;
+}
+
+inline bool lcSphereRayIntersection(const lcVector3& Center, float Radius, const lcVector3& Start, const lcVector3& End, lcVector3& Intersection)
+{
+	const lcVector3 RayDirection = lcNormalize(End - Start);
+	const lcVector3 RayCenter = Center - Start;
+	const float RayCenterSquared = lcDot(RayCenter, RayCenter);
+	const float ClosestApproach = lcDot(RayCenter, RayDirection);
+
+	if (ClosestApproach < 0)
+		return false;
+
+	const float HalfCordSquared = (Radius * Radius) - RayCenterSquared + (ClosestApproach * ClosestApproach);
+
+	if (HalfCordSquared < 0)
+		return false;
+
+	Intersection = Start + RayDirection * (ClosestApproach - sqrtf(HalfCordSquared));
+
 	return true;
 }
 
diff --git a/common/lc_mesh.cpp b/common/lc_mesh.cpp
index ad6d29c..79ae599 100644
--- a/common/lc_mesh.cpp
+++ b/common/lc_mesh.cpp
@@ -8,7 +8,7 @@
 #include "lc_library.h"
 
 #define LC_MESH_FILE_ID      LC_FOURCC('M', 'E', 'S', 'H')
-#define LC_MESH_FILE_VERSION 0x0120
+#define LC_MESH_FILE_VERSION 0x0121
 
 lcMesh* gPlaceholderMesh;
 
@@ -185,13 +185,15 @@ void lcMesh::CreateBox()
 }
 
 template<typename IndexType>
-bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance)
+bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance, lcVector3& HitPlane)
 {
 	float Distance;
-	if (!lcBoundingBoxRayIntersectDistance(mBoundingBox.Min, mBoundingBox.Max, Start, End, &Distance, nullptr) || (Distance >= MinDistance))
+	lcVector3 IntersectionPlane;
+
+	if (!lcBoundingBoxRayIntersectDistance(mBoundingBox.Min, mBoundingBox.Max, Start, End, &Distance, nullptr, &IntersectionPlane) || (Distance >= MinDistance))
 		return false;
 
-	lcVertex* const Verts = (lcVertex*)mVertexData;
+	const lcVertex* const Verts = (lcVertex*)mVertexData;
 	bool Hit = false;
 	lcVector3 Intersection;
 
@@ -215,15 +217,18 @@ bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, floa
 		}
 	}
 
+	if (Hit)
+		HitPlane = IntersectionPlane;
+
 	return Hit;
 }
 
-bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist)
+bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist, lcVector3& HitPlane)
 {
 	if (mIndexType == GL_UNSIGNED_SHORT)
-		return MinIntersectDist<GLushort>(Start, End, MinDist);
+		return MinIntersectDist<GLushort>(Start, End, MinDist, HitPlane);
 	else
-		return MinIntersectDist<GLuint>(Start, End, MinDist);
+		return MinIntersectDist<GLuint>(Start, End, MinDist, HitPlane);
 }
 
 template<typename IndexType>
@@ -424,6 +429,9 @@ bool lcMesh::FileLoad(lcMemFile& File)
 				FileName[Length] = 0;
 
 				Section.Texture = lcGetPiecesLibrary()->FindTexture(FileName, nullptr, false);
+
+				if (Section.Texture)
+					Section.Texture->AddRef();
 			}
 			else
 				Section.Texture = nullptr;
diff --git a/common/lc_mesh.h b/common/lc_mesh.h
index 2f5914d..766428c 100644
--- a/common/lc_mesh.h
+++ b/common/lc_mesh.h
@@ -76,7 +76,9 @@ public:
 	~lcMesh();
 
 	lcMesh(const lcMesh&) = delete;
+	lcMesh(lcMesh&&) = delete;
 	lcMesh& operator=(const lcMesh&) = delete;
+	lcMesh& operator=(lcMesh&&) = delete;
 
 	void Create(quint16 (&NumSections)[LC_NUM_MESH_LODS], int VertexCount, int TexturedVertexCount, int ConditionalVertexCount, int IndexCount);
 	void CreateBox();
@@ -93,8 +95,8 @@ public:
 	void ExportWavefrontIndices(lcFile& File, int DefaultColorIndex, int VertexOffset);
 
 	template<typename IndexType>
-	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist);
-	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist);
+	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist, lcVector3& HitPlane);
+	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDist, lcVector3& HitPlane);
 
 	template<typename IndexType>
 	bool IntersectsPlanes(const lcVector4 (&Planes)[6]);
diff --git a/common/lc_meshloader.cpp b/common/lc_meshloader.cpp
index 9114312..21b23fd 100644
--- a/common/lc_meshloader.cpp
+++ b/common/lc_meshloader.cpp
@@ -6,59 +6,96 @@
 #include "lc_application.h"
 #include "lc_texture.h"
 
-static lcVector2 lcCalculateTexCoord(const lcVector3& Position, const lcMeshLoaderTextureMap* TextureMap)
+static void lcCheckTexCoordsWrap(const lcVector4& Plane2, const lcVector3 (&Positions)[3], lcVector2 (&TexCoords)[3])
 {
-	switch (TextureMap->Type)
-	{
-	case lcMeshLoaderTextureMapType::Planar:
-		return lcVector2(lcDot3(Position, TextureMap->Params.Planar.Planes[0]) + TextureMap->Params.Planar.Planes[0].w, lcDot3(Position, TextureMap->Params.Planar.Planes[1]) + TextureMap->Params.Planar.Planes[1].w);
+	lcVector2& TexCoords1 = TexCoords[0];
+	lcVector2& TexCoords2 = TexCoords[1];
+	lcVector2& TexCoords3 = TexCoords[2];
 
-	case lcMeshLoaderTextureMapType::Cylindrical:
-	{
-		const lcVector4& FrontPlane = TextureMap->Params.Cylindrical.FrontPlane;
-		const lcVector4& Plane1 = TextureMap->Params.Cylindrical.Plane1;
-		const lcVector4& Plane2 = TextureMap->Params.Cylindrical.Plane2;
-		lcVector2 TexCoord;
+	const float u12 = fabsf(TexCoords1.x - TexCoords2.x);
+	const float u13 = fabsf(TexCoords1.x - TexCoords3.x);
+	const float u23 = fabsf(TexCoords2.x - TexCoords3.x);
 
-		float DotPlane1 = lcDot(lcVector4(Position, 1.0f), Plane1);
-		lcVector3 PointInPlane1 = Position - lcVector3(Plane1) * DotPlane1;
-		float DotFrontPlane = lcDot(lcVector4(PointInPlane1, 1.0f), FrontPlane);
-		float DotPlane2 = lcDot(lcVector4(PointInPlane1, 1.0f), Plane2);
+	if (u12 < 0.5f && u13 < 0.5f && u23 < 0.5f)
+		return;
 
-		float Angle1 = atan2f(DotPlane2, DotFrontPlane) / LC_PI * TextureMap->Params.Cylindrical.Angle;
-		TexCoord.x = lcClamp(0.5f + 0.5f * Angle1, 0.0f, 1.0f);
+	const float Dot1 = fabsf(lcDot(Plane2, lcVector4(Positions[0], 1.0f)));
+	const float Dot2 = fabsf(lcDot(Plane2, lcVector4(Positions[1], 1.0f)));
+	const float Dot3 = fabsf(lcDot(Plane2, lcVector4(Positions[2], 1.0f)));
 
-		TexCoord.y = DotPlane1 / TextureMap->Params.Cylindrical.UpLength;
+	if (Dot1 > Dot2)
+	{
+		if (Dot1 > Dot3)
+		{
+			if (u12 > 0.5f)
+				TexCoords2.x += TexCoords2.x < 0.5f ? 1.0f : -1.0f;
 
-		return TexCoord;
-	}
+			if (u13 > 0.5f)
+				TexCoords3.x += TexCoords3.x < 0.5f ? 1.0f : -1.0f;
+		}
+		else
+		{
+			if (u13 > 0.5f)
+				TexCoords1.x += TexCoords1.x < 0.5f ? 1.0f : -1.0f;
 
-	case lcMeshLoaderTextureMapType::Spherical:
+			if (u23 > 0.5f)
+				TexCoords2.x += TexCoords2.x < 0.5f ? 1.0f : -1.0f;
+		}
+	}
+	else
 	{
-		const lcVector4& FrontPlane = TextureMap->Params.Spherical.FrontPlane;
-		const lcVector3& Center = TextureMap->Params.Spherical.Center;
-		const lcVector4& Plane1 = TextureMap->Params.Spherical.Plane1;
-		const lcVector4& Plane2 = TextureMap->Params.Spherical.Plane2;
-		lcVector2 TexCoord;
-
-		lcVector3 VertexDir = Position - Center;
+		if (Dot2 > Dot3)
+		{
+			if (u12 > 0.5f)
+				TexCoords1.x += TexCoords1.x < 0.5f ? 1.0f : -1.0f;
 
-		float DotPlane1 = lcDot(lcVector4(Position, 1.0f), Plane1);
-		lcVector3 PointInPlane1 = Position - lcVector3(Plane1) * DotPlane1;
-		float DotFrontPlane = lcDot(lcVector4(PointInPlane1, 1.0f), FrontPlane);
-		float DotPlane2 = lcDot(lcVector4(PointInPlane1, 1.0f), Plane2);
+			if (u23 > 0.5f)
+				TexCoords3.x += TexCoords3.x < 0.5f ? 1.0f : -1.0f;
+		}
+		else
+		{
+			if (u13 > 0.5f)
+				TexCoords1.x += TexCoords1.x < 0.5f ? 1.0f : -1.0f;
 
-		float Angle1 = atan2f(DotPlane2, DotFrontPlane) / LC_PI * TextureMap->Params.Spherical.Angle1;
-		TexCoord.x = 0.5f + 0.5f * Angle1;
+			if (u23 > 0.5f)
+				TexCoords2.x += TexCoords2.x < 0.5f ? 1.0f : -1.0f;
+		}
+	}
+}
 
-		float Angle2 = asinf(DotPlane1 / lcLength(VertexDir)) / LC_PI * TextureMap->Params.Spherical.Angle2;
-		TexCoord.y = 0.5f - Angle2;
+static void lcCheckTexCoordsPole(const lcVector4& FrontPlane, const lcVector4& Plane2, const lcVector3(&Positions)[3], lcVector2(&TexCoords)[3])
+{
+	int PoleIndex;
+	int EdgeIndex1, EdgeIndex2;
 
-		return TexCoord;
+	if (fabsf(lcDot(lcVector4(Positions[0], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Positions[0], 1.0f), Plane2)) < 0.01f)
+	{
+		PoleIndex = 0;
+		EdgeIndex1 = 1;
+		EdgeIndex2 = 2;
 	}
+	else if (fabsf(lcDot(lcVector4(Positions[1], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Positions[1], 1.0f), Plane2)) < 0.01f)
+	{
+		PoleIndex = 1;
+		EdgeIndex1 = 0;
+		EdgeIndex2 = 2;
 	}
+	else if (fabsf(lcDot(lcVector4(Positions[2], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Positions[2], 1.0f), Plane2)) < 0.01f)
+	{
+		PoleIndex = 2;
+		EdgeIndex1 = 0;
+		EdgeIndex2 = 1;
+	}
+	else
+		return;
 
-	return lcVector2(0.0f, 0.0f);
+	const lcVector3 OppositeEdge = Positions[EdgeIndex2] - Positions[EdgeIndex1];
+	const lcVector3 SideEdge = Positions[PoleIndex] - Positions[EdgeIndex1];
+
+	const float OppositeLength = lcLength(OppositeEdge);
+	const float Projection = lcDot(OppositeEdge, SideEdge) / (OppositeLength * OppositeLength);
+
+	TexCoords[PoleIndex].x = TexCoords[EdgeIndex1].x + (TexCoords[EdgeIndex2].x - TexCoords[EdgeIndex1].x) * Projection;
 }
 
 static void lcResequenceQuad(int* Indices, int a, int b, int c, int d)
@@ -69,20 +106,21 @@ static void lcResequenceQuad(int* Indices, int a, int b, int c, int d)
 	Indices[3] = d;
 }
 
-static void lcTestQuad(int* QuadIndices, const lcVector3* Vertices)
+static void lcTestQuad(int (&TriangleIndices)[2][3], const lcVector3 (&Vertices)[4])
 {
-	lcVector3 v01 = Vertices[1] - Vertices[0];
-	lcVector3 v02 = Vertices[2] - Vertices[0];
-	lcVector3 v03 = Vertices[3] - Vertices[0];
-	lcVector3 cp1 = lcCross(v01, v02);
-	lcVector3 cp2 = lcCross(v02, v03);
+	const lcVector3 v01 = Vertices[1] - Vertices[0];
+	const lcVector3 v02 = Vertices[2] - Vertices[0];
+	const lcVector3 v03 = Vertices[3] - Vertices[0];
+	const lcVector3 cp1 = lcCross(v01, v02);
+	const lcVector3 cp2 = lcCross(v02, v03);
 
 	if (lcDot(cp1, cp2) > 0.0f)
 		return;
 
-	lcVector3 v12 = Vertices[2] - Vertices[1];
-	lcVector3 v13 = Vertices[3] - Vertices[1];
-	lcVector3 v23 = Vertices[3] - Vertices[2];
+	const lcVector3 v12 = Vertices[2] - Vertices[1];
+	const lcVector3 v13 = Vertices[3] - Vertices[1];
+	const lcVector3 v23 = Vertices[3] - Vertices[2];
+	int QuadIndices[4] = { 0, 1, 2, 3 };
 
 	if (lcDot(lcCross(v12, v01), lcCross(v01, v13)) > 0.0f)
 	{
@@ -98,28 +136,30 @@ static void lcTestQuad(int* QuadIndices, const lcVector3* Vertices)
 		else
 			lcResequenceQuad(QuadIndices, 1, 2, 3, 0);
 	}
+
+	TriangleIndices[0][0] = QuadIndices[0];
+	TriangleIndices[0][1] = QuadIndices[1];
+	TriangleIndices[0][2] = QuadIndices[2];
+
+	TriangleIndices[1][0] = QuadIndices[2];
+	TriangleIndices[1][1] = QuadIndices[3];
+	TriangleIndices[1][2] = QuadIndices[0];
 }
 
-const float lcDistanceEpsilon = 0.01f; // Maximum value for 50591.dat
-const float lcTexCoordEpsilon = 0.01f;
+constexpr float lcDistanceEpsilon = 0.01f; // Maximum value for 50591.dat
 
 static bool lcCompareVertices(const lcVector3& Position1, const lcVector3& Position2)
 {
 	return fabsf(Position1.x - Position2.x) < lcDistanceEpsilon && fabsf(Position1.y - Position2.y) < lcDistanceEpsilon && fabsf(Position1.z - Position2.z) < lcDistanceEpsilon;
 }
 
-static bool lcCompareVertices(const lcVector3& Position1, const lcVector2& TexCoord1, const lcVector3& Position2, const lcVector2& TexCoord2)
+lcMeshLoaderSection* lcMeshLoaderTypeData::AddSection(lcMeshPrimitiveType PrimitiveType, lcMeshLoaderMaterial* Material)
 {
-	return lcCompareVertices(Position1, Position2) && fabsf(TexCoord1.x - TexCoord2.x) < lcTexCoordEpsilon && fabsf(TexCoord1.y - TexCoord2.y) < lcTexCoordEpsilon;
-}
-
-lcMeshLoaderSection* lcMeshLoaderTypeData::AddSection(lcMeshPrimitiveType PrimitiveType, quint32 ColorCode, lcTexture* Texture)
-{
-	for (std::unique_ptr<lcMeshLoaderSection>& Section : mSections)
-		if (Section->mColor == ColorCode && Section->mPrimitiveType == PrimitiveType && Section->mTexture == Texture)
+	for (const std::unique_ptr<lcMeshLoaderSection>& Section : mSections)
+		if (Section->mMaterial == Material && Section->mPrimitiveType == PrimitiveType)
 			return Section.get();
 
-	mSections.emplace_back(new lcMeshLoaderSection(PrimitiveType, ColorCode, Texture));
+	mSections.emplace_back(new lcMeshLoaderSection(PrimitiveType, Material));
 
 	return mSections.back().get();
 }
@@ -130,13 +170,10 @@ quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, bool Optimize
 	{
 		for (int VertexIdx = mVertices.GetSize() - 1; VertexIdx >= 0; VertexIdx--)
 		{
-			lcMeshLoaderVertex& Vertex = mVertices[VertexIdx];
+			const lcMeshLoaderVertex& Vertex = mVertices[VertexIdx];
 
 			if (lcCompareVertices(Position, Vertex.Position))
-			{
-				Vertex.Usage |= LC_LIBRARY_VERTEX_UNTEXTURED;
 				return VertexIdx;
-			}
 		}
 	}
 
@@ -145,13 +182,11 @@ quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, bool Optimize
 	Vertex.Position = Position;
 	Vertex.Normal = lcVector3(0.0f, 0.0f, 0.0f);
 	Vertex.NormalWeight = 0.0f;
-	Vertex.TexCoord = lcVector2(0.0f, 0.0f);
-	Vertex.Usage = LC_LIBRARY_VERTEX_UNTEXTURED;
 
 	return mVertices.GetSize() - 1;
 }
 
-quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, const lcVector3& Normal, bool Optimize)
+quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, const lcVector3& Normal, float NormalWeight, bool Optimize)
 {
 	if (Optimize)
 	{
@@ -164,15 +199,13 @@ quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, const lcVecto
 				if (Vertex.NormalWeight == 0.0f)
 				{
 					Vertex.Normal = Normal;
-					Vertex.NormalWeight = 1.0f;
-					Vertex.Usage |= LC_LIBRARY_VERTEX_UNTEXTURED;
+					Vertex.NormalWeight = NormalWeight;
 					return VertexIdx;
 				}
-				else if (lcDot(Normal, Vertex.Normal) > 0.707f)
+				else if (lcDot(Normal, Vertex.Normal) > 0.71f)
 				{
-					Vertex.Normal = lcNormalize(Vertex.Normal * Vertex.NormalWeight + Normal);
-					Vertex.NormalWeight += 1.0f;
-					Vertex.Usage |= LC_LIBRARY_VERTEX_UNTEXTURED;
+					Vertex.Normal = lcNormalize(Vertex.Normal * Vertex.NormalWeight + Normal * NormalWeight);
+					Vertex.NormalWeight += NormalWeight;
 					return VertexIdx;
 				}
 			}
@@ -184,106 +217,6 @@ quint32 lcMeshLoaderTypeData::AddVertex(const lcVector3& Position, const lcVecto
 	Vertex.Position = Position;
 	Vertex.Normal = Normal;
 	Vertex.NormalWeight = 1.0f;
-	Vertex.TexCoord = lcVector2(0.0f, 0.0f);
-	Vertex.Usage = LC_LIBRARY_VERTEX_UNTEXTURED;
-
-	return mVertices.GetSize() - 1;
-}
-
-quint32 lcMeshLoaderTypeData::AddTexturedVertex(const lcVector3& Position, const lcVector2& TexCoord, bool Optimize)
-{
-	if (Optimize)
-	{
-		for (int VertexIdx = mVertices.GetSize() - 1; VertexIdx >= 0; VertexIdx--)
-		{
-			lcMeshLoaderVertex& Vertex = mVertices[VertexIdx];
-
-			if (Vertex.Usage & LC_LIBRARY_VERTEX_TEXTURED)
-			{
-				if (lcCompareVertices(Position, TexCoord, Vertex.Position, Vertex.TexCoord))
-					return VertexIdx;
-			}
-			else
-			{
-				if (lcCompareVertices(Position, Vertex.Position))
-				{
-					Vertex.TexCoord = TexCoord;
-					Vertex.Usage |= LC_LIBRARY_VERTEX_TEXTURED;
-					return VertexIdx;
-				}
-			}
-		}
-	}
-
-	lcMeshLoaderVertex& Vertex = mVertices.Add();
-
-	Vertex.Position = Position;
-	Vertex.Normal = lcVector3(0.0f, 0.0f, 0.0f);
-	Vertex.NormalWeight = 0.0f;
-	Vertex.TexCoord = TexCoord;
-	Vertex.Usage = LC_LIBRARY_VERTEX_TEXTURED;
-
-	return mVertices.GetSize() - 1;
-}
-
-quint32 lcMeshLoaderTypeData::AddTexturedVertex(const lcVector3& Position, const lcVector3& Normal, const lcVector2& TexCoord, bool Optimize)
-{
-	if (Optimize)
-	{
-		for (int VertexIdx = mVertices.GetSize() - 1; VertexIdx >= 0; VertexIdx--)
-		{
-			lcMeshLoaderVertex& Vertex = mVertices[VertexIdx];
-
-			if (Vertex.Usage & LC_LIBRARY_VERTEX_TEXTURED)
-			{
-				if (lcCompareVertices(Position, TexCoord, Vertex.Position, Vertex.TexCoord))
-				{
-					if (Vertex.NormalWeight == 0.0f)
-					{
-						Vertex.Normal = Normal;
-						Vertex.NormalWeight = 1.0f;
-						return VertexIdx;
-					}
-					else if (lcDot(Normal, Vertex.Normal) > 0.707f)
-					{
-						Vertex.Normal = lcNormalize(Vertex.Normal * Vertex.NormalWeight + Normal);
-						Vertex.NormalWeight += 1.0f;
-						return VertexIdx;
-					}
-				}
-			}
-			else
-			{
-				if (lcCompareVertices(Position, Vertex.Position))
-				{
-					if (Vertex.NormalWeight == 0.0f)
-					{
-						Vertex.Normal = Normal;
-						Vertex.NormalWeight = 1.0f;
-						Vertex.TexCoord = TexCoord;
-						Vertex.Usage |= LC_LIBRARY_VERTEX_TEXTURED;
-						return VertexIdx;
-					}
-					else if (lcDot(Normal, Vertex.Normal) > 0.707f)
-					{
-						Vertex.Normal = lcNormalize(Vertex.Normal * Vertex.NormalWeight + Normal);
-						Vertex.NormalWeight += 1.0f;
-						Vertex.TexCoord = TexCoord;
-						Vertex.Usage |= LC_LIBRARY_VERTEX_TEXTURED;
-						return VertexIdx;
-					}
-				}
-			}
-		}
-	}
-
-	lcMeshLoaderVertex& Vertex = mVertices.Add();
-
-	Vertex.Position = Position;
-	Vertex.Normal = Normal;
-	Vertex.NormalWeight = 1.0f;
-	Vertex.TexCoord = TexCoord;
-	Vertex.Usage = LC_LIBRARY_VERTEX_TEXTURED;
 
 	return mVertices.GetSize() - 1;
 }
@@ -300,75 +233,46 @@ quint32 lcMeshLoaderTypeData::AddConditionalVertex(const lcVector3(&Position)[4]
 	return mConditionalVertices.GetSize() - 1;
 }
 
-void lcMeshLoaderTypeData::ProcessLine(int LineType, quint32 ColorCode, bool WindingCCW, lcVector3 (&Vertices)[4], bool Optimize)
+void lcMeshLoaderTypeData::ProcessLine(int LineType, lcMeshLoaderMaterial* Material, bool WindingCCW, lcVector3 (&Vertices)[4], bool Optimize)
 {
-	lcMeshPrimitiveType PrimitiveTypes[4] = { LC_MESH_LINES, LC_MESH_TRIANGLES, LC_MESH_TRIANGLES, LC_MESH_CONDITIONAL_LINES };
+	constexpr lcMeshPrimitiveType PrimitiveTypes[4] = { LC_MESH_LINES, LC_MESH_TRIANGLES, LC_MESH_TRIANGLES, LC_MESH_CONDITIONAL_LINES };
 	lcMeshPrimitiveType PrimitiveType = PrimitiveTypes[LineType - 2];
-	lcMeshLoaderSection* Section = AddSection(PrimitiveType, ColorCode, nullptr);
 
-	int QuadIndices[4] = { 0, 1, 2, 3 };
-	int Indices[4] = { -1, -1, -1, -1 };
+	if (Material->Type != lcMeshLoaderMaterialType::Solid && PrimitiveType == LC_MESH_TRIANGLES)
+		PrimitiveType = LC_MESH_TEXTURED_TRIANGLES;
+
+	lcMeshLoaderSection* Section = AddSection(PrimitiveType, Material);
 
 	if (LineType == 3 || LineType == 4)
 	{
+		int TriangleIndices[2][3] = { { 0, 1, 2 }, { 2, 3, 0 } };
+
 		if (LineType == 4)
-			lcTestQuad(QuadIndices, Vertices);
+			lcTestQuad(TriangleIndices, Vertices);
 
 		lcVector3 Normal = lcNormalize(lcCross(Vertices[1] - Vertices[0], Vertices[2] - Vertices[0]));
 
 		if (!WindingCCW)
 			Normal = -Normal;
 
-		for (int IndexIdx = 0; IndexIdx < lcMin(LineType, 4); IndexIdx++)
+		for (int TriangleIndex = 0; TriangleIndex < LineType - 2; TriangleIndex++)
 		{
-			const lcVector3& Position = Vertices[QuadIndices[IndexIdx]];
-			Indices[IndexIdx] = AddVertex(Position, Normal, Optimize);
-		}
-	}
-	else if (LineType == 2)
-	{
-		for (int IndexIdx = 0; IndexIdx < 2; IndexIdx++)
-		{
-			const lcVector3& Position = Vertices[QuadIndices[IndexIdx]];
-			Indices[IndexIdx] = AddVertex(Position, Optimize);
-		}
-	}
-	else if (LineType == 5)
-	{
-		Indices[0] = AddConditionalVertex(Vertices);
-		std::swap(Vertices[0], Vertices[1]);
-		Indices[1] = AddConditionalVertex(Vertices);
-	}
+			const lcVector3& Vertex1 = Vertices[TriangleIndices[TriangleIndex][0]];
+			const lcVector3& Vertex2 = Vertices[TriangleIndices[TriangleIndex][1]];
+			const lcVector3& Vertex3 = Vertices[TriangleIndices[TriangleIndex][2]];
+			const lcVector3 Edge1 = lcNormalize(Vertex2 - Vertex1);
+			const lcVector3 Edge2 = lcNormalize(Vertex3 - Vertex1);
+			const lcVector3 Edge3 = lcNormalize(Vertex3 - Vertex2);
+			const float Angle1 = acosf(lcDot(Edge1, Edge2));
+			const float Angle2 = acosf(lcDot(-Edge1, Edge3));
+			const float Angle3 = LC_PI - Angle1 - Angle2;
+
+			int Indices[3];
+
+			Indices[0] = AddVertex(Vertex1, Normal, Angle1, Optimize);
+			Indices[1] = AddVertex(Vertex2, Normal, Angle2, Optimize);
+			Indices[2] = AddVertex(Vertex3, Normal, Angle3, Optimize);
 
-	switch (LineType)
-	{
-		case 5:
-			if (Indices[0] != Indices[1])
-			{
-				Section->mIndices.Add(Indices[0]);
-				Section->mIndices.Add(Indices[1]);
-			}
-			break;
-
-		case 4:
-			if (Indices[0] != Indices[2] && Indices[0] != Indices[3] && Indices[2] != Indices[3])
-			{
-				if (WindingCCW)
-				{
-					Section->mIndices.Add(Indices[2]);
-					Section->mIndices.Add(Indices[3]);
-					Section->mIndices.Add(Indices[0]);
-				}
-				else
-				{
-					Section->mIndices.Add(Indices[0]);
-					Section->mIndices.Add(Indices[3]);
-					Section->mIndices.Add(Indices[2]);
-				}
-			}
-			Q_FALLTHROUGH();
-
-		case 3:
 			if (Indices[0] != Indices[1] && Indices[0] != Indices[2] && Indices[1] != Indices[2])
 			{
 				if (WindingCCW)
@@ -384,188 +288,32 @@ void lcMeshLoaderTypeData::ProcessLine(int LineType, quint32 ColorCode, bool Win
 					Section->mIndices.Add(Indices[0]);
 				}
 			}
-			break;
-
-		case 2:
-			if (Indices[0] != Indices[1])
-			{
-				Section->mIndices.Add(Indices[0]);
-				Section->mIndices.Add(Indices[1]);
-			}
-			break;
-	}
-}
-
-void lcMeshLoaderTypeData::ProcessTexturedLine(int LineType, quint32 ColorCode, bool WindingCCW, const lcMeshLoaderTextureMap& TextureMap, const lcVector3* Vertices, bool Optimize)
-{
-	lcMeshPrimitiveType PrimitiveType = LC_MESH_TEXTURED_TRIANGLES;
-	lcMeshLoaderSection* Section = AddSection(PrimitiveType, ColorCode, TextureMap.Texture);
-
-	int QuadIndices[4] = { 0, 1, 2, 3 };
-	int Indices[4] = { -1, -1, -1, -1 };
-
-	if (LineType == 4)
-		lcTestQuad(QuadIndices, Vertices);
-
-	lcVector3 Normal = lcNormalize(lcCross(Vertices[1] - Vertices[0], Vertices[2] - Vertices[0]));
-
-	if (!WindingCCW)
-		Normal = -Normal;
-
-	lcVector2 TexCoords[4];
-
-	for (int IndexIdx = 0; IndexIdx < lcMin(LineType, 4); IndexIdx++)
-	{
-		const lcVector3& Position = Vertices[QuadIndices[IndexIdx]];
-		TexCoords[QuadIndices[IndexIdx]] = lcCalculateTexCoord(Position, &TextureMap);
+		}
 	}
-
-	if (TextureMap.Type == lcMeshLoaderTextureMapType::Cylindrical || TextureMap.Type == lcMeshLoaderTextureMapType::Spherical)
+	else if (LineType == 2)
 	{
-		auto CheckTexCoordsWrap = [&TexCoords, &Vertices, &TextureMap](int Index1, int Index2, int Index3)
-		{
-			float u12 = fabsf(TexCoords[Index1].x - TexCoords[Index2].x);
-			float u13 = fabsf(TexCoords[Index1].x - TexCoords[Index3].x);
-			float u23 = fabsf(TexCoords[Index2].x - TexCoords[Index3].x);
-
-			if (u12 < 0.5f && u13 < 0.5f && u23 < 0.5f)
-				return;
-
-			const lcVector4& Plane2 = (TextureMap.Type == lcMeshLoaderTextureMapType::Cylindrical) ? TextureMap.Params.Cylindrical.Plane2 : TextureMap.Params.Spherical.Plane2;
-			float Dot1 = fabsf(lcDot(Plane2, lcVector4(Vertices[Index1], 1.0f)));
-			float Dot2 = fabsf(lcDot(Plane2, lcVector4(Vertices[Index2], 1.0f)));
-			float Dot3 = fabsf(lcDot(Plane2, lcVector4(Vertices[Index3], 1.0f)));
-
-			if (Dot1 > Dot2)
-			{
-				if (Dot1 > Dot3)
-				{
-					if (u12 > 0.5f)
-						TexCoords[Index2].x += TexCoords[Index2].x < 0.5f ? 1.0f : -1.0f;
-
-					if (u13 > 0.5f)
-						TexCoords[Index3].x += TexCoords[Index3].x < 0.5f ? 1.0f : -1.0f;
-				}
-				else
-				{
-					if (u13 > 0.5f)
-						TexCoords[Index1].x += TexCoords[Index1].x < 0.5f ? 1.0f : -1.0f;
+		int Indices[2];
 
-					if (u23 > 0.5f)
-						TexCoords[Index2].x += TexCoords[Index2].x < 0.5f ? 1.0f : -1.0f;
-				}
-			}
-			else
-			{
-				if (Dot2 > Dot3)
-				{
-					if (u12 > 0.5f)
-						TexCoords[Index1].x += TexCoords[Index1].x < 0.5f ? 1.0f : -1.0f;
+		Indices[0] = AddVertex(Vertices[0], Optimize);
+		Indices[1] = AddVertex(Vertices[1], Optimize);
 
-					if (u23 > 0.5f)
-						TexCoords[Index3].x += TexCoords[Index3].x < 0.5f ? 1.0f : -1.0f;
-				}
-				else
-				{
-					if (u13 > 0.5f)
-						TexCoords[Index1].x += TexCoords[Index1].x < 0.5f ? 1.0f : -1.0f;
-
-					if (u23 > 0.5f)
-						TexCoords[Index2].x += TexCoords[Index2].x < 0.5f ? 1.0f : -1.0f;
-				}
-			}
-		};
-
-		CheckTexCoordsWrap(QuadIndices[0], QuadIndices[1], QuadIndices[2]);
-
-		if (LineType == 4)
-			CheckTexCoordsWrap(QuadIndices[2], QuadIndices[3], QuadIndices[0]);
-	}
-
-	if (TextureMap.Type == lcMeshLoaderTextureMapType::Spherical)
-	{
-		auto CheckTexCoordsPole = [&TexCoords, &Vertices, &TextureMap](int Index1, int Index2, int Index3)
+		if (Indices[0] != Indices[1])
 		{
-			const lcVector4& FrontPlane = TextureMap.Params.Spherical.FrontPlane;
-			const lcVector4& Plane2 = TextureMap.Params.Spherical.Plane2;
-			int PoleIndex;
-			int EdgeIndex1, EdgeIndex2;
-
-			if (fabsf(lcDot(lcVector4(Vertices[Index1], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Vertices[Index1], 1.0f), Plane2)) < 0.01f)
-			{
-				PoleIndex = Index1;
-				EdgeIndex1 = Index2;
-				EdgeIndex2 = Index3;
-			}
-			else if (fabsf(lcDot(lcVector4(Vertices[Index2], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Vertices[Index2], 1.0f), Plane2)) < 0.01f)
-			{
-				PoleIndex = Index2;
-				EdgeIndex1 = Index1;
-				EdgeIndex2 = Index3;
-			}
-			else if (fabsf(lcDot(lcVector4(Vertices[Index3], 1.0f), FrontPlane)) < 0.01f && fabsf(lcDot(lcVector4(Vertices[Index3], 1.0f), Plane2)) < 0.01f)
-			{
-				PoleIndex = Index3;
-				EdgeIndex1 = Index1;
-				EdgeIndex2 = Index2;
-			}
-			else
-				return;
-
-			lcVector3 OppositeEdge = Vertices[EdgeIndex2] - Vertices[EdgeIndex1];
-			lcVector3 SideEdge = Vertices[PoleIndex] - Vertices[EdgeIndex1];
-
-			float OppositeLength = lcLength(OppositeEdge);
-			float Projection = lcDot(OppositeEdge, SideEdge) / (OppositeLength * OppositeLength);
-
-			TexCoords[PoleIndex].x = TexCoords[EdgeIndex1].x + (TexCoords[EdgeIndex2].x - TexCoords[EdgeIndex1].x) * Projection;
-		};
-
-		CheckTexCoordsPole(QuadIndices[0], QuadIndices[1], QuadIndices[2]);
-
-		if (LineType == 4)
-			CheckTexCoordsPole(QuadIndices[2], QuadIndices[3], QuadIndices[0]);
+			Section->mIndices.Add(Indices[0]);
+			Section->mIndices.Add(Indices[1]);
+		}
 	}
-
-	for (int IndexIdx = 0; IndexIdx < lcMin(LineType, 4); IndexIdx++)
+	else if (LineType == 5)
 	{
-		const lcVector3& Position = Vertices[QuadIndices[IndexIdx]];
-		Indices[IndexIdx] = AddTexturedVertex(Position, Normal, TexCoords[QuadIndices[IndexIdx]], Optimize);
-	}
+		int Indices[2];
 
-	if (LineType == 4)
-	{
-		if (Indices[0] != Indices[2] && Indices[0] != Indices[3] && Indices[2] != Indices[3])
-		{
-			if (WindingCCW)
-			{
-				Section->mIndices.Add(Indices[2]);
-				Section->mIndices.Add(Indices[3]);
-				Section->mIndices.Add(Indices[0]);
-			}
-			else
-			{
-				Section->mIndices.Add(Indices[0]);
-				Section->mIndices.Add(Indices[3]);
-				Section->mIndices.Add(Indices[2]);
-			}
-		}
-	}
+		Indices[0] = AddConditionalVertex(Vertices);
+		Section->mIndices.Add(Indices[0]);
 
-	if (Indices[0] != Indices[1] && Indices[0] != Indices[2] && Indices[1] != Indices[2])
-	{
-		if (WindingCCW)
-		{
-			Section->mIndices.Add(Indices[0]);
-			Section->mIndices.Add(Indices[1]);
-			Section->mIndices.Add(Indices[2]);
-		}
-		else
-		{
-			Section->mIndices.Add(Indices[2]);
-			Section->mIndices.Add(Indices[1]);
-			Section->mIndices.Add(Indices[0]);
-		}
+		std::swap(Vertices[0], Vertices[1]);
+
+		Indices[1] = AddConditionalVertex(Vertices);
+		Section->mIndices.Add(Indices[1]);
 	}
 }
 
@@ -575,65 +323,24 @@ void lcMeshLoaderTypeData::AddMeshData(const lcMeshLoaderTypeData& Data, const l
 	lcArray<quint32> IndexRemap(DataVertices.GetSize());
 	const lcMatrix33 NormalTransform = lcMatrix33Transpose(lcMatrix33(lcMatrix44Inverse(Transform)));
 
-	if (!TextureMap)
+	mVertices.AllocGrow(DataVertices.GetSize());
+
+	for (const lcMeshLoaderVertex& DataVertex : DataVertices)
 	{
-		mVertices.AllocGrow(DataVertices.GetSize());
+		const lcVector3 Position = lcMul31(DataVertex.Position, Transform);
+		int Index;
 
-		for (const lcMeshLoaderVertex& DataVertex : DataVertices)
+		if (DataVertex.NormalWeight == 0.0f)
+			Index = AddVertex(Position, true);
+		else
 		{
-			lcVector3 Position = lcMul31(DataVertex.Position, Transform);
-			int Index;
-
-			if ((DataVertex.Usage & LC_LIBRARY_VERTEX_TEXTURED) == 0)
-			{
-				if (DataVertex.NormalWeight == 0.0f)
-					Index = AddVertex(Position, true);
-				else
-				{
-					lcVector3 Normal = lcNormalize(lcMul(DataVertex.Normal, NormalTransform));
-					if (InvertNormals)
-						Normal = -Normal;
-					Index = AddVertex(Position, Normal, true);
-				}
-			}
-			else
-			{
-				if (DataVertex.NormalWeight == 0.0f)
-					Index = AddTexturedVertex(Position, DataVertex.TexCoord, true);
-				else
-				{
-					lcVector3 Normal = lcNormalize(lcMul(DataVertex.Normal, NormalTransform));
-					if (InvertNormals)
-						Normal = -Normal;
-					Index = AddTexturedVertex(Position, Normal, DataVertex.TexCoord, true);
-				}
-
-				mVertices[Index].Usage = DataVertex.Usage; // todo: I think this should be |=
-			}
-
-			IndexRemap.Add(Index);
+			lcVector3 Normal = lcNormalize(lcMul(DataVertex.Normal, NormalTransform));
+			if (InvertNormals)
+				Normal = -Normal;
+			Index = AddVertex(Position, Normal, DataVertex.NormalWeight, true);
 		}
-	}
-	else
-	{
-		for (const lcMeshLoaderVertex& DataVertex : DataVertices)
-		{
-			lcVector3 Position = lcMul31(DataVertex.Position, Transform);
-			lcVector2 TexCoord = lcCalculateTexCoord(Position, TextureMap);
-			int Index;
-
-			if (DataVertex.NormalWeight == 0.0f)
-				Index = AddTexturedVertex(Position, TexCoord, true);
-			else
-			{
-				lcVector3 Normal = lcNormalize(lcMul(DataVertex.Normal, NormalTransform));
-				if (InvertNormals)
-					Normal = -Normal;
-				Index = AddTexturedVertex(Position, Normal, TexCoord, true);
-			}
 
-			IndexRemap.Add(Index);
-		}
+		IndexRemap.Add(Index);
 	}
 
 	mConditionalVertices.AllocGrow(Data.mConditionalVertices.GetSize());
@@ -648,37 +355,46 @@ void lcMeshLoaderTypeData::AddMeshData(const lcMeshLoaderTypeData& Data, const l
 		Position[2] = lcMul31(DataVertex.Position[2], Transform);
 		Position[3] = lcMul31(DataVertex.Position[3], Transform);
 
-		int Index = AddConditionalVertex(Position);
+		const int Index = AddConditionalVertex(Position);
 		ConditionalRemap.Add(Index);
 	}
 
 	for (const std::unique_ptr<lcMeshLoaderSection>& SrcSection : Data.mSections)
 	{
-		quint32 ColorCode = SrcSection->mColor == 16 ? CurrentColorCode : SrcSection->mColor;
-		lcTexture* Texture;
+		const quint32 ColorCode = SrcSection->mMaterial->Color == 16 ? CurrentColorCode : SrcSection->mMaterial->Color;
 		lcMeshPrimitiveType PrimitiveType = SrcSection->mPrimitiveType;
+		lcMeshLoaderSection* DstSection;
+
+		if (SrcSection->mMaterial->Type != lcMeshLoaderMaterialType::Solid)
+		{
+			lcMeshLoaderTextureMap DstTextureMap = *TextureMap;
 
-		if (SrcSection->mTexture)
-			Texture = SrcSection->mTexture;
+			for (lcVector3& Point : DstTextureMap.Points)
+				Point = lcMul31(Point, Transform);
+
+			DstSection = AddSection(PrimitiveType, mMeshData->GetTexturedMaterial(ColorCode, DstTextureMap));
+		}
 		else if (TextureMap && SrcSection->mPrimitiveType == LC_MESH_TRIANGLES)
 		{
-			Texture = TextureMap->Texture;
 			PrimitiveType = LC_MESH_TEXTURED_TRIANGLES;
+
+			DstSection = AddSection(PrimitiveType, mMeshData->GetTexturedMaterial(ColorCode, *TextureMap));
 		}
 		else
-			Texture = nullptr;
+		{
+			DstSection = AddSection(PrimitiveType, mMeshData->GetMaterial(ColorCode));
+		}
 
-		lcMeshLoaderSection* DstSection = AddSection(PrimitiveType, ColorCode, Texture);
 		DstSection->mIndices.AllocGrow(SrcSection->mIndices.GetSize());
 
 		if (PrimitiveType == LC_MESH_CONDITIONAL_LINES)
 		{
-			for (quint32 Index : SrcSection->mIndices)
+			for (const quint32 Index : SrcSection->mIndices)
 				DstSection->mIndices.Add(ConditionalRemap[Index]);
 		}
 		else if (!InvertWinding || (PrimitiveType == LC_MESH_LINES))
 		{
-			for (quint32 Index : SrcSection->mIndices)
+			for (const quint32 Index : SrcSection->mIndices)
 				DstSection->mIndices.Add(IndexRemap[Index]);
 		}
 		else
@@ -699,52 +415,24 @@ void lcMeshLoaderTypeData::AddMeshDataNoDuplicateCheck(const lcMeshLoaderTypeDat
 	quint32 BaseIndex;
 	const lcMatrix33 NormalTransform = lcMatrix33Transpose(lcMatrix33(lcMatrix44Inverse(Transform)));
 
-	if (!TextureMap)
-	{
-		BaseIndex = mVertices.GetSize();
+	BaseIndex = mVertices.GetSize();
 
-		mVertices.SetGrow(lcMin(mVertices.GetSize(), 8 * 1024 * 1024));
-		mVertices.AllocGrow(DataVertices.GetSize());
+	mVertices.SetGrow(lcMin(mVertices.GetSize(), 8 * 1024 * 1024));
+	mVertices.AllocGrow(DataVertices.GetSize());
 
-		for (int SrcVertexIdx = 0; SrcVertexIdx < DataVertices.GetSize(); SrcVertexIdx++)
-		{
-			const lcMeshLoaderVertex& SrcVertex = DataVertices[SrcVertexIdx];
-			lcMeshLoaderVertex& DstVertex = mVertices.Add();
-			DstVertex.Position = lcMul31(SrcVertex.Position, Transform);
-			DstVertex.Normal = lcNormalize(lcMul(SrcVertex.Normal, NormalTransform));
-			if (InvertNormals)
-				DstVertex.Normal = -DstVertex.Normal;
-			DstVertex.NormalWeight = SrcVertex.NormalWeight;
-			DstVertex.TexCoord = SrcVertex.TexCoord;
-			DstVertex.Usage = SrcVertex.Usage;
-		}
-	}
-	else
+	for (int SrcVertexIdx = 0; SrcVertexIdx < DataVertices.GetSize(); SrcVertexIdx++)
 	{
-		BaseIndex = mVertices.GetSize();
-
-		mVertices.AllocGrow(DataVertices.GetSize());
-
-		for (int SrcVertexIdx = 0; SrcVertexIdx < DataVertices.GetSize(); SrcVertexIdx++)
-		{
-			const lcMeshLoaderVertex& SrcVertex = DataVertices[SrcVertexIdx];
-			lcMeshLoaderVertex& DstVertex = mVertices.Add();
-
-			lcVector3 Position = lcMul31(SrcVertex.Position, Transform);
-			lcVector2 TexCoord = lcCalculateTexCoord(Position, TextureMap);
-
-			DstVertex.Position = Position;
-			DstVertex.Normal = lcNormalize(lcMul(SrcVertex.Normal, NormalTransform));
-			if (InvertNormals)
-				DstVertex.Normal = -DstVertex.Normal;
-			DstVertex.NormalWeight = SrcVertex.NormalWeight;
-			DstVertex.TexCoord = TexCoord;
-			DstVertex.Usage = LC_LIBRARY_VERTEX_TEXTURED;
-		}
+		const lcMeshLoaderVertex& SrcVertex = DataVertices[SrcVertexIdx];
+		lcMeshLoaderVertex& DstVertex = mVertices.Add();
+		DstVertex.Position = lcMul31(SrcVertex.Position, Transform);
+		DstVertex.Normal = lcNormalize(lcMul(SrcVertex.Normal, NormalTransform));
+		if (InvertNormals)
+			DstVertex.Normal = -DstVertex.Normal;
+		DstVertex.NormalWeight = SrcVertex.NormalWeight;
 	}
 
 	mConditionalVertices.AllocGrow(Data.mConditionalVertices.GetSize());
-	quint32 BaseConditional = mConditionalVertices.GetSize();
+	const quint32 BaseConditional = mConditionalVertices.GetSize();
 
 	for (const lcMeshLoaderConditionalVertex& DataVertex : Data.mConditionalVertices)
 	{
@@ -758,32 +446,41 @@ void lcMeshLoaderTypeData::AddMeshDataNoDuplicateCheck(const lcMeshLoaderTypeDat
 
 	for (const std::unique_ptr<lcMeshLoaderSection>& SrcSection : Data.mSections)
 	{
-		quint32 ColorCode = SrcSection->mColor == 16 ? CurrentColorCode : SrcSection->mColor;
-		lcTexture* Texture;
+		const quint32 ColorCode = SrcSection->mMaterial->Color == 16 ? CurrentColorCode : SrcSection->mMaterial->Color;
 		lcMeshPrimitiveType PrimitiveType = SrcSection->mPrimitiveType;
+		lcMeshLoaderSection* DstSection;
+
+		if (SrcSection->mMaterial->Type != lcMeshLoaderMaterialType::Solid)
+		{
+			lcMeshLoaderTextureMap DstTextureMap = *TextureMap;
+
+			for (lcVector3& Point : DstTextureMap.Points)
+				Point = lcMul31(Point, Transform);
 
-		if (SrcSection->mTexture)
-			Texture = SrcSection->mTexture;
+			DstSection = AddSection(PrimitiveType, mMeshData->GetTexturedMaterial(ColorCode, DstTextureMap));
+		}
 		else if (TextureMap && SrcSection->mPrimitiveType == LC_MESH_TRIANGLES)
 		{
-			Texture = TextureMap->Texture;
 			PrimitiveType = LC_MESH_TEXTURED_TRIANGLES;
+
+			DstSection = AddSection(PrimitiveType, mMeshData->GetTexturedMaterial(ColorCode, *TextureMap));
 		}
 		else
-			Texture = nullptr;
+		{
+			DstSection = AddSection(PrimitiveType, mMeshData->GetMaterial(ColorCode));
+		}
 
-		lcMeshLoaderSection* DstSection = AddSection(SrcSection->mPrimitiveType, ColorCode, Texture);
 		DstSection->mIndices.SetGrow(lcMin(DstSection->mIndices.GetSize(), 8 * 1024 * 1024));
 		DstSection->mIndices.AllocGrow(SrcSection->mIndices.GetSize());
 
 		if (PrimitiveType == LC_MESH_CONDITIONAL_LINES)
 		{
-			for (quint32 Index : SrcSection->mIndices)
+			for (const quint32 Index : SrcSection->mIndices)
 				DstSection->mIndices.Add(BaseConditional + Index);
 		}
 		else if (!InvertWinding || (PrimitiveType == LC_MESH_LINES))
 		{
-			for (quint32 Index : SrcSection->mIndices)
+			for (const quint32 Index : SrcSection->mIndices)
 				DstSection->mIndices.Add(BaseIndex + Index);
 		}
 		else
@@ -811,9 +508,9 @@ void lcLibraryMeshData::AddVertices(lcMeshDataType MeshDataType, int VertexCount
 
 void lcLibraryMeshData::AddIndices(lcMeshDataType MeshDataType, lcMeshPrimitiveType PrimitiveType, quint32 ColorCode, int IndexCount, quint32** IndexBuffer)
 {
-	lcMeshLoaderSection* Section = mData[MeshDataType].AddSection(PrimitiveType, ColorCode, nullptr);
+	lcMeshLoaderSection* Section = mData[MeshDataType].AddSection(PrimitiveType, GetMaterial(ColorCode));
 	lcArray<quint32>& Indices = Section->mIndices;
-	int CurrentSize = Indices.GetSize();
+	const int CurrentSize = Indices.GetSize();
 
 	Indices.SetSize(CurrentSize + IndexCount);
 
@@ -842,20 +539,68 @@ void lcLibraryMeshData::AddMeshDataNoDuplicateCheck(const lcLibraryMeshData& Dat
 	mHasTextures |= (Data.mHasTextures || TextureMap);
 }
 
-struct lcMergeSection
+lcMeshLoaderMaterial* lcLibraryMeshData::GetMaterial(quint32 ColorCode)
 {
-	lcMeshLoaderSection* Shared;
-	lcMeshLoaderSection* Lod;
-};
+	for (const std::unique_ptr<lcMeshLoaderMaterial>& Material : mMaterials)
+		if (Material->Type == lcMeshLoaderMaterialType::Solid && Material->Color == ColorCode)
+			return Material.get();
+
+	lcMeshLoaderMaterial* Material = new lcMeshLoaderMaterial();
+	mMaterials.emplace_back(Material);
+
+	Material->Type = lcMeshLoaderMaterialType::Solid;
+	Material->Color = ColorCode;
 
-static bool lcLibraryMeshSectionCompare(const lcMergeSection& First, const lcMergeSection& Second)
+	return Material;
+}
+
+lcMeshLoaderMaterial* lcLibraryMeshData::GetTexturedMaterial(quint32 ColorCode, const lcMeshLoaderTextureMap& TextureMap)
 {
-	lcMeshLoaderSection* a = First.Lod ? First.Lod : First.Shared;
-	lcMeshLoaderSection* b = Second.Lod ? Second.Lod : Second.Shared;
+	for (const std::unique_ptr<lcMeshLoaderMaterial>& Material : mMaterials)
+	{
+		if (Material->Type != TextureMap.Type || Material->Color != ColorCode)
+			continue;
+
+		if (strcmp(Material->Name, TextureMap.Name))
+			continue;
+
+		if (Material->Points[0] != TextureMap.Points[0] || Material->Points[1] != TextureMap.Points[1] || Material->Points[2] != TextureMap.Points[2])
+			continue;
+
+		if (Material->Type == lcMeshLoaderMaterialType::Cylindrical)
+		{
+			if (Material->Angles[0] != TextureMap.Angles[0])
+				continue;
+		}
+		else if (Material->Type == lcMeshLoaderMaterialType::Spherical)
+		{
+			if (Material->Angles[0] != TextureMap.Angles[0] || Material->Angles[1] != TextureMap.Angles[1])
+				continue;
+		}
+
+		return Material.get();
+	}
+
+	lcMeshLoaderMaterial* Material = new lcMeshLoaderMaterial();
+	mMaterials.emplace_back(Material);
+
+	Material->Type = TextureMap.Type;
+	Material->Color = ColorCode;
+	Material->Points[0] = TextureMap.Points[0];
+	Material->Points[1] = TextureMap.Points[1];
+	Material->Points[2] = TextureMap.Points[2];
+	Material->Angles[0] = TextureMap.Angles[0];
+	Material->Angles[1] = TextureMap.Angles[1];
+	strcpy(Material->Name, TextureMap.Name);
+
+	return Material;
+}
 
-	if (a->mPrimitiveType != b->mPrimitiveType)
+static bool lcMeshLoaderFinalSectionCompare(const lcMeshLoaderFinalSection& a, const lcMeshLoaderFinalSection& b)
+{
+	if (a.PrimitiveType != b.PrimitiveType)
 	{
-		int PrimitiveOrder[LC_MESH_NUM_PRIMITIVE_TYPES] =
+		const lcMeshPrimitiveType PrimitiveOrder[LC_MESH_NUM_PRIMITIVE_TYPES] =
 		{
 			LC_MESH_TRIANGLES,
 			LC_MESH_TEXTURED_TRIANGLES,
@@ -865,390 +610,386 @@ static bool lcLibraryMeshSectionCompare(const lcMergeSection& First, const lcMer
 
 		for (int PrimitiveType = 0; PrimitiveType < LC_MESH_NUM_PRIMITIVE_TYPES; PrimitiveType++)
 		{
-			int Primitive = PrimitiveOrder[PrimitiveType];
+			const lcMeshPrimitiveType Primitive = PrimitiveOrder[PrimitiveType];
 
-			if (a->mPrimitiveType == Primitive)
+			if (a.PrimitiveType == Primitive)
 				return true;
 
-			if (b->mPrimitiveType == Primitive)
+			if (b.PrimitiveType == Primitive)
 				return false;
 		}
 	}
 
-	bool TranslucentA = lcIsColorTranslucent(a->mColor);
-	bool TranslucentB = lcIsColorTranslucent(b->mColor);
+	const bool TranslucentA = lcIsColorTranslucent(a.Color);
+	const bool TranslucentB = lcIsColorTranslucent(b.Color);
 
 	if (TranslucentA != TranslucentB)
 		return !TranslucentA;
 
-	return a->mColor > b->mColor;
+	return a.Color > b.Color;
 }
 
-lcMesh* lcLibraryMeshData::CreateMesh()
+quint32 lcLibraryMeshData::AddTexturedVertex(const lcVector3& Position, const lcVector3& Normal, const lcVector2& TexCoords)
 {
-	lcMesh* Mesh = new lcMesh();
+	for (int VertexIndex = mTexturedVertices.GetSize() - 1; VertexIndex >= 0; VertexIndex--)
+	{
+		const lcMeshLoaderTexturedVertex& Vertex = mTexturedVertices[VertexIndex];
 
-	int BaseVertices[LC_NUM_MESHDATA_TYPES];
-	int BaseTexturedVertices[LC_NUM_MESHDATA_TYPES];
-	int BaseConditionalVertices[LC_NUM_MESHDATA_TYPES];
-	int NumVertices = 0;
-	int NumTexturedVertices = 0;
-	int ConditionalVertexCount = 0;
-	std::vector<quint32> IndexRemap[LC_NUM_MESHDATA_TYPES];
-	std::vector<quint32> TexturedIndexRemap[LC_NUM_MESHDATA_TYPES];
+		if (Vertex.Position == Position && Vertex.Normal == Normal && Vertex.TexCoords == TexCoords)
+			return VertexIndex;
+	}
+
+	lcMeshLoaderTexturedVertex& Vertex = mTexturedVertices.Add();
+
+	Vertex.Position = Position;
+	Vertex.Normal = Normal;
+	Vertex.TexCoords = TexCoords;
+
+	return mTexturedVertices.GetSize() - 1;
+}
+
+void lcLibraryMeshData::GeneratePlanarTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data)
+{
+	const lcMeshLoaderMaterial* Material = Section->mMaterial;
+	lcVector4 Planes[2];
+
+	for (int EdgeIdx = 0; EdgeIdx < 2; EdgeIdx++)
+	{
+		lcVector3 Normal = Material->Points[EdgeIdx + 1] - Material->Points[0];
+		const float Length = lcLength(Normal);
+		Normal /= Length;
+
+		Planes[EdgeIdx].x = Normal.x / Length;
+		Planes[EdgeIdx].y = Normal.y / Length;
+		Planes[EdgeIdx].z = Normal.z / Length;
+		Planes[EdgeIdx].w = -lcDot(Normal, Material->Points[0]) / Length;
+	}
+
+	for (quint32& Index : Section->mIndices)
+	{
+		const lcMeshLoaderVertex& SrcVertex = Data.mVertices[Index];
+
+		const lcVector2 TexCoords(lcDot3(SrcVertex.Position, Planes[0]) + Planes[0].w, lcDot3(SrcVertex.Position, Planes[1]) + Planes[1].w);
 
-	if (!mHasTextures)
+		Index = AddTexturedVertex(SrcVertex.Position, SrcVertex.Normal, TexCoords);
+	}
+}
+
+void lcLibraryMeshData::GenerateCylindricalTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data)
+{
+	const lcMeshLoaderMaterial* Material = Section->mMaterial;
+	const lcVector3 Up = Material->Points[0] - Material->Points[1];
+	const float UpLength = lcLength(Up);
+	const lcVector3 Front = lcNormalize(Material->Points[2] - Material->Points[1]);
+	const lcVector3 Plane1Normal = Up / UpLength;
+	const lcVector3 Plane2Normal = lcNormalize(lcCross(Front, Up));
+	const lcVector4 FrontPlane = lcVector4(Front, -lcDot(Front, Material->Points[1]));
+	const lcVector4 Plane1 = lcVector4(Plane1Normal, -lcDot(Plane1Normal, Material->Points[1]));
+	const lcVector4 Plane2 = lcVector4(Plane2Normal, -lcDot(Plane2Normal, Material->Points[1]));
+	const float Angle = 360.0f / Material->Angles[0];
+
+	for (int TriangleIndex = 0; TriangleIndex < Section->mIndices.GetSize(); TriangleIndex += 3)
 	{
-		for (int MeshDataIdx = 0; MeshDataIdx < LC_NUM_MESHDATA_TYPES; MeshDataIdx++)
+		const lcVector3 Positions[3] =
 		{
-			std::vector<std::unique_ptr<lcMeshLoaderSection>>& Sections = mData[MeshDataIdx].mSections;
+			Data.mVertices[Section->mIndices[TriangleIndex + 0]].Position,
+			Data.mVertices[Section->mIndices[TriangleIndex + 1]].Position,
+			Data.mVertices[Section->mIndices[TriangleIndex + 2]].Position
+		};
 
-			for (const std::unique_ptr<lcMeshLoaderSection>& Section : Sections)
-				Section->mColor = lcGetColorIndex(Section->mColor);
+		lcVector2 TexCoords[3];
 
-			BaseVertices[MeshDataIdx] = NumVertices;
-			NumVertices += mData[MeshDataIdx].mVertices.GetSize();
-			BaseConditionalVertices[MeshDataIdx] = ConditionalVertexCount;
-			ConditionalVertexCount += mData[MeshDataIdx].mConditionalVertices.GetSize();
+		for (int CornerIndex = 0; CornerIndex < 3; CornerIndex++)
+		{
+			const float DotPlane1 = lcDot(lcVector4(Positions[CornerIndex], 1.0f), Plane1);
+			const lcVector3 PointInPlane1 = Positions[CornerIndex] - lcVector3(Plane1) * DotPlane1;
+			const float DotFrontPlane = lcDot(lcVector4(PointInPlane1, 1.0f), FrontPlane);
+			const float DotPlane2 = lcDot(lcVector4(PointInPlane1, 1.0f), Plane2);
+			const float Angle1 = atan2f(DotPlane2, DotFrontPlane) / LC_PI * Angle;
+
+			TexCoords[CornerIndex].x = lcClamp(0.5f + 0.5f * Angle1, 0.0f, 1.0f);
+			TexCoords[CornerIndex].y = DotPlane1 / UpLength;
 		}
+
+		lcCheckTexCoordsWrap(Plane2, Positions, TexCoords);
+
+		for (int CornerIndex = 0; CornerIndex < 3; CornerIndex++)
+			Section->mIndices[TriangleIndex + CornerIndex] = AddTexturedVertex(Positions[CornerIndex], Data.mVertices[Section->mIndices[TriangleIndex + CornerIndex]].Normal, TexCoords[CornerIndex]);
 	}
-	else
+}
+
+void lcLibraryMeshData::GenerateSphericalTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data)
+{
+	const lcMeshLoaderMaterial* Material = Section->mMaterial;
+	const lcVector3 Front = lcNormalize(Material->Points[1] - Material->Points[0]);
+	const lcVector3 Plane1Normal = lcNormalize(lcCross(Front, Material->Points[2] - Material->Points[0]));
+	const lcVector3 Plane2Normal = lcNormalize(lcCross(Plane1Normal, Front));
+	const lcVector4 FrontPlane = lcVector4(Front, -lcDot(Front, Material->Points[0]));
+	const lcVector3 Center = Material->Points[0];
+	const lcVector4 Plane1 = lcVector4(Plane1Normal, -lcDot(Plane1Normal, Material->Points[0]));
+	const lcVector4 Plane2 = lcVector4(Plane2Normal, -lcDot(Plane2Normal, Material->Points[0]));
+	const float Angle1 = 360.0f / Material->Angles[0];
+	const float Angle2 = 180.0f / Material->Angles[1];
+
+	for (int TriangleIndex = 0; TriangleIndex < Section->mIndices.GetSize(); TriangleIndex += 3)
 	{
-		for (int MeshDataIdx = 0; MeshDataIdx < LC_NUM_MESHDATA_TYPES; MeshDataIdx++)
+		const lcVector3 Positions[3] =
+		{
+			Data.mVertices[Section->mIndices[TriangleIndex + 0]].Position,
+			Data.mVertices[Section->mIndices[TriangleIndex + 1]].Position,
+			Data.mVertices[Section->mIndices[TriangleIndex + 2]].Position
+		};
+
+		lcVector2 TexCoords[3];
+
+		for (int CornerIndex = 0; CornerIndex < 3; CornerIndex++)
 		{
-			std::vector<std::unique_ptr<lcMeshLoaderSection>>& Sections = mData[MeshDataIdx].mSections;
+			const lcVector3 VertexDir = Positions[CornerIndex] - Center;
 
-			for (const std::unique_ptr<lcMeshLoaderSection>& Section : Sections)
-				Section->mColor = lcGetColorIndex(Section->mColor);
+			const float DotPlane1 = lcDot(lcVector4(Positions[CornerIndex], 1.0f), Plane1);
+			const lcVector3 PointInPlane1 = Positions[CornerIndex] - lcVector3(Plane1) * DotPlane1;
+			const float DotFrontPlane = lcDot(lcVector4(PointInPlane1, 1.0f), FrontPlane);
+			const float DotPlane2 = lcDot(lcVector4(PointInPlane1, 1.0f), Plane2);
 
-			BaseVertices[MeshDataIdx] = NumVertices;
-			BaseTexturedVertices[MeshDataIdx] = NumTexturedVertices;
+			const float AngleX = atan2f(DotPlane2, DotFrontPlane) / LC_PI * Angle1;
+			TexCoords[CornerIndex].x = 0.5f + 0.5f * AngleX;
 
-			const lcArray<lcMeshLoaderVertex>& Vertices = mData[MeshDataIdx].mVertices;
-			IndexRemap[MeshDataIdx].resize(Vertices.GetSize());
-			TexturedIndexRemap[MeshDataIdx].resize(Vertices.GetSize());
+			const float AngleY = asinf(DotPlane1 / lcLength(VertexDir)) / LC_PI * Angle2;
+			TexCoords[CornerIndex].y = 0.5f - AngleY;
+		}
+
+		lcCheckTexCoordsWrap(Plane2, Positions, TexCoords);
+		lcCheckTexCoordsPole(FrontPlane, Plane2, Positions, TexCoords);
+
+		for (int CornerIndex = 0; CornerIndex < 3; CornerIndex++)
+			Section->mIndices[TriangleIndex + CornerIndex] = AddTexturedVertex(Positions[CornerIndex], Data.mVertices[Section->mIndices[TriangleIndex + CornerIndex]].Normal, TexCoords[CornerIndex]);
+	}
+}
 
-			for (int VertexIdx = 0; VertexIdx < Vertices.GetSize(); VertexIdx++)
+void lcLibraryMeshData::GenerateTexturedVertices()
+{
+	for (lcMeshLoaderTypeData& Data : mData)
+	{
+		for (const std::unique_ptr<lcMeshLoaderSection>& Section : Data.mSections)
+		{
+			switch (Section->mMaterial->Type)
 			{
-				const lcMeshLoaderVertex& Vertex = Vertices[VertexIdx];
+				case lcMeshLoaderMaterialType::Solid:
+					break;
 
-				if (Vertex.Usage & LC_LIBRARY_VERTEX_UNTEXTURED)
-				{
-					IndexRemap[MeshDataIdx][VertexIdx] = NumVertices;
-					NumVertices++;
-				}
+				case lcMeshLoaderMaterialType::Planar:
+					GeneratePlanarTexcoords(Section.get(), Data);
+					break;
 
-				if (Vertex.Usage & LC_LIBRARY_VERTEX_TEXTURED)
-				{
-					TexturedIndexRemap[MeshDataIdx][VertexIdx] = NumTexturedVertices;
-					NumTexturedVertices++;
-				}
-			}
+				case lcMeshLoaderMaterialType::Cylindrical:
+					GenerateCylindricalTexcoords(Section.get(), Data);
+					break;
 
-			BaseConditionalVertices[MeshDataIdx] = ConditionalVertexCount;
-			ConditionalVertexCount += mData[MeshDataIdx].mConditionalVertices.GetSize();
+				case lcMeshLoaderMaterialType::Spherical:
+					GenerateSphericalTexcoords(Section.get(), Data);
+					break;
+			}
 		}
 	}
+}
+
+lcMesh* lcLibraryMeshData::CreateMesh()
+{
+	lcMesh* Mesh = new lcMesh();
+
+	int BaseVertices[LC_NUM_MESHDATA_TYPES];
+	int BaseConditionalVertices[LC_NUM_MESHDATA_TYPES];
+	int NumVertices = 0;
+	int ConditionalVertexCount = 0;
+
+	for (const std::unique_ptr<lcMeshLoaderMaterial>& Material : mMaterials)
+		Material->Color = lcGetColorIndex(Material->Color);
+
+	for (int MeshDataIdx = 0; MeshDataIdx < LC_NUM_MESHDATA_TYPES; MeshDataIdx++)
+	{
+		BaseVertices[MeshDataIdx] = NumVertices;
+		NumVertices += mData[MeshDataIdx].mVertices.GetSize();
+		BaseConditionalVertices[MeshDataIdx] = ConditionalVertexCount;
+		ConditionalVertexCount += mData[MeshDataIdx].mConditionalVertices.GetSize();
+	}
+
+	if (mHasTextures)
+		GenerateTexturedVertices();
 
 	quint16 NumSections[LC_NUM_MESH_LODS];
 	int NumIndices = 0;
 
-	lcArray<lcMergeSection> MergeSections[LC_NUM_MESH_LODS];
+	lcArray<lcMeshLoaderFinalSection> FinalSections[LC_NUM_MESH_LODS];
 
 	for (int LodIdx = 0; LodIdx < LC_NUM_MESH_LODS; LodIdx++)
 	{
-		std::vector<std::unique_ptr<lcMeshLoaderSection>>& SharedSections = mData[LC_MESHDATA_SHARED].mSections;
-		std::vector<std::unique_ptr<lcMeshLoaderSection>>& Sections = mData[LodIdx].mSections;
-
-		for (std::unique_ptr<lcMeshLoaderSection>& SharedSection : SharedSections)
+		auto AddFinalSection = [](lcMeshLoaderSection* Section, lcArray<lcMeshLoaderFinalSection>& FinalSections)
 		{
-			NumIndices += SharedSection->mIndices.GetSize();
+			for (const lcMeshLoaderFinalSection& FinalSection : FinalSections)
+				if (FinalSection.PrimitiveType == Section->mPrimitiveType && FinalSection.Color == Section->mMaterial->Color && !strcmp(FinalSection.Name, Section->mMaterial->Name))
+					return;
 
-			lcMergeSection& MergeSection = MergeSections[LodIdx].Add();
-			MergeSection.Shared = SharedSection.get();
-			MergeSection.Lod = nullptr;
-		}
+			lcMeshLoaderFinalSection& FinalSection = FinalSections.Add();
 
-		for (std::unique_ptr<lcMeshLoaderSection>& Section : Sections)
-		{
-			bool Found = false;
+			FinalSection.PrimitiveType = Section->mPrimitiveType;
+			FinalSection.Color = Section->mMaterial->Color;
+			strcpy(FinalSection.Name, Section->mMaterial->Name);
+		};
 
+		for (const std::unique_ptr<lcMeshLoaderSection>& Section : mData[LC_MESHDATA_SHARED].mSections)
+		{
 			NumIndices += Section->mIndices.GetSize();
 
-			for (int SharedSectionIdx = 0; SharedSectionIdx < (int)SharedSections.size(); SharedSectionIdx++)
-			{
-				lcMeshLoaderSection* SharedSection = SharedSections[SharedSectionIdx].get();
+			AddFinalSection(Section.get(), FinalSections[LodIdx]);
+		}
 
-				if (SharedSection->mColor == Section->mColor && SharedSection->mPrimitiveType == Section->mPrimitiveType && SharedSection->mTexture == Section->mTexture)
-				{
-					lcMergeSection& MergeSection = MergeSections[LodIdx][SharedSectionIdx];
-					MergeSection.Lod = Section.get();
-					Found = true;
-					break;
-				}
-			}
+		for (const std::unique_ptr<lcMeshLoaderSection>& Section : mData[LodIdx].mSections)
+		{
+			NumIndices += Section->mIndices.GetSize();
 
-			if (!Found)
-			{
-				lcMergeSection& MergeSection = MergeSections[LodIdx].Add();
-				MergeSection.Shared = nullptr;
-				MergeSection.Lod = Section.get();
-			}
+			AddFinalSection(Section.get(), FinalSections[LodIdx]);
 		}
 
-		NumSections[LodIdx] = MergeSections[LodIdx].GetSize();
-		std::sort(MergeSections[LodIdx].begin(), MergeSections[LodIdx].end(), lcLibraryMeshSectionCompare);
+		NumSections[LodIdx] = FinalSections[LodIdx].GetSize();
+		std::sort(FinalSections[LodIdx].begin(), FinalSections[LodIdx].end(), lcMeshLoaderFinalSectionCompare);
 	}
 
-	Mesh->Create(NumSections, NumVertices, NumTexturedVertices, ConditionalVertexCount, NumIndices);
+	Mesh->Create(NumSections, NumVertices, mTexturedVertices.GetSize(), ConditionalVertexCount, NumIndices);
 
 	lcVertex* DstVerts = (lcVertex*)Mesh->mVertexData;
 
-	if (!mHasTextures)
+	for (const lcMeshLoaderTypeData& Data : mData)
 	{
-		for (lcMeshLoaderTypeData& Data : mData)
+		for (const lcMeshLoaderVertex& SrcVertex : Data.mVertices)
 		{
-			for (const lcMeshLoaderVertex& SrcVertex : Data.mVertices)
-			{
-				lcVertex& DstVertex = *DstVerts++;
+			lcVertex& DstVertex = *DstVerts++;
 
-				DstVertex.Position = lcVector3LDrawToLeoCAD(SrcVertex.Position);
-				DstVertex.Normal = lcPackNormal(lcVector3LDrawToLeoCAD(SrcVertex.Normal));
-			}
+			DstVertex.Position = lcVector3LDrawToLeoCAD(SrcVertex.Position);
+			DstVertex.Normal = lcPackNormal(lcVector3LDrawToLeoCAD(SrcVertex.Normal));
 		}
+	}
 
-		lcVertexConditional* DstConditionalVerts = (lcVertexConditional*)DstVerts;
-
-		for (lcMeshLoaderTypeData& Data : mData)
-		{
-			for (const lcMeshLoaderConditionalVertex& SrcVertex : Data.mConditionalVertices)
-			{
-				lcVertexConditional& DstVertex = *DstConditionalVerts++;
+	lcVertexTextured* DstTexturedVerts = (lcVertexTextured*)DstVerts;
 
-				DstVertex.Position1 = lcVector3LDrawToLeoCAD(SrcVertex.Position[0]);
-				DstVertex.Position2 = lcVector3LDrawToLeoCAD(SrcVertex.Position[1]);
-				DstVertex.Position3 = lcVector3LDrawToLeoCAD(SrcVertex.Position[2]);
-				DstVertex.Position4 = lcVector3LDrawToLeoCAD(SrcVertex.Position[3]);
-			}
-		}
-	}
-	else
+	if (mHasTextures)
 	{
-		for (lcMeshLoaderTypeData& Data : mData)
+		for (const lcMeshLoaderTexturedVertex& SrcVertex : mTexturedVertices)
 		{
-			for (const lcMeshLoaderVertex& SrcVertex : Data.mVertices)
-			{
-				if ((SrcVertex.Usage & LC_LIBRARY_VERTEX_UNTEXTURED) == 0)
-					continue;
-
-				lcVertex& DstVertex = *DstVerts++;
+			lcVertexTextured& DstVertex = *DstTexturedVerts++;
 
-				DstVertex.Position = lcVector3LDrawToLeoCAD(SrcVertex.Position);
-				DstVertex.Normal = lcPackNormal(lcVector3LDrawToLeoCAD(SrcVertex.Normal));
-			}
+			DstVertex.Position = lcVector3LDrawToLeoCAD(SrcVertex.Position);
+			DstVertex.Normal = lcPackNormal(lcVector3LDrawToLeoCAD(SrcVertex.Normal));
+			DstVertex.TexCoord = SrcVertex.TexCoords;
 		}
+	}
 
-		lcVertexTextured* DstTexturedVerts = (lcVertexTextured*)DstVerts;
+	lcVertexConditional* DstConditionalVerts = (lcVertexConditional*)DstTexturedVerts;
 
-		for (lcMeshLoaderTypeData& Data : mData)
+	for (const lcMeshLoaderTypeData& Data : mData)
+	{
+		for (const lcMeshLoaderConditionalVertex& SrcVertex : Data.mConditionalVertices)
 		{
-			for (const lcMeshLoaderVertex& SrcVertex : Data.mVertices)
-			{
-				if ((SrcVertex.Usage & LC_LIBRARY_VERTEX_TEXTURED) == 0)
-					continue;
-
-				lcVertexTextured& DstVertex = *DstTexturedVerts++;
+			lcVertexConditional& DstVertex = *DstConditionalVerts++;
 
-				DstVertex.Position = lcVector3LDrawToLeoCAD(SrcVertex.Position);
-				DstVertex.Normal = lcPackNormal(lcVector3LDrawToLeoCAD(SrcVertex.Normal));
-				DstVertex.TexCoord = SrcVertex.TexCoord;
-			}
+			DstVertex.Position1 = lcVector3LDrawToLeoCAD(SrcVertex.Position[0]);
+			DstVertex.Position2 = lcVector3LDrawToLeoCAD(SrcVertex.Position[1]);
+			DstVertex.Position3 = lcVector3LDrawToLeoCAD(SrcVertex.Position[2]);
+			DstVertex.Position4 = lcVector3LDrawToLeoCAD(SrcVertex.Position[3]);
 		}
+	}
 
-		for (int MeshDataIdx = 0; MeshDataIdx < LC_NUM_MESHDATA_TYPES; MeshDataIdx++)
-		{
-			for (const std::unique_ptr<lcMeshLoaderSection>& Section : mData[MeshDataIdx].mSections)
-			{
-				if (Section->mPrimitiveType == LC_MESH_TRIANGLES)
-				{
-					for (quint32& Index : Section->mIndices)
-						Index = IndexRemap[MeshDataIdx][Index];
-				}
-				else if (Section->mPrimitiveType != LC_MESH_CONDITIONAL_LINES)
-				{
-					if (!Section->mTexture)
-					{
-						for (quint32& Index : Section->mIndices)
-							Index = IndexRemap[MeshDataIdx][Index];
-					}
-					else
-					{
-						for (quint32& Index : Section->mIndices)
-							Index = TexturedIndexRemap[MeshDataIdx][Index];
-					}
-				}
-			}
-		}
+	if (Mesh->mIndexType == GL_UNSIGNED_SHORT)
+		WriteSections<quint16>(Mesh, FinalSections, BaseVertices, BaseConditionalVertices);
+	else
+		WriteSections<quint32>(Mesh, FinalSections, BaseVertices, BaseConditionalVertices);
 
-		lcVertexConditional* DstConditionalVerts = (lcVertexConditional*)DstTexturedVerts;
+	if (mHasStyleStud)
+		Mesh->mFlags |= lcMeshFlag::HasStyleStud;
 
-		for (lcMeshLoaderTypeData& Data : mData)
-		{
-			for (const lcMeshLoaderConditionalVertex& SrcVertex : Data.mConditionalVertices)
-			{
-				lcVertexConditional& DstVertex = *DstConditionalVerts++;
+	UpdateMeshBoundingBox(Mesh);
 
-				DstVertex.Position1 = lcVector3LDrawToLeoCAD(SrcVertex.Position[0]);
-				DstVertex.Position2 = lcVector3LDrawToLeoCAD(SrcVertex.Position[1]);
-				DstVertex.Position3 = lcVector3LDrawToLeoCAD(SrcVertex.Position[2]);
-				DstVertex.Position4 = lcVector3LDrawToLeoCAD(SrcVertex.Position[3]);
-			}
-		}
-	}
+	return Mesh;
+}
 
-	NumIndices = 0;
+template<typename IndexType>
+void lcLibraryMeshData::WriteSections(lcMesh* Mesh, const lcArray<lcMeshLoaderFinalSection> (&FinalSections)[LC_NUM_MESH_LODS], int(&BaseVertices)[LC_NUM_MESHDATA_TYPES], int(&BaseConditionalVertices)[LC_NUM_MESHDATA_TYPES])
+{
+	int NumIndices = 0;
 
 	for (int LodIdx = 0; LodIdx < LC_NUM_MESH_LODS; LodIdx++)
 	{
-		for (int SectionIdx = 0; SectionIdx < MergeSections[LodIdx].GetSize(); SectionIdx++)
+		for (int SectionIdx = 0; SectionIdx < FinalSections[LodIdx].GetSize(); SectionIdx++)
 		{
-			lcMergeSection& MergeSection = MergeSections[LodIdx][SectionIdx];
+			const lcMeshLoaderFinalSection& FinalSection = FinalSections[LodIdx][SectionIdx];
 			lcMeshSection& DstSection = Mesh->mLods[LodIdx].Sections[SectionIdx];
 
-			lcMeshLoaderSection* SetupSection = MergeSection.Shared ? MergeSection.Shared : MergeSection.Lod;
-
-			DstSection.ColorIndex = SetupSection->mColor;
-			DstSection.PrimitiveType = SetupSection->mPrimitiveType;
+			DstSection.ColorIndex = FinalSection.Color;
+			DstSection.PrimitiveType = FinalSection.PrimitiveType;
 			DstSection.NumIndices = 0;
-			DstSection.Texture = SetupSection->mTexture;
 
-			if (DstSection.Texture)
-				DstSection.Texture->AddRef();
-
-			if (Mesh->mIndexType == GL_UNSIGNED_SHORT)
+			if (!FinalSection.Name[0])
+				DstSection.Texture = nullptr;
+			else
 			{
-				DstSection.IndexOffset = NumIndices * 2;
+				if (mMeshLoader)
+					DstSection.Texture = lcGetPiecesLibrary()->FindTexture(FinalSection.Name, mMeshLoader->mCurrentProject, mMeshLoader->mSearchProjectFolder);
+				else
+					DstSection.Texture = lcGetPiecesLibrary()->FindTexture(FinalSection.Name, nullptr, false);
 
-				quint16* Index = (quint16*)Mesh->mIndexData + NumIndices;
+				if (DstSection.Texture)
+					DstSection.Texture->AddRef();
+			}
 
-				if (MergeSection.Shared)
-				{
-					lcMeshLoaderSection* SrcSection = MergeSection.Shared;
+			DstSection.IndexOffset = NumIndices * sizeof(IndexType);
 
-					if (DstSection.PrimitiveType != LC_MESH_CONDITIONAL_LINES)
-					{
-						if (!mHasTextures)
-						{
-							quint16 BaseVertex = DstSection.Texture ? BaseTexturedVertices[LC_MESHDATA_SHARED] : BaseVertices[LC_MESHDATA_SHARED];
+			IndexType* Index = (IndexType*)Mesh->mIndexData + NumIndices;
 
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
-						}
-						else
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = SrcSection->mIndices[IndexIdx];
-					}
-					else
+			const auto AddSection = [&DstSection, &Index, &BaseVertices, &BaseConditionalVertices](lcMeshLoaderSection* SrcSection, lcMeshDataType SrcDataType)
+			{
+				switch (DstSection.PrimitiveType)
+				{
+					case LC_MESH_LINES:
+					case LC_MESH_TRIANGLES:
 					{
-						quint16 BaseVertex = BaseConditionalVertices[LC_MESHDATA_SHARED];
+						const IndexType BaseVertex = BaseVertices[SrcDataType];
 
 						for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
 							*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
 					}
+					break;
 
-					DstSection.NumIndices += SrcSection->mIndices.GetSize();
-				}
-
-				if (MergeSection.Lod)
-				{
-					lcMeshLoaderSection* SrcSection = MergeSection.Lod;
-
-					if (DstSection.PrimitiveType != LC_MESH_CONDITIONAL_LINES)
-					{
-						if (!mHasTextures)
-						{
-							quint16 BaseVertex = DstSection.Texture ? BaseTexturedVertices[LodIdx] : BaseVertices[LodIdx];
-
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
-						}
-						else
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = SrcSection->mIndices[IndexIdx];
-					}
-					else
+					case LC_MESH_CONDITIONAL_LINES:
 					{
-						quint16 BaseVertex = BaseConditionalVertices[LodIdx];
+						const IndexType BaseVertex = BaseConditionalVertices[SrcDataType];
 
 						for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
 							*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
 					}
+					break;
 
-					DstSection.NumIndices += SrcSection->mIndices.GetSize();
-				}
-			}
-			else
-			{
-				DstSection.IndexOffset = NumIndices * 4;
-
-				quint32* Index = (quint32*)Mesh->mIndexData + NumIndices;
-
-				if (MergeSection.Shared)
-				{
-					lcMeshLoaderSection* SrcSection = MergeSection.Shared;
-
-					if (DstSection.PrimitiveType != LC_MESH_CONDITIONAL_LINES)
-					{
-						if (!mHasTextures)
-						{
-							quint32 BaseVertex = DstSection.Texture ? BaseTexturedVertices[LC_MESHDATA_SHARED] : BaseVertices[LC_MESHDATA_SHARED];
-
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
-						}
-						else
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = SrcSection->mIndices[IndexIdx];
-					}
-					else
+					case LC_MESH_TEXTURED_TRIANGLES:
 					{
-						quint32 BaseVertex = BaseConditionalVertices[LC_MESHDATA_SHARED];
-
 						for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-							*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
+							*Index++ = SrcSection->mIndices[IndexIdx];
 					}
+					break;
 
-					DstSection.NumIndices += SrcSection->mIndices.GetSize();
+					case LC_MESH_NUM_PRIMITIVE_TYPES:
+						break;
 				}
 
-				if (MergeSection.Lod)
-				{
-					lcMeshLoaderSection* SrcSection = MergeSection.Lod;
-
-					if (DstSection.PrimitiveType != LC_MESH_CONDITIONAL_LINES)
-					{
-						if (!mHasTextures)
-						{
-							quint32 BaseVertex = DstSection.Texture ? BaseTexturedVertices[LodIdx] : BaseVertices[LodIdx];
+				DstSection.NumIndices += SrcSection->mIndices.GetSize();
+			};
 
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
-						}
-						else
-							for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-								*Index++ = SrcSection->mIndices[IndexIdx];
-					}
-					else
-					{
-						quint32 BaseVertex = BaseConditionalVertices[LodIdx];
+			for (const std::unique_ptr<lcMeshLoaderSection>& Section : mData[LC_MESHDATA_SHARED].mSections)
+				if (FinalSection.PrimitiveType == Section->mPrimitiveType && FinalSection.Color == Section->mMaterial->Color && !strcmp(FinalSection.Name, Section->mMaterial->Name))
+					AddSection(Section.get(), LC_MESHDATA_SHARED);
 
-						for (int IndexIdx = 0; IndexIdx < SrcSection->mIndices.GetSize(); IndexIdx++)
-							*Index++ = BaseVertex + SrcSection->mIndices[IndexIdx];
-					}
+			const lcMeshDataType MeshDataType = (LodIdx == LC_MESH_LOD_LOW) ? LC_MESHDATA_LOW : LC_MESHDATA_HIGH;
 
-					DstSection.NumIndices += SrcSection->mIndices.GetSize();
-				}
-			}
+			for (const std::unique_ptr<lcMeshLoaderSection>& Section : mData[MeshDataType].mSections)
+				if (FinalSection.PrimitiveType == Section->mPrimitiveType && FinalSection.Color == Section->mMaterial->Color && !strcmp(FinalSection.Name, Section->mMaterial->Name))
+					AddSection(Section.get(), MeshDataType);
 
 			if (DstSection.PrimitiveType == LC_MESH_TRIANGLES || DstSection.PrimitiveType == LC_MESH_TEXTURED_TRIANGLES)
 			{
@@ -1271,13 +1012,6 @@ lcMesh* lcLibraryMeshData::CreateMesh()
 			NumIndices += DstSection.NumIndices;
 		}
 	}
-
-	if (mHasStyleStud)
-		Mesh->mFlags |= lcMeshFlag::HasStyleStud;
-
-	UpdateMeshBoundingBox(Mesh);
-
-	return Mesh;
 }
 
 void lcLibraryMeshData::UpdateMeshBoundingBox(lcMesh* Mesh)
@@ -1321,13 +1055,14 @@ void lcLibraryMeshData::UpdateMeshBoundingBox(lcMesh* Mesh)
 }
 
 template<typename IndexType>
-void lcLibraryMeshData::UpdateMeshSectionBoundingBox(lcMesh* Mesh, lcMeshSection& Section, lcVector3& SectionMin, lcVector3& SectionMax)
+void lcLibraryMeshData::UpdateMeshSectionBoundingBox(const lcMesh* Mesh, const lcMeshSection& Section, lcVector3& SectionMin, lcVector3& SectionMax)
 {
 	const IndexType* IndexBuffer = reinterpret_cast<IndexType*>(static_cast<char*>(Mesh->mIndexData) + Section.IndexOffset);
 
-	if (!Section.Texture)
+	switch (Section.PrimitiveType)
 	{
-		if (Section.PrimitiveType != LC_MESH_CONDITIONAL_LINES)
+		case LC_MESH_LINES:
+		case LC_MESH_TRIANGLES:
 		{
 			const lcVertex* VertexBuffer = Mesh->GetVertexData();
 
@@ -1338,7 +1073,9 @@ void lcLibraryMeshData::UpdateMeshSectionBoundingBox(lcMesh* Mesh, lcMeshSection
 				SectionMax = lcMax(SectionMax, Position);
 			}
 		}
-		else
+		break;
+
+		case LC_MESH_CONDITIONAL_LINES:
 		{
 			const lcVertexConditional* VertexBuffer = Mesh->GetConditionalVertexData();
 
@@ -1349,33 +1086,38 @@ void lcLibraryMeshData::UpdateMeshSectionBoundingBox(lcMesh* Mesh, lcMeshSection
 				SectionMax = lcMax(SectionMax, Position);
 			}
 		}
-	}
-	else
-	{
-		const lcVertexTextured* VertexBuffer = Mesh->GetTexturedVertexData();
+		break;
 
-		for (int Index = 0; Index < Section.NumIndices; Index++)
+		case LC_MESH_TEXTURED_TRIANGLES:
 		{
-			const lcVector3& Position = VertexBuffer[IndexBuffer[Index]].Position;
-			SectionMin = lcMin(SectionMin, Position);
-			SectionMax = lcMax(SectionMax, Position);
+			const lcVertexTextured* VertexBuffer = Mesh->GetTexturedVertexData();
+
+			for (int Index = 0; Index < Section.NumIndices; Index++)
+			{
+				const lcVector3& Position = VertexBuffer[IndexBuffer[Index]].Position;
+				SectionMin = lcMin(SectionMin, Position);
+				SectionMax = lcMax(SectionMax, Position);
+			}
 		}
+		break;
+
+		case LC_MESH_NUM_PRIMITIVE_TYPES:
+			break;
 	}
 }
 
 lcMeshLoader::lcMeshLoader(lcLibraryMeshData& MeshData, bool Optimize, Project* CurrentProject, bool SearchProjectFolder)
-	: mMeshData(MeshData), mOptimize(Optimize), mCurrentProject(CurrentProject), mSearchProjectFolder(SearchProjectFolder)
+	: mCurrentProject(CurrentProject), mSearchProjectFolder(SearchProjectFolder), mMeshData(MeshData), mOptimize(Optimize)
 {
+	MeshData.SetMeshLoader(this);
 }
 
 bool lcMeshLoader::LoadMesh(lcFile& File, lcMeshDataType MeshDataType)
 {
-	lcArray<lcMeshLoaderTextureMap> TextureStack;
-
-	return ReadMeshData(File, lcMatrix44Identity(), 16, false, TextureStack, MeshDataType);
+	return ReadMeshData(File, lcMatrix44Identity(), 16, false, MeshDataType);
 }
 
-bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform, quint32 CurrentColorCode, bool InvertWinding, lcArray<lcMeshLoaderTextureMap>& TextureStack, lcMeshDataType MeshDataType)
+bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform, quint32 CurrentColorCode, bool InvertWinding, lcMeshDataType MeshDataType)
 {
 	char Buffer[1024];
 	char* Line;
@@ -1475,110 +1217,69 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 					{
 						Token += 7;
 
-						char FileName[LC_MAXPATH];
-						lcVector3 Points[3];
+						mTextureStack.emplace_back();
+						lcMeshLoaderTextureMap& Map = mTextureStack.back();
+						Map.Type = lcMeshLoaderMaterialType::Planar;
 
-						sscanf(Token, "%f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, FileName);
+						lcVector3 (&Points)[3] = Map.Points;
+
+						sscanf(Token, "%f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, Map.Name);
 
 						Points[0] = lcMul31(Points[0], CurrentTransform);
 						Points[1] = lcMul31(Points[1], CurrentTransform);
 						Points[2] = lcMul31(Points[2], CurrentTransform);
 
-						CleanTextureName(FileName);
-
-						lcMeshLoaderTextureMap& Map = TextureStack.Add();
-						Map.Next = false;
-						Map.Fallback = false;
-						Map.Texture = Library->FindTexture(FileName, mCurrentProject, mSearchProjectFolder);
-						Map.Type = lcMeshLoaderTextureMapType::Planar;
-
-						for (int EdgeIdx = 0; EdgeIdx < 2; EdgeIdx++)
-						{
-							lcVector3 Normal = Points[EdgeIdx + 1] - Points[0];
-							float Length = lcLength(Normal);
-							Normal /= Length;
-
-							Map.Params.Planar.Planes[EdgeIdx].x = Normal.x / Length;
-							Map.Params.Planar.Planes[EdgeIdx].y = Normal.y / Length;
-							Map.Params.Planar.Planes[EdgeIdx].z = Normal.z / Length;
-							Map.Params.Planar.Planes[EdgeIdx].w = -lcDot(Normal, Points[0]) / Length;
-						}
+						CleanTextureName(Map.Name);
 					}
 					else if (!strcmp(Token, "CYLINDRICAL"))
 					{
 						Token += 12;
 
-						char FileName[LC_MAXPATH];
-						lcVector3 Points[3];
-						float Angle;
+						mTextureStack.emplace_back();
+						lcMeshLoaderTextureMap& Map = mTextureStack.back();
+						Map.Type = lcMeshLoaderMaterialType::Cylindrical;
+
+						lcVector3 (&Points)[3] = Map.Points;
+						float& Angle = Map.Angles[0];
 
-						sscanf(Token, "%f %f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, &Angle, FileName);
+						sscanf(Token, "%f %f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, &Angle, Map.Name);
 
 						Points[0] = lcMul31(Points[0], CurrentTransform);
 						Points[1] = lcMul31(Points[1], CurrentTransform);
 						Points[2] = lcMul31(Points[2], CurrentTransform);
 
-						CleanTextureName(FileName);
-
-						lcMeshLoaderTextureMap& Map = TextureStack.Add();
-						Map.Next = false;
-						Map.Fallback = false;
-						Map.Texture = Library->FindTexture(FileName, mCurrentProject, mSearchProjectFolder);
-
-						Map.Type = lcMeshLoaderTextureMapType::Cylindrical;
-						lcVector3 Up = Points[0] - Points[1];
-						float UpLength = lcLength(Up);
-						lcVector3 Front = lcNormalize(Points[2] - Points[1]);
-						lcVector3 Plane1Normal = Up / UpLength;
-						lcVector3 Plane2Normal = lcNormalize(lcCross(Front, Up));
-						Map.Params.Cylindrical.FrontPlane = lcVector4(Front, -lcDot(Front, Points[1]));
-						Map.Params.Cylindrical.UpLength = UpLength;
-						Map.Params.Cylindrical.Plane1 = lcVector4(Plane1Normal, -lcDot(Plane1Normal, Points[1]));
-						Map.Params.Cylindrical.Plane2 = lcVector4(Plane2Normal, -lcDot(Plane2Normal, Points[1]));
-						Map.Params.Cylindrical.Angle = 360.0f / Angle;
+						CleanTextureName(Map.Name);
 					}
 					else if (!strcmp(Token, "SPHERICAL"))
 					{
 						Token += 10;
 
-						char FileName[LC_MAXPATH];
-						lcVector3 Points[3];
-						float Angle1, Angle2;
+						mTextureStack.emplace_back();
+						lcMeshLoaderTextureMap& Map = mTextureStack.back();
+						Map.Type = lcMeshLoaderMaterialType::Spherical;
 
-						sscanf(Token, "%f %f %f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, &Angle1, &Angle2, FileName);
+						lcVector3(&Points)[3] = Map.Points;
+						float& Angle1 = Map.Angles[0];
+						float& Angle2 = Map.Angles[1];
+
+						sscanf(Token, "%f %f %f %f %f %f %f %f %f %f %f %s", &Points[0].x, &Points[0].y, &Points[0].z, &Points[1].x, &Points[1].y, &Points[1].z, &Points[2].x, &Points[2].y, &Points[2].z, &Angle1, &Angle2, Map.Name);
 
 						Points[0] = lcMul31(Points[0], CurrentTransform);
 						Points[1] = lcMul31(Points[1], CurrentTransform);
 						Points[2] = lcMul31(Points[2], CurrentTransform);
 
-						CleanTextureName(FileName);
-
-						lcMeshLoaderTextureMap& Map = TextureStack.Add();
-						Map.Next = false;
-						Map.Fallback = false;
-						Map.Texture = Library->FindTexture(FileName, mCurrentProject, mSearchProjectFolder);
-						Map.Type = lcMeshLoaderTextureMapType::Spherical;
-
-						lcVector3 Front = lcNormalize(Points[1] - Points[0]);
-						lcVector3 Plane1Normal = lcNormalize(lcCross(Front, Points[2] - Points[0]));
-						lcVector3 Plane2Normal = lcNormalize(lcCross(Plane1Normal, Front));
-						Map.Params.Spherical.FrontPlane = lcVector4(Front, -lcDot(Front, Points[0]));
-						Map.Params.Spherical.Center = Points[0];
-						Map.Params.Spherical.Plane1 = lcVector4(Plane1Normal, -lcDot(Plane1Normal, Points[0]));
-						Map.Params.Spherical.Plane2 = lcVector4(Plane2Normal, -lcDot(Plane2Normal, Points[0]));
-						Map.Params.Spherical.Angle1 = 360.0f / Angle1;
-						Map.Params.Spherical.Angle2 = 180.0f / Angle2;
+						CleanTextureName(Map.Name);
 					}
 				}
 				else if (!strcmp(Token, "FALLBACK"))
 				{
-					if (TextureStack.GetSize())
-						TextureStack[TextureStack.GetSize() - 1].Fallback = true;
+					if (!mTextureStack.empty())
+						mTextureStack.back().Fallback = true;
 				}
 				else if (!strcmp(Token, "END"))
 				{
-					if (TextureStack.GetSize())
-						TextureStack.RemoveIndex(TextureStack.GetSize() - 1);
+					if (!mTextureStack.empty())
+						mTextureStack.pop_back();
 				}
 
 				continue;
@@ -1613,7 +1314,7 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 
 				Line = Token;
 
-				if (!TextureStack.GetSize())
+				if (mTextureStack.empty())
 					continue;
 			}
 			else
@@ -1639,22 +1340,23 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 
 		lcMeshLoaderTextureMap* TextureMap = nullptr;
 
-		if (TextureStack.GetSize())
+		if (!mTextureStack.empty())
 		{
-			TextureMap = &TextureStack[TextureStack.GetSize() - 1];
+			TextureMap = &mTextureStack.back();
 
-			if (TextureMap->Texture)
+			// TODO: think about a way to handle the texture fallback
+//			if (TextureMap->Texture)
 			{
 				if (TextureMap->Fallback)
 					continue;
 			}
-			else
-			{
-				if (!TextureMap->Fallback)
-					continue;
-
-				TextureMap = nullptr;
-			}
+//			else
+//			{
+//				if (!TextureMap->Fallback)
+//					continue;
+//
+//				TextureMap = nullptr;
+//			}
 		}
 
 		int Dummy;
@@ -1686,9 +1388,9 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 			IncludeTransform = lcMul(IncludeTransform, CurrentTransform);
 			bool Mirror = IncludeTransform.Determinant() < 0.0f;
 
-			auto FileCallback = [this, &IncludeTransform, &ColorCode, &Mirror, &InvertNext, &TextureStack, &MeshDataType](lcFile& File)
+			const auto FileCallback = [this, &IncludeTransform, &ColorCode, &Mirror, &InvertNext, &MeshDataType](lcFile& File)
 			{
-				ReadMeshData(File, IncludeTransform, ColorCode, Mirror ^ InvertNext, TextureStack, MeshDataType);
+				ReadMeshData(File, IncludeTransform, ColorCode, Mirror ^ InvertNext, MeshDataType);
 			};
 
 			if (Primitive)
@@ -1720,7 +1422,7 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 			Points[0] = lcMul31(Points[0], CurrentTransform);
 			Points[1] = lcMul31(Points[1], CurrentTransform);
 
-			mMeshData.mData[MeshDataType].ProcessLine(LineType, ColorCode, WindingCCW, Points, mOptimize);
+			mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetMaterial(ColorCode), WindingCCW, Points, mOptimize);
 			break;
 
 		case 3:
@@ -1731,16 +1433,16 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 			Points[1] = lcMul31(Points[1], CurrentTransform);
 			Points[2] = lcMul31(Points[2], CurrentTransform);
 
-			if (TextureMap)
+			if (!TextureMap)
+				mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetMaterial(ColorCode), WindingCCW, Points, mOptimize);
+			else
 			{
 				mMeshData.mHasTextures = true;
-				mMeshData.mData[MeshDataType].ProcessTexturedLine(LineType, ColorCode, WindingCCW, *TextureMap, Points, mOptimize);
+				mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetTexturedMaterial(ColorCode, *TextureMap), WindingCCW, Points, mOptimize);
 
 				if (TextureMap->Next)
-					TextureStack.RemoveIndex(TextureStack.GetSize() - 1);
+					mTextureStack.pop_back();
 			}
-			else
-				mMeshData.mData[MeshDataType].ProcessLine(LineType, ColorCode, WindingCCW, Points, mOptimize);
 			break;
 
 		case 4:
@@ -1752,16 +1454,16 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 			Points[2] = lcMul31(Points[2], CurrentTransform);
 			Points[3] = lcMul31(Points[3], CurrentTransform);
 
-			if (TextureMap)
+			if (!TextureMap)
+				mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetMaterial(ColorCode), WindingCCW, Points, mOptimize);
+			else
 			{
 				mMeshData.mHasTextures = true;
-				mMeshData.mData[MeshDataType].ProcessTexturedLine(LineType, ColorCode, WindingCCW, *TextureMap, Points, mOptimize);
+				mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetTexturedMaterial(ColorCode, *TextureMap), WindingCCW, Points, mOptimize);
 
 				if (TextureMap->Next)
-					TextureStack.RemoveIndex(TextureStack.GetSize() - 1);
+					mTextureStack.pop_back();
 			}
-			else
-				mMeshData.mData[MeshDataType].ProcessLine(LineType, ColorCode, WindingCCW, Points, mOptimize);
 			break;
 
 		case 5:
@@ -1773,7 +1475,7 @@ bool lcMeshLoader::ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform
 			Points[2] = lcMul31(Points[2], CurrentTransform);
 			Points[3] = lcMul31(Points[3], CurrentTransform);
 
-			mMeshData.mData[MeshDataType].ProcessLine(LineType, ColorCode, WindingCCW, Points, mOptimize);
+			mMeshData.mData[MeshDataType].ProcessLine(LineType, mMeshData.GetMaterial(ColorCode), WindingCCW, Points, mOptimize);
 			break;
 		}
 
diff --git a/common/lc_meshloader.h b/common/lc_meshloader.h
index 7094681..46840ca 100644
--- a/common/lc_meshloader.h
+++ b/common/lc_meshloader.h
@@ -4,8 +4,8 @@
 #include "lc_math.h"
 #include "lc_mesh.h"
 
-#define LC_LIBRARY_VERTEX_UNTEXTURED 0x1
-#define LC_LIBRARY_VERTEX_TEXTURED   0x2
+class lcLibraryMeshData;
+class lcMeshLoader;
 
 enum lcMeshDataType
 {
@@ -20,8 +20,13 @@ struct lcMeshLoaderVertex
 	lcVector3 Position;
 	lcVector3 Normal;
 	float NormalWeight;
-	lcVector2 TexCoord;
-	quint32 Usage;
+};
+
+struct lcMeshLoaderTexturedVertex
+{
+	lcVector3 Position;
+	lcVector3 Normal;
+	lcVector2 TexCoords;
 };
 
 struct lcMeshLoaderConditionalVertex
@@ -29,68 +34,63 @@ struct lcMeshLoaderConditionalVertex
 	lcVector3 Position[4];
 };
 
+enum class lcMeshLoaderMaterialType
+{
+	Solid,
+	Planar,
+	Cylindrical,
+	Spherical
+};
+
+struct lcMeshLoaderMaterial
+{
+	lcMeshLoaderMaterialType Type = lcMeshLoaderMaterialType::Solid;
+	quint32 Color = 16;
+	lcVector3 Points[3] = {};
+	float Angles[2] = {};
+	char Name[256] = {};
+};
+
 class lcMeshLoaderSection
 {
 public:
-	lcMeshLoaderSection(lcMeshPrimitiveType PrimitiveType, quint32 Color, lcTexture* Texture)
-		: mIndices(1024, 1024)
+	lcMeshLoaderSection(lcMeshPrimitiveType PrimitiveType, lcMeshLoaderMaterial* Material)
+		: mMaterial(Material), mPrimitiveType(PrimitiveType), mIndices(1024, 1024)
 	{
-		mPrimitiveType = PrimitiveType;
-		mColor = Color;
-		mTexture = Texture;
 	}
 
+	lcMeshLoaderMaterial* mMaterial;
 	lcMeshPrimitiveType mPrimitiveType;
-	quint32 mColor;
-	lcTexture* mTexture;
 	lcArray<quint32> mIndices;
 };
 
-enum class lcMeshLoaderTextureMapType
+struct lcMeshLoaderFinalSection
 {
-	Planar,
-	Cylindrical,
-	Spherical
+	quint32 Color;
+	lcMeshPrimitiveType PrimitiveType;
+	char Name[256];
 };
 
 struct lcMeshLoaderTextureMap
 {
-	lcTexture* Texture;
-
 	union lcTextureMapParams
 	{
 		lcTextureMapParams()
 		{
 		}
 
-		struct lcTextureMapPlanarParams
-		{
-			lcVector4 Planes[2];
-		} Planar;
-
-		struct lcTextureMapCylindricalParams
-		{
-			lcVector4 FrontPlane;
-			float UpLength;
-			lcVector4 Plane1;
-			lcVector4 Plane2;
-			float Angle;
-		} Cylindrical;
-
 		struct lcTextureMapSphericalParams
 		{
-			lcVector4 FrontPlane;
-			lcVector3 Center;
-			lcVector4 Plane1;
-			lcVector4 Plane2;
-			float Angle1;
-			float Angle2;
 		} Spherical;
 	} Params;
 
-	lcMeshLoaderTextureMapType Type;
-	bool Fallback;
-	bool Next;
+	lcMeshLoaderMaterialType Type;
+	lcVector3 Points[3];
+	float Angles[2];
+	char Name[LC_MAXPATH];
+
+	bool Fallback = false;
+	bool Next = false;
 };
 
 class lcMeshLoaderTypeData
@@ -117,16 +117,18 @@ public:
 		mConditionalVertices.RemoveAll();
 	}
 
-	lcMeshLoaderSection* AddSection(lcMeshPrimitiveType PrimitiveType, quint32 ColorCode, lcTexture* Texture);
+	void SetMeshData(lcLibraryMeshData* MeshData)
+	{
+		mMeshData = MeshData;
+	}
+
+	lcMeshLoaderSection* AddSection(lcMeshPrimitiveType PrimitiveType, lcMeshLoaderMaterial* Material);
 
 	quint32 AddVertex(const lcVector3& Position, bool Optimize);
-	quint32 AddVertex(const lcVector3& Position, const lcVector3& Normal, bool Optimize);
-	quint32 AddTexturedVertex(const lcVector3& Position, const lcVector2& TexCoord, bool Optimize);
-	quint32 AddTexturedVertex(const lcVector3& Position, const lcVector3& Normal, const lcVector2& TexCoord, bool Optimize);
+	quint32 AddVertex(const lcVector3& Position, const lcVector3& Normal, float NormalWeight, bool Optimize);
 	quint32 AddConditionalVertex(const lcVector3 (&Position)[4]);
 
-	void ProcessLine(int LineType, quint32 ColorCode, bool WindingCCW, lcVector3 (&Vertices)[4], bool Optimize);
-	void ProcessTexturedLine(int LineType, quint32 ColorCode, bool WindingCCW, const lcMeshLoaderTextureMap& Map, const lcVector3* Vertices, bool Optimize);
+	void ProcessLine(int LineType, lcMeshLoaderMaterial* Material, bool WindingCCW, lcVector3 (&Vertices)[4], bool Optimize);
 
 	void AddMeshData(const lcMeshLoaderTypeData& Data, const lcMatrix44& Transform, quint32 CurrentColorCode, bool InvertWinding, bool InvertNormals, lcMeshLoaderTextureMap* TextureMap);
 	void AddMeshDataNoDuplicateCheck(const lcMeshLoaderTypeData& Data, const lcMatrix44& Transform, quint32 CurrentColorCode, bool InvertWinding, bool InvertNormals, lcMeshLoaderTextureMap* TextureMap);
@@ -134,6 +136,9 @@ public:
 	std::vector<std::unique_ptr<lcMeshLoaderSection>> mSections;
 	lcArray<lcMeshLoaderVertex> mVertices;
 	lcArray<lcMeshLoaderConditionalVertex> mConditionalVertices;
+
+protected:
+	lcLibraryMeshData* mMeshData = nullptr;
 };
 
 class lcLibraryMeshData
@@ -143,6 +148,9 @@ public:
 	{
 		mHasTextures = false;
 		mHasStyleStud = false;
+
+		for (lcMeshLoaderTypeData& Data : mData)
+			Data.SetMeshData(this);
 	}
 
 	lcLibraryMeshData(const lcLibraryMeshData&) = delete;
@@ -166,20 +174,41 @@ public:
 		mHasStyleStud = false;
 	}
 
+	void SetMeshLoader(lcMeshLoader* MeshLoader)
+	{
+		mMeshLoader = MeshLoader;
+	}
+
 	lcMesh* CreateMesh();
 	void AddVertices(lcMeshDataType MeshDataType, int VertexCount, int* BaseVertex, lcMeshLoaderVertex** VertexBuffer);
 	void AddIndices(lcMeshDataType MeshDataType, lcMeshPrimitiveType PrimitiveType, quint32 ColorCode, int IndexCount, quint32** IndexBuffer);
 	void AddMeshData(const lcLibraryMeshData& Data, const lcMatrix44& Transform, quint32 CurrentColorCode, bool InvertWinding, bool InvertNormals, lcMeshLoaderTextureMap* TextureMap, lcMeshDataType OverrideDestIndex);
 	void AddMeshDataNoDuplicateCheck(const lcLibraryMeshData& Data, const lcMatrix44& Transform, quint32 CurrentColorCode, bool InvertWinding, bool InvertNormals, lcMeshLoaderTextureMap* TextureMap, lcMeshDataType OverrideDestIndex);
 
+	lcMeshLoaderMaterial* GetMaterial(quint32 ColorCode);
+	lcMeshLoaderMaterial* GetTexturedMaterial(quint32 ColorCode, const lcMeshLoaderTextureMap& TextureMap);
+
 	std::array<lcMeshLoaderTypeData, LC_NUM_MESHDATA_TYPES> mData;
 	bool mHasTextures;
 	bool mHasStyleStud;
 
 protected:
+	lcMeshLoader* mMeshLoader = nullptr;
+	std::vector<std::unique_ptr<lcMeshLoaderMaterial>> mMaterials;
+	lcArray<lcMeshLoaderTexturedVertex> mTexturedVertices;
+
+	void GenerateTexturedVertices();
+	void GeneratePlanarTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data);
+	void GenerateCylindricalTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data);
+	void GenerateSphericalTexcoords(lcMeshLoaderSection* Section, const lcMeshLoaderTypeData& Data);
+	quint32 AddTexturedVertex(const lcVector3& Position, const lcVector3& Normal, const lcVector2& TexCoords);
+
+	template<typename IndexType>
+	void WriteSections(lcMesh* Mesh, const lcArray<lcMeshLoaderFinalSection> (&FinalSections)[LC_NUM_MESH_LODS], int (&BaseVertices)[LC_NUM_MESHDATA_TYPES], int (&BaseConditionalVertices)[LC_NUM_MESHDATA_TYPES]);
+
 	static void UpdateMeshBoundingBox(lcMesh* Mesh);
 	template<typename IndexType>
-	static void UpdateMeshSectionBoundingBox(lcMesh* Mesh, lcMeshSection& Section, lcVector3& SectionMin, lcVector3& SectionMax);
+	static void UpdateMeshSectionBoundingBox(const lcMesh* Mesh, const lcMeshSection& Section, lcVector3& SectionMin, lcVector3& SectionMax);
 };
 
 class lcMeshLoader
@@ -189,11 +218,14 @@ public:
 
 	bool LoadMesh(lcFile& File, lcMeshDataType MeshDataType);
 
+	Project* mCurrentProject;
+	bool mSearchProjectFolder;
+
 protected:
-	bool ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform, quint32 CurrentColorCode, bool InvertWinding, lcArray<lcMeshLoaderTextureMap>& TextureStack, lcMeshDataType MeshDataType);
+	bool ReadMeshData(lcFile& File, const lcMatrix44& CurrentTransform, quint32 CurrentColorCode, bool InvertWinding, lcMeshDataType MeshDataType);
+
+	std::vector<lcMeshLoaderTextureMap> mTextureStack;
 
 	lcLibraryMeshData& mMeshData;
 	bool mOptimize;
-	Project* mCurrentProject;
-	bool mSearchProjectFolder;
 };
diff --git a/common/lc_model.cpp b/common/lc_model.cpp
index ec80ec0..68ebadd 100644
--- a/common/lc_model.cpp
+++ b/common/lc_model.cpp
@@ -39,7 +39,7 @@ void lcModelProperties::SaveDefaults()
 
 void lcModelProperties::SaveLDraw(QTextStream& Stream) const
 {
-	QLatin1String LineEnding("\r\n");
+	const QLatin1String LineEnding("\r\n");
 
 	Stream << QLatin1String("0 ") << mDescription << LineEnding;
 	Stream << QLatin1String("0 Name: ") << mModelName << LineEnding;
@@ -61,7 +61,7 @@ bool lcModelProperties::ParseLDrawHeader(QString Line, bool FirstLine)
 
 	QString Token;
 	LineStream >> Token;
-	int StartPos = LineStream.pos();
+	const int StartPos = LineStream.pos();
 	LineStream >> Token;
 
 	if (Token == QLatin1String("!LEOCAD"))
@@ -139,7 +139,7 @@ lcModel::~lcModel()
 
 bool lcModel::GetPieceWorldMatrix(lcPiece* Piece, lcMatrix44& ParentWorldMatrix) const
 {
-	for (lcPiece* ModelPiece : mPieces)
+	for (const lcPiece* ModelPiece : mPieces)
 	{
 		if (ModelPiece == Piece)
 		{
@@ -147,7 +147,7 @@ bool lcModel::GetPieceWorldMatrix(lcPiece* Piece, lcMatrix44& ParentWorldMatrix)
 			return true;
 		}
 
-		PieceInfo* Info = ModelPiece->mPieceInfo;
+		const PieceInfo* Info = ModelPiece->mPieceInfo;
 
 		if (Info->IsModel())
 		{
@@ -169,7 +169,7 @@ bool lcModel::IncludesModel(const lcModel* Model) const
 	if (Model == this)
 		return true;
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->mPieceInfo->IncludesModel(Model))
 			return true;
 
@@ -235,7 +235,7 @@ void lcModel::UpdatePieceInfo(std::vector<lcModel*>& UpdatedModels)
 	mPieceInfo->SetModel(this, false, nullptr, false);
 	UpdatedModels.push_back(this);
 
-	lcMesh* Mesh = mPieceInfo->GetMesh();
+	const lcMesh* Mesh = mPieceInfo->GetMesh();
 
 	if (mPieces.IsEmpty() && !Mesh)
 	{
@@ -265,7 +265,7 @@ void lcModel::UpdatePieceInfo(std::vector<lcModel*>& UpdatedModels)
 
 void lcModel::SaveLDraw(QTextStream& Stream, bool SelectedOnly) const
 {
-	QLatin1String LineEnding("\r\n");
+	const QLatin1String LineEnding("\r\n");
 
 	mProperties.SaveLDraw(Stream);
 
@@ -333,7 +333,7 @@ void lcModel::SaveLDraw(QTextStream& Stream, bool SelectedOnly) const
 				while (!CurrentGroups.IsEmpty())
 				{
 					lcGroup* Group = CurrentGroups[CurrentGroups.GetSize() - 1];
-					int Index = PieceParents.FindIndex(Group);
+					const int Index = PieceParents.FindIndex(Group);
 
 					if (Index == -1)
 					{
@@ -376,7 +376,7 @@ void lcModel::SaveLDraw(QTextStream& Stream, bool SelectedOnly) const
 				Stream << QLatin1String("0 !LEOCAD SYNTH CONTROL_POINT");
 
 				const float* FloatMatrix = ControlPoint.Transform;
-				float Numbers[13] = { FloatMatrix[12], -FloatMatrix[14], FloatMatrix[13], FloatMatrix[0], -FloatMatrix[8], FloatMatrix[4], -FloatMatrix[2], FloatMatrix[10], -FloatMatrix[6], FloatMatrix[1], -FloatMatrix[9], FloatMatrix[5], ControlPoint.Scale };
+				const float Numbers[13] = { FloatMatrix[12], -FloatMatrix[14], FloatMatrix[13], FloatMatrix[0], -FloatMatrix[8], FloatMatrix[4], -FloatMatrix[2], FloatMatrix[10], -FloatMatrix[6], FloatMatrix[1], -FloatMatrix[9], FloatMatrix[5], ControlPoint.Scale };
 
 				for (int NumberIdx = 0; NumberIdx < 13; NumberIdx++)
 					Stream << ' ' << lcFormatValue(Numbers[NumberIdx], NumberIdx < 3 ? 4 : 6);
@@ -419,11 +419,11 @@ void lcModel::SaveLDraw(QTextStream& Stream, bool SelectedOnly) const
 		Stream << QLatin1String("0 !LEOCAD GROUP END\r\n");
 	}
 
-	for (lcCamera* Camera : mCameras)
+	for (const lcCamera* Camera : mCameras)
 		if (!SelectedOnly || Camera->IsSelected())
 			Camera->SaveLDraw(Stream);
 
-	for (lcLight* Light : mLights)
+	for (const lcLight* Light : mLights)
 		if (!SelectedOnly || Light->IsSelected())
 			Light->SaveLDraw(Stream);
 
@@ -436,7 +436,7 @@ int lcModel::SplitMPD(QIODevice& Device)
 
 	while (!Device.atEnd())
 	{
-		qint64 Pos = Device.pos();
+		const qint64 Pos = Device.pos();
 		QString OriginalLine = Device.readLine();
 		QString Line = OriginalLine.trimmed();
 		QTextStream LineStream(&Line, QIODevice::ReadOnly);
@@ -487,7 +487,7 @@ void lcModel::LoadLDraw(QIODevice& Device, Project* Project)
 
 	while (!Device.atEnd())
 	{
-		qint64 Pos = Device.pos();
+		const qint64 Pos = Device.pos();
 		QString OriginalLine = Device.readLine();
 		QString Line = OriginalLine.trimmed();
 		QTextStream LineStream(&Line, QIODevice::ReadOnly);
@@ -649,9 +649,9 @@ void lcModel::LoadLDraw(QIODevice& Device, Project* Project)
 
 				PieceInfo* Info = Library->FindPiece(PartId.toLatin1().constData(), Project, true, true);
 
-				float* Matrix = IncludeTransform;
-				lcMatrix44 Transform(lcVector4(Matrix[0], Matrix[2], -Matrix[1], 0.0f), lcVector4(Matrix[8], Matrix[10], -Matrix[9], 0.0f),
-									 lcVector4(-Matrix[4], -Matrix[6], Matrix[5], 0.0f), lcVector4(Matrix[12], Matrix[14], -Matrix[13], 1.0f));
+				const float* Matrix = IncludeTransform;
+				const lcMatrix44 Transform(lcVector4(Matrix[0], Matrix[2], -Matrix[1], 0.0f), lcVector4(Matrix[8], Matrix[10], -Matrix[9], 0.0f),
+									       lcVector4(-Matrix[4], -Matrix[6], Matrix[5], 0.0f), lcVector4(Matrix[12], Matrix[14], -Matrix[13], 1.0f));
 
 				Piece->SetFileLine(mFileLines.size());
 				Piece->SetPieceInfo(Info, PartId, false);
@@ -710,7 +710,7 @@ bool lcModel::LoadBinary(lcFile* file)
 
 	if (fv == 0.0f)
 	{
-		lconv *loc = localeconv();
+		const lconv *loc = localeconv();
 		id[8] = loc->decimal_point[0];
 		sscanf(&id[7], "%f", &fv);
 
@@ -740,7 +740,7 @@ bool lcModel::LoadBinary(lcFile* file)
 	file->ReadS32(&count, 1);
 	lcPiecesLibrary* Library = lcGetPiecesLibrary();
 
-	int FirstNewPiece = mPieces.GetSize();
+	const int FirstNewPiece = mPieces.GetSize();
 
 	while (count--)
 	{
@@ -824,7 +824,7 @@ bool lcModel::LoadBinary(lcFile* file)
 
 	if (fv >= 0.5f)
 	{
-		int NumGroups = mGroups.GetSize();
+		const int NumGroups = mGroups.GetSize();
 
 		file->ReadS32(&count, 1);
 		for (i = 0; i < count; i++)
@@ -1009,7 +1009,7 @@ bool lcModel::LoadInventory(const QByteArray& Inventory)
 		Value = ((Value < 0.0f) ? floor((Value - 5.0f) / 10.0f) : ceil((Value + 5.0f) / 10.0f)) * 10.0f;
 	};
 
-	const float TargetHeight = 800.0f;
+	constexpr float TargetHeight = 800.0f;
 	float CurrentX = 0.0f;
 	float CurrentY = 0.0f;
 	float ColumnWidth = 0.0f;
@@ -1022,8 +1022,8 @@ bool lcModel::LoadInventory(const QByteArray& Inventory)
 		RoundBounds(BoundingBox.Max.x);
 		RoundBounds(BoundingBox.Max.y);
 
-		float PieceWidth = BoundingBox.Max.x - BoundingBox.Min.x;
-		float PieceHeight = BoundingBox.Max.y - BoundingBox.Min.y;
+		const float PieceWidth = BoundingBox.Max.x - BoundingBox.Min.x;
+		const float PieceHeight = BoundingBox.Max.y - BoundingBox.Min.y;
 
 		if (CurrentY + PieceHeight > TargetHeight)
 		{
@@ -1170,7 +1170,7 @@ void lcModel::DuplicateSelectedPieces()
 
 			while (!GroupName.isEmpty())
 			{
-				QCharRef Last = GroupName[GroupName.size() - 1];
+				const QChar Last = GroupName[GroupName.size() - 1];
 				if (Last.isDigit())
 					GroupName.chop(1);
 				else
@@ -1221,7 +1221,7 @@ void lcModel::PaintSelectedPieces()
 	SetSelectedPiecesColorIndex(gMainWindow->mColorIndex);
 }
 
-void lcModel::GetScene(lcScene* Scene, lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const
+void lcModel::GetScene(lcScene* Scene, const lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const
 {
 	if (mPieceInfo)
 		mPieceInfo->AddRenderMesh(*Scene);
@@ -1230,18 +1230,18 @@ void lcModel::GetScene(lcScene* Scene, lcCamera* ViewCamera, bool AllowHighlight
 	{
 		if (Piece->IsVisible(mCurrentStep))
 		{
-			lcStep StepShow = Piece->GetStepShow();
+			const lcStep StepShow = Piece->GetStepShow();
 			Piece->AddMainModelRenderMeshes(Scene, AllowHighlight && StepShow == mCurrentStep, AllowFade && StepShow < mCurrentStep);
 		}
 	}
 
 	if (Scene->GetDrawInterface() && !Scene->GetActiveSubmodelInstance())
 	{
-		for (lcCamera* Camera : mCameras)
+		for (const lcCamera* Camera : mCameras)
 			if (Camera != ViewCamera && Camera->IsVisible())
 				Scene->AddInterfaceObject(Camera);
 
-		for (lcLight* Light : mLights)
+		for (const lcLight* Light : mLights)
 			if (Light->IsVisible())
 				Scene->AddInterfaceObject(Light);
 	}
@@ -1249,14 +1249,14 @@ void lcModel::GetScene(lcScene* Scene, lcCamera* ViewCamera, bool AllowHighlight
 
 void lcModel::AddSubModelRenderMeshes(lcScene* Scene, const lcMatrix44& WorldMatrix, int DefaultColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisibleInSubModel())
 			Piece->AddSubModelRenderMeshes(Scene, WorldMatrix, DefaultColorIndex, RenderMeshState, ParentActive);
 }
 
 QImage lcModel::GetStepImage(bool Zoom, int Width, int Height, lcStep Step)
 {
-	lcView* ActiveView = gMainWindow->GetActiveView();
+	const lcView* ActiveView = gMainWindow->GetActiveView();
 	const lcStep CurrentStep = mCurrentStep;
 	lcCamera* Camera = ActiveView->GetCamera();
 
@@ -1353,12 +1353,12 @@ QImage lcModel::GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundC
 	float OrthoSize = 200.0f;
 
 	lcMatrix44 ProjectionMatrix = lcMatrix44Ortho(-OrthoSize, OrthoSize, -OrthoSize, OrthoSize, -5000.0f, 5000.0f);
-	lcMatrix44 ViewMatrix = lcMatrix44LookAt(lcVector3(-100.0f, -100.0f, 75.0f), lcVector3(0.0f, 0.0f, 0.0f), lcVector3(0.0f, 0.0f, 1.0f));
+	const lcMatrix44 ViewMatrix = lcMatrix44LookAt(lcVector3(-100.0f, -100.0f, 75.0f), lcVector3(0.0f, 0.0f, 0.0f), lcVector3(0.0f, 0.0f, 1.0f));
 	const int Viewport[4] = { 0, 0, ThumbnailSize, ThumbnailSize };
 
 	float ExtraPixels = 0.0f;
 
-	for (lcPartsListImage& Image : Images)
+	for (const lcPartsListImage& Image : Images)
 	{
 		const PieceInfo* Info = Image.Info;
 		const lcBoundingBox& BoundingBox = Info->GetBoundingBox();
@@ -1418,9 +1418,9 @@ QImage lcModel::GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundC
 
 	auto CalculateImageBounds = [](lcPartsListImage& Image)
 	{
-		QImage& Thumbnail = Image.Thumbnail;
-		int Width = Thumbnail.width();
-		int Height = Thumbnail.height();
+		const QImage& Thumbnail = Image.Thumbnail;
+		const int Width = Thumbnail.width();
+		const int Height = Thumbnail.height();
 
 		int MinX = Width;
 		int MinY = Height;
@@ -1451,12 +1451,12 @@ QImage lcModel::GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundC
 
 	DummyPainter.setFont(Font);
 	QFontMetrics FontMetrics = DummyPainter.fontMetrics();
-	int Ascent = FontMetrics.ascent();
+	const int Ascent = FontMetrics.ascent();
 
 	int CurrentHeight = 0;
 	int ImageWidth = MaxWidth;
 
-	for (lcPartsListImage& Image : Images)
+	for (const lcPartsListImage& Image : Images)
 		CurrentHeight = qMax(Image.Bounds.height() + Ascent, CurrentHeight);
 
 	for (;;)
@@ -1465,14 +1465,14 @@ QImage lcModel::GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundC
 		int CurrentX = 0;
 		int CurrentY = 0;
 		int ColumnWidth = 0;
-		int Spacing = 20;
+		constexpr int Spacing = 20;
 		int NextHeightIncrease = INT_MAX;
 
 		for (lcPartsListImage& Image : Images)
 		{
 			if (CurrentY + Image.Bounds.height() + Ascent > CurrentHeight)
 			{
-				int NeededSpace = Image.Bounds.height() + Ascent - (CurrentHeight - CurrentY);
+				const int NeededSpace = Image.Bounds.height() + Ascent - (CurrentHeight - CurrentY);
 				NextHeightIncrease = qMin(NeededSpace, NextHeightIncrease);
 
 				CurrentY = 0;
@@ -1502,9 +1502,9 @@ QImage lcModel::GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundC
 	Painter.setFont(Font);
 	Painter.setPen(TextColor);
 
-	for (lcPartsListImage& Image : Images)
+	for (const lcPartsListImage& Image : Images)
 	{
-		QPoint Position = Image.Position + QPoint(20, 20);
+		const QPoint Position = Image.Position + QPoint(20, 20);
 		Painter.drawImage(Position, Image.Thumbnail, Image.Bounds);
 		Painter.drawText(QPoint(Position.x(), Position.y() + Image.Bounds.height() + Ascent), QString::number(Image.Count) + 'x');
 	}
@@ -1541,49 +1541,55 @@ void lcModel::SaveStepImages(const QString& BaseName, bool AddStepSuffix, bool Z
 
 void lcModel::RayTest(lcObjectRayTest& ObjectRayTest) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisible(mCurrentStep) && (!ObjectRayTest.IgnoreSelected || !Piece->IsSelected()))
 			Piece->RayTest(ObjectRayTest);
 
 	if (ObjectRayTest.PiecesOnly)
 		return;
 
-	for (lcCamera* Camera : mCameras)
+	for (const lcCamera* Camera : mCameras)
 		if (Camera != ObjectRayTest.ViewCamera && Camera->IsVisible() && (!ObjectRayTest.IgnoreSelected || !Camera->IsSelected()))
 			Camera->RayTest(ObjectRayTest);
 
-	for (lcLight* Light : mLights)
+	for (const lcLight* Light : mLights)
 		if (Light->IsVisible() && (!ObjectRayTest.IgnoreSelected || !Light->IsSelected()))
 			Light->RayTest(ObjectRayTest);
 }
 
 void lcModel::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisible(mCurrentStep))
 			Piece->BoxTest(ObjectBoxTest);
 
-	for (lcCamera* Camera : mCameras)
+	for (const lcCamera* Camera : mCameras)
 		if (Camera != ObjectBoxTest.ViewCamera && Camera->IsVisible())
 			Camera->BoxTest(ObjectBoxTest);
 
-	for (lcLight* Light : mLights)
+	for (const lcLight* Light : mLights)
 		if (Light->IsVisible())
 			Light->BoxTest(ObjectBoxTest);
 }
 
-bool lcModel::SubModelMinIntersectDist(const lcVector3& WorldStart, const lcVector3& WorldEnd, float& MinDistance) const
+bool lcModel::SubModelMinIntersectDist(const lcVector3& WorldStart, const lcVector3& WorldEnd, float& MinDistance, lcPieceInfoRayTest& PieceInfoRayTest) const
 {
 	bool MinIntersect = false;
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
-		lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(Piece->mModelWorld);
-		lcVector3 Start = lcMul31(WorldStart, InverseWorldMatrix);
-		lcVector3 End = lcMul31(WorldEnd, InverseWorldMatrix);
+		const lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(Piece->mModelWorld);
+		const lcVector3 Start = lcMul31(WorldStart, InverseWorldMatrix);
+		const lcVector3 End = lcMul31(WorldEnd, InverseWorldMatrix);
 
-		if (Piece->IsVisibleInSubModel() && Piece->mPieceInfo->MinIntersectDist(Start, End, MinDistance)) // todo: this should check for piece->mMesh first
-			MinIntersect = true;
+		if (Piece->IsVisibleInSubModel())
+		{
+			if (Piece->mPieceInfo->MinIntersectDist(Start, End, MinDistance, PieceInfoRayTest)) // todo: this should check for piece->mMesh first
+			{
+				MinIntersect = true;
+				PieceInfoRayTest.Transform = lcMul(PieceInfoRayTest.Transform, Piece->mModelWorld);
+			}
+		}
 	}
 
 	return MinIntersect;
@@ -1591,7 +1597,7 @@ bool lcModel::SubModelMinIntersectDist(const lcVector3& WorldStart, const lcVect
 
 bool lcModel::SubModelBoxTest(const lcVector4 Planes[6]) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisibleInSubModel() && Piece->mPieceInfo->BoxTest(Piece->mModelWorld, Planes))
 			return true;
 
@@ -1600,14 +1606,14 @@ bool lcModel::SubModelBoxTest(const lcVector4 Planes[6]) const
 
 void lcModel::SubModelCompareBoundingBox(const lcMatrix44& WorldMatrix, lcVector3& Min, lcVector3& Max) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisibleInSubModel())
 			Piece->SubModelCompareBoundingBox(WorldMatrix, Min, Max);
 }
 
 void lcModel::SubModelAddBoundingBoxPoints(const lcMatrix44& WorldMatrix, std::vector<lcVector3>& Points) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisibleInSubModel())
 			Piece->SubModelAddBoundingBoxPoints(WorldMatrix, Points);
 }
@@ -1710,7 +1716,7 @@ void lcModel::ShowFirstStep()
 
 void lcModel::ShowLastStep()
 {
-	lcStep LastStep = GetLastStep();
+	const lcStep LastStep = GetLastStep();
 
 	if (mCurrentStep == LastStep)
 		return;
@@ -1738,7 +1744,7 @@ lcStep lcModel::GetLastStep() const
 {
 	lcStep Step = 1;
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		Step = lcMax(Step, Piece->GetStepShow());
 
 	return Step;
@@ -1977,10 +1983,10 @@ void lcModel::ShowEditGroupsDialog()
 
 QString lcModel::GetGroupName(const QString& Prefix)
 {
-	int Length = Prefix.length();
+	const int Length = Prefix.length();
 	int Max = 0;
 
-	for (lcGroup* Group : mGroups)
+	for (const lcGroup* Group : mGroups)
 	{
 		const QString& Name = Group->mName;
 
@@ -2084,7 +2090,7 @@ lcVector3 lcModel::SnapPosition(const lcVector3& Distance) const
 	if (SnapZ != 0.0f)
 	{
 		int i = (int)(NewDistance[2] / SnapZ);
-		float Leftover = NewDistance[2] - (SnapZ * i);
+		const float Leftover = NewDistance[2] - (SnapZ * i);
 
 		if (Leftover > SnapZ / 2)
 			i++;
@@ -2099,7 +2105,7 @@ lcVector3 lcModel::SnapPosition(const lcVector3& Distance) const
 
 lcVector3 lcModel::SnapRotation(const lcVector3& Angles) const
 {
-	float AngleSnap = gMainWindow->GetAngleSnap();
+	const float AngleSnap = gMainWindow->GetAngleSnap();
 	lcVector3 NewAngles(Angles);
 
 	if (AngleSnap != 0.0f)
@@ -2119,7 +2125,7 @@ lcMatrix33 lcModel::GetRelativeRotation() const
 {
 	if (gMainWindow->GetRelativeTransform())
 	{
-		lcObject* Focus = GetFocusObject();
+		const lcObject* Focus = GetFocusObject();
 
 		if (Focus && Focus->IsPiece())
 			return ((lcPiece*)Focus)->GetRelativeRotation();
@@ -2189,11 +2195,11 @@ void lcModel::AddPiece(lcPiece* Piece)
 
 void lcModel::InsertPiece(lcPiece* Piece, int Index)
 {
-	PieceInfo* Info = Piece->mPieceInfo;
+	const PieceInfo* Info = Piece->mPieceInfo;
 
 	if (!Info->IsModel())
 	{
-		lcMesh* Mesh = Info->GetMesh();
+		const lcMesh* Mesh = Info->GetMesh();
 
 		if (Mesh && Mesh->mVertexCacheOffset == -1)
 			lcGetPiecesLibrary()->mBuffersDirty = true;
@@ -2394,7 +2400,7 @@ void lcModel::SetPieceSteps(const QList<QPair<lcPiece*, lcStep>>& PieceSteps)
 		if (Piece != PieceStep.first || Piece->GetStepShow() != PieceStep.second)
 		{
 			Piece = PieceStep.first;
-			lcStep Step = PieceStep.second;
+			const lcStep Step = PieceStep.second;
 
 			mPieces[PieceIdx] = Piece;
 			Piece->SetStepShow(Step);
@@ -2641,7 +2647,7 @@ void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector
 
 	if (ObjectDistance.LengthSquared() >= 0.001f && !AlternateButtonDrag)
 	{
-		lcVector3 TransformedObjectDistance = lcMul(ObjectDistance, RelativeRotation);
+		const lcVector3 TransformedObjectDistance = lcMul(ObjectDistance, RelativeRotation);
 
 		for (lcCamera* Camera : mCameras)
 		{
@@ -2742,7 +2748,7 @@ void lcModel::RotateSelectedPieces(const lcVector3& Angles, bool Relative, bool
 
 				if (Relative)
 				{
-					lcMatrix33 RelativeRotation = Piece->GetRelativeRotation();
+					const lcMatrix33 RelativeRotation = Piece->GetRelativeRotation();
 					WorldToFocusMatrix = lcMatrix33AffineInverse(RelativeRotation);
 					RelativeRotationMatrix = lcMul(RotationMatrix, RelativeRotation);
 				}
@@ -2778,11 +2784,11 @@ void lcModel::ScaleSelectedPieces(const float Scale, bool Update, bool Checkpoin
 		return;
 
 	lcPiece* Piece = (lcPiece*)Focus;
-	quint32 Section = Piece->GetFocusSection();
+	const quint32 Section = Piece->GetFocusSection();
 
 	if (Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST)
 	{
-		int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
+		const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 		Piece->SetControlPointScale(ControlPointIndex, Scale);
 
 		if (Update)
@@ -3003,7 +3009,7 @@ void lcModel::SetCameraName(lcCamera* Camera, const QString& Name)
 
 bool lcModel::AnyPiecesSelected() const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsSelected())
 			return true;
 
@@ -3012,15 +3018,15 @@ bool lcModel::AnyPiecesSelected() const
 
 bool lcModel::AnyObjectsSelected() const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsSelected())
 			return true;
 
-	for (lcCamera* Camera : mCameras)
+	for (const lcCamera* Camera : mCameras)
 		if (Camera->IsSelected())
 			return true;
 
-	for (lcLight* Light : mLights)
+	for (const lcLight* Light : mLights)
 		if (Light->IsSelected())
 			return true;
 
@@ -3046,7 +3052,7 @@ lcObject* lcModel::GetFocusObject() const
 
 lcModel* lcModel::GetFirstSelectedSubmodel() const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsSelected() && Piece->mPieceInfo->IsModel())
 			return Piece->mPieceInfo->GetModel();
 
@@ -3055,7 +3061,7 @@ lcModel* lcModel::GetFirstSelectedSubmodel() const
 
 void lcModel::GetSubModels(lcArray<lcModel*>& SubModels) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
 		if (Piece->mPieceInfo->IsModel())
 		{
@@ -3068,13 +3074,13 @@ void lcModel::GetSubModels(lcArray<lcModel*>& SubModels) const
 
 bool lcModel::GetMoveRotateTransform(lcVector3& Center, lcMatrix33& RelativeRotation) const
 {
-	bool Relative = gMainWindow->GetRelativeTransform();
+	const bool Relative = gMainWindow->GetRelativeTransform();
 	int NumSelected = 0;
 
 	Center = lcVector3(0.0f, 0.0f, 0.0f);
 	RelativeRotation = lcMatrix33Identity();
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
 		if (!Piece->IsSelected())
 			continue;
@@ -3090,7 +3096,7 @@ bool lcModel::GetMoveRotateTransform(lcVector3& Center, lcMatrix33& RelativeRota
 		NumSelected++;
 	}
 
-	for (lcCamera* Camera : mCameras)
+	for (const lcCamera* Camera : mCameras)
 	{
 		if (!Camera->IsSelected())
 			continue;
@@ -3108,7 +3114,7 @@ bool lcModel::GetMoveRotateTransform(lcVector3& Center, lcMatrix33& RelativeRota
 		NumSelected += 3;
 	}
 
-	for (lcLight* Light : mLights)
+	for (const lcLight* Light : mLights)
 	{
 		if (!Light->IsSelected())
 			continue;
@@ -3189,7 +3195,7 @@ lcVector3 lcModel::GetSelectionOrModelCenter() const
 
 bool lcModel::GetFocusPosition(lcVector3& Position) const
 {
-	lcObject* FocusObject = GetFocusObject();
+	const lcObject* FocusObject = GetFocusObject();
 
 	if (FocusObject)
 	{
@@ -3263,7 +3269,7 @@ lcBoundingBox lcModel::GetAllPiecesBoundingBox() const
 		Box.Min = lcVector3(FLT_MAX, FLT_MAX, FLT_MAX);
 		Box.Max = lcVector3(-FLT_MAX, -FLT_MAX, -FLT_MAX);
 
-		for (lcPiece* Piece : mPieces)
+		for (const lcPiece* Piece : mPieces)
 			Piece->CompareBoundingBox(Box.Min, Box.Max);
 	}
 	else
@@ -3278,7 +3284,7 @@ bool lcModel::GetVisiblePiecesBoundingBox(lcVector3& Min, lcVector3& Max) const
 	Min = lcVector3(FLT_MAX, FLT_MAX, FLT_MAX);
 	Max = lcVector3(-FLT_MAX, -FLT_MAX, -FLT_MAX);
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
 		if (Piece->IsVisible(mCurrentStep))
 		{
@@ -3294,7 +3300,7 @@ std::vector<lcVector3> lcModel::GetPiecesBoundingBoxPoints() const
 {
 	std::vector<lcVector3> Points;
 
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		if (Piece->IsVisible(mCurrentStep))
 			Piece->SubModelAddBoundingBoxPoints(lcMatrix44Identity(), Points);
 
@@ -3303,7 +3309,7 @@ std::vector<lcVector3> lcModel::GetPiecesBoundingBoxPoints() const
 
 void lcModel::GetPartsList(int DefaultColorIndex, bool ScanSubModels, bool AddSubModels, lcPartsList& PartsList) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
 		if (!Piece->IsVisibleInSubModel())
 			continue;
@@ -3319,7 +3325,7 @@ void lcModel::GetPartsList(int DefaultColorIndex, bool ScanSubModels, bool AddSu
 
 void lcModel::GetPartsListForStep(lcStep Step, int DefaultColorIndex, lcPartsList& PartsList) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 	{
 		if (Piece->GetStepShow() != Step || Piece->IsHidden())
 			continue;
@@ -3335,7 +3341,7 @@ void lcModel::GetPartsListForStep(lcStep Step, int DefaultColorIndex, lcPartsLis
 
 void lcModel::GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex, std::vector<lcModelPartsEntry>& ModelParts) const
 {
-	for (lcPiece* Piece : mPieces)
+	for (const lcPiece* Piece : mPieces)
 		Piece->GetModelParts(WorldMatrix, DefaultColorIndex, ModelParts);
 }
 
@@ -3432,10 +3438,10 @@ void lcModel::GetSelectionInformation(int* Flags, lcArray<lcObject*>& Selection,
 	}
 }
 
-lcArray<lcObject*> lcModel::GetSelectionModePieces(lcPiece* SelectedPiece) const
+lcArray<lcObject*> lcModel::GetSelectionModePieces(const lcPiece* SelectedPiece) const
 {
-	PieceInfo* Info = SelectedPiece->mPieceInfo;
-	int ColorIndex = SelectedPiece->GetColorIndex();
+	const PieceInfo* Info = SelectedPiece->mPieceInfo;
+	const int ColorIndex = SelectedPiece->GetColorIndex();
 	lcArray<lcObject*> Pieces;
 
 	switch (gMainWindow->GetSelectionMode())
@@ -3497,11 +3503,11 @@ void lcModel::FocusOrDeselectObject(const lcObjectSection& ObjectSection)
 {
 	lcObject* FocusObject = GetFocusObject();
 	lcObject* Object = ObjectSection.Object;
-	quint32 Section = ObjectSection.Section;
+	const quint32 Section = ObjectSection.Section;
 
 	if (Object)
 	{
-		bool WasSelected = Object->IsSelected();
+		const bool WasSelected = Object->IsSelected();
 
 		if (!Object->IsFocused(Section))
 		{
@@ -3513,7 +3519,7 @@ void lcModel::FocusOrDeselectObject(const lcObjectSection& ObjectSection)
 		else
 			Object->SetFocused(Section, false);
 
-		bool IsSelected = Object->IsSelected();
+		const bool IsSelected = Object->IsSelected();
 
 		if (Object->IsPiece() && (WasSelected != IsSelected))
 		{
@@ -3594,7 +3600,7 @@ void lcModel::AddToSelection(const lcArray<lcObject*>& Objects, bool EnableSelec
 {
 	for (lcObject* Object : Objects)
 	{
-		bool WasSelected = Object->IsSelected();
+		const bool WasSelected = Object->IsSelected();
 		Object->SetSelected(true);
 
 		if (Object->IsPiece())
@@ -3621,7 +3627,7 @@ void lcModel::RemoveFromSelection(const lcArray<lcObject*>& Objects)
 {
 	for (lcObject* SelectedObject : Objects)
 	{
-		bool WasSelected = SelectedObject->IsSelected();
+		const bool WasSelected = SelectedObject->IsSelected();
 		SelectedObject->SetSelected(false);
 
 		if (WasSelected && SelectedObject->IsPiece())
@@ -3657,7 +3663,7 @@ void lcModel::RemoveFromSelection(const lcObjectSection& ObjectSection)
 	if (!SelectedObject)
 		return;
 
-	bool WasSelected = SelectedObject->IsSelected();
+	const bool WasSelected = SelectedObject->IsSelected();
 
 	if (SelectedObject->IsFocused(ObjectSection.Section))
 		SelectedObject->SetSelected(ObjectSection.Section, false);
@@ -4073,8 +4079,8 @@ void lcModel::UpdateCameraTool(const lcVector3& Position)
 
 void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag)
 {
-	lcVector3 PieceDistance = SnapPosition(Distance) - SnapPosition(mMouseToolDistance);
-	lcVector3 ObjectDistance = Distance - mMouseToolDistance;
+	const lcVector3 PieceDistance = SnapPosition(Distance) - SnapPosition(mMouseToolDistance);
+	const lcVector3 ObjectDistance = Distance - mMouseToolDistance;
 
 	MoveSelectedObjects(PieceDistance, ObjectDistance, AllowRelative, AlternateButtonDrag, true, false);
 	mMouseToolDistance = Distance;
@@ -4085,7 +4091,7 @@ void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool
 
 void lcModel::UpdateRotateTool(const lcVector3& Angles, bool AlternateButtonDrag)
 {
-	lcVector3 Delta = SnapRotation(Angles) - SnapRotation(mMouseToolDistance);
+	const lcVector3 Delta = SnapRotation(Angles) - SnapRotation(mMouseToolDistance);
 	RotateSelectedPieces(Delta, true, AlternateButtonDrag, false, false);
 	mMouseToolDistance = Angles;
 
@@ -4161,12 +4167,12 @@ void lcModel::PaintToolClicked(lcObject* Object)
 	}
 }
 
-void lcModel::ColorPickerToolClicked(lcObject* Object)
+void lcModel::ColorPickerToolClicked(const lcObject* Object)
 {
 	if (!Object || !Object->IsPiece())
 		return;
 
-	lcPiece* Piece = (lcPiece*)Object;
+	const lcPiece* Piece = (lcPiece*)Object;
 
 	gMainWindow->SetColorIndex(Piece->GetColorIndex());
 }
@@ -4181,8 +4187,7 @@ void lcModel::UpdateZoomTool(lcCamera* Camera, float Mouse)
 
 void lcModel::UpdatePanTool(lcCamera* Camera, const lcVector3& Distance)
 {
-	Camera->Pan(Distance - mMouseToolDistance, mCurrentStep, gMainWindow->GetAddKeys());
-	mMouseToolDistance = Distance;
+	Camera->Pan(Distance, mCurrentStep, gMainWindow->GetAddKeys());
 
 	UpdateAllViews();
 }
@@ -4266,7 +4271,7 @@ void lcModel::ZoomExtents(lcCamera* Camera, float Aspect)
 		Max = lcMax(Point, Max);
 	}
 
-	lcVector3 Center = (Min + Max) / 2.0f;
+	const lcVector3 Center = (Min + Max) / 2.0f;
 
 	Camera->ZoomExtents(Aspect, Center, Points, mCurrentStep, gMainWindow ? gMainWindow->GetAddKeys() : false);
 
@@ -4362,7 +4367,7 @@ void lcModel::ShowArrayDialog()
 				lcVector3 Position;
 
 				lcVector3 RotationAngles = Dialog.mRotations[0] * Step1 + Dialog.mRotations[1] * Step2 + Dialog.mRotations[2] * Step3;
-				lcVector3 Offset = Dialog.mOffsets[0] * Step1 + Dialog.mOffsets[1] * Step2 + Dialog.mOffsets[2] * Step3;
+				const lcVector3 Offset = Dialog.mOffsets[0] * Step1 + Dialog.mOffsets[1] * Step2 + Dialog.mOffsets[2] * Step3;
 
 				for (lcPiece* Piece : mPieces)
 				{
diff --git a/common/lc_model.h b/common/lc_model.h
index fad3fdd..b9637ef 100644
--- a/common/lc_model.h
+++ b/common/lc_model.h
@@ -80,7 +80,9 @@ public:
 	~lcModel();
 
 	lcModel(const lcModel&) = delete;
+	lcModel(lcModel&&) = delete;
 	lcModel& operator=(const lcModel&) = delete;
+	lcModel& operator=(lcModel&&) = delete;
 
 	Project* GetProject() const
 	{
@@ -229,7 +231,7 @@ public:
 	void DuplicateSelectedPieces();
 	void PaintSelectedPieces();
 
-	void GetScene(lcScene* Scene, lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const;
+	void GetScene(lcScene* Scene, const lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const;
 	void AddSubModelRenderMeshes(lcScene* Scene, const lcMatrix44& WorldMatrix, int DefaultColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const;
 	QImage GetStepImage(bool Zoom, int Width, int Height, lcStep Step);
 	QImage GetPartsListImage(int MaxWidth, lcStep Step, quint32 BackgroundColor, QFont Font, QColor TextColor) const;
@@ -237,7 +239,7 @@ public:
 
 	void RayTest(lcObjectRayTest& ObjectRayTest) const;
 	void BoxTest(lcObjectBoxTest& ObjectBoxTest) const;
-	bool SubModelMinIntersectDist(const lcVector3& WorldStart, const lcVector3& WorldEnd, float& MinDistance) const;
+	bool SubModelMinIntersectDist(const lcVector3& WorldStart, const lcVector3& WorldEnd, float& MinDistance, lcPieceInfoRayTest& PieceInfoRayTest) const;
 	bool SubModelBoxTest(const lcVector4 Planes[6]) const;
 	void SubModelCompareBoundingBox(const lcMatrix44& WorldMatrix, lcVector3& Min, lcVector3& Max) const;
 	void SubModelAddBoundingBoxPoints(const lcMatrix44& WorldMatrix, std::vector<lcVector3>& Points) const;
@@ -264,7 +266,7 @@ public:
 	void GetPartsListForStep(lcStep Step, int DefaultColorIndex, lcPartsList& PartsList) const;
 	void GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex, std::vector<lcModelPartsEntry>& ModelParts) const;
 	void GetSelectionInformation(int* Flags, lcArray<lcObject*>& Selection, lcObject** Focus) const;
-	lcArray<lcObject*> GetSelectionModePieces(lcPiece* SelectedPiece) const;
+	lcArray<lcObject*> GetSelectionModePieces(const lcPiece* SelectedPiece) const;
 
 	void FocusOrDeselectObject(const lcObjectSection& ObjectSection);
 	void ClearSelection(bool UpdateInterface);
@@ -309,7 +311,7 @@ public:
 	void UpdateScaleTool(const float Scale);
 	void EraserToolClicked(lcObject* Object);
 	void PaintToolClicked(lcObject* Object);
-	void ColorPickerToolClicked(lcObject* Object);
+	void ColorPickerToolClicked(const lcObject* Object);
 	void UpdateZoomTool(lcCamera* Camera, float Mouse);
 	void UpdatePanTool(lcCamera* Camera, const lcVector3& Distance);
 	void UpdateOrbitTool(lcCamera* Camera, float MouseX, float MouseY);
diff --git a/common/lc_partselectionwidget.cpp b/common/lc_partselectionwidget.cpp
index a05fbfb..4f98431 100644
--- a/common/lc_partselectionwidget.cpp
+++ b/common/lc_partselectionwidget.cpp
@@ -60,7 +60,7 @@ lcPartSelectionListModel::lcPartSelectionListModel(QObject* Parent)
 		mColorLocked = true;
 	}
 
-	connect(lcGetPiecesLibrary(), SIGNAL(PartLoaded(PieceInfo*)), this, SLOT(PartLoaded(PieceInfo*)));
+	connect(lcGetPiecesLibrary(), &lcPiecesLibrary::PartLoaded, this, &lcPartSelectionListModel::PartLoaded);
 }
 
 lcPartSelectionListModel::~lcPartSelectionListModel()
@@ -266,7 +266,7 @@ void lcPartSelectionListModel::SetFilter(const QString& Filter)
 		PieceInfo* Info = mParts[PartIdx].first;
 		bool Visible;
 
-		if (!mShowDecoratedParts && Info->IsPatterned())
+		if (!mShowDecoratedParts && Info->IsPatterned() && !Info->IsProjectPiece())
 			Visible = false;
 		else if (!mShowPartAliases && Info->m_strDescription[0] == '=')
 			Visible = false;
@@ -366,7 +366,7 @@ void lcPartSelectionListModel::RequestPreview(int InfoIndex)
 	PieceInfo* Info = mParts[InfoIndex].first;
 	lcGetPiecesLibrary()->LoadPieceInfo(Info, false, false);
 
-	if (Info->mState == LC_PIECEINFO_LOADED)
+	if (Info->mState == lcPieceInfoState::Loaded)
 		DrawPreview(InfoIndex);
 	else
 		mRequestedPreviews.push_back(InfoIndex);
@@ -899,7 +899,7 @@ void lcPartSelectionWidget::OptionsMenuAboutToShow()
 	QMenu* Menu = (QMenu*)sender();
 	Menu->clear();
 
-	Menu->addAction("Edit Palettes...", this, SLOT(EditPartPalettes()));
+	Menu->addAction(tr("Edit Palettes..."), this, SLOT(EditPartPalettes()));
 	Menu->addSeparator();
 
 	lcPartSelectionListModel* ListModel = mPartsWidget->GetListModel();
diff --git a/common/lc_previewwidget.cpp b/common/lc_previewwidget.cpp
index 0dd3c4b..496b352 100644
--- a/common/lc_previewwidget.cpp
+++ b/common/lc_previewwidget.cpp
@@ -74,10 +74,11 @@ void lcPreviewDockWidget::SetPreviewLock()
 	}
 
 	QIcon LockIcon(Locked ? ":/resources/action_preview_locked.png" : ":/resources/action_preview_unlocked.png");
-	QString State(Locked ? tr("Unlock") : tr("Lock"));
-	QString StatusTip(tr("%1 the preview display to %2 updates").arg(State).arg(Locked ? "enable" : "disable"));
+	QString StatusTip(Locked
+		? tr("Unlock the preview display to enable updates")
+		: tr("Lock the preview display to disable updates"));
 
-	mLockAction->setToolTip(tr("%1 Preview").arg(State));
+	mLockAction->setToolTip(Locked ? tr("Unlock Preview") : tr("Lock Preview"));
 	mLockAction->setIcon(LockIcon);
 	mLockAction->setStatusTip(StatusTip);
 }
diff --git a/common/lc_profile.cpp b/common/lc_profile.cpp
index 1975b58..e11473a 100644
--- a/common/lc_profile.cpp
+++ b/common/lc_profile.cpp
@@ -14,12 +14,12 @@ lcProfileEntry::lcProfileEntry(const char* Section, const char* Key, int Default
 	mDefault.IntValue = DefaultValue;
 }
 
-lcProfileEntry::lcProfileEntry(const char* Section, const char* Key, unsigned int DefaultValue)
+lcProfileEntry::lcProfileEntry(const char* Section, const char* Key, uint DefaultValue)
 {
 	mType = LC_PROFILE_ENTRY_INT;
 	mSection = Section;
 	mKey = Key;
-	mDefault.IntValue = DefaultValue;
+	mDefault.UIntValue = DefaultValue;
 }
 
 lcProfileEntry::lcProfileEntry(const char* Section, const char* Key, float DefaultValue)
@@ -56,43 +56,49 @@ lcProfileEntry::lcProfileEntry(const char* Section, const char* Key)
 
 static lcProfileEntry gProfileEntries[LC_NUM_PROFILE_KEYS] =
 {
-	lcProfileEntry("Settings", "FixedAxes", false),                                            // LC_PROFILE_FIXED_AXES
-	lcProfileEntry("Settings", "LineWidth", 1.0f),                                             // LC_PROFILE_LINE_WIDTH
-	lcProfileEntry("Settings", "AllowLOD", true),                                              // LC_PROFILE_ALLOW_LOD
-	lcProfileEntry("Settings", "LODDistance", 750.0f),                                         // LC_PROFILE_LOD_DISTANCE
-	lcProfileEntry("Settings", "FadeSteps", false),                                            // LC_PROFILE_FADE_STEPS
-	lcProfileEntry("Settings", "FadeStepsColor", LC_RGBA(128, 128, 128, 128)),                 // LC_PROFILE_FADE_STEPS_COLOR
-	lcProfileEntry("Settings", "HighlightNewParts", 0),                                        // LC_PROFILE_HIGHLIGHT_NEW_PARTS
-	lcProfileEntry("Settings", "HighlightNewPartsColor", LC_RGBA(255, 242, 0, 192)),           // LC_PROFILE_HIGHLIGHT_NEW_PARTS_COLOR
-	lcProfileEntry("Settings", "ShadingMode", static_cast<int>(lcShadingMode::DefaultLights)), // LC_PROFILE_SHADING_MODE
-	lcProfileEntry("Settings", "BackgroundGradient", false),                                   // LC_PROFILE_BACKGROUND_GRADIENT
-	lcProfileEntry("Settings", "BackgroundColor", LC_RGB(49, 52, 55)),                         // LC_PROFILE_BACKGROUND_COLOR
-	lcProfileEntry("Settings", "GradientColorTop", LC_RGB(54, 72, 95)),                        // LC_PROFILE_GRADIENT_COLOR_TOP
-	lcProfileEntry("Settings", "GradientColorBottom", LC_RGB(49, 52, 55)),                     // LC_PROFILE_GRADIENT_COLOR_BOTTOM
-	lcProfileEntry("Settings", "DrawAxes", 0),                                                 // LC_PROFILE_DRAW_AXES
-	lcProfileEntry("Settings", "DrawAxesLocation", static_cast<int>(lcAxisIconLocation::BottomLeft)), // LC_PROFILE_DRAW_AXES_LOCATION
-	lcProfileEntry("Settings", "AxesColor", LC_RGBA(0, 0, 0, 255)),                            // LC_PROFILE_AXES_COLOR
-	lcProfileEntry("Settings", "TextColor", LC_RGBA(0, 0, 0, 255)),                            // LC_PROFILE_TEXT_COLOR
-	lcProfileEntry("Settings", "MarqueeBorderColor", LC_RGBA(64, 64, 255, 255)),               // LC_PROFILE_MARQUEE_BORDER_COLOR
-	lcProfileEntry("Settings", "MarqueeFillColor", LC_RGBA(64, 64, 255, 64)),                  // LC_PROFILE_MARQUEE_FILL_COLOR
-	lcProfileEntry("Settings", "OverlayColor", LC_RGBA(0, 0, 0, 255)),                         // LC_PROFILE_OVERLAY_COLOR
-	lcProfileEntry("Settings", "ActiveViewColor", LC_RGBA(41, 128, 185, 255)),                 // LC_PROFILE_ACTIVE_VIEW_COLOR
-	lcProfileEntry("Settings", "InactiveViewColor", LC_RGBA(69, 69, 69, 255)),                 // LC_PROFILE_INACTIVE_VIEW_COLOR
-	lcProfileEntry("Settings", "DrawEdgeLines", 1),                                            // LC_PROFILE_DRAW_EDGE_LINES
-	lcProfileEntry("Settings", "DrawConditionalLines", 1),                                     // LC_PROFILE_DRAW_CONDITIONAL_LINES
-	lcProfileEntry("Settings", "GridStuds", 1),                                                // LC_PROFILE_GRID_STUDS
-	lcProfileEntry("Settings", "GridStudColor", LC_RGBA(24, 24, 24, 192)),                     // LC_PROFILE_GRID_STUD_COLOR
-	lcProfileEntry("Settings", "GridLines", 1),                                                // LC_PROFILE_GRID_LINES
-	lcProfileEntry("Settings", "GridLineSpacing", 5),                                          // LC_PROFILE_GRID_LINE_SPACING
-	lcProfileEntry("Settings", "GridLineColor", LC_RGBA(24, 24, 24, 255)),                     // LC_PROFILE_GRID_LINE_COLOR
-	lcProfileEntry("Settings", "GridOrigin", 0),                                               // LC_PROFILE_GRID_ORIGIN
-	lcProfileEntry("Settings", "AASamples", 1),                                                // LC_PROFILE_ANTIALIASING_SAMPLES
-	lcProfileEntry("Settings", "ViewSphereEnabled", 1),                                        // LC_PROFILE_VIEW_SPHERE_ENABLED
-	lcProfileEntry("Settings", "ViewSphereLocation", (int)lcViewSphereLocation::TopRight),     // LC_PROFILE_VIEW_SPHERE_LOCATION
-	lcProfileEntry("Settings", "ViewSphereSize", 100),                                         // LC_PROFILE_VIEW_SPHERE_SIZE
-	lcProfileEntry("Settings", "ViewSphereColor", LC_RGBA(35, 38, 41, 255)),                   // LC_PROFILE_VIEW_SPHERE_COLOR
-	lcProfileEntry("Settings", "ViewSphereTextColor", LC_RGBA(224, 224, 224, 255)),            // LC_PROFILE_VIEW_SPHERE_TEXT_COLOR
-	lcProfileEntry("Settings", "ViewSphereHighlightColor", LC_RGBA(41, 128, 185, 255)),        // LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR
+	lcProfileEntry("Settings", "FixedAxes", false),                                                        // LC_PROFILE_FIXED_AXES
+	lcProfileEntry("Settings", "LineWidth", 1.0f),                                                         // LC_PROFILE_LINE_WIDTH
+	lcProfileEntry("Settings", "AllowLOD", true),                                                          // LC_PROFILE_ALLOW_LOD
+	lcProfileEntry("Settings", "LODDistance", 750.0f),                                                     // LC_PROFILE_LOD_DISTANCE
+	lcProfileEntry("Settings", "FadeSteps", false),                                                        // LC_PROFILE_FADE_STEPS
+	lcProfileEntry("Settings", "FadeStepsColor", LC_RGBA(128, 128, 128, 128)),                             // LC_PROFILE_FADE_STEPS_COLOR
+	lcProfileEntry("Settings", "HighlightNewParts", 0),                                                    // LC_PROFILE_HIGHLIGHT_NEW_PARTS
+	lcProfileEntry("Settings", "HighlightNewPartsColor", LC_RGBA(255, 242, 0, 192)),                       // LC_PROFILE_HIGHLIGHT_NEW_PARTS_COLOR
+	lcProfileEntry("Settings", "ShadingMode", static_cast<int>(lcShadingMode::DefaultLights)),             // LC_PROFILE_SHADING_MODE
+	lcProfileEntry("Settings", "BackgroundGradient", false),                                               // LC_PROFILE_BACKGROUND_GRADIENT
+	lcProfileEntry("Settings", "BackgroundColor", LC_RGB(49, 52, 55)),                                     // LC_PROFILE_BACKGROUND_COLOR
+	lcProfileEntry("Settings", "GradientColorTop", LC_RGB(54, 72, 95)),                                    // LC_PROFILE_GRADIENT_COLOR_TOP
+	lcProfileEntry("Settings", "GradientColorBottom", LC_RGB(49, 52, 55)),                                 // LC_PROFILE_GRADIENT_COLOR_BOTTOM
+	lcProfileEntry("Settings", "DrawAxes", 0),                                                             // LC_PROFILE_DRAW_AXES
+	lcProfileEntry("Settings", "DrawAxesLocation", static_cast<int>(lcAxisIconLocation::BottomLeft)),      // LC_PROFILE_DRAW_AXES_LOCATION
+	lcProfileEntry("Settings", "AxesColor", LC_RGBA(0, 0, 0, 255)),                                        // LC_PROFILE_AXES_COLOR
+	lcProfileEntry("Settings", "TextColor", LC_RGBA(0, 0, 0, 255)),                                        // LC_PROFILE_TEXT_COLOR
+	lcProfileEntry("Settings", "MarqueeBorderColor", LC_RGBA(64, 64, 255, 255)),                           // LC_PROFILE_MARQUEE_BORDER_COLOR
+	lcProfileEntry("Settings", "MarqueeFillColor", LC_RGBA(64, 64, 255, 64)),                              // LC_PROFILE_MARQUEE_FILL_COLOR
+	lcProfileEntry("Settings", "OverlayColor", LC_RGBA(0, 0, 0, 255)),                                     // LC_PROFILE_OVERLAY_COLOR
+	lcProfileEntry("Settings", "ActiveViewColor", LC_RGBA(41, 128, 185, 255)),                             // LC_PROFILE_ACTIVE_VIEW_COLOR
+	lcProfileEntry("Settings", "InactiveViewColor", LC_RGBA(69, 69, 69, 255)),                             // LC_PROFILE_INACTIVE_VIEW_COLOR
+	lcProfileEntry("Settings", "DrawEdgeLines", 1),                                                        // LC_PROFILE_DRAW_EDGE_LINES
+	lcProfileEntry("Settings", "DrawConditionalLines", 1),                                                 // LC_PROFILE_DRAW_CONDITIONAL_LINES
+	lcProfileEntry("Settings", "GridStuds", 1),                                                            // LC_PROFILE_GRID_STUDS
+	lcProfileEntry("Settings", "GridStudColor", LC_RGBA(24, 24, 24, 192)),                                 // LC_PROFILE_GRID_STUD_COLOR
+	lcProfileEntry("Settings", "GridLines", 1),                                                            // LC_PROFILE_GRID_LINES
+	lcProfileEntry("Settings", "GridLineSpacing", 5),                                                      // LC_PROFILE_GRID_LINE_SPACING
+	lcProfileEntry("Settings", "GridLineColor", LC_RGBA(24, 24, 24, 255)),                                 // LC_PROFILE_GRID_LINE_COLOR
+	lcProfileEntry("Settings", "GridOrigin", 0),                                                           // LC_PROFILE_GRID_ORIGIN
+	lcProfileEntry("Settings", "AASamples", 1),                                                            // LC_PROFILE_ANTIALIASING_SAMPLES
+	lcProfileEntry("Settings", "ViewSphereEnabled", 1),                                                    // LC_PROFILE_VIEW_SPHERE_ENABLED
+	lcProfileEntry("Settings", "ViewSphereLocation", (int)lcViewSphereLocation::TopRight),                 // LC_PROFILE_VIEW_SPHERE_LOCATION
+	lcProfileEntry("Settings", "ViewSphereSize", 100),                                                     // LC_PROFILE_VIEW_SPHERE_SIZE
+	lcProfileEntry("Settings", "ViewSphereColor", LC_RGBA(35, 38, 41, 255)),                               // LC_PROFILE_VIEW_SPHERE_COLOR
+	lcProfileEntry("Settings", "ViewSphereTextColor", LC_RGBA(224, 224, 224, 255)),                        // LC_PROFILE_VIEW_SPHERE_TEXT_COLOR
+	lcProfileEntry("Settings", "ViewSphereHighlightColor", LC_RGBA(41, 128, 185, 255)),                    // LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR
+	lcProfileEntry("Settings", "ObjectSelectedColor", static_cast<uint>(LC_RGBA(229, 76, 102, 255))),      // LC_PROFILE_OBJECT_SELECTED_COLOR
+	lcProfileEntry("Settings", "ObjectFocusedColor", static_cast<uint>(LC_RGBA(102, 76, 229, 255))),       // LC_PROFILE_OBJECT_FOCUSED_COLOR
+	lcProfileEntry("Settings", "CameraColor", static_cast<uint>(LC_RGBA(128, 204, 128, 255))),             // LC_PROFILE_CAMERA_COLOR
+	lcProfileEntry("Settings", "LightColor", static_cast<uint>(LC_RGBA(128, 204, 128, 255))),              // LC_PROFILE_LIGHT_COLOR
+	lcProfileEntry("Settings", "ControlPointColor", static_cast<uint>(LC_RGBA(128, 204, 128, 128))),       // LC_PROFILE_CONTROL_POINT_COLOR
+	lcProfileEntry("Settings", "ControlPointFocusedColor", static_cast<uint>(LC_RGBA(102, 76, 229, 128))), // LC_PROFILE_CONTROL_POINT_FOCUSED_COLOR
 
 	lcProfileEntry("Settings", "Language", ""),                                                // LC_PROFILE_LANGUAGE
 	lcProfileEntry("Settings", "ColorTheme", static_cast<int>(lcColorTheme::Dark)),            // LC_PROFILE_COLOR_THEME
@@ -159,27 +165,20 @@ void lcRemoveProfileKey(LC_PROFILE_KEY Key)
 	Settings.remove(QString("%1/%2").arg(Entry.mSection, Entry.mKey));
 }
 
-int lcGetDefaultProfileInt(LC_PROFILE_KEY Key)
+int lcGetProfileInt(LC_PROFILE_KEY Key)
 {
-	return gProfileEntries[Key].mDefault.IntValue;
-}
+	lcProfileEntry& Entry = gProfileEntries[Key];
+	QSettings Settings;
 
-float lcGetDefaultProfileFloat(LC_PROFILE_KEY Key)
-{
-	return gProfileEntries[Key].mDefault.FloatValue;
+	return Settings.value(QString("%1/%2").arg(Entry.mSection, Entry.mKey), Entry.mDefault.IntValue).toInt();
 }
 
-QString lcGetDefaultProfileString(LC_PROFILE_KEY Key)
-{
-	return QString::fromLatin1(gProfileEntries[Key].mDefault.StringValue);
-}
-
-int lcGetProfileInt(LC_PROFILE_KEY Key)
+uint lcGetProfileUInt(LC_PROFILE_KEY Key)
 {
 	lcProfileEntry& Entry = gProfileEntries[Key];
 	QSettings Settings;
 
-	return Settings.value(QString("%1/%2").arg(Entry.mSection, Entry.mKey), Entry.mDefault.IntValue).toInt();
+	return Settings.value(QString("%1/%2").arg(Entry.mSection, Entry.mKey), Entry.mDefault.UIntValue).toUInt();
 }
 
 float lcGetProfileFloat(LC_PROFILE_KEY Key)
@@ -222,6 +221,14 @@ void lcSetProfileInt(LC_PROFILE_KEY Key, int Value)
 	Settings.setValue(QString("%1/%2").arg(Entry.mSection, Entry.mKey), Value);
 }
 
+void lcSetProfileUInt(LC_PROFILE_KEY Key, uint Value)
+{
+	lcProfileEntry& Entry = gProfileEntries[Key];
+	QSettings Settings;
+
+	Settings.setValue(QString("%1/%2").arg(Entry.mSection, Entry.mKey), Value);
+}
+
 void lcSetProfileFloat(LC_PROFILE_KEY Key, float Value)
 {
 	lcProfileEntry& Entry = gProfileEntries[Key];
diff --git a/common/lc_profile.h b/common/lc_profile.h
index abfef7e..da9edc9 100644
--- a/common/lc_profile.h
+++ b/common/lc_profile.h
@@ -40,6 +40,12 @@ enum LC_PROFILE_KEY
 	LC_PROFILE_VIEW_SPHERE_COLOR,
 	LC_PROFILE_VIEW_SPHERE_TEXT_COLOR,
 	LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR,
+	LC_PROFILE_OBJECT_SELECTED_COLOR,
+	LC_PROFILE_OBJECT_FOCUSED_COLOR,
+	LC_PROFILE_CAMERA_COLOR,
+	LC_PROFILE_LIGHT_COLOR,
+	LC_PROFILE_CONTROL_POINT_COLOR,
+	LC_PROFILE_CONTROL_POINT_FOCUSED_COLOR,
 
 	LC_PROFILE_LANGUAGE,
 	LC_PROFILE_COLOR_THEME,
@@ -114,7 +120,7 @@ class lcProfileEntry
 {
 public:
 	lcProfileEntry(const char* Section, const char* Key, int DefaultValue);
-	lcProfileEntry(const char* Section, const char* Key, unsigned int DefaultValue);
+	lcProfileEntry(const char* Section, const char* Key, uint DefaultValue);
 	lcProfileEntry(const char* Section, const char* Key, float DefaultValue);
 	lcProfileEntry(const char* Section, const char* Key, const char* DefaultValue);
 	lcProfileEntry(const char* Section, const char* Key, const QStringList& StringList);
@@ -128,6 +134,7 @@ public:
 	union
 	{
 		int IntValue;
+		uint UIntValue;
 		float FloatValue;
 		const char* StringValue;
 	} mDefault;
@@ -135,17 +142,15 @@ public:
 
 void lcRemoveProfileKey(LC_PROFILE_KEY Key);
 
-int lcGetDefaultProfileInt(LC_PROFILE_KEY Key);
-float lcGetDefaultProfileFloat(LC_PROFILE_KEY Key);
-QString lcGetDefaultProfileString(LC_PROFILE_KEY Key);
-
 int lcGetProfileInt(LC_PROFILE_KEY Key);
+uint lcGetProfileUInt(LC_PROFILE_KEY Key);
 float lcGetProfileFloat(LC_PROFILE_KEY Key);
 QString lcGetProfileString(LC_PROFILE_KEY Key);
 QStringList lcGetProfileStringList(LC_PROFILE_KEY Key);
 QByteArray lcGetProfileBuffer(LC_PROFILE_KEY Key);
 
 void lcSetProfileInt(LC_PROFILE_KEY Key, int Value);
+void lcSetProfileUInt(LC_PROFILE_KEY Key, uint Value);
 void lcSetProfileFloat(LC_PROFILE_KEY Key, float Value);
 void lcSetProfileString(LC_PROFILE_KEY Key, const QString& Value);
 void lcSetProfileStringList(LC_PROFILE_KEY Key, const QStringList& Value);
diff --git a/common/lc_scene.cpp b/common/lc_scene.cpp
index 5e13388..2982abb 100644
--- a/common/lc_scene.cpp
+++ b/common/lc_scene.cpp
@@ -155,6 +155,10 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy
 
 	Context->SetPolygonOffset(lcPolygonOffset::Opaque);
 
+	const lcPreferences& Preferences = lcGetPreferences();
+	const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+	const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+
 	for (const int MeshIndex : mOpaqueMeshes)
 	{
 		const lcRenderMesh& RenderMesh = mRenderMeshes[MeshIndex];
@@ -195,11 +199,11 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy
 					break;
 
 				case lcRenderMeshState::Selected:
-					Context->SetColorIndexTinted(ColorIndex, LC_COLOR_SELECTED, 0.5f);
+					Context->SetColorIndexTinted(ColorIndex, SelectedColor, 0.5f);
 					break;
 
 				case lcRenderMeshState::Focused:
-					Context->SetColorIndexTinted(ColorIndex, LC_COLOR_FOCUSED, 0.5f);
+					Context->SetColorIndexTinted(ColorIndex, FocusedColor, 0.5f);
 					break;
 
 				case lcRenderMeshState::Faded:
@@ -231,11 +235,11 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy
 					break;
 
 				case lcRenderMeshState::Selected:
-					Context->SetInterfaceColor(LC_COLOR_SELECTED);
+					Context->SetColor(SelectedColor);
 					break;
 
 				case lcRenderMeshState::Focused:
-					Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+					Context->SetColor(FocusedColor);
 					break;
 
 				case lcRenderMeshState::Highlighted:
@@ -262,23 +266,33 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy
 				}
 			}
 
-			lcTexture* const Texture = Section->Texture;
 			int VertexBufferOffset = Mesh->mVertexCacheOffset != -1 ? Mesh->mVertexCacheOffset : 0;
 			const int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0;
 
-			if (!Texture)
+			if (Section->PrimitiveType != LC_MESH_TEXTURED_TRIANGLES)
 			{
 				Context->SetMaterial(FlatMaterial);
 				Context->SetVertexFormat(VertexBufferOffset, 3, 1, 0, 0, DrawLit);
 			}
 			else
 			{
-				if (Texture->NeedsUpload())
-					Texture->Upload(Context);
-				Context->SetMaterial(TexturedMaterial);
+				lcTexture* const Texture = Section->Texture;
+
+				if (Texture)
+				{
+					if (Texture->NeedsUpload())
+						Texture->Upload(Context);
+
+					Context->SetMaterial(TexturedMaterial);
+					Context->BindTexture2D(Texture);
+				}
+				else
+				{
+					Context->SetMaterial(FlatMaterial);
+				}
+
 				VertexBufferOffset += Mesh->mNumVertices * sizeof(lcVertex);
 				Context->SetVertexFormat(VertexBufferOffset, 3, 1, 2, 0, DrawLit);
-				Context->BindTexture2D(Texture->mTexture);
 			}
 
 			const GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES;
@@ -290,7 +304,7 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy
 #endif
 	}
 
-	Context->BindTexture2D(0);
+	Context->ClearTexture2D();
 	Context->SetPolygonOffset(lcPolygonOffset::None);
 }
 
@@ -314,14 +328,18 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit, bool DrawF
 
 	if (!DrawFadePrepass)
 	{
-		glEnable(GL_BLEND);
+		Context->EnableColorBlend(true);
 		Context->SetDepthWrite(false);
 	}
 	else
-		glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+		Context->EnableColorWrite(false);
 
 	Context->SetPolygonOffset(lcPolygonOffset::Translucent);
 
+	const lcPreferences& Preferences = lcGetPreferences();
+	const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+	const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+
 	for (const lcTranslucentMeshInstance& MeshInstance : mTranslucentMeshes)
 	{
 		const lcRenderMesh& RenderMesh = mRenderMeshes[MeshInstance.RenderMeshIndex];
@@ -354,11 +372,11 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit, bool DrawF
 			break;
 
 		case lcRenderMeshState::Selected:
-			Context->SetColorIndexTinted(ColorIndex, LC_COLOR_SELECTED, 0.5f);
+			Context->SetColorIndexTinted(ColorIndex, SelectedColor, 0.5f);
 			break;
 
 		case lcRenderMeshState::Focused:
-			Context->SetColorIndexTinted(ColorIndex, LC_COLOR_FOCUSED, 0.5f);
+			Context->SetColorIndexTinted(ColorIndex, FocusedColor, 0.5f);
 			break;
 
 		case lcRenderMeshState::Faded:
@@ -382,7 +400,7 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit, bool DrawF
 			Context->SetMaterial(TexturedMaterial);
 			VertexBufferOffset += Mesh->mNumVertices * sizeof(lcVertex);
 			Context->SetVertexFormat(VertexBufferOffset, 3, 1, 2, 0, DrawLit);
-			Context->BindTexture2D(Texture->mTexture);
+			Context->BindTexture2D(Texture);
 		}
 
 		const GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES;
@@ -393,16 +411,16 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit, bool DrawF
 #endif
 	}
 
-	Context->BindTexture2D(0);
+	Context->ClearTexture2D();
 	Context->SetPolygonOffset(lcPolygonOffset::None);
 
 	if (!DrawFadePrepass)
 	{
 		Context->SetDepthWrite(true);
-		glDisable(GL_BLEND);
+		Context->EnableColorBlend(false);
 	}
 	else
-		glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+		Context->EnableColorWrite(true);
 }
 
 void lcScene::Draw(lcContext* Context) const
diff --git a/common/lc_stringcache.cpp b/common/lc_stringcache.cpp
index e30c283..618e156 100644
--- a/common/lc_stringcache.cpp
+++ b/common/lc_stringcache.cpp
@@ -45,7 +45,7 @@ void lcStringCache::CacheStrings(const QStringList& Strings)
 		return;
 
 	Image TextureImage;
-	TextureImage.Allocate(256, 256, LC_PIXEL_FORMAT_L8A8);
+	TextureImage.Allocate(256, 256, lcPixelFormat::L8A8);
 
 	QImage Image(128, 128, QImage::Format_ARGB32);
 	QPainter Painter;
@@ -100,7 +100,7 @@ void lcStringCache::CacheStrings(const QStringList& Strings)
 		DestHeight = qMax(DestHeight, SourceRect.height());
 	}
 
-	mTexture->SetImage(&TextureImage, LC_TEXTURE_LINEAR);
+	mTexture->SetImage(std::move(TextureImage), LC_TEXTURE_LINEAR);
 }
 
 void lcStringCache::GetStringDimensions(int* cx, int* cy, const QString& String) const
@@ -193,7 +193,7 @@ void lcStringCache::DrawStrings(lcContext* Context, const lcMatrix44* Transforms
 	Context->SetVertexBufferPointer(Verts);
 	Context->SetVertexFormat(0, 3, 0, 2, 0, false);
 
-	Context->BindTexture2D(mTexture->mTexture);
+	Context->BindTexture2D(mTexture);
 	Context->SetColor(0.0f, 0.0f, 0.0f, 1.0f);
 	Context->DrawPrimitives(GL_TRIANGLES, 0, Strings.size() * 6);
 }
diff --git a/common/lc_synth.cpp b/common/lc_synth.cpp
index b99a9c2..fdd1120 100644
--- a/common/lc_synth.cpp
+++ b/common/lc_synth.cpp
@@ -1208,34 +1208,34 @@ void lcSynthInfoFlexibleAxle::AddParts(lcMemFile& File, lcLibraryMeshData& MeshD
 
 	const lcMeshLoaderVertex SectionVertices[28] =
 	{
-		{ lcVector3(-6.000f, 0.0f,  0.000f), lcVector3(-1.000f, 0.0f,  0.000f), 2.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-5.602f, 0.0f,  2.000f), lcVector3(-0.942f, 0.0f,  0.336f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-5.602f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f,  2.000f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f,  5.602f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f,  5.602f), lcVector3(-0.336f, 0.0f,  0.942f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 0.000f, 0.0f,  6.000f), lcVector3( 0.000f, 0.0f,  1.000f), 2.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f,  5.602f), lcVector3( 0.336f, 0.0f,  0.942f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f,  5.602f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f,  2.000f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 5.602f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 5.602f, 0.0f,  2.000f), lcVector3( 0.942f, 0.0f,  0.336f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 6.000f, 0.0f,  0.000f), lcVector3( 1.000f, 0.0f,  0.000f), 2.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 5.602f, 0.0f, -2.000f), lcVector3( 0.942f, 0.0f, -0.336f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 5.602f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f, -2.000f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f, -5.602f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 2.000f, 0.0f, -5.602f), lcVector3( 0.336f, 0.0f, -0.942f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3( 0.000f, 0.0f, -6.000f), lcVector3( 0.000f, 0.0f, -1.000f), 2.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f, -5.602f), lcVector3(-0.336f, 0.0f, -0.942f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f, -5.602f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f, -2.000f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-2.000f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-5.602f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f, lcVector2(0.0f, 0.0f), 0 },
-		{ lcVector3(-5.602f, 0.0f, -2.000f), lcVector3(-0.942f, 0.0f, -0.336f), 4.0f, lcVector2(0.0f, 0.0f), 0 }
+		{ lcVector3(-6.000f, 0.0f,  0.000f), lcVector3(-1.000f, 0.0f,  0.000f), 2.0f },
+		{ lcVector3(-5.602f, 0.0f,  2.000f), lcVector3(-0.942f, 0.0f,  0.336f), 4.0f },
+		{ lcVector3(-5.602f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f,  2.000f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f,  5.602f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f,  5.602f), lcVector3(-0.336f, 0.0f,  0.942f), 4.0f },
+		{ lcVector3( 0.000f, 0.0f,  6.000f), lcVector3( 0.000f, 0.0f,  1.000f), 2.0f },
+		{ lcVector3( 2.000f, 0.0f,  5.602f), lcVector3( 0.336f, 0.0f,  0.942f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f,  5.602f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f,  2.000f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f },
+		{ lcVector3( 5.602f, 0.0f,  2.000f), lcVector3( 0.000f, 0.0f,  1.000f), 4.0f },
+		{ lcVector3( 5.602f, 0.0f,  2.000f), lcVector3( 0.942f, 0.0f,  0.336f), 4.0f },
+		{ lcVector3( 6.000f, 0.0f,  0.000f), lcVector3( 1.000f, 0.0f,  0.000f), 2.0f },
+		{ lcVector3( 5.602f, 0.0f, -2.000f), lcVector3( 0.942f, 0.0f, -0.336f), 4.0f },
+		{ lcVector3( 5.602f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f, -2.000f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f, -5.602f), lcVector3( 1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3( 2.000f, 0.0f, -5.602f), lcVector3( 0.336f, 0.0f, -0.942f), 4.0f },
+		{ lcVector3( 0.000f, 0.0f, -6.000f), lcVector3( 0.000f, 0.0f, -1.000f), 2.0f },
+		{ lcVector3(-2.000f, 0.0f, -5.602f), lcVector3(-0.336f, 0.0f, -0.942f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f, -5.602f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f, -2.000f), lcVector3(-1.000f, 0.0f,  0.000f), 4.0f },
+		{ lcVector3(-2.000f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f },
+		{ lcVector3(-5.602f, 0.0f, -2.000f), lcVector3( 0.000f, 0.0f, -1.000f), 4.0f },
+		{ lcVector3(-5.602f, 0.0f, -2.000f), lcVector3(-0.942f, 0.0f, -0.336f), 4.0f }
 	};
 
 	const int NumSectionVertices = LC_ARRAY_COUNT(SectionVertices);
diff --git a/common/lc_texture.cpp b/common/lc_texture.cpp
index c3e97bf..1f61a9c 100644
--- a/common/lc_texture.cpp
+++ b/common/lc_texture.cpp
@@ -53,7 +53,7 @@ void lcTexture::CreateGridTexture()
 	{
 		Image& GridImage = mImages[ImageLevel];
 		const int GridSize = 256 >> ImageLevel;
-		GridImage.Allocate(GridSize, GridSize, LC_PIXEL_FORMAT_A8);
+		GridImage.Allocate(GridSize, GridSize, lcPixelFormat::A8);
 
 		if (Previous)
 		{
@@ -171,165 +171,62 @@ bool lcTexture::Load()
 
 bool lcTexture::Load(const QString& FileName, int Flags)
 {
-	mImages.resize(1);
+	Image Image;
 
-	if (!mImages[0].FileLoad(FileName))
+	if (!Image.FileLoad(FileName))
 		return false;
 
-	return Load(Flags);
+	SetImage(std::move(Image), Flags);
+
+	return true;
 }
 
 bool lcTexture::Load(lcMemFile& File, int Flags)
 {
-	mImages.resize(1);
+	Image Image;
 
-	if (!mImages[0].FileLoad(File))
+	if (!Image.FileLoad(File))
 		return false;
 
-	return Load(Flags);
+	SetImage(std::move(Image), Flags);
+
+	return true;
 }
 
-void lcTexture::SetImage(Image* Image, int Flags)
+void lcTexture::SetImage(Image&& Image, int Flags)
 {
 	mImages.clear();
-	mImages.emplace_back(std::move(*Image));
+	mImages.emplace_back(std::move(Image));
+	mFlags = Flags;
 
-	Load(Flags);
+	LoadImages();
 }
 
 void lcTexture::SetImage(std::vector<Image>&& Images, int Flags)
 {
 	mImages = std::move(Images);
+	mFlags = Flags;
 
-	Load(Flags);
+	LoadImages();
 }
 
 void lcTexture::Upload(lcContext* Context)
 {
+	if (!NeedsUpload())
+		return;
+
 	mWidth = mImages[0].mWidth;
 	mHeight = mImages[0].mHeight;
 
-	if (!mTexture)
-		glGenTextures(1, &mTexture);
-
-	constexpr int Filters[2][5] =
-	{
-		{ GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR },
-		{ GL_NEAREST, GL_LINEAR, GL_LINEAR, GL_LINEAR, GL_LINEAR  },
-	};
-
-	const int FilterFlags = mFlags & LC_TEXTURE_FILTER_MASK;
-	const int FilterIndex = FilterFlags >> LC_TEXTURE_FILTER_SHIFT;
-	const int MipIndex = mFlags & LC_TEXTURE_MIPMAPS ? 0 : 1;
-
-    unsigned int Faces, Target;
-
-	if ((mFlags & LC_TEXTURE_CUBEMAP) == 0)
-	{
-		Faces = 1;
-		Target = GL_TEXTURE_2D;
-		Context->BindTexture2D(mTexture);
-	}
-	else
-	{
-		Faces = 6;
-		Target = GL_TEXTURE_CUBE_MAP;
-		Context->BindTextureCubeMap(mTexture);
-	}
-
-	glTexParameteri(Target, GL_TEXTURE_WRAP_S, (mFlags & LC_TEXTURE_WRAPU) ? GL_REPEAT : GL_CLAMP_TO_EDGE);
-	glTexParameteri(Target, GL_TEXTURE_WRAP_T, (mFlags & LC_TEXTURE_WRAPV) ? GL_REPEAT : GL_CLAMP_TO_EDGE);
-	glTexParameteri(Target, GL_TEXTURE_MIN_FILTER, Filters[MipIndex][FilterIndex]);
-	glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, Filters[1][FilterIndex]);
-	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
-	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
-
-	if (gSupportsAnisotropic && FilterFlags == LC_TEXTURE_ANISOTROPIC)
-		glTexParameterf(Target, GL_TEXTURE_MAX_ANISOTROPY_EXT, lcMin(4.0f, gMaxAnisotropy));
-
-	int Format;
-	switch (mImages[0].mFormat)
-	{
-    default:
-    case LC_PIXEL_FORMAT_INVALID:
-        Format = 0;
-        break;
-    case LC_PIXEL_FORMAT_A8:
-		Format = GL_ALPHA;
-		break;
-	case LC_PIXEL_FORMAT_L8A8:
-		Format = GL_LUMINANCE_ALPHA;
-		break;
-	case LC_PIXEL_FORMAT_R8G8B8:
-		Format = GL_RGB;
-		break;
-	case LC_PIXEL_FORMAT_R8G8B8A8:
-		Format = GL_RGBA;
-		break;
-	}
-
-	int CurrentImage = 0;
-	if (mFlags & LC_TEXTURE_CUBEMAP)
-		Target = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
+	Context->UploadTexture(this);
 
-    for (size_t FaceIdx = 0; FaceIdx < Faces; FaceIdx++)
-	{
-		void* Data = mImages[CurrentImage].mData;
-		glTexImage2D(Target, 0, Format, mWidth, mHeight, 0, Format, GL_UNSIGNED_BYTE, Data);
-
-		if (mFlags & LC_TEXTURE_MIPMAPS || FilterFlags >= LC_TEXTURE_BILINEAR)
-		{
-			int Width = mWidth;
-			int Height = mHeight;
-			int Components = mImages[CurrentImage].GetBPP();
-
-			for (int Level = 1; ((Width != 1) || (Height != 1)); Level++)
-			{
-				int RowStride = Width * Components;
-
-				Width = lcMax(1, Width >> 1);
-				Height = lcMax(1, Height >> 1);
-
-				if (mImages.size() == Faces)
-				{
-					GLubyte *Out, *In;
-
-					In = Out = (GLubyte*)Data;
-
-					for (int y = 0; y < Height; y++, In += RowStride)
-						for (int x = 0; x < Width; x++, Out += Components, In += 2 * Components)
-							for (int c = 0; c < Components; c++)
-								Out[c] = (In[c] + In[c + Components] + In[RowStride] + In[c + RowStride + Components]) / 4;
-				}
-				else
-					Data = mImages[++CurrentImage].mData;
-
-				glTexImage2D(Target, Level, Format, Width, Height, 0, Format, GL_UNSIGNED_BYTE, Data);
-			}
-
-			if (mImages.size() == Faces)
-				CurrentImage++;
-		}
-		else
-			CurrentImage++;
-
-		Target++;
-	}
-
-	if ((mFlags & LC_TEXTURE_CUBEMAP) == 0)
-		Context->UnbindTexture2D(mTexture);
-	else
-		Context->UnbindTextureCubeMap(mTexture);
+	mImages.clear();
 }
 
-bool lcTexture::Load(int Flags)
+bool lcTexture::LoadImages()
 {
 	for (Image& Image : mImages)
 		Image.ResizePow2();
-	mFlags = Flags;
 
 	if (QThread::currentThread() == qApp->thread())
 	{
diff --git a/common/lc_texture.h b/common/lc_texture.h
index fe6cf58..74dbb3a 100644
--- a/common/lc_texture.h
+++ b/common/lc_texture.h
@@ -32,7 +32,7 @@ public:
 
 	bool Load(const QString& FileName, int Flags = 0);
 	bool Load(lcMemFile& File, int Flags = 0);
-	void SetImage(Image* Image, int Flags = 0);
+	void SetImage(Image&& Image, int Flags = 0);
 	void SetImage(std::vector<Image>&& Images, int Flags = 0);
 	void Upload(lcContext* Context);
 	void Unload();
@@ -70,6 +70,21 @@ public:
 		return mTexture == 0 && !mImages.empty();
 	}
 
+	int GetFlags() const
+	{
+		return mFlags;
+	}
+
+	const Image& GetImage(int Index) const
+	{
+		return mImages[Index];
+	}
+
+	size_t GetImageCount() const
+	{
+		return mImages.size();
+	}
+
 	int mWidth;
 	int mHeight;
 	char mName[LC_TEXTURE_NAME_LEN];
@@ -78,7 +93,7 @@ public:
 
 protected:
 	bool Load();
-	bool Load(int Flags);
+	bool LoadImages();
 
 	bool mTemporary;
 	QAtomicInt mRefCount;
diff --git a/common/lc_timelinewidget.cpp b/common/lc_timelinewidget.cpp
index 1e60130..cf66c69 100644
--- a/common/lc_timelinewidget.cpp
+++ b/common/lc_timelinewidget.cpp
@@ -54,7 +54,12 @@ void lcTimelineWidget::CustomMenuRequested(QPoint Pos)
 	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_INSERT_BEFORE]);
 	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_INSERT_AFTER]);
 	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_DELETE]);
+
+	Menu->addSeparator();
+
 	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_MOVE_SELECTION]);
+	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_MOVE_SELECTION_BEFORE]);
+	Menu->addAction(gMainWindow->mActions[LC_TIMELINE_MOVE_SELECTION_AFTER]);
 
 	Menu->addSeparator();
 
@@ -398,6 +403,98 @@ void lcTimelineWidget::MoveSelection()
 		Model->SetCurrentStep(Step);
 }
 
+void lcTimelineWidget::MoveSelectionBefore()
+{
+	QTreeWidgetItem* CurrentItem = currentItem();
+
+	if (!CurrentItem)
+		return;
+
+	if (CurrentItem->parent())
+		CurrentItem = CurrentItem->parent();
+
+	int Step = indexOfTopLevelItem(CurrentItem);
+
+	if (Step == -1)
+		return;
+
+	Step++;
+
+	QList<QTreeWidgetItem*> SelectedItems = selectedItems();
+
+	gMainWindow->GetActiveModel()->InsertStep(Step);
+
+	CurrentItem = topLevelItem(Step - 1);
+
+	for (QTreeWidgetItem* PieceItem : SelectedItems)
+	{
+		QTreeWidgetItem* Parent = PieceItem->parent();
+
+		if (!Parent)
+			continue;
+
+		int ChildIndex = Parent->indexOfChild(PieceItem);
+		CurrentItem->addChild(Parent->takeChild(ChildIndex));
+	}
+
+	UpdateModel();
+
+	lcModel* Model = gMainWindow->GetActiveModel();
+
+	if (Step > static_cast<int>(Model->GetCurrentStep()))
+		Model->SetCurrentStep(Step);
+}
+
+void lcTimelineWidget::MoveSelectionAfter()
+{
+	QTreeWidgetItem* CurrentItem = currentItem();
+
+	if (!CurrentItem)
+		return;
+
+	if (CurrentItem->parent())
+		CurrentItem = CurrentItem->parent();
+
+	int Step = indexOfTopLevelItem(CurrentItem);
+
+	if (Step == -1)
+		return;
+
+	Step += 2;
+
+	QList<QTreeWidgetItem*> SelectedItems = selectedItems();
+
+	gMainWindow->GetActiveModel()->InsertStep(Step);
+
+	for (int TopLevelItemIdx = topLevelItemCount(); TopLevelItemIdx < Step; TopLevelItemIdx++)
+	{
+		QTreeWidgetItem* StepItem = new QTreeWidgetItem(this, QStringList(tr("Step %1").arg(TopLevelItemIdx + 1)));
+		StepItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
+		addTopLevelItem(StepItem);
+		StepItem->setExpanded(true);
+	}
+
+	CurrentItem = topLevelItem(Step - 1);
+
+	for (QTreeWidgetItem* PieceItem : SelectedItems)
+	{
+		QTreeWidgetItem* Parent = PieceItem->parent();
+
+		if (!Parent)
+			continue;
+
+		int ChildIndex = Parent->indexOfChild(PieceItem);
+		CurrentItem->addChild(Parent->takeChild(ChildIndex));
+	}
+
+	UpdateModel();
+
+	lcModel* Model = gMainWindow->GetActiveModel();
+
+	if (Step > static_cast<int>(Model->GetCurrentStep()))
+		Model->SetCurrentStep(Step);
+}
+
 void lcTimelineWidget::SetCurrentStep()
 {
 	QTreeWidgetItem* CurrentItem = currentItem();
@@ -463,6 +560,9 @@ void lcTimelineWidget::dropEvent(QDropEvent* Event)
 	QTreeWidgetItem* DropItem = itemAt(Event->pos());
 	lcModel* Model = gMainWindow->GetActiveModel();
 
+	QList<QTreeWidgetItem*> SelectedItems = selectedItems();
+	clearSelection();
+
 	if (DropItem)
 	{
 		QTreeWidgetItem* ParentItem = DropItem->parent();
@@ -472,9 +572,6 @@ void lcTimelineWidget::dropEvent(QDropEvent* Event)
 			Model->SetCurrentStep(Step);
 	}
 
-	QList<QTreeWidgetItem*> SelectedItems = selectedItems();
-	clearSelection();
-
 	auto SortItems = [this](QTreeWidgetItem* Item1, QTreeWidgetItem* Item2)
 	{
 		QTreeWidgetItem* StepItem1 = Item1->parent();
diff --git a/common/lc_timelinewidget.h b/common/lc_timelinewidget.h
index 6163221..d7fb3bf 100644
--- a/common/lc_timelinewidget.h
+++ b/common/lc_timelinewidget.h
@@ -15,6 +15,8 @@ public:
 	void InsertStepAfter();
 	void RemoveStep();
 	void MoveSelection();
+	void MoveSelectionBefore();
+	void MoveSelectionAfter();
 	void SetCurrentStep();
 
 public slots:
diff --git a/common/lc_view.cpp b/common/lc_view.cpp
index 13f17bb..71d6c93 100644
--- a/common/lc_view.cpp
+++ b/common/lc_view.cpp
@@ -11,6 +11,7 @@
 #include "lc_synth.h"
 #include "lc_scene.h"
 #include "lc_context.h"
+#include "lc_viewmanipulator.h"
 #include "lc_viewsphere.h"
 #include "lc_findreplacewidget.h"
 
@@ -20,15 +21,13 @@ lcFindReplaceWidget* lcView::mFindWidget;
 lcView* lcView::mLastFocusedView;
 std::vector<lcView*> lcView::mViews;
 
-lcVertexBuffer lcView::mRotateMoveVertexBuffer;
-lcIndexBuffer lcView::mRotateMoveIndexBuffer;
-
 lcView::lcView(lcViewType ViewType, lcModel* Model)
 	: mViewType(ViewType), mScene(new lcScene()), mModel(Model)
 {
 	mContext = new lcContext();
 	mViews.push_back(this);
 
+	mViewManipulator = std::unique_ptr<lcViewManipulator>(new lcViewManipulator(this));
 	mViewSphere = std::unique_ptr<lcViewSphere>(new lcViewSphere(this));
 	memset(mGridSettings, 0, sizeof(mGridSettings));
 
@@ -185,165 +184,18 @@ void lcView::SetSelectedSubmodelActive()
 
 void lcView::CreateResources(lcContext* Context)
 {
+	Q_UNUSED(Context);
+
 	gGridTexture = new lcTexture;
 	gGridTexture->CreateGridTexture();
-
-	CreateSelectMoveOverlayMesh(Context);
-}
-
-void lcView::CreateSelectMoveOverlayMesh(lcContext* Context)
-{
-	float Verts[(51 + 138 + 10) * 3];
-	float* CurVert = Verts;
-
-	const float OverlayMovePlaneSize = 0.5f;
-	const float OverlayMoveArrowSize = 1.5f;
-	const float OverlayMoveArrowCapSize = 0.9f;
-	const float OverlayMoveArrowCapRadius = 0.1f;
-	const float OverlayMoveArrowBodySize = 1.2f;
-	const float OverlayMoveArrowBodyRadius = 0.05f;
-	const float OverlayRotateArrowStart = 1.0f;
-	const float OverlayRotateArrowEnd = 1.5f;
-	const float OverlayRotateArrowCenter = 1.2f;
-
-	*CurVert++ = OverlayMoveArrowSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
-
-	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
-	{
-		*CurVert++ = OverlayMoveArrowCapSize;
-		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
-		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
-	}
-
-	*CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
-	*CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
-	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius;
-	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius;
-	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = -OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
-	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
-	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius;
-	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius;
-
-	for (int VertIdx = 0; VertIdx < 17; VertIdx++)
-	{
-		*CurVert = *(CurVert - 50); CurVert++;
-		*CurVert = *(CurVert - 52); CurVert++;
-		*CurVert = *(CurVert - 51); CurVert++;
-	}
-
-	for (int VertIdx = 0; VertIdx < 17; VertIdx++)
-	{
-		*CurVert = *(CurVert - 100); CurVert++;
-		*CurVert = *(CurVert - 102); CurVert++;
-		*CurVert = *(CurVert - 104); CurVert++;
-	}
-
-	*CurVert++ = 0.0f; *CurVert++ = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius; *CurVert++ = OverlayRotateArrowStart;
-
-	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
-	{
-		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
-		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius + OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
-		*CurVert++ = OverlayRotateArrowCenter;
-	}
-
-	*CurVert++ = 0.0f; *CurVert++ = OverlayRotateArrowStart; *CurVert++ = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
-
-	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
-	{
-		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
-		*CurVert++ = OverlayRotateArrowCenter;
-		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius + OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
-	}
-
-	for (int EdgeIdx = 0; EdgeIdx < 7; EdgeIdx++)
-	{
-		const float Radius1 = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter - OverlayMoveArrowBodyRadius;
-		const float Radius2 = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter + OverlayMoveArrowBodyRadius;
-		float x = cosf(LC_2PI / 4 * EdgeIdx / 6);
-		float y = sinf(LC_2PI / 4 * EdgeIdx / 6);
-
-		*CurVert++ = 0.0f;
-		*CurVert++ = OverlayRotateArrowCenter + x * Radius1;
-		*CurVert++ = OverlayRotateArrowCenter + y * Radius1;
-		*CurVert++ = 0.0f;
-		*CurVert++ = OverlayRotateArrowCenter + x * Radius2;
-		*CurVert++ = OverlayRotateArrowCenter + y * Radius2;
-	}
-
-	for (int EdgeIdx = 0; EdgeIdx < 7; EdgeIdx++)
-	{
-		const float Radius = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter;
-		float x = cosf(LC_2PI / 4 * EdgeIdx / 6);
-		float y = sinf(LC_2PI / 4 * EdgeIdx / 6);
-
-		*CurVert++ = -OverlayMoveArrowBodyRadius;
-		*CurVert++ = OverlayRotateArrowCenter + x * Radius;
-		*CurVert++ = OverlayRotateArrowCenter + y * Radius;
-		*CurVert++ = OverlayMoveArrowBodyRadius;
-		*CurVert++ = OverlayRotateArrowCenter + x * Radius;
-		*CurVert++ = OverlayRotateArrowCenter + y * Radius;
-	}
-
-	for (int VertIdx = 0; VertIdx < 46; VertIdx++)
-	{
-		*CurVert = *(CurVert - 137); CurVert++;
-		*CurVert = *(CurVert - 139); CurVert++;
-		*CurVert = *(CurVert - 138); CurVert++;
-	}
-
-	for (int VertIdx = 0; VertIdx < 46; VertIdx++)
-	{
-		*CurVert = *(CurVert - 274); CurVert++;
-		*CurVert = *(CurVert - 276); CurVert++;
-		*CurVert = *(CurVert - 278); CurVert++;
-	}
-
-	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
-	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
-	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = OverlayMovePlaneSize;
-	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
-	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
-	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
-	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
-	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
-	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
-	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
-
-	const GLushort Indices[108 + 360 + 12] =
-	{
-		0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6, 0, 6, 7, 0, 7, 8, 0, 8, 1,
-		9, 10, 14, 14, 13, 9, 11, 12, 15, 15, 16, 12,
-		17, 18, 19, 17, 19, 20, 17, 20, 21, 17, 21, 22, 17, 22, 23, 17, 23, 24, 17, 24, 25, 17, 25, 18,
-		26, 27, 31, 31, 30, 26, 28, 29, 32, 32, 33, 29,
-		34, 35, 36, 34, 36, 37, 34, 37, 38, 34, 38, 39, 34, 39, 40, 34, 40, 41, 34, 41, 42, 34, 42, 35,
-		43, 44, 48, 48, 47, 43, 45, 46, 49, 49, 50, 46,
-		51, 52, 53, 51, 53, 54, 51, 54, 55, 51, 55, 56, 51, 56, 57, 51, 57, 58, 51, 58, 59, 51, 59, 52,
-		60, 61, 62, 60, 62, 63, 60, 63, 64, 60, 64, 65, 60, 65, 66, 60, 66, 67, 60, 67, 68, 60, 68, 61,
-		69, 70, 71, 71, 72, 70, 71, 72, 73, 73, 74, 72, 73, 74, 75, 75, 76, 74, 75, 76, 77, 77, 78, 76, 77, 78, 79, 79, 80, 78, 79, 80, 81, 81, 82, 80,
-		83, 84, 85, 85, 86, 84, 85, 86, 87, 87, 88, 86, 87, 88, 89, 89, 90, 88, 89, 90, 91, 91, 92, 90, 91, 92, 93, 93, 94, 92, 93, 94, 95, 95, 96, 94,
-		97, 98, 99, 97, 99, 100, 97, 100, 101, 97, 101, 102, 97, 102, 103, 97, 103, 104, 97, 104, 105, 97, 105, 98,
-		106, 107, 108, 106, 108, 109, 106, 109, 110, 106, 110, 111, 106, 111, 112, 106, 112, 113, 106, 113, 114, 106, 114, 107,
-		115, 116, 117, 117, 118, 116, 117, 118, 119, 119, 120, 118, 119, 120, 121, 121, 122, 120, 121, 122, 123, 123, 124, 122, 123, 124, 125, 125, 126, 124, 125, 126, 127, 127, 128, 126,
-		129, 130, 131, 131, 132, 130, 131, 132, 133, 133, 134, 132, 133, 134, 135, 135, 136, 134, 135, 136, 137, 137, 138, 136, 137, 138, 139, 139, 140, 138, 139, 140, 141, 141, 142, 140,
-		143, 144, 145, 143, 145, 146, 143, 146, 147, 143, 147, 148, 143, 148, 149, 143, 149, 150, 143, 150, 151, 143, 151, 144,
-		152, 153, 154, 152, 154, 155, 152, 155, 156, 152, 156, 157, 152, 157, 158, 152, 158, 159, 152, 159, 160, 152, 160, 153,
-		161, 162, 163, 163, 164, 162, 163, 164, 165, 165, 166, 164, 165, 166, 167, 167, 168, 166, 167, 168, 169, 169, 170, 168, 169, 170, 171, 171, 172, 170, 171, 172, 173, 173, 174, 172,
-		175, 176, 177, 177, 178, 176, 177, 178, 179, 179, 180, 178, 179, 180, 181, 181, 182, 180, 181, 182, 183, 183, 184, 182, 183, 184, 185, 185, 186, 184, 185, 186, 187, 187, 188, 186,
-		189, 190, 191, 192, 189, 193, 194, 195, 189, 196, 197, 198
-	};
-
-	mRotateMoveVertexBuffer = Context->CreateVertexBuffer(sizeof(Verts), Verts);
-	mRotateMoveIndexBuffer = Context->CreateIndexBuffer(sizeof(Indices), Indices);
 }
 
 void lcView::DestroyResources(lcContext* Context)
 {
+	Q_UNUSED(Context);
+
 	delete gGridTexture;
 	gGridTexture = nullptr;
-
-	Context->DestroyVertexBuffer(mRotateMoveVertexBuffer);
-	Context->DestroyIndexBuffer(mRotateMoveIndexBuffer);
 }
 
 void lcView::RemoveCamera()
@@ -560,19 +412,33 @@ lcVector3 lcView::GetMoveDirection(const lcVector3& Direction) const
 
 lcMatrix44 lcView::GetPieceInsertPosition(bool IgnoreSelected, PieceInfo* Info) const
 {
-	lcPiece* HitPiece = (lcPiece*)FindObjectUnderPointer(true, IgnoreSelected).Object;
 	lcModel* ActiveModel = GetActiveModel();
 
-	if (HitPiece)
-	{
-		lcVector3 Position(0, 0, HitPiece->GetBoundingBox().Max.z - Info->GetBoundingBox().Min.z);
+	lcPieceInfoRayTest PieceInfoRayTest = FindPieceInfoUnderPointer(IgnoreSelected);
+		
+	if (PieceInfoRayTest.Info)
+	{
+		lcVector3 Position = PieceInfoRayTest.Plane;
+
+		if (Position.x > 0.0f)
+			Position.x += fabsf(Info->GetBoundingBox().Min.x);
+		else if (Position.x < 0.0f)
+			Position.x -= fabsf(Info->GetBoundingBox().Max.x);
+		else if (Position.y > 0.0f)
+			Position.y += fabsf(Info->GetBoundingBox().Min.y);
+		else if (Position.y < 0.0f)
+			Position.y -= fabsf(Info->GetBoundingBox().Max.y);
+		else if (Position.z > 0.0f)
+			Position.z += fabsf(Info->GetBoundingBox().Min.z);
+		else if (Position.z < 0.0f)
+			Position.z -= fabsf(Info->GetBoundingBox().Max.z);
 
 		if (gMainWindow->GetRelativeTransform())
-			Position = lcMul31(ActiveModel->SnapPosition(Position), HitPiece->mModelWorld);
+			Position = lcMul31(ActiveModel->SnapPosition(Position), PieceInfoRayTest.Transform);
 		else
-			Position = ActiveModel->SnapPosition(lcMul31(Position, HitPiece->mModelWorld));
+			Position = ActiveModel->SnapPosition(lcMul31(Position, PieceInfoRayTest.Transform));
 
-		lcMatrix44 WorldMatrix = HitPiece->mModelWorld;
+		lcMatrix44 WorldMatrix = PieceInfoRayTest.Transform;
 		WorldMatrix.SetTranslation(Position);
 
 		return WorldMatrix;
@@ -671,9 +537,6 @@ lcObjectSection lcView::FindObjectUnderPointer(bool PiecesOnly, bool IgnoreSelec
 	ObjectRayTest.ViewCamera = mCamera;
 	ObjectRayTest.Start = StartEnd[0];
 	ObjectRayTest.End = StartEnd[1];
-	ObjectRayTest.Distance = FLT_MAX;
-	ObjectRayTest.ObjectSection.Object = nullptr;
-	ObjectRayTest.ObjectSection.Section = 0;;
 
 	lcModel* ActiveModel = GetActiveModel();
 
@@ -690,6 +553,39 @@ lcObjectSection lcView::FindObjectUnderPointer(bool PiecesOnly, bool IgnoreSelec
 	return ObjectRayTest.ObjectSection;
 }
 
+lcPieceInfoRayTest lcView::FindPieceInfoUnderPointer(bool IgnoreSelected) const
+{
+	lcVector3 StartEnd[2] =
+	{
+		lcVector3((float)mMouseX, (float)mMouseY, 0.0f),
+		lcVector3((float)mMouseX, (float)mMouseY, 1.0f)
+	};
+
+	UnprojectPoints(StartEnd, 2);
+
+	lcObjectRayTest ObjectRayTest;
+
+	ObjectRayTest.PiecesOnly = true;
+	ObjectRayTest.IgnoreSelected = IgnoreSelected;
+	ObjectRayTest.ViewCamera = mCamera;
+	ObjectRayTest.Start = StartEnd[0];
+	ObjectRayTest.End = StartEnd[1];
+
+	lcModel* ActiveModel = GetActiveModel();
+
+	if (ActiveModel != mModel)
+	{
+		lcMatrix44 InverseMatrix = lcMatrix44AffineInverse(mActiveSubmodelTransform);
+
+		ObjectRayTest.Start = lcMul31(ObjectRayTest.Start, InverseMatrix);
+		ObjectRayTest.End = lcMul31(ObjectRayTest.End, InverseMatrix);
+	}
+
+	ActiveModel->RayTest(ObjectRayTest);
+
+	return ObjectRayTest.PieceInfoRayTest;
+}
+
 lcArray<lcObject*> lcView::FindObjectsInBox(float x1, float y1, float x2, float y2) const
 {
 	float Left, Top, Bottom, Right;
@@ -956,8 +852,6 @@ void lcView::OnDraw()
 			mContext->SetDefaultState();
 			mContext->SetViewport(0, 0, mWidth, mHeight);
 
-			DrawBackground();
-
 			int CurrentTileWidth, CurrentTileHeight;
 
 			if (!mRenderImage.isNull() && (TotalTileRows > 1 || TotalTileColumns > 1))
@@ -972,6 +866,8 @@ void lcView::OnDraw()
 				else
 					CurrentTileWidth = mRenderImage.width() - (TotalTileColumns - 1) * (mWidth);
 
+				DrawBackground(CurrentTileRow, TotalTileRows, CurrentTileHeight);
+
 				mContext->SetViewport(0, 0, CurrentTileWidth, CurrentTileHeight);
 				mContext->SetProjectionMatrix(GetTileProjectionMatrix(CurrentTileRow, CurrentTileColumn, CurrentTileWidth, CurrentTileHeight));
 			}
@@ -980,6 +876,8 @@ void lcView::OnDraw()
 				CurrentTileWidth = mWidth;
 				CurrentTileHeight = mHeight;
 
+				DrawBackground(CurrentTileRow, TotalTileRows, CurrentTileHeight);
+
 				mContext->SetProjectionMatrix(GetProjectionMatrix());
 			}
 
@@ -1026,11 +924,11 @@ void lcView::OnDraw()
 		lcModel* ActiveModel = GetActiveModel();
 
 		if ((Tool == lcTool::Select || Tool == lcTool::Move) && mTrackButton == lcTrackButton::None && ActiveModel->AnyObjectsSelected())
-			DrawSelectMoveOverlay();
+			mViewManipulator->DrawSelectMove(mTrackButton, mTrackTool);
 		else if (GetCurrentTool() == lcTool::Move && mTrackButton != lcTrackButton::None)
-			DrawSelectMoveOverlay();
+			mViewManipulator->DrawSelectMove(mTrackButton, mTrackTool);
 		else if ((Tool == lcTool::Rotate || (Tool == lcTool::Select && mTrackButton != lcTrackButton::None && mTrackTool >= lcTrackTool::RotateX && mTrackTool <= lcTrackTool::RotateXYZ)) && ActiveModel->AnyPiecesSelected())
-			DrawRotateOverlay();
+			mViewManipulator->DrawRotate(mTrackButton, mTrackTool);
 		else if ((mTrackTool == lcTrackTool::Select || mTrackTool == lcTrackTool::ZoomRegion) && mTrackButton != lcTrackButton::None)
 			DrawSelectZoomRegionOverlay();
 		else if (Tool == lcTool::RotateView && mTrackButton == lcTrackButton::None)
@@ -1073,13 +971,13 @@ void lcView::OnDraw()
 	mContext->SetColor(lcVector4FromColor(lcGetPreferences().mTextColor));
 	mContext->BindTexture2D(gTexFont.GetTexture());
 
-	glDisable(GL_DEPTH_TEST);
-	glEnable(GL_BLEND);
+	mContext->EnableDepthTest(false);
+	mContext->EnableColorBlend(true);
 
 	gTexFont.PrintText(mContext, 3.0f, (float)mHeight - 1.0f - 6.0f, 0.0f, Line.toLatin1().constData());
 
-	glDisable(GL_BLEND);
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableColorBlend(false);
+	mContext->EnableDepthTest(true);
 
 	Redraw();
 #endif
@@ -1087,7 +985,7 @@ void lcView::OnDraw()
 	mContext->ClearResources();
 }
 
-void lcView::DrawBackground() const
+void lcView::DrawBackground(int CurrentTileRow, int TotalTileRows, int CurrentTileHeight) const
 {
 	if (mOverrideBackgroundColor)
 	{
@@ -1108,19 +1006,49 @@ void lcView::DrawBackground() const
 	mContext->ClearDepth();
 
 	mContext->SetDepthWrite(false);
-	glDisable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(false);
 
 	float ViewWidth = (float)mWidth;
 	float ViewHeight = (float)mHeight;
 
 	mContext->SetWorldMatrix(lcMatrix44Identity());
-	mContext->SetViewMatrix(lcMatrix44Translation(lcVector3(0.375, 0.375, 0.0)));
+	mContext->SetViewMatrix(lcMatrix44Identity());
 	mContext->SetProjectionMatrix(lcMatrix44Ortho(0.0f, ViewWidth, 0.0f, ViewHeight, -1.0f, 1.0f));
 
-	mContext->SetSmoothShading(true);
-
-	const quint32 Color1 = Preferences.mBackgroundGradientColorTop;
-	const quint32 Color2 = Preferences.mBackgroundGradientColorBottom;
+	const int TotalHeight = TotalTileRows == 1 ? mHeight : mRenderImage.height();
+	const quint32 TopY = CurrentTileRow * mHeight + CurrentTileHeight;
+
+	const double t1 = 1.0 - (double)TopY / (double)TotalHeight;
+	const double t2 = 1.0 - (double)(TopY - CurrentTileHeight) / (double)TotalHeight;
+
+	const quint32 ColorTop = Preferences.mBackgroundGradientColorTop;
+	const quint32 ColorBottom = Preferences.mBackgroundGradientColorBottom;
+
+	double TopRed = LC_RGBA_RED(ColorTop);
+	double TopGreen = LC_RGBA_GREEN(ColorTop);
+	double TopBlue = LC_RGBA_BLUE(ColorTop);
+	double TopAlpha = LC_RGBA_ALPHA(ColorTop);
+	double BottomRed = LC_RGBA_RED(ColorBottom);
+	double BottomGreen = LC_RGBA_GREEN(ColorBottom);
+	double BottomBlue = LC_RGBA_BLUE(ColorBottom);
+	double BottomAlpha = LC_RGBA_ALPHA(ColorBottom);
+	const double DeltaRed = BottomRed - TopRed;
+	const double DeltaGreen = BottomGreen - TopGreen;
+	const double DeltaBlue = BottomBlue - TopBlue;
+	const double DeltaAlpha = BottomAlpha - TopAlpha;
+
+	BottomRed = TopRed + DeltaRed * t2;
+	BottomGreen = TopGreen + DeltaGreen * t2;
+	BottomBlue = TopBlue + DeltaBlue * t2;
+	BottomAlpha = TopAlpha + DeltaAlpha * t2;
+
+	TopRed = TopRed + DeltaRed * t1;
+	TopGreen = TopGreen + DeltaGreen * t1;
+	TopBlue = TopBlue + DeltaBlue * t1;
+	TopAlpha = TopAlpha + DeltaAlpha * t1;
+
+	const quint32 Color1 = LC_RGBA(TopRed, TopGreen, TopBlue, TopAlpha);
+	const quint32 Color2 = LC_RGBA(BottomRed, BottomGreen, BottomBlue, BottomAlpha);
 
 	struct lcBackgroundVertex
 	{
@@ -1139,9 +1067,7 @@ void lcView::DrawBackground() const
 
 	mContext->DrawPrimitives(GL_TRIANGLE_FAN, 0, 4);
 
-	mContext->SetSmoothShading(false);
-
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(true);
 	mContext->SetDepthWrite(true);
 }
 
@@ -1153,7 +1079,7 @@ void lcView::DrawViewport() const
 	mContext->SetLineWidth(1.0f);
 
 	mContext->SetDepthWrite(false);
-	glDisable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(false);
 
 	mContext->SetMaterial(lcMaterialType::UnlitColor);
 
@@ -1176,15 +1102,15 @@ void lcView::DrawViewport() const
 		mContext->SetColor(lcVector4FromColor(lcGetPreferences().mTextColor));
 		mContext->BindTexture2D(gTexFont.GetTexture());
 
-		glEnable(GL_BLEND);
+		mContext->EnableColorBlend(true);
 
 		gTexFont.PrintText(mContext, 3.0f, (float)mHeight - 1.0f - 6.0f, 0.0f, CameraName.toLatin1().constData());
 
-		glDisable(GL_BLEND);
+		mContext->EnableColorBlend(false);
 	}
 
 	mContext->SetDepthWrite(true);
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(true);
 }
 
 void lcView::DrawAxes() const
@@ -1279,7 +1205,7 @@ void lcView::DrawAxes() const
 	mContext->SetMaterial(lcMaterialType::UnlitTextureModulate);
 	mContext->SetViewMatrix(TranslationMatrix);
 	mContext->BindTexture2D(gTexFont.GetTexture());
-	glEnable(GL_BLEND);
+	mContext->EnableColorBlend(true);
 
 	float TextBuffer[6 * 5 * 3];
 	lcVector3 PosX = lcMul30(lcVector3(25.0f, 0.0f, 0.0f), WorldViewMatrix);
@@ -1295,498 +1221,7 @@ void lcView::DrawAxes() const
 	mContext->SetColor(lcVector4FromColor(lcGetPreferences().mAxesColor));
 	mContext->DrawPrimitives(GL_TRIANGLES, 0, 6 * 3);
 
-	glDisable(GL_BLEND);
-}
-
-void lcView::DrawSelectMoveOverlay()
-{
-	mContext->SetMaterial(lcMaterialType::UnlitColor);
-	mContext->SetViewMatrix(mCamera->mWorldView);
-	mContext->SetProjectionMatrix(GetProjectionMatrix());
-
-	glDisable(GL_DEPTH_TEST);
-
-	lcVector3 OverlayCenter;
-	lcMatrix33 RelativeRotation;
-	lcModel* ActiveModel = GetActiveModel();
-	ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation);
-	bool AnyPiecesSelected = ActiveModel->AnyPiecesSelected();
-
-	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
-
-	if (ActiveModel != mModel)
-		WorldMatrix = lcMul(WorldMatrix, mActiveSubmodelTransform);
-
-	const float OverlayScale = GetOverlayScale();
-	WorldMatrix = lcMul(lcMatrix44Scale(lcVector3(OverlayScale, OverlayScale, OverlayScale)), WorldMatrix);
-
-	mContext->SetWorldMatrix(WorldMatrix);
-	mContext->SetLineWidth(1.0f);
-
-	mContext->SetIndexBuffer(mRotateMoveIndexBuffer);
-	mContext->SetVertexBuffer(mRotateMoveVertexBuffer);
-	mContext->SetVertexFormatPosition(3);
-
-	lcObject* Focus = ActiveModel->GetFocusObject();
-	quint32 AllowedTransforms = Focus ? Focus->GetAllowedTransforms() : LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z | LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
-
-	if (mTrackButton == lcTrackButton::None || (mTrackTool >= lcTrackTool::MoveX && mTrackTool <= lcTrackTool::MoveXYZ))
-	{
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_X)
-		{
-			if ((mTrackTool == lcTrackTool::MoveX) || (mTrackTool == lcTrackTool::MoveXY) || (mTrackTool == lcTrackTool::MoveXZ))
-			{
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
-			}
-			else if (mTrackButton == lcTrackButton::None)
-			{
-				mContext->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
-			}
-		}
-
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y)
-		{
-			if (((mTrackTool == lcTrackTool::MoveY) || (mTrackTool == lcTrackTool::MoveXY) || (mTrackTool == lcTrackTool::MoveYZ)) && (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y))
-			{
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 36 * 2);
-			}
-			else if (mTrackButton == lcTrackButton::None)
-			{
-				mContext->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 36 * 2);
-			}
-		}
-
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z)
-		{
-			if (((mTrackTool == lcTrackTool::MoveZ) || (mTrackTool == lcTrackTool::MoveXZ) || (mTrackTool == lcTrackTool::MoveYZ)) && (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z))
-			{
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 72 * 2);
-			}
-			else if (mTrackButton == lcTrackButton::None)
-			{
-				mContext->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
-				mContext->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 72 * 2);
-			}
-		}
-	}
-
-	if (gMainWindow->GetTool() == lcTool::Select && mTrackButton == lcTrackButton::None && AnyPiecesSelected)
-	{
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_X)
-		{
-			if (mTrackTool == lcTrackTool::RotateX)
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-			else
-				mContext->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
-
-			mContext->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, 108 * 2);
-		}
-
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Y)
-		{
-			if (mTrackTool == lcTrackTool::RotateY)
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-			else
-				mContext->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
-
-			mContext->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, (108 + 120) * 2);
-		}
-
-		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Z)
-		{
-			if (mTrackTool == lcTrackTool::RotateZ)
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-			else
-				mContext->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
-
-			mContext->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, (108 + 240) * 2);
-		}
-	}
-
-	if ((mTrackTool == lcTrackTool::MoveXY) || (mTrackTool == lcTrackTool::MoveXZ) || (mTrackTool == lcTrackTool::MoveYZ))
-	{
-		glEnable(GL_BLEND);
-
-		mContext->SetColor(0.8f, 0.8f, 0.0f, 0.3f);
-
-		if (mTrackTool == lcTrackTool::MoveXY)
-			mContext->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360 + 8) * 2);
-		else if (mTrackTool == lcTrackTool::MoveXZ)
-			mContext->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360 + 4) * 2);
-		else if (mTrackTool == lcTrackTool::MoveYZ)
-			mContext->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360) * 2);
-
-		glDisable(GL_BLEND);
-	}
-
-	if (Focus && Focus->IsPiece())
-	{
-		lcPiece* Piece = (lcPiece*)Focus;
-		quint32 Section = Piece->GetFocusSection();
-
-		if (Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST && Piece->mPieceInfo->GetSynthInfo() && Piece->mPieceInfo->GetSynthInfo()->IsCurve())
-		{
-			int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
-			float Strength = Piece->GetControlPoints()[ControlPointIndex].Scale;
-			const float ScaleStart = 2.0f;
-			float Length = ScaleStart + Strength / OverlayScale;
-			const float OverlayScaleInnerRadius = 0.075f;
-			const float OverlayScaleRadius = 0.125f;
-
-			lcVector3 Verts[38];
-			int NumVerts = 0;
-
-			Verts[NumVerts++] = lcVector3(Length - OverlayScaleRadius, 0.0f, 0.0f);
-			Verts[NumVerts++] = lcVector3(OverlayScaleRadius - Length, 0.0f, 0.0f);
-
-			float SinTable[9], CosTable[9];
-
-			for (int Step = 0; Step <= 8; Step++)
-			{
-				SinTable[Step] = sinf((float)Step / 8.0f * LC_2PI);
-				CosTable[Step] = cosf((float)Step / 8.0f * LC_2PI);
-			}
-
-			for (int Step = 0; Step <= 8; Step++)
-			{
-				float x = CosTable[Step];
-				float y = SinTable[Step];
-
-				Verts[NumVerts++] = lcVector3(Length + x * OverlayScaleInnerRadius, 0.0f, y * OverlayScaleInnerRadius);
-				Verts[NumVerts++] = lcVector3(Length + x * OverlayScaleRadius, 0.0f, y * OverlayScaleRadius);
-			}
-
-			for (int Step = 0; Step <= 8; Step++)
-			{
-				float x = CosTable[Step];
-				float y = SinTable[Step];
-
-				Verts[NumVerts++] = lcVector3(-Length + x * OverlayScaleInnerRadius, 0.0f, y * OverlayScaleInnerRadius);
-				Verts[NumVerts++] = lcVector3(-Length + x * OverlayScaleRadius, 0.0f, y * OverlayScaleRadius);
-			}
-
-			if (mTrackTool == lcTrackTool::ScalePlus || mTrackTool == lcTrackTool::ScaleMinus)
-				mContext->SetColor(0.8f, 0.8f, 0.0f, 0.3f);
-			else
-				mContext->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
-
-			mContext->SetVertexBufferPointer(Verts);
-			mContext->ClearIndexBuffer();
-			mContext->SetVertexFormatPosition(3);
-
-			mContext->DrawPrimitives(GL_LINES, 0, 2);
-			mContext->DrawPrimitives(GL_TRIANGLE_STRIP, 2, 18);
-			mContext->DrawPrimitives(GL_TRIANGLE_STRIP, 20, 18);
-		}
-	}
-
-	glEnable(GL_DEPTH_TEST);
-}
-
-void lcView::DrawRotateOverlay()
-{
-	const float OverlayScale = GetOverlayScale();
-	const float OverlayRotateRadius = 2.0f;
-
-	mContext->SetMaterial(lcMaterialType::UnlitColor);
-	mContext->SetViewMatrix(mCamera->mWorldView);
-	mContext->SetProjectionMatrix(GetProjectionMatrix());
-	mContext->SetLineWidth(1.0f);
-
-	glDisable(GL_DEPTH_TEST);
-
-	int j;
-
-	lcVector3 OverlayCenter;
-	lcMatrix33 RelativeRotation;
-	lcModel* ActiveModel = GetActiveModel();
-	ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation);
-	lcVector3 MouseToolDistance = ActiveModel->SnapRotation(ActiveModel->GetMouseToolDistance());
-	bool HasAngle = false;
-
-	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
-
-	if (ActiveModel != mModel)
-		WorldMatrix = lcMul(WorldMatrix, mActiveSubmodelTransform);
-
-	// Draw a disc showing the rotation amount.
-	if (MouseToolDistance.LengthSquared() != 0.0f && (mTrackButton != lcTrackButton::None))
-	{
-		lcVector4 Rotation;
-		float Angle, Step;
-
-		HasAngle = true;
-
-		switch (mTrackTool)
-		{
-		case lcTrackTool::RotateX:
-			mContext->SetColor(0.8f, 0.0f, 0.0f, 0.3f);
-			Angle = MouseToolDistance[0];
-			Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
-			break;
-		case lcTrackTool::RotateY:
-			mContext->SetColor(0.0f, 0.8f, 0.0f, 0.3f);
-			Angle = MouseToolDistance[1];
-			Rotation = lcVector4(90.0f, 0.0f, 0.0f, 1.0f);
-			break;
-		case lcTrackTool::RotateZ:
-			mContext->SetColor(0.0f, 0.0f, 0.8f, 0.3f);
-			Angle = MouseToolDistance[2];
-			Rotation = lcVector4(90.0f, 0.0f, -1.0f, 0.0f);
-			break;
-		default:
-			Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
-			Angle = 0.0f;
-			break;
-		};
-
-		if (Angle > 0.0f)
-		{
-			Step = 360.0f / 32;
-		}
-		else
-		{
-			Angle = -Angle;
-			Step = -360.0f / 32;
-		}
-
-		if (fabsf(Angle) >= fabsf(Step))
-		{
-			lcMatrix44 RotatedWorldMatrix = lcMul(lcMatrix44FromAxisAngle(lcVector3(Rotation[1], Rotation[2], Rotation[3]), Rotation[0] * LC_DTOR), WorldMatrix);
-
-			mContext->SetWorldMatrix(RotatedWorldMatrix);
-
-			glEnable(GL_BLEND);
-
-			lcVector3 Verts[33];
-			Verts[0] = lcVector3(0.0f, 0.0f, 0.0f);
-			int NumVerts = 1;
-
-			mContext->SetVertexBufferPointer(Verts);
-			mContext->SetVertexFormatPosition(3);
-
-			float StartAngle;
-			int i = 0;
-
-			if (Step < 0)
-				StartAngle = -Angle;
-			else
-				StartAngle = Angle;
-
-			do
-			{
-				float x = cosf((Step * i - StartAngle) * LC_DTOR) * OverlayRotateRadius * OverlayScale;
-				float y = sinf((Step * i - StartAngle) * LC_DTOR) * OverlayRotateRadius * OverlayScale;
-
-				Verts[NumVerts++] = lcVector3(0.0f, x, y);
-
-				if (NumVerts == 33)
-				{
-					mContext->DrawPrimitives(GL_TRIANGLE_FAN, 0, NumVerts);
-					Verts[1] = Verts[32];
-					NumVerts = 2;
-				}
-
-				i++;
-				if (Step > 0)
-					Angle -= Step;
-				else
-					Angle += Step;
-
-			} while (Angle >= 0.0f);
-
-			if (NumVerts > 2)
-				mContext->DrawPrimitives(GL_TRIANGLE_FAN, 0, NumVerts);
-
-			glDisable(GL_BLEND);
-		}
-	}
-
-	// Draw the circles.
-	if (gMainWindow->GetTool() == lcTool::Rotate && !HasAngle && mTrackButton == lcTrackButton::None)
-	{
-		lcMatrix44 Mat = lcMatrix44AffineInverse(mCamera->mWorldView);
-		Mat.SetTranslation(WorldMatrix.GetTranslation());
-
-		lcVector3 Verts[32];
-
-		for (j = 0; j < 32; j++)
-		{
-			lcVector3 Pt;
-
-			Pt[0] = cosf(LC_2PI * j / 32) * OverlayRotateRadius * OverlayScale;
-			Pt[1] = sinf(LC_2PI * j / 32) * OverlayRotateRadius * OverlayScale;
-			Pt[2] = 0.0f;
-
-			Verts[j] = lcMul31(Pt, Mat);
-		}
-
-		mContext->SetColor(0.1f, 0.1f, 0.1f, 1.0f);
-		mContext->SetWorldMatrix(lcMatrix44Identity());
-
-		mContext->SetVertexBufferPointer(Verts);
-		mContext->SetVertexFormatPosition(3);
-
-		mContext->DrawPrimitives(GL_LINE_LOOP, 0, 32);
-	}
-
-	lcVector3 ViewDir = mCamera->mTargetPosition - mCamera->mPosition;
-	ViewDir.Normalize();
-
-	// Transform ViewDir to local space.
-	ViewDir = lcMul(ViewDir, lcMatrix33AffineInverse(lcMatrix33(WorldMatrix)));
-
-	mContext->SetWorldMatrix(WorldMatrix);
-
-	// Draw each axis circle.
-	for (int i = 0; i < 3; i++)
-	{
-		if (static_cast<int>(mTrackTool) == static_cast<int>(lcTrackTool::RotateX) + i)
-		{
-			mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-		}
-		else
-		{
-			if (gMainWindow->GetTool() != lcTool::Rotate || HasAngle || mTrackButton != lcTrackButton::None)
-				continue;
-
-			switch (i)
-			{
-			case 0:
-				mContext->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
-				break;
-			case 1:
-				mContext->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
-				break;
-			case 2:
-				mContext->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
-				break;
-			}
-		}
-
-		lcVector3 Verts[64];
-		int NumVerts = 0;
-
-		for (j = 0; j < 32; j++)
-		{
-			lcVector3 v1, v2;
-
-			switch (i)
-			{
-			case 0:
-				v1 = lcVector3(0.0f, cosf(LC_2PI * j / 32), sinf(LC_2PI * j / 32));
-				v2 = lcVector3(0.0f, cosf(LC_2PI * (j + 1) / 32), sinf(LC_2PI * (j + 1) / 32));
-				break;
-
-			case 1:
-				v1 = lcVector3(cosf(LC_2PI * j / 32), 0.0f, sinf(LC_2PI * j / 32));
-				v2 = lcVector3(cosf(LC_2PI * (j + 1) / 32), 0.0f, sinf(LC_2PI * (j + 1) / 32));
-				break;
-
-			case 2:
-				v1 = lcVector3(cosf(LC_2PI * j / 32), sinf(LC_2PI * j / 32), 0.0f);
-				v2 = lcVector3(cosf(LC_2PI * (j + 1) / 32), sinf(LC_2PI * (j + 1) / 32), 0.0f);
-				break;
-			}
-
-			if (gMainWindow->GetTool() != lcTool::Rotate || HasAngle || mTrackButton != lcTrackButton::None || lcDot(ViewDir, v1 + v2) <= 0.0f)
-			{
-				Verts[NumVerts++] = v1 * (OverlayRotateRadius * OverlayScale);
-				Verts[NumVerts++] = v2 * (OverlayRotateRadius * OverlayScale);
-			}
-		}
-
-		mContext->SetVertexBufferPointer(Verts);
-		mContext->SetVertexFormatPosition(3);
-
-		mContext->DrawPrimitives(GL_LINES, 0, NumVerts);
-	}
-
-	// Draw tangent vector.
-	if (mTrackButton != lcTrackButton::None && ((mTrackTool == lcTrackTool::RotateX) || (mTrackTool == lcTrackTool::RotateY) || (mTrackTool == lcTrackTool::RotateZ)))
-	{
-		const float OverlayRotateArrowSize = 1.5f;
-		const float OverlayRotateArrowCapSize = 0.25f;
-
-		lcVector4 Rotation;
-		float Angle;
-
-		switch (mTrackTool)
-		{
-		case lcTrackTool::RotateX:
-			Angle = MouseToolDistance[0];
-			Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
-			break;
-		case lcTrackTool::RotateY:
-			Angle = MouseToolDistance[1];
-			Rotation = lcVector4(90.0f, 0.0f, 0.0f, 1.0f);
-			break;
-		case lcTrackTool::RotateZ:
-			Angle = MouseToolDistance[2];
-			Rotation = lcVector4(90.0f, 0.0f, -1.0f, 0.0f);
-			break;
-		default:
-			Angle = 0.0f;
-			Rotation = lcVector4(0.0f, 0.0f, 1.0f, 0.0f);
-			break;
-		};
-
-		lcMatrix44 RotatedWorldMatrix = lcMul(lcMatrix44FromAxisAngle(lcVector3(Rotation[1], Rotation[2], Rotation[3]), Rotation[0] * LC_DTOR), WorldMatrix);
-		mContext->SetWorldMatrix(RotatedWorldMatrix);
-
-		mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-
-		if (HasAngle)
-		{
-			float StartY = OverlayScale * OverlayRotateRadius;
-			float EndZ = (Angle > 0.0f) ? OverlayScale * OverlayRotateArrowSize : -OverlayScale * OverlayRotateArrowSize;
-			float TipZ = (Angle > 0.0f) ? -OverlayScale * OverlayRotateArrowCapSize : OverlayScale * OverlayRotateArrowCapSize;
-
-			lcVector3 Verts[6];
-
-			Verts[0] = lcVector3(0.0f, StartY, 0.0f);
-			Verts[1] = lcVector3(0.0f, StartY, EndZ);
-
-			Verts[2] = lcVector3(0.0f, StartY, EndZ);
-			Verts[3] = lcVector3(0.0f, StartY + OverlayScale * OverlayRotateArrowCapSize, EndZ + TipZ);
-
-			Verts[4] = lcVector3(0.0f, StartY, EndZ);
-			Verts[5] = lcVector3(0.0f, StartY - OverlayScale * OverlayRotateArrowCapSize, EndZ + TipZ);
-
-			mContext->SetVertexBufferPointer(Verts);
-			mContext->SetVertexFormatPosition(3);
-
-			mContext->DrawPrimitives(GL_LINES, 0, 6);
-		}
-
-		// Draw text.
-		lcVector3 ScreenPos = ProjectPoint(WorldMatrix.GetTranslation());
-
-		mContext->SetMaterial(lcMaterialType::UnlitTextureModulate);
-		mContext->SetWorldMatrix(lcMatrix44Identity());
-		mContext->SetViewMatrix(lcMatrix44Translation(lcVector3(0.375, 0.375, 0.0)));
-		mContext->SetProjectionMatrix(lcMatrix44Ortho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f));
-		mContext->BindTexture2D(gTexFont.GetTexture());
-		glEnable(GL_BLEND);
-
-		char buf[32];
-		sprintf(buf, "[%.2f]", fabsf(Angle));
-
-		int cx, cy;
-		gTexFont.GetStringDimensions(&cx, &cy, buf);
-
-		mContext->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
-		gTexFont.PrintText(mContext, ScreenPos[0] - (cx / 2), ScreenPos[1] + (cy / 2), 0.0f, buf);
-
-		glDisable(GL_BLEND);
-	}
-
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableColorBlend(false);
 }
 
 void lcView::DrawSelectZoomRegionOverlay()
@@ -1797,7 +1232,7 @@ void lcView::DrawSelectZoomRegionOverlay()
 	mContext->SetProjectionMatrix(lcMatrix44Ortho(0.0f, mWidth, 0.0f, mHeight, -1.0f, 1.0f));
 	mContext->SetLineWidth(1.0f);
 
-	glDisable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(false);
 
 	float pt1x = (float)mMouseDownX;
 	float pt1y = (float)mMouseDownY;
@@ -1864,13 +1299,13 @@ void lcView::DrawSelectZoomRegionOverlay()
 
 	if (LC_RGBA_ALPHA(Preferences.mMarqueeFillColor))
 	{
-		glEnable(GL_BLEND);
+		mContext->EnableColorBlend(true);
 		mContext->SetColor(lcVector4FromColor(Preferences.mMarqueeFillColor));
 		mContext->DrawPrimitives(GL_TRIANGLE_STRIP, 10, 4);
-		glDisable(GL_BLEND);
+		mContext->EnableColorBlend(false);
 	}
 
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(true);
 }
 
 void lcView::DrawRotateViewOverlay()
@@ -1888,7 +1323,7 @@ void lcView::DrawRotateViewOverlay()
 	mContext->SetProjectionMatrix(lcMatrix44Ortho(0, w, 0, h, -1, 1));
 	mContext->SetLineWidth(1.0f);
 
-	glDisable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(false);
 	mContext->SetColor(lcVector4FromColor(lcGetPreferences().mOverlayColor));
 
 	float Verts[32 * 16 * 2];
@@ -1937,7 +1372,7 @@ void lcView::DrawRotateViewOverlay()
 	mContext->SetIndexBufferPointer(Indices);
 	mContext->DrawIndexedPrimitives(GL_LINES, 96, GL_UNSIGNED_SHORT, 0);
 
-	glEnable(GL_DEPTH_TEST);
+	mContext->EnableDepthTest(true);
 }
 
 void lcView::DrawGrid()
@@ -2094,9 +1529,9 @@ void lcView::DrawGrid()
 
 	if (Preferences.mDrawGridStuds)
 	{
-		mContext->BindTexture2D(gGridTexture->mTexture);
+		mContext->BindTexture2D(gGridTexture);
 		mContext->SetDepthWrite(false);
-		glEnable(GL_BLEND);
+		mContext->EnableColorBlend(true);
 
 		mContext->SetMaterial(lcMaterialType::UnlitTextureModulate);
 		mContext->SetColor(lcVector4FromColor(Preferences.mGridStudColor));
@@ -2104,7 +1539,7 @@ void lcView::DrawGrid()
 		mContext->SetVertexFormat(0, 3, 0, 2, 0, false);
 		mContext->DrawPrimitives(GL_TRIANGLE_STRIP, 0, 4);
 
-		glDisable(GL_BLEND);
+		mContext->EnableColorBlend(false);
 		mContext->SetDepthWrite(true);
 
 		BufferOffset = 4 * 5 * sizeof(float);
@@ -2612,167 +2047,10 @@ void lcView::UpdateTrackTool()
 	case lcTool::Select:
 	case lcTool::Move:
 		{
-			const float OverlayScale = GetOverlayScale();
-			const float OverlayMovePlaneSize = 0.5f * OverlayScale;
-			const float OverlayMoveArrowSize = 1.5f * OverlayScale;
-			const float OverlayMoveArrowCapRadius = 0.1f * OverlayScale;
-			const float OverlayRotateArrowStart = 1.0f * OverlayScale;
-			const float OverlayRotateArrowEnd = 1.5f * OverlayScale;
-			const float OverlayScaleRadius = 0.125f;
-
-			NewTrackTool = (CurrentTool == lcTool::Move) ? lcTrackTool::MoveXYZ : lcTrackTool::Select;
 			mMouseDownPiece = nullptr;
-
-			lcVector3 OverlayCenter;
-			lcMatrix33 RelativeRotation;
-			if (!ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation))
-				break;
-
-			lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
-
-			if (ActiveModel != mModel)
-				WorldMatrix = lcMul(WorldMatrix, mActiveSubmodelTransform);
-			OverlayCenter = WorldMatrix.GetTranslation();
-
-			lcVector3 PlaneNormals[3] =
-			{
-				lcVector3(1.0f, 0.0f, 0.0f),
-				lcVector3(0.0f, 1.0f, 0.0f),
-				lcVector3(0.0f, 0.0f, 1.0f),
-			};
-
-			for (int i = 0; i < 3; i++)
-				PlaneNormals[i] = lcMul30(PlaneNormals[i], WorldMatrix);
-
-			lcVector3 StartEnd[2] = { lcVector3((float)x, (float)y, 0.0f), lcVector3((float)x, (float)y, 1.0f) };
-			UnprojectPoints(StartEnd, 2);
-			const lcVector3& Start = StartEnd[0];
-			const lcVector3& End = StartEnd[1];
-			float ClosestIntersectionDistance = FLT_MAX;
-
-			lcObject* Focus = ActiveModel->GetFocusObject();
-			int ControlPointIndex = -1;
-			if (Focus && Focus->IsPiece())
-			{
-				lcPiece* Piece = (lcPiece*)Focus;
-				quint32 Section = Piece->GetFocusSection();
-
-				if (Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST)
-					ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1;
-			}
-
-			quint32 AllowedTransforms = Focus ? Focus->GetAllowedTransforms() : LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z | LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
-
-			for (int AxisIndex = 0; AxisIndex < 3; AxisIndex++)
-			{
-				lcVector4 Plane(PlaneNormals[AxisIndex], -lcDot(PlaneNormals[AxisIndex], OverlayCenter));
-				lcVector3 Intersection;
-
-				if (!lcLineSegmentPlaneIntersection(&Intersection, Start, End, Plane))
-					continue;
-
-				float IntersectionDistance = lcLengthSquared(Intersection - Start);
-
-				if (IntersectionDistance > ClosestIntersectionDistance)
-					continue;
-
-				lcVector3 Dir(Intersection - OverlayCenter);
-
-				float Proj1 = lcDot(Dir, PlaneNormals[(AxisIndex + 1) % 3]);
-				float Proj2 = lcDot(Dir, PlaneNormals[(AxisIndex + 2) % 3]);
-
-				if (Proj1 > 0.0f && Proj1 < OverlayMovePlaneSize && Proj2 > 0.0f && Proj2 < OverlayMovePlaneSize)
-				{
-					lcTrackTool PlaneModes[] = { lcTrackTool::MoveYZ, lcTrackTool::MoveXZ, lcTrackTool::MoveXY };
-
-					if (IsTrackToolAllowed(PlaneModes[AxisIndex], AllowedTransforms))
-					{
-						NewTrackTool = PlaneModes[AxisIndex];
-						ClosestIntersectionDistance = IntersectionDistance;
-					}
-				}
-
-				if (CurrentTool == lcTool::Select && Proj1 > OverlayRotateArrowStart && Proj1 < OverlayRotateArrowEnd && Proj2 > OverlayRotateArrowStart && Proj2 < OverlayRotateArrowEnd && ActiveModel->AnyPiecesSelected())
-				{
-					lcTrackTool PlaneModes[] = { lcTrackTool::RotateX, lcTrackTool::RotateY, lcTrackTool::RotateZ };
-
-					if (IsTrackToolAllowed(PlaneModes[AxisIndex], AllowedTransforms))
-					{
-						NewTrackTool = PlaneModes[AxisIndex];
-						ClosestIntersectionDistance = IntersectionDistance;
-					}
-				}
-
-				if (fabs(Proj1) < OverlayMoveArrowCapRadius && Proj2 > 0.0f && Proj2 < OverlayMoveArrowSize)
-				{
-					lcTrackTool DirModes[] = { lcTrackTool::MoveZ, lcTrackTool::MoveX, lcTrackTool::MoveY };
-
-					if (IsTrackToolAllowed(DirModes[AxisIndex], AllowedTransforms))
-					{
-						NewTrackTool = DirModes[AxisIndex];
-						ClosestIntersectionDistance = IntersectionDistance;
-					}
-				}
-
-				if (fabs(Proj2) < OverlayMoveArrowCapRadius && Proj1 > 0.0f && Proj1 < OverlayMoveArrowSize)
-				{
-					lcTrackTool DirModes[] = { lcTrackTool::MoveY, lcTrackTool::MoveZ, lcTrackTool::MoveX };
-
-					if (IsTrackToolAllowed(DirModes[AxisIndex], AllowedTransforms))
-					{
-						NewTrackTool = DirModes[AxisIndex];
-						ClosestIntersectionDistance = IntersectionDistance;
-					}
-				}
-
-				lcPiece* Piece = (lcPiece*)Focus;
-
-				if (ControlPointIndex != -1 && Piece->mPieceInfo->GetSynthInfo() && Piece->mPieceInfo->GetSynthInfo()->IsCurve())
-				{
-					float Strength = Piece->GetControlPoints()[ControlPointIndex].Scale;
-					const float ScaleStart = (2.0f - OverlayScaleRadius) * OverlayScale + Strength;
-					const float ScaleEnd = (2.0f + OverlayScaleRadius) * OverlayScale + Strength;
-
-					if (AxisIndex == 1 && fabs(Proj1) < OverlayScaleRadius * OverlayScale)
-					{
-						if (Proj2 > ScaleStart && Proj2 < ScaleEnd)
-						{
-							if (IsTrackToolAllowed(lcTrackTool::ScalePlus, AllowedTransforms))
-							{
-								NewTrackTool = lcTrackTool::ScalePlus;
-								ClosestIntersectionDistance = IntersectionDistance;
-							}
-						}
-						else if (Proj2 < -ScaleStart && Proj2 > -ScaleEnd)
-						{
-							if (IsTrackToolAllowed(lcTrackTool::ScaleMinus, AllowedTransforms))
-							{
-								NewTrackTool = lcTrackTool::ScaleMinus;
-								ClosestIntersectionDistance = IntersectionDistance;
-							}
-						}
-					}
-					else if (AxisIndex == 2 && fabs(Proj2) < OverlayScaleRadius * OverlayScale)
-					{
-						if (Proj1 > ScaleStart && Proj1 < ScaleEnd)
-						{
-							if (IsTrackToolAllowed(lcTrackTool::ScalePlus, AllowedTransforms))
-							{
-								NewTrackTool = lcTrackTool::ScalePlus;
-								ClosestIntersectionDistance = IntersectionDistance;
-							}
-						}
-						else if (Proj1 < -ScaleStart && Proj1 > -ScaleEnd)
-						{
-							if (IsTrackToolAllowed(lcTrackTool::ScaleMinus, AllowedTransforms))
-							{
-								NewTrackTool = lcTrackTool::ScaleMinus;
-								ClosestIntersectionDistance = IntersectionDistance;
-							}
-						}
-					}
-				}
-			}
+			NewTrackTool = mViewManipulator->UpdateSelectMove();
+			mTrackToolFromOverlay = NewTrackTool != lcTrackTool::MoveXYZ && NewTrackTool != lcTrackTool::Select;
+			Redraw = NewTrackTool != mTrackTool;
 
 			if (CurrentTool == lcTool::Select && NewTrackTool == lcTrackTool::Select && mMouseModifiers == Qt::NoModifier)
 			{
@@ -2787,155 +2065,14 @@ void lcView::UpdateTrackTool()
 					NewTrackTool = lcTrackTool::MoveXYZ;
 				}
 			}
-
-			mTrackToolFromOverlay = NewTrackTool != lcTrackTool::MoveXYZ && NewTrackTool != lcTrackTool::Select;
-			Redraw = true;
 		}
 		break;
 
 	case lcTool::Rotate:
 		{
-			const float OverlayScale = GetOverlayScale();
-			const float OverlayRotateRadius = 2.0f;
-
-			NewTrackTool = lcTrackTool::RotateXYZ;
-
-			lcVector3 OverlayCenter;
-			lcMatrix33 RelativeRotation;
-			if (!ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation))
-				break;
-
-			// Calculate the distance from the mouse pointer to the center of the sphere.
-			lcVector3 StartEnd[2] = { lcVector3((float)x, (float)y, 0.0f), lcVector3((float)x, (float)y, 1.0f) };
-			UnprojectPoints(StartEnd, 2);
-			const lcVector3& SegStart = StartEnd[0];
-			const lcVector3& SegEnd = StartEnd[1];
-
-			lcVector3 Line = SegEnd - SegStart;
-			lcVector3 Vec = OverlayCenter - SegStart;
-
-			float u = lcDot(Vec, Line) / Line.LengthSquared();
-
-			// Closest point in the line to the mouse.
-			lcVector3 Closest = SegStart + Line * u;
-
-			float Distance = (Closest - OverlayCenter).Length();
-			const float Epsilon = 0.25f * OverlayScale;
-
-			if (Distance > (OverlayRotateRadius * OverlayScale + Epsilon))
-			{
-				NewTrackTool = lcTrackTool::RotateXYZ;
-			}
-			else if (Distance < (OverlayRotateRadius * OverlayScale + Epsilon))
-			{
-				// 3D rotation unless we're over one of the axis circles.
-				NewTrackTool = lcTrackTool::RotateXYZ;
-
-				// Point P on a line defined by two points P1 and P2 is described by P = P1 + u (P2 - P1)
-				// A sphere centered at P3 with radius r is described by (x - x3)^2 + (y - y3)^2 + (z - z3)^2 = r^2
-				// Substituting the equation of the line into the sphere gives a quadratic equation where:
-				// a = (x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2
-				// b = 2[ (x2 - x1) (x1 - x3) + (y2 - y1) (y1 - y3) + (z2 - z1) (z1 - z3) ]
-				// c = x32 + y32 + z32 + x12 + y12 + z12 - 2[x3 x1 + y3 y1 + z3 z1] - r2
-				// The solutions to this quadratic are described by: (-b +- sqrt(b^2 - 4 a c) / 2 a
-				// The exact behavior is determined by b^2 - 4 a c:
-				// If this is less than 0 then the line does not intersect the sphere.
-				// If it equals 0 then the line is a tangent to the sphere intersecting it at one point
-				// If it is greater then 0 the line intersects the sphere at two points.
-
-				float x1 = SegStart[0], y1 = SegStart[1], z1 = SegStart[2];
-				float x2 = SegEnd[0], y2 = SegEnd[1], z2 = SegEnd[2];
-				float x3 = OverlayCenter[0], y3 = OverlayCenter[1], z3 = OverlayCenter[2];
-				float r = OverlayRotateRadius * OverlayScale;
-
-				// TODO: rewrite using vectors.
-				float a = (x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1) + (z2 - z1)*(z2 - z1);
-				float b = 2 * ((x2 - x1)*(x1 - x3) + (y2 - y1)*(y1 - y3) + (z2 - z1)*(z1 - z3));
-				float c = x3*x3 + y3*y3 + z3*z3 + x1*x1 + y1*y1 + z1*z1 - 2*(x3*x1 + y3*y1 + z3*z1) - r*r;
-				float f = b * b - 4 * a * c;
-
-				if (f >= 0.0f)
-				{
-					lcVector3 ViewDir(mCamera->mTargetPosition - mCamera->mPosition);
-
-					float u1 = (-b + sqrtf(f)) / (2*a);
-					float u2 = (-b - sqrtf(f)) / (2*a);
-
-					lcVector3 Intersections[2] =
-					{
-						lcVector3(x1 + u1*(x2-x1), y1 + u1*(y2-y1), z1 + u1*(z2-z1)),
-						lcVector3(x1 + u2*(x2-x1), y1 + u2*(y2-y1), z1 + u2*(z2-z1))
-					};
-
-					for (int i = 0; i < 2; i++)
-					{
-						lcVector3 Dist = Intersections[i] - OverlayCenter;
-
-						if (lcDot(ViewDir, Dist) > 0.0f)
-							continue;
-
-						Dist = lcMul(Dist, RelativeRotation);
-
-						// Check if we're close enough to one of the axis.
-						Dist.Normalize();
-
-						float dx = fabsf(Dist[0]);
-						float dy = fabsf(Dist[1]);
-						float dz = fabsf(Dist[2]);
-
-						if (dx < dy)
-						{
-							if (dx < dz)
-							{
-								if (dx < Epsilon)
-									NewTrackTool = lcTrackTool::RotateX;
-							}
-							else
-							{
-								if (dz < Epsilon)
-									NewTrackTool = lcTrackTool::RotateZ;
-							}
-						}
-						else
-						{
-							if (dy < dz)
-							{
-								if (dy < Epsilon)
-									NewTrackTool = lcTrackTool::RotateY;
-							}
-							else
-							{
-								if (dz < Epsilon)
-									NewTrackTool = lcTrackTool::RotateZ;
-							}
-						}
-
-						if (NewTrackTool != lcTrackTool::RotateXYZ)
-						{
-							switch (NewTrackTool)
-							{
-							case lcTrackTool::RotateX:
-								Dist[0] = 0.0f;
-								break;
-							case lcTrackTool::RotateY:
-								Dist[1] = 0.0f;
-								break;
-							case lcTrackTool::RotateZ:
-								Dist[2] = 0.0f;
-								break;
-							default:
-								break;
-							}
-
-							mTrackToolFromOverlay = true;
-							Dist *= r;
-							break;
-						}
-					}
-				}
-			}
-
-			Redraw = true;
+			NewTrackTool = mViewManipulator->UpdateRotate();
+			mTrackToolFromOverlay = NewTrackTool != lcTrackTool::RotateXYZ;
+			Redraw = NewTrackTool != mTrackTool;
 		}
 		break;
 
@@ -3034,84 +2171,80 @@ void lcView::UpdateTrackTool()
 		ActiveModel->UpdateAllViews();
 }
 
-bool lcView::IsTrackToolAllowed(lcTrackTool TrackTool, quint32 AllowedTransforms) const
+void lcView::StartOrbitTracking()
 {
-	switch (TrackTool)
-	{
-	case lcTrackTool::None:
-	case lcTrackTool::Insert:
-	case lcTrackTool::PointLight:
-	case lcTrackTool::SpotLight:
-	case lcTrackTool::Camera:
-	case lcTrackTool::Select:
-		return true;
-
-	case lcTrackTool::MoveX:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_X;
-
-	case lcTrackTool::MoveY:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y;
-
-	case lcTrackTool::MoveZ:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z;
+	mTrackTool = lcTrackTool::OrbitXY;
+	UpdateCursor();
+	OnButtonDown(lcTrackButton::Left);
+}
 
-	case lcTrackTool::MoveXY:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y);
+void lcView::StartPanGesture()
+{
+	lcModel* ActiveModel = GetActiveModel();
 
-	case lcTrackTool::MoveXZ:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Z);
+	StartPan(mWidth / 2, mHeight / 2);
+	ActiveModel->BeginMouseTool();
+}
 
-	case lcTrackTool::MoveYZ:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z);
+void lcView::UpdatePanGesture(int dx, int dy)
+{
+	UpdatePan(mPanX + dx, mPanY + dy);
+}
 
-	case lcTrackTool::MoveXYZ:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z);
+void lcView::StartPan(int x, int y)
+{
+	mPanX = x;
+	mPanY = y;
+}
 
-	case lcTrackTool::RotateX:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_X;
+void lcView::UpdatePan(int x, int y)
+{
+	if (x == mPanX && y == mPanY)
+		return;
 
-	case lcTrackTool::RotateY:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Y;
+	lcModel* ActiveModel = GetActiveModel();
 
-	case lcTrackTool::RotateZ:
-		return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Z;
+	lcVector3 Points[4] =
+	{
+	    lcVector3((float)x, (float)y, 0.0f),
+	    lcVector3((float)x, (float)y, 1.0f),
+	    lcVector3(mPanX, mPanY, 0.0f),
+	    lcVector3(mPanX, mPanY, 1.0f)
+	};
 
-	case lcTrackTool::RotateXY:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y)) == (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y);
+	UnprojectPoints(Points, 4);
 
-	case lcTrackTool::RotateXYZ:
-		return (AllowedTransforms & (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z)) == (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z);
+	const lcVector3& CurrentStart = Points[0];
+	const lcVector3& CurrentEnd = Points[1];
+	const lcVector3& MouseDownStart = Points[2];
+	const lcVector3& MouseDownEnd = Points[3];
+	lcVector3 Center = ActiveModel->GetSelectionOrModelCenter();
 
-	case lcTrackTool::ScalePlus:
-	case lcTrackTool::ScaleMinus:
-		return AllowedTransforms & (LC_OBJECT_TRANSFORM_SCALE_X | LC_OBJECT_TRANSFORM_SCALE_Y | LC_OBJECT_TRANSFORM_SCALE_Z);
+	lcVector3 PlaneNormal(mCamera->mPosition - mCamera->mTargetPosition);
+	lcVector4 Plane(PlaneNormal, -lcDot(PlaneNormal, Center));
+	lcVector3 Intersection, MoveStart;
 
-	case lcTrackTool::Eraser:
-	case lcTrackTool::Paint:
-	case lcTrackTool::ColorPicker:
-	case lcTrackTool::Zoom:
-	case lcTrackTool::Pan:
-	case lcTrackTool::OrbitX:
-	case lcTrackTool::OrbitY:
-	case lcTrackTool::OrbitXY:
-	case lcTrackTool::Roll:
-	case lcTrackTool::ZoomRegion:
-		return true;
+	if (!lcLineSegmentPlaneIntersection(&Intersection, CurrentStart, CurrentEnd, Plane) || !lcLineSegmentPlaneIntersection(&MoveStart, MouseDownStart, MouseDownEnd, Plane))
+	{
+		Center = MouseDownStart + lcNormalize(MouseDownEnd - MouseDownStart) * 10.0f;
+		Plane = lcVector4(PlaneNormal, -lcDot(PlaneNormal, Center));
 
-	case lcTrackTool::Count:
-		return false;
+		if (!lcLineSegmentPlaneIntersection(&Intersection, CurrentStart, CurrentEnd, Plane) || !lcLineSegmentPlaneIntersection(&MoveStart, MouseDownStart, MouseDownEnd, Plane))
+			return;
 	}
 
-	return false;
+	mPanX = x;
+	mPanY = y;
+
+	ActiveModel->UpdatePanTool(mCamera, MoveStart - Intersection);
 }
 
-void lcView::StartOrbitTracking()
+void lcView::EndPanGesture(bool Accept)
 {
-	mTrackTool = lcTrackTool::OrbitXY;
-	UpdateCursor();
-	OnButtonDown(lcTrackButton::Left);
-}
+	lcModel* ActiveModel = GetActiveModel();
 
+	ActiveModel->EndMouseTool(lcTool::Pan, Accept);
+}
 
 void lcView::StartTracking(lcTrackButton TrackButton)
 {
@@ -3157,8 +2290,12 @@ void lcView::StartTracking(lcTrackButton TrackButton)
 		case lcTool::ColorPicker:
 			break;
 
-		case lcTool::Zoom:
-		case lcTool::Pan:
+	    case lcTool::Pan:
+		    StartPan(mMouseX, mMouseY);
+			ActiveModel->BeginMouseTool();
+		    break;
+
+	    case lcTool::Zoom:
 		case lcTool::RotateView:
 		case lcTool::Roll:
 			ActiveModel->BeginMouseTool();
@@ -3798,38 +2935,7 @@ void lcView::OnMouseMove()
 		break;
 
 	case lcTrackTool::Pan:
-		{
-			lcVector3 Points[4] =
-			{
-				lcVector3((float)mMouseX, (float)mMouseY, 0.0f),
-				lcVector3((float)mMouseX, (float)mMouseY, 1.0f),
-				lcVector3(mMouseDownX, mMouseDownY, 0.0f),
-				lcVector3(mMouseDownX, mMouseDownY, 1.0f)
-			};
-
-			UnprojectPoints(Points, 4);
-
-			const lcVector3& CurrentStart = Points[0];
-			const lcVector3& CurrentEnd = Points[1];
-			const lcVector3& MouseDownStart = Points[2];
-			const lcVector3& MouseDownEnd = Points[3];
-			lcVector3 Center = ActiveModel->GetSelectionOrModelCenter();
-
-			lcVector3 PlaneNormal(mCamera->mPosition - mCamera->mTargetPosition);
-			lcVector4 Plane(PlaneNormal, -lcDot(PlaneNormal, Center));
-			lcVector3 Intersection, MoveStart;
-
-			if (!lcLineSegmentPlaneIntersection(&Intersection, CurrentStart, CurrentEnd, Plane) || !lcLineSegmentPlaneIntersection(&MoveStart, MouseDownStart, MouseDownEnd, Plane))
-			{
-				Center = MouseDownStart + lcNormalize(MouseDownEnd - MouseDownStart) * 10.0f;
-				Plane = lcVector4(PlaneNormal, -lcDot(PlaneNormal, Center));
-
-				if (!lcLineSegmentPlaneIntersection(&Intersection, CurrentStart, CurrentEnd, Plane) || !lcLineSegmentPlaneIntersection(&MoveStart, MouseDownStart, MouseDownEnd, Plane))
-					break;
-			}
-
-			ActiveModel->UpdatePanTool(mCamera, MoveStart - Intersection);
-		}
+		UpdatePan(mMouseX, mMouseY);
 		break;
 
 	case lcTrackTool::OrbitX:
@@ -3859,5 +2965,12 @@ void lcView::OnMouseMove()
 
 void lcView::OnMouseWheel(float Direction)
 {
-	mModel->Zoom(mCamera, (int)(((mMouseModifiers & Qt::ControlModifier) ? 100 : 10) * Direction));
+	float Scale = 10.0f;
+
+	if (mMouseModifiers & Qt::ControlModifier)
+		Scale = 100.0f;
+	else if (mMouseModifiers & Qt::ShiftModifier)
+		Scale = 1.0f;
+
+	mModel->Zoom(mCamera, static_cast<int>(Direction * Scale));
 }
diff --git a/common/lc_view.h b/common/lc_view.h
index c82c936..e7c8d27 100644
--- a/common/lc_view.h
+++ b/common/lc_view.h
@@ -108,7 +108,9 @@ public:
 	~lcView();
 
 	lcView(const lcView&) = delete;
+	lcView(lcView&&) = delete;
 	lcView& operator=(const lcView&) = delete;
+	lcView& operator=(lcView&&) = delete;
 
 	static lcFindReplaceParams& GetFindReplaceParams()
 	{
@@ -182,6 +184,11 @@ public:
 		mBackgroundColor = BackgroundColor;
 	}
 
+	lcMatrix44 GetActiveSubmodelTransform() const
+	{
+		return mActiveSubmodelTransform;
+	}
+
 	static std::vector<lcView*> GetModelViews(const lcModel* Model);
 	static void UpdateProjectViews(const Project* Project);
 	static void UpdateAllViews();
@@ -220,6 +227,9 @@ public:
 	void EndDrag(bool Accept);
 
 	void UpdateCursor();
+	void StartPanGesture();
+	void UpdatePanGesture(int dx, int dy);
+	void EndPanGesture(bool Accept);
 	void StartOrbitTracking();
 	void CancelTrackingOrClearSelection();
 
@@ -243,13 +253,20 @@ public:
 	bool CloseFindReplaceDialog();
 	void ShowFindReplaceWidget(bool Replace);
 
+	float GetOverlayScale() const;
 	lcVector3 GetMoveDirection(const lcVector3& Direction) const;
 	lcMatrix44 GetPieceInsertPosition(bool IgnoreSelected, PieceInfo* Info) const;
 	lcVector3 GetCameraLightInsertPosition() const;
 	void GetRayUnderPointer(lcVector3& Start, lcVector3& End) const;
 	lcObjectSection FindObjectUnderPointer(bool PiecesOnly, bool IgnoreSelected) const;
+	lcPieceInfoRayTest FindPieceInfoUnderPointer(bool IgnoreSelected) const;
 	lcArray<lcObject*> FindObjectsInBox(float x1, float y1, float x2, float y2) const;
 
+	lcVector3 ProjectPoint(const lcVector3& Point) const;
+	lcVector3 UnprojectPoint(const lcVector3& Point) const;
+	void UnprojectPoints(lcVector3* Points, int NumPoints) const;
+	lcMatrix44 GetProjectionMatrix() const;
+
 	bool BeginRenderToImage(int Width, int Height);
 	void EndRenderToImage();
 	QImage GetRenderImage() const;
@@ -266,34 +283,26 @@ signals:
 	void CameraChanged();
 
 protected:
-	static void CreateSelectMoveOverlayMesh(lcContext* Context);
-
-	void DrawBackground() const;
+	void DrawBackground(int CurrentTileRow, int TotalTileRows, int CurrentTileHeight) const;
 	void DrawViewport() const;
 	void DrawAxes() const;
 
-	void DrawSelectMoveOverlay();
-	void DrawRotateOverlay();
 	void DrawSelectZoomRegionOverlay();
 	void DrawRotateViewOverlay();
 	void DrawGrid();
 
-	lcVector3 ProjectPoint(const lcVector3& Point) const;
-	lcVector3 UnprojectPoint(const lcVector3& Point) const;
-	void UnprojectPoints(lcVector3* Points, int NumPoints) const;
-	lcMatrix44 GetProjectionMatrix() const;
 	lcMatrix44 GetTileProjectionMatrix(int CurrentRow, int CurrentColumn, int CurrentTileWidth, int CurrentTileHeight) const;
 
 	lcCursor GetCursor() const;
 	void SetCursor(lcCursor Cursor);
 	lcTool GetCurrentTool() const;
 	void UpdateTrackTool();
-	bool IsTrackToolAllowed(lcTrackTool TrackTool, quint32 AllowedTransforms) const;
 	lcTrackTool GetOverrideTrackTool(Qt::MouseButton Button) const;
-	float GetOverlayScale() const;
 	void StartTracking(lcTrackButton TrackButton);
 	void StopTracking(bool Accept);
 	void OnButtonDown(lcTrackButton TrackButton);
+	void StartPan(int x, int y);
+	void UpdatePan(int x, int y);
 
 	lcViewWidget* mWidget = nullptr;
 	int mWidth = 1;
@@ -317,6 +326,8 @@ protected:
 	bool mTrackToolFromOverlay;
 	lcVector3 mMouseDownPosition;
 	PieceInfo* mMouseDownPiece;
+	int mPanX = 0;
+	int mPanY = 0;
 
 	QImage mRenderImage;
 	std::unique_ptr<QOpenGLFramebufferObject> mRenderFramebuffer;
@@ -324,6 +335,7 @@ protected:
 	quint32 mBackgroundColor = 0;
 
 	std::unique_ptr<lcScene> mScene;
+	std::unique_ptr<lcViewManipulator> mViewManipulator;
 	std::unique_ptr<lcViewSphere> mViewSphere;
 
 	lcModel* mModel = nullptr;
@@ -340,7 +352,4 @@ protected:
 
 	static lcView* mLastFocusedView;
 	static std::vector<lcView*> mViews;
-
-	static lcVertexBuffer mRotateMoveVertexBuffer;
-	static lcIndexBuffer mRotateMoveIndexBuffer;
 };
diff --git a/common/lc_viewmanipulator.cpp b/common/lc_viewmanipulator.cpp
new file mode 100644
index 0000000..e26ce89
--- /dev/null
+++ b/common/lc_viewmanipulator.cpp
@@ -0,0 +1,974 @@
+#include "lc_global.h"
+#include "lc_viewmanipulator.h"
+#include "lc_view.h"
+#include "lc_model.h"
+#include "object.h"
+#include "piece.h"
+#include "camera.h"
+#include "pieceinf.h"
+#include "lc_synth.h"
+#include "lc_mainwindow.h"
+#include "texfont.h"
+
+lcVertexBuffer lcViewManipulator::mRotateMoveVertexBuffer;
+lcIndexBuffer lcViewManipulator::mRotateMoveIndexBuffer;
+
+lcViewManipulator::lcViewManipulator(lcView* View)
+	: mView(View)
+{
+}
+
+void lcViewManipulator::CreateResources(lcContext* Context)
+{
+	float Verts[(51 + 138 + 10) * 3];
+	float* CurVert = Verts;
+
+	const float OverlayMovePlaneSize = 0.5f;
+	const float OverlayMoveArrowSize = 1.5f;
+	const float OverlayMoveArrowCapSize = 0.9f;
+	const float OverlayMoveArrowCapRadius = 0.1f;
+	const float OverlayMoveArrowBodySize = 1.2f;
+	const float OverlayMoveArrowBodyRadius = 0.05f;
+	const float OverlayRotateArrowStart = 1.0f;
+	const float OverlayRotateArrowEnd = 1.5f;
+	const float OverlayRotateArrowCenter = 1.2f;
+
+	*CurVert++ = OverlayMoveArrowSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
+
+	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
+	{
+		*CurVert++ = OverlayMoveArrowCapSize;
+		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
+		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
+	}
+
+	*CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
+	*CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
+	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius;
+	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius;
+	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = -OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
+	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = OverlayMoveArrowBodyRadius; *CurVert++ = 0.0f;
+	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = 0.0f; *CurVert++ = -OverlayMoveArrowBodyRadius;
+	*CurVert++ = OverlayMoveArrowBodySize; *CurVert++ = 0.0f; *CurVert++ = OverlayMoveArrowBodyRadius;
+
+	for (int VertIdx = 0; VertIdx < 17; VertIdx++)
+	{
+		*CurVert = *(CurVert - 50); CurVert++;
+		*CurVert = *(CurVert - 52); CurVert++;
+		*CurVert = *(CurVert - 51); CurVert++;
+	}
+
+	for (int VertIdx = 0; VertIdx < 17; VertIdx++)
+	{
+		*CurVert = *(CurVert - 100); CurVert++;
+		*CurVert = *(CurVert - 102); CurVert++;
+		*CurVert = *(CurVert - 104); CurVert++;
+	}
+
+	*CurVert++ = 0.0f; *CurVert++ = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius; *CurVert++ = OverlayRotateArrowStart;
+
+	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
+	{
+		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
+		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius + OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
+		*CurVert++ = OverlayRotateArrowCenter;
+	}
+
+	*CurVert++ = 0.0f; *CurVert++ = OverlayRotateArrowStart; *CurVert++ = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
+
+	for (int EdgeIdx = 0; EdgeIdx < 8; EdgeIdx++)
+	{
+		*CurVert++ = cosf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius;
+		*CurVert++ = OverlayRotateArrowCenter;
+		*CurVert++ = sinf(LC_2PI * EdgeIdx / 8) * OverlayMoveArrowCapRadius + OverlayRotateArrowEnd - OverlayMoveArrowCapRadius;
+	}
+
+	for (int EdgeIdx = 0; EdgeIdx < 7; EdgeIdx++)
+	{
+		const float Radius1 = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter - OverlayMoveArrowBodyRadius;
+		const float Radius2 = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter + OverlayMoveArrowBodyRadius;
+		float x = cosf(LC_2PI / 4 * EdgeIdx / 6);
+		float y = sinf(LC_2PI / 4 * EdgeIdx / 6);
+
+		*CurVert++ = 0.0f;
+		*CurVert++ = OverlayRotateArrowCenter + x * Radius1;
+		*CurVert++ = OverlayRotateArrowCenter + y * Radius1;
+		*CurVert++ = 0.0f;
+		*CurVert++ = OverlayRotateArrowCenter + x * Radius2;
+		*CurVert++ = OverlayRotateArrowCenter + y * Radius2;
+	}
+
+	for (int EdgeIdx = 0; EdgeIdx < 7; EdgeIdx++)
+	{
+		const float Radius = OverlayRotateArrowEnd - OverlayMoveArrowCapRadius - OverlayRotateArrowCenter;
+		float x = cosf(LC_2PI / 4 * EdgeIdx / 6);
+		float y = sinf(LC_2PI / 4 * EdgeIdx / 6);
+
+		*CurVert++ = -OverlayMoveArrowBodyRadius;
+		*CurVert++ = OverlayRotateArrowCenter + x * Radius;
+		*CurVert++ = OverlayRotateArrowCenter + y * Radius;
+		*CurVert++ = OverlayMoveArrowBodyRadius;
+		*CurVert++ = OverlayRotateArrowCenter + x * Radius;
+		*CurVert++ = OverlayRotateArrowCenter + y * Radius;
+	}
+
+	for (int VertIdx = 0; VertIdx < 46; VertIdx++)
+	{
+		*CurVert = *(CurVert - 137); CurVert++;
+		*CurVert = *(CurVert - 139); CurVert++;
+		*CurVert = *(CurVert - 138); CurVert++;
+	}
+
+	for (int VertIdx = 0; VertIdx < 46; VertIdx++)
+	{
+		*CurVert = *(CurVert - 274); CurVert++;
+		*CurVert = *(CurVert - 276); CurVert++;
+		*CurVert = *(CurVert - 278); CurVert++;
+	}
+
+	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
+	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
+	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = OverlayMovePlaneSize;
+	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
+	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
+	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
+	*CurVert++ = 0.0f; *CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize;
+	*CurVert++ = 0.0f; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
+	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f;
+	*CurVert++ = OverlayMovePlaneSize; *CurVert++ = 0.0f; *CurVert++ = 0.0f;
+
+	const GLushort Indices[108 + 360 + 12] =
+	{
+		0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6, 0, 6, 7, 0, 7, 8, 0, 8, 1,
+		9, 10, 14, 14, 13, 9, 11, 12, 15, 15, 16, 12,
+		17, 18, 19, 17, 19, 20, 17, 20, 21, 17, 21, 22, 17, 22, 23, 17, 23, 24, 17, 24, 25, 17, 25, 18,
+		26, 27, 31, 31, 30, 26, 28, 29, 32, 32, 33, 29,
+		34, 35, 36, 34, 36, 37, 34, 37, 38, 34, 38, 39, 34, 39, 40, 34, 40, 41, 34, 41, 42, 34, 42, 35,
+		43, 44, 48, 48, 47, 43, 45, 46, 49, 49, 50, 46,
+		51, 52, 53, 51, 53, 54, 51, 54, 55, 51, 55, 56, 51, 56, 57, 51, 57, 58, 51, 58, 59, 51, 59, 52,
+		60, 61, 62, 60, 62, 63, 60, 63, 64, 60, 64, 65, 60, 65, 66, 60, 66, 67, 60, 67, 68, 60, 68, 61,
+		69, 70, 71, 71, 72, 70, 71, 72, 73, 73, 74, 72, 73, 74, 75, 75, 76, 74, 75, 76, 77, 77, 78, 76, 77, 78, 79, 79, 80, 78, 79, 80, 81, 81, 82, 80,
+		83, 84, 85, 85, 86, 84, 85, 86, 87, 87, 88, 86, 87, 88, 89, 89, 90, 88, 89, 90, 91, 91, 92, 90, 91, 92, 93, 93, 94, 92, 93, 94, 95, 95, 96, 94,
+		97, 98, 99, 97, 99, 100, 97, 100, 101, 97, 101, 102, 97, 102, 103, 97, 103, 104, 97, 104, 105, 97, 105, 98,
+		106, 107, 108, 106, 108, 109, 106, 109, 110, 106, 110, 111, 106, 111, 112, 106, 112, 113, 106, 113, 114, 106, 114, 107,
+		115, 116, 117, 117, 118, 116, 117, 118, 119, 119, 120, 118, 119, 120, 121, 121, 122, 120, 121, 122, 123, 123, 124, 122, 123, 124, 125, 125, 126, 124, 125, 126, 127, 127, 128, 126,
+		129, 130, 131, 131, 132, 130, 131, 132, 133, 133, 134, 132, 133, 134, 135, 135, 136, 134, 135, 136, 137, 137, 138, 136, 137, 138, 139, 139, 140, 138, 139, 140, 141, 141, 142, 140,
+		143, 144, 145, 143, 145, 146, 143, 146, 147, 143, 147, 148, 143, 148, 149, 143, 149, 150, 143, 150, 151, 143, 151, 144,
+		152, 153, 154, 152, 154, 155, 152, 155, 156, 152, 156, 157, 152, 157, 158, 152, 158, 159, 152, 159, 160, 152, 160, 153,
+		161, 162, 163, 163, 164, 162, 163, 164, 165, 165, 166, 164, 165, 166, 167, 167, 168, 166, 167, 168, 169, 169, 170, 168, 169, 170, 171, 171, 172, 170, 171, 172, 173, 173, 174, 172,
+		175, 176, 177, 177, 178, 176, 177, 178, 179, 179, 180, 178, 179, 180, 181, 181, 182, 180, 181, 182, 183, 183, 184, 182, 183, 184, 185, 185, 186, 184, 185, 186, 187, 187, 188, 186,
+		189, 190, 191, 192, 189, 193, 194, 195, 189, 196, 197, 198
+	};
+
+	mRotateMoveVertexBuffer = Context->CreateVertexBuffer(sizeof(Verts), Verts);
+	mRotateMoveIndexBuffer = Context->CreateIndexBuffer(sizeof(Indices), Indices);
+}
+
+void lcViewManipulator::DestroyResources(lcContext* Context)
+{
+	Context->DestroyVertexBuffer(mRotateMoveVertexBuffer);
+	Context->DestroyIndexBuffer(mRotateMoveIndexBuffer);
+}
+
+void lcViewManipulator::DrawSelectMove(lcTrackButton TrackButton, lcTrackTool TrackTool)
+{
+	const lcCamera* Camera = mView->GetCamera();
+	lcContext* Context = mView->mContext;
+
+	Context->SetMaterial(lcMaterialType::UnlitColor);
+	Context->SetViewMatrix(Camera->mWorldView);
+	Context->SetProjectionMatrix(mView->GetProjectionMatrix());
+
+	Context->EnableDepthTest(false);
+
+	lcVector3 OverlayCenter;
+	lcMatrix33 RelativeRotation;
+	lcModel* ActiveModel = mView->GetActiveModel();
+	ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation);
+	bool AnyPiecesSelected = ActiveModel->AnyPiecesSelected();
+
+	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
+
+	if (ActiveModel != mView->GetModel())
+		WorldMatrix = lcMul(WorldMatrix, mView->GetActiveSubmodelTransform());
+
+	const float OverlayScale = mView->GetOverlayScale();
+	WorldMatrix = lcMul(lcMatrix44Scale(lcVector3(OverlayScale, OverlayScale, OverlayScale)), WorldMatrix);
+
+	Context->SetWorldMatrix(WorldMatrix);
+	Context->SetLineWidth(1.0f);
+
+	Context->SetIndexBuffer(mRotateMoveIndexBuffer);
+	Context->SetVertexBuffer(mRotateMoveVertexBuffer);
+	Context->SetVertexFormatPosition(3);
+
+	lcObject* Focus = ActiveModel->GetFocusObject();
+	quint32 AllowedTransforms = Focus ? Focus->GetAllowedTransforms() : LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z | LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
+
+	if (TrackButton == lcTrackButton::None || (TrackTool >= lcTrackTool::MoveX && TrackTool <= lcTrackTool::MoveXYZ))
+	{
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_X)
+		{
+			if ((TrackTool == lcTrackTool::MoveX) || (TrackTool == lcTrackTool::MoveXY) || (TrackTool == lcTrackTool::MoveXZ))
+			{
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
+			}
+			else if (TrackButton == lcTrackButton::None)
+			{
+				Context->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
+			}
+		}
+
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y)
+		{
+			if (((TrackTool == lcTrackTool::MoveY) || (TrackTool == lcTrackTool::MoveXY) || (TrackTool == lcTrackTool::MoveYZ)) && (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y))
+			{
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 36 * 2);
+			}
+			else if (TrackButton == lcTrackButton::None)
+			{
+				Context->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 36 * 2);
+			}
+		}
+
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z)
+		{
+			if (((TrackTool == lcTrackTool::MoveZ) || (TrackTool == lcTrackTool::MoveXZ) || (TrackTool == lcTrackTool::MoveYZ)) && (AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z))
+			{
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 72 * 2);
+			}
+			else if (TrackButton == lcTrackButton::None)
+			{
+				Context->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
+				Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 72 * 2);
+			}
+		}
+	}
+
+	if (gMainWindow->GetTool() == lcTool::Select && TrackButton == lcTrackButton::None && AnyPiecesSelected)
+	{
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_X)
+		{
+			if (TrackTool == lcTrackTool::RotateX)
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+			else
+				Context->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
+
+			Context->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, 108 * 2);
+		}
+
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Y)
+		{
+			if (TrackTool == lcTrackTool::RotateY)
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+			else
+				Context->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
+
+			Context->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, (108 + 120) * 2);
+		}
+
+		if (AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Z)
+		{
+			if (TrackTool == lcTrackTool::RotateZ)
+				Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+			else
+				Context->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
+
+			Context->DrawIndexedPrimitives(GL_TRIANGLES, 120, GL_UNSIGNED_SHORT, (108 + 240) * 2);
+		}
+	}
+
+	if ((TrackTool == lcTrackTool::MoveXY) || (TrackTool == lcTrackTool::MoveXZ) || (TrackTool == lcTrackTool::MoveYZ))
+	{
+		Context->EnableColorBlend(true);
+
+		Context->SetColor(0.8f, 0.8f, 0.0f, 0.3f);
+
+		if (TrackTool == lcTrackTool::MoveXY)
+			Context->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360 + 8) * 2);
+		else if (TrackTool == lcTrackTool::MoveXZ)
+			Context->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360 + 4) * 2);
+		else if (TrackTool == lcTrackTool::MoveYZ)
+			Context->DrawIndexedPrimitives(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, (108 + 360) * 2);
+
+		Context->EnableColorBlend(false);
+	}
+
+	if (Focus && Focus->IsPiece())
+	{
+		lcPiece* Piece = (lcPiece*)Focus;
+		quint32 Section = Piece->GetFocusSection();
+
+		if (Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST && Piece->mPieceInfo->GetSynthInfo() && Piece->mPieceInfo->GetSynthInfo()->IsCurve())
+		{
+			int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
+			float Strength = Piece->GetControlPoints()[ControlPointIndex].Scale;
+			const float ScaleStart = 2.0f;
+			float Length = ScaleStart + Strength / OverlayScale;
+			const float OverlayScaleInnerRadius = 0.075f;
+			const float OverlayScaleRadius = 0.125f;
+
+			lcVector3 Verts[38];
+			int NumVerts = 0;
+
+			Verts[NumVerts++] = lcVector3(Length - OverlayScaleRadius, 0.0f, 0.0f);
+			Verts[NumVerts++] = lcVector3(OverlayScaleRadius - Length, 0.0f, 0.0f);
+
+			float SinTable[9], CosTable[9];
+
+			for (int Step = 0; Step <= 8; Step++)
+			{
+				SinTable[Step] = sinf((float)Step / 8.0f * LC_2PI);
+				CosTable[Step] = cosf((float)Step / 8.0f * LC_2PI);
+			}
+
+			for (int Step = 0; Step <= 8; Step++)
+			{
+				float x = CosTable[Step];
+				float y = SinTable[Step];
+
+				Verts[NumVerts++] = lcVector3(Length + x * OverlayScaleInnerRadius, 0.0f, y * OverlayScaleInnerRadius);
+				Verts[NumVerts++] = lcVector3(Length + x * OverlayScaleRadius, 0.0f, y * OverlayScaleRadius);
+			}
+
+			for (int Step = 0; Step <= 8; Step++)
+			{
+				float x = CosTable[Step];
+				float y = SinTable[Step];
+
+				Verts[NumVerts++] = lcVector3(-Length + x * OverlayScaleInnerRadius, 0.0f, y * OverlayScaleInnerRadius);
+				Verts[NumVerts++] = lcVector3(-Length + x * OverlayScaleRadius, 0.0f, y * OverlayScaleRadius);
+			}
+
+			if (TrackTool == lcTrackTool::ScalePlus || TrackTool == lcTrackTool::ScaleMinus)
+				Context->SetColor(0.8f, 0.8f, 0.0f, 0.3f);
+			else
+				Context->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
+
+			Context->SetVertexBufferPointer(Verts);
+			Context->ClearIndexBuffer();
+			Context->SetVertexFormatPosition(3);
+
+			Context->DrawPrimitives(GL_LINES, 0, 2);
+			Context->DrawPrimitives(GL_TRIANGLE_STRIP, 2, 18);
+			Context->DrawPrimitives(GL_TRIANGLE_STRIP, 20, 18);
+		}
+	}
+
+	Context->EnableDepthTest(true);
+}
+
+void lcViewManipulator::DrawRotate(lcTrackButton TrackButton, lcTrackTool TrackTool)
+{
+	const lcCamera* Camera = mView->GetCamera();
+	lcContext* Context = mView->mContext;
+
+	const float OverlayScale = mView->GetOverlayScale();
+	const float OverlayRotateRadius = 2.0f;
+
+	Context->SetMaterial(lcMaterialType::UnlitColor);
+	Context->SetViewMatrix(Camera->mWorldView);
+	Context->SetProjectionMatrix(mView->GetProjectionMatrix());
+	Context->SetLineWidth(1.0f);
+
+	Context->EnableDepthTest(false);
+
+	int j;
+
+	lcVector3 OverlayCenter;
+	lcMatrix33 RelativeRotation;
+	lcModel* ActiveModel = mView->GetActiveModel();
+	ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation);
+	lcVector3 MouseToolDistance = ActiveModel->SnapRotation(ActiveModel->GetMouseToolDistance());
+	bool HasAngle = false;
+
+	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
+
+	if (ActiveModel != mView->GetModel())
+		WorldMatrix = lcMul(WorldMatrix, mView->GetActiveSubmodelTransform());
+
+	// Draw a disc showing the rotation amount.
+	if (MouseToolDistance.LengthSquared() != 0.0f && (TrackButton != lcTrackButton::None))
+	{
+		lcVector4 Rotation;
+		float Angle, Step;
+
+		HasAngle = true;
+
+		switch (TrackTool)
+		{
+			case lcTrackTool::RotateX:
+				Context->SetColor(0.8f, 0.0f, 0.0f, 0.3f);
+				Angle = MouseToolDistance[0];
+				Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
+				break;
+			case lcTrackTool::RotateY:
+				Context->SetColor(0.0f, 0.8f, 0.0f, 0.3f);
+				Angle = MouseToolDistance[1];
+				Rotation = lcVector4(90.0f, 0.0f, 0.0f, 1.0f);
+				break;
+			case lcTrackTool::RotateZ:
+				Context->SetColor(0.0f, 0.0f, 0.8f, 0.3f);
+				Angle = MouseToolDistance[2];
+				Rotation = lcVector4(90.0f, 0.0f, -1.0f, 0.0f);
+				break;
+			default:
+				Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
+				Angle = 0.0f;
+				break;
+		};
+
+		if (Angle > 0.0f)
+		{
+			Step = 360.0f / 32;
+		}
+		else
+		{
+			Angle = -Angle;
+			Step = -360.0f / 32;
+		}
+
+		if (fabsf(Angle) >= fabsf(Step))
+		{
+			lcMatrix44 RotatedWorldMatrix = lcMul(lcMatrix44FromAxisAngle(lcVector3(Rotation[1], Rotation[2], Rotation[3]), Rotation[0] * LC_DTOR), WorldMatrix);
+
+			Context->SetWorldMatrix(RotatedWorldMatrix);
+
+			Context->EnableColorBlend(true);
+
+			lcVector3 Verts[33];
+			Verts[0] = lcVector3(0.0f, 0.0f, 0.0f);
+			int NumVerts = 1;
+
+			Context->SetVertexBufferPointer(Verts);
+			Context->SetVertexFormatPosition(3);
+
+			float StartAngle;
+			int i = 0;
+
+			if (Step < 0)
+				StartAngle = -Angle;
+			else
+				StartAngle = Angle;
+
+			do
+			{
+				float x = cosf((Step * i - StartAngle) * LC_DTOR) * OverlayRotateRadius * OverlayScale;
+				float y = sinf((Step * i - StartAngle) * LC_DTOR) * OverlayRotateRadius * OverlayScale;
+
+				Verts[NumVerts++] = lcVector3(0.0f, x, y);
+
+				if (NumVerts == 33)
+				{
+					Context->DrawPrimitives(GL_TRIANGLE_FAN, 0, NumVerts);
+					Verts[1] = Verts[32];
+					NumVerts = 2;
+				}
+
+				i++;
+				if (Step > 0)
+					Angle -= Step;
+				else
+					Angle += Step;
+
+			} while (Angle >= 0.0f);
+
+			if (NumVerts > 2)
+				Context->DrawPrimitives(GL_TRIANGLE_FAN, 0, NumVerts);
+
+			Context->EnableColorBlend(false);
+		}
+	}
+
+	// Draw the circles.
+	if (gMainWindow->GetTool() == lcTool::Rotate && !HasAngle && TrackButton == lcTrackButton::None)
+	{
+		lcMatrix44 Mat = lcMatrix44AffineInverse(Camera->mWorldView);
+		Mat.SetTranslation(WorldMatrix.GetTranslation());
+
+		lcVector3 Verts[32];
+
+		for (j = 0; j < 32; j++)
+		{
+			lcVector3 Pt;
+
+			Pt[0] = cosf(LC_2PI * j / 32) * OverlayRotateRadius * OverlayScale;
+			Pt[1] = sinf(LC_2PI * j / 32) * OverlayRotateRadius * OverlayScale;
+			Pt[2] = 0.0f;
+
+			Verts[j] = lcMul31(Pt, Mat);
+		}
+
+		Context->SetColor(0.1f, 0.1f, 0.1f, 1.0f);
+		Context->SetWorldMatrix(lcMatrix44Identity());
+
+		Context->SetVertexBufferPointer(Verts);
+		Context->SetVertexFormatPosition(3);
+
+		Context->DrawPrimitives(GL_LINE_LOOP, 0, 32);
+	}
+
+	lcVector3 ViewDir = Camera->mTargetPosition - Camera->mPosition;
+	ViewDir.Normalize();
+
+	// Transform ViewDir to local space.
+	ViewDir = lcMul(ViewDir, lcMatrix33AffineInverse(lcMatrix33(WorldMatrix)));
+
+	Context->SetWorldMatrix(WorldMatrix);
+
+	// Draw each axis circle.
+	for (int i = 0; i < 3; i++)
+	{
+		if (static_cast<int>(TrackTool) == static_cast<int>(lcTrackTool::RotateX) + i)
+		{
+			Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+		}
+		else
+		{
+			if (gMainWindow->GetTool() != lcTool::Rotate || HasAngle || TrackButton != lcTrackButton::None)
+				continue;
+
+			switch (i)
+			{
+				case 0:
+					Context->SetColor(0.8f, 0.0f, 0.0f, 1.0f);
+					break;
+				case 1:
+					Context->SetColor(0.0f, 0.8f, 0.0f, 1.0f);
+					break;
+				case 2:
+					Context->SetColor(0.0f, 0.0f, 0.8f, 1.0f);
+					break;
+			}
+		}
+
+		lcVector3 Verts[64];
+		int NumVerts = 0;
+
+		for (j = 0; j < 32; j++)
+		{
+			lcVector3 v1, v2;
+
+			switch (i)
+			{
+				case 0:
+					v1 = lcVector3(0.0f, cosf(LC_2PI * j / 32), sinf(LC_2PI * j / 32));
+					v2 = lcVector3(0.0f, cosf(LC_2PI * (j + 1) / 32), sinf(LC_2PI * (j + 1) / 32));
+					break;
+
+				case 1:
+					v1 = lcVector3(cosf(LC_2PI * j / 32), 0.0f, sinf(LC_2PI * j / 32));
+					v2 = lcVector3(cosf(LC_2PI * (j + 1) / 32), 0.0f, sinf(LC_2PI * (j + 1) / 32));
+					break;
+
+				case 2:
+					v1 = lcVector3(cosf(LC_2PI * j / 32), sinf(LC_2PI * j / 32), 0.0f);
+					v2 = lcVector3(cosf(LC_2PI * (j + 1) / 32), sinf(LC_2PI * (j + 1) / 32), 0.0f);
+					break;
+			}
+
+			if (gMainWindow->GetTool() != lcTool::Rotate || HasAngle || TrackButton != lcTrackButton::None || lcDot(ViewDir, v1 + v2) <= 0.0f)
+			{
+				Verts[NumVerts++] = v1 * (OverlayRotateRadius * OverlayScale);
+				Verts[NumVerts++] = v2 * (OverlayRotateRadius * OverlayScale);
+			}
+		}
+
+		Context->SetVertexBufferPointer(Verts);
+		Context->SetVertexFormatPosition(3);
+
+		Context->DrawPrimitives(GL_LINES, 0, NumVerts);
+	}
+
+	// Draw tangent vector.
+	if (TrackButton != lcTrackButton::None && ((TrackTool == lcTrackTool::RotateX) || (TrackTool == lcTrackTool::RotateY) || (TrackTool == lcTrackTool::RotateZ)))
+	{
+		const float OverlayRotateArrowSize = 1.5f;
+		const float OverlayRotateArrowCapSize = 0.25f;
+
+		lcVector4 Rotation;
+		float Angle;
+
+		switch (TrackTool)
+		{
+			case lcTrackTool::RotateX:
+				Angle = MouseToolDistance[0];
+				Rotation = lcVector4(0.0f, 0.0f, 0.0f, 1.0f);
+				break;
+			case lcTrackTool::RotateY:
+				Angle = MouseToolDistance[1];
+				Rotation = lcVector4(90.0f, 0.0f, 0.0f, 1.0f);
+				break;
+			case lcTrackTool::RotateZ:
+				Angle = MouseToolDistance[2];
+				Rotation = lcVector4(90.0f, 0.0f, -1.0f, 0.0f);
+				break;
+			default:
+				Angle = 0.0f;
+				Rotation = lcVector4(0.0f, 0.0f, 1.0f, 0.0f);
+				break;
+		};
+
+		lcMatrix44 RotatedWorldMatrix = lcMul(lcMatrix44FromAxisAngle(lcVector3(Rotation[1], Rotation[2], Rotation[3]), Rotation[0] * LC_DTOR), WorldMatrix);
+		Context->SetWorldMatrix(RotatedWorldMatrix);
+
+		Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+
+		if (HasAngle)
+		{
+			float StartY = OverlayScale * OverlayRotateRadius;
+			float EndZ = (Angle > 0.0f) ? OverlayScale * OverlayRotateArrowSize : -OverlayScale * OverlayRotateArrowSize;
+			float TipZ = (Angle > 0.0f) ? -OverlayScale * OverlayRotateArrowCapSize : OverlayScale * OverlayRotateArrowCapSize;
+
+			lcVector3 Verts[6];
+
+			Verts[0] = lcVector3(0.0f, StartY, 0.0f);
+			Verts[1] = lcVector3(0.0f, StartY, EndZ);
+
+			Verts[2] = lcVector3(0.0f, StartY, EndZ);
+			Verts[3] = lcVector3(0.0f, StartY + OverlayScale * OverlayRotateArrowCapSize, EndZ + TipZ);
+
+			Verts[4] = lcVector3(0.0f, StartY, EndZ);
+			Verts[5] = lcVector3(0.0f, StartY - OverlayScale * OverlayRotateArrowCapSize, EndZ + TipZ);
+
+			Context->SetVertexBufferPointer(Verts);
+			Context->SetVertexFormatPosition(3);
+
+			Context->DrawPrimitives(GL_LINES, 0, 6);
+		}
+
+		// Draw text.
+		lcVector3 ScreenPos = mView->ProjectPoint(WorldMatrix.GetTranslation());
+
+		Context->SetMaterial(lcMaterialType::UnlitTextureModulate);
+		Context->SetWorldMatrix(lcMatrix44Identity());
+		Context->SetViewMatrix(lcMatrix44Translation(lcVector3(0.375, 0.375, 0.0)));
+		Context->SetProjectionMatrix(lcMatrix44Ortho(0.0f, mView->GetWidth(), 0.0f, mView->GetHeight(), -1.0f, 1.0f));
+		Context->BindTexture2D(gTexFont.GetTexture());
+		Context->EnableColorBlend(true);
+
+		char buf[32];
+		sprintf(buf, "[%.2f]", fabsf(Angle));
+
+		int cx, cy;
+		gTexFont.GetStringDimensions(&cx, &cy, buf);
+
+		Context->SetColor(0.8f, 0.8f, 0.0f, 1.0f);
+		gTexFont.PrintText(Context, ScreenPos[0] - (cx / 2), ScreenPos[1] + (cy / 2), 0.0f, buf);
+
+		Context->EnableColorBlend(false);
+	}
+
+	Context->EnableDepthTest(true);
+}
+
+bool lcViewManipulator::IsTrackToolAllowed(lcTrackTool TrackTool, quint32 AllowedTransforms)
+{
+	switch (TrackTool)
+	{
+		case lcTrackTool::None:
+		case lcTrackTool::Insert:
+		case lcTrackTool::PointLight:
+		case lcTrackTool::SpotLight:
+		case lcTrackTool::Camera:
+		case lcTrackTool::Select:
+			return true;
+
+		case lcTrackTool::MoveX:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_X;
+
+		case lcTrackTool::MoveY:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Y;
+
+		case lcTrackTool::MoveZ:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_MOVE_Z;
+
+		case lcTrackTool::MoveXY:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y);
+
+		case lcTrackTool::MoveXZ:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Z);
+
+		case lcTrackTool::MoveYZ:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z);
+
+		case lcTrackTool::MoveXYZ:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z)) == (LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z);
+
+		case lcTrackTool::RotateX:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_X;
+
+		case lcTrackTool::RotateY:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Y;
+
+		case lcTrackTool::RotateZ:
+			return AllowedTransforms & LC_OBJECT_TRANSFORM_ROTATE_Z;
+
+		case lcTrackTool::RotateXY:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y)) == (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y);
+
+		case lcTrackTool::RotateXYZ:
+			return (AllowedTransforms & (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z)) == (LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z);
+
+		case lcTrackTool::ScalePlus:
+		case lcTrackTool::ScaleMinus:
+			return AllowedTransforms & (LC_OBJECT_TRANSFORM_SCALE_X | LC_OBJECT_TRANSFORM_SCALE_Y | LC_OBJECT_TRANSFORM_SCALE_Z);
+
+		case lcTrackTool::Eraser:
+		case lcTrackTool::Paint:
+		case lcTrackTool::ColorPicker:
+		case lcTrackTool::Zoom:
+		case lcTrackTool::Pan:
+		case lcTrackTool::OrbitX:
+		case lcTrackTool::OrbitY:
+		case lcTrackTool::OrbitXY:
+		case lcTrackTool::Roll:
+		case lcTrackTool::ZoomRegion:
+			return true;
+
+		case lcTrackTool::Count:
+			return false;
+	}
+
+	return false;
+}
+
+lcTrackTool lcViewManipulator::UpdateSelectMove()
+{
+	lcModel* ActiveModel = mView->GetActiveModel();
+	const float OverlayScale = mView->GetOverlayScale();
+	const float OverlayMovePlaneSize = 0.5f * OverlayScale;
+	const float OverlayMoveArrowSize = 1.5f * OverlayScale;
+	const float OverlayMoveArrowCapRadius = 0.1f * OverlayScale;
+	const float OverlayRotateArrowStart = 1.0f * OverlayScale;
+	const float OverlayRotateArrowEnd = 1.5f * OverlayScale;
+	const float OverlayScaleRadius = 0.125f;
+
+	lcTool CurrentTool = gMainWindow->GetTool();
+	lcTrackTool NewTrackTool = (CurrentTool == lcTool::Move) ? lcTrackTool::MoveXYZ : lcTrackTool::Select;
+
+	lcVector3 OverlayCenter;
+	lcMatrix33 RelativeRotation;
+
+	if (!ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation))
+		return NewTrackTool;
+
+	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
+
+	if (ActiveModel != mView->GetModel())
+		WorldMatrix = lcMul(WorldMatrix, mView->GetActiveSubmodelTransform());
+	OverlayCenter = WorldMatrix.GetTranslation();
+
+	lcVector3 PlaneNormals[3] =
+	{
+		lcVector3(1.0f, 0.0f, 0.0f),
+		lcVector3(0.0f, 1.0f, 0.0f),
+		lcVector3(0.0f, 0.0f, 1.0f),
+	};
+
+	for (int i = 0; i < 3; i++)
+		PlaneNormals[i] = lcMul30(PlaneNormals[i], WorldMatrix);
+
+	const int x = mView->GetMouseX();
+	const int y = mView->GetMouseY();
+	lcVector3 StartEnd[2] = { lcVector3((float)x, (float)y, 0.0f), lcVector3((float)x, (float)y, 1.0f) };
+	mView->UnprojectPoints(StartEnd, 2);
+	const lcVector3& Start = StartEnd[0];
+	const lcVector3& End = StartEnd[1];
+	float ClosestIntersectionDistance = FLT_MAX;
+
+	lcObject* Focus = ActiveModel->GetFocusObject();
+	int ControlPointIndex = -1;
+	if (Focus && Focus->IsPiece())
+	{
+		lcPiece* Piece = (lcPiece*)Focus;
+		quint32 Section = Piece->GetFocusSection();
+
+		if (Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST)
+			ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
+	}
+
+	quint32 AllowedTransforms = Focus ? Focus->GetAllowedTransforms() : LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z | LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
+
+	for (int AxisIndex = 0; AxisIndex < 3; AxisIndex++)
+	{
+		lcVector4 Plane(PlaneNormals[AxisIndex], -lcDot(PlaneNormals[AxisIndex], OverlayCenter));
+		lcVector3 Intersection;
+
+		if (!lcLineSegmentPlaneIntersection(&Intersection, Start, End, Plane))
+			continue;
+
+		float IntersectionDistance = lcLengthSquared(Intersection - Start);
+
+		if (IntersectionDistance > ClosestIntersectionDistance)
+			continue;
+
+		lcVector3 Dir(Intersection - OverlayCenter);
+
+		float Proj1 = lcDot(Dir, PlaneNormals[(AxisIndex + 1) % 3]);
+		float Proj2 = lcDot(Dir, PlaneNormals[(AxisIndex + 2) % 3]);
+
+		if (Proj1 > 0.0f && Proj1 < OverlayMovePlaneSize && Proj2 > 0.0f && Proj2 < OverlayMovePlaneSize)
+		{
+			lcTrackTool PlaneModes[] = { lcTrackTool::MoveYZ, lcTrackTool::MoveXZ, lcTrackTool::MoveXY };
+
+			if (IsTrackToolAllowed(PlaneModes[AxisIndex], AllowedTransforms))
+			{
+				NewTrackTool = PlaneModes[AxisIndex];
+				ClosestIntersectionDistance = IntersectionDistance;
+			}
+		}
+
+		if (CurrentTool == lcTool::Select && Proj1 > OverlayRotateArrowStart && Proj1 < OverlayRotateArrowEnd && Proj2 > OverlayRotateArrowStart && Proj2 < OverlayRotateArrowEnd && ActiveModel->AnyPiecesSelected())
+		{
+			lcTrackTool PlaneModes[] = { lcTrackTool::RotateX, lcTrackTool::RotateY, lcTrackTool::RotateZ };
+
+			if (IsTrackToolAllowed(PlaneModes[AxisIndex], AllowedTransforms))
+			{
+				NewTrackTool = PlaneModes[AxisIndex];
+				ClosestIntersectionDistance = IntersectionDistance;
+			}
+		}
+
+		if (fabs(Proj1) < OverlayMoveArrowCapRadius && Proj2 > 0.0f && Proj2 < OverlayMoveArrowSize)
+		{
+			lcTrackTool DirModes[] = { lcTrackTool::MoveZ, lcTrackTool::MoveX, lcTrackTool::MoveY };
+
+			if (IsTrackToolAllowed(DirModes[AxisIndex], AllowedTransforms))
+			{
+				NewTrackTool = DirModes[AxisIndex];
+				ClosestIntersectionDistance = IntersectionDistance;
+			}
+		}
+
+		if (fabs(Proj2) < OverlayMoveArrowCapRadius && Proj1 > 0.0f && Proj1 < OverlayMoveArrowSize)
+		{
+			lcTrackTool DirModes[] = { lcTrackTool::MoveY, lcTrackTool::MoveZ, lcTrackTool::MoveX };
+
+			if (IsTrackToolAllowed(DirModes[AxisIndex], AllowedTransforms))
+			{
+				NewTrackTool = DirModes[AxisIndex];
+				ClosestIntersectionDistance = IntersectionDistance;
+			}
+		}
+
+		lcPiece* Piece = (lcPiece*)Focus;
+
+		if (ControlPointIndex != -1 && Piece->mPieceInfo->GetSynthInfo() && Piece->mPieceInfo->GetSynthInfo()->IsCurve())
+		{
+			float Strength = Piece->GetControlPoints()[ControlPointIndex].Scale;
+			const float ScaleStart = (2.0f - OverlayScaleRadius) * OverlayScale + Strength;
+			const float ScaleEnd = (2.0f + OverlayScaleRadius) * OverlayScale + Strength;
+
+			if (AxisIndex == 1 && fabs(Proj1) < OverlayScaleRadius * OverlayScale)
+			{
+				if (Proj2 > ScaleStart && Proj2 < ScaleEnd)
+				{
+					if (IsTrackToolAllowed(lcTrackTool::ScalePlus, AllowedTransforms))
+					{
+						NewTrackTool = lcTrackTool::ScalePlus;
+						ClosestIntersectionDistance = IntersectionDistance;
+					}
+				}
+				else if (Proj2 < -ScaleStart && Proj2 > -ScaleEnd)
+				{
+					if (IsTrackToolAllowed(lcTrackTool::ScaleMinus, AllowedTransforms))
+					{
+						NewTrackTool = lcTrackTool::ScaleMinus;
+						ClosestIntersectionDistance = IntersectionDistance;
+					}
+				}
+			}
+			else if (AxisIndex == 2 && fabs(Proj2) < OverlayScaleRadius * OverlayScale)
+			{
+				if (Proj1 > ScaleStart && Proj1 < ScaleEnd)
+				{
+					if (IsTrackToolAllowed(lcTrackTool::ScalePlus, AllowedTransforms))
+					{
+						NewTrackTool = lcTrackTool::ScalePlus;
+						ClosestIntersectionDistance = IntersectionDistance;
+					}
+				}
+				else if (Proj1 < -ScaleStart && Proj1 > -ScaleEnd)
+				{
+					if (IsTrackToolAllowed(lcTrackTool::ScaleMinus, AllowedTransforms))
+					{
+						NewTrackTool = lcTrackTool::ScaleMinus;
+						ClosestIntersectionDistance = IntersectionDistance;
+					}
+				}
+			}
+		}
+	}
+
+	return NewTrackTool;
+}
+
+lcTrackTool lcViewManipulator::UpdateRotate()
+{
+	const lcModel* ActiveModel = mView->GetActiveModel();
+	const float OverlayScale = mView->GetOverlayScale();
+	const float OverlayRotateRadius = 2.0f;
+
+	lcVector3 OverlayCenter;
+	lcMatrix33 RelativeRotation;
+
+	if (!ActiveModel->GetMoveRotateTransform(OverlayCenter, RelativeRotation))
+		return lcTrackTool::RotateXYZ;
+
+	lcMatrix44 WorldMatrix = lcMatrix44(RelativeRotation, OverlayCenter);
+
+	if (ActiveModel != mView->GetModel())
+		WorldMatrix = lcMul(WorldMatrix, mView->GetActiveSubmodelTransform());
+	OverlayCenter = WorldMatrix.GetTranslation();
+
+	const int x = mView->GetMouseX();
+	const int y = mView->GetMouseY();
+	lcVector3 StartEnd[2] = { lcVector3((float)x, (float)y, 0.0f), lcVector3((float)x, (float)y, 1.0f) };
+	mView->UnprojectPoints(StartEnd, 2);
+
+	lcVector3 Intersection;
+
+	if (lcSphereRayIntersection(OverlayCenter, OverlayRotateRadius * OverlayScale, StartEnd[0], StartEnd[1], Intersection))
+	{
+		const lcVector3 LocalIntersection = lcMul(Intersection - OverlayCenter, lcMatrix33AffineInverse(RelativeRotation));
+		const float Epsilon = 0.25f * OverlayScale;
+		const float dx = fabsf(LocalIntersection[0]);
+		const float dy = fabsf(LocalIntersection[1]);
+		const float dz = fabsf(LocalIntersection[2]);
+
+		if (dx < dy)
+		{
+			if (dx < dz)
+			{
+				if (dx < Epsilon)
+					return lcTrackTool::RotateX;
+			}
+			else
+			{
+				if (dz < Epsilon)
+					return lcTrackTool::RotateZ;
+			}
+		}
+		else
+		{
+			if (dy < dz)
+			{
+				if (dy < Epsilon)
+					return lcTrackTool::RotateY;
+			}
+			else
+			{
+				if (dz < Epsilon)
+					return lcTrackTool::RotateZ;
+			}
+		}
+	}
+
+	return lcTrackTool::RotateXYZ;
+}
diff --git a/common/lc_viewmanipulator.h b/common/lc_viewmanipulator.h
new file mode 100644
index 0000000..2363f18
--- /dev/null
+++ b/common/lc_viewmanipulator.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "lc_context.h"
+
+class lcViewManipulator
+{
+public:
+	lcViewManipulator(lcView* View);
+
+	void DrawSelectMove(lcTrackButton TrackButton, lcTrackTool TrackTool);
+	void DrawRotate(lcTrackButton TrackButton, lcTrackTool TrackTool);
+
+	lcTrackTool UpdateSelectMove();
+	lcTrackTool UpdateRotate();
+
+	static void CreateResources(lcContext* Context);
+	static void DestroyResources(lcContext* Context);
+
+protected:
+	static bool IsTrackToolAllowed(lcTrackTool TrackTool, quint32 AllowedTransforms);
+
+	lcView* mView = nullptr;
+
+	static lcVertexBuffer mRotateMoveVertexBuffer;
+	static lcIndexBuffer mRotateMoveIndexBuffer;
+};
diff --git a/common/lc_viewsphere.cpp b/common/lc_viewsphere.cpp
index df6d0ab..fd83801 100644
--- a/common/lc_viewsphere.cpp
+++ b/common/lc_viewsphere.cpp
@@ -60,7 +60,7 @@ lcMatrix44 lcViewSphere::GetProjectionMatrix() const
 
 void lcViewSphere::CreateResources(lcContext* Context)
 {
-	const int ImageSize = 128;
+	constexpr int ImageSize = 128;
 	mTexture = new lcTexture();
 
 	const QString ViewNames[6] =
@@ -83,7 +83,7 @@ void lcViewSphere::CreateResources(lcContext* Context)
 	for (int ViewIdx = 0; ViewIdx < 6; ViewIdx++)
 	{
 		Image TextureImage;
-		TextureImage.Allocate(ImageSize, ImageSize, LC_PIXEL_FORMAT_A8);
+		TextureImage.Allocate(ImageSize, ImageSize, lcPixelFormat::A8);
 
 		Painter.begin(&PainterImage);
 		Painter.fillRect(0, 0, PainterImage.width(), PainterImage.height(), QColor(0, 0, 0));
@@ -120,7 +120,7 @@ void lcViewSphere::CreateResources(lcContext* Context)
 		lcMatrix44(lcVector4(1.0f,  0.0f, 0.0f, 0.0f), lcVector4(0.0f, -1.0f, 0.0f, 0.0f), lcVector4(0.0f, 0.0f, 1.0f, 0.0f), lcVector4(0.0f,  0.0f, -1.0f, 1.0f)),
 	};
 
-	const float Step = 2.0f / mSubdivisions;
+	constexpr float Step = 2.0f / mSubdivisions;
 	lcVector3* CurVert = Verts;
 
 	for (int FaceIdx = 0; FaceIdx < 6; FaceIdx++)
@@ -129,8 +129,8 @@ void lcViewSphere::CreateResources(lcContext* Context)
 		{
 			for (int x = 0; x <= mSubdivisions; x++)
 			{
-				lcVector3 Vert = lcMul31(lcVector3(Step * x - 1.0f, Step * y - 1.0f, 0.0f), Transforms[FaceIdx]);
-				lcVector3 Vert2 = Vert * Vert;
+				const lcVector3 Vert = lcMul31(lcVector3(Step * x - 1.0f, Step * y - 1.0f, 0.0f), Transforms[FaceIdx]);
+				const lcVector3 Vert2 = Vert * Vert;
 
 				*CurVert++ = lcVector3(Vert.x * sqrt(1.0 - 0.5 * (Vert2.y + Vert2.z) + Vert2.y * Vert2.z / 3.0),
 									   Vert.y * sqrt(1.0 - 0.5 * (Vert2.z + Vert2.x) + Vert2.z * Vert2.x / 3.0),
@@ -208,7 +208,7 @@ void lcViewSphere::Draw()
 	Context->DrawIndexedPrimitives(GL_TRIANGLES, mSubdivisions * mSubdivisions * 6 * 6, GL_UNSIGNED_SHORT, 0);
 
 	Context->SetMaterial(lcMaterialType::UnlitViewSphere);
-	Context->BindTextureCubeMap(mTexture->mTexture);
+	Context->BindTextureCubeMap(mTexture);
 
 	Context->SetWorldMatrix(lcMatrix44Identity());
 	Context->SetViewMatrix(GetViewMatrix());
diff --git a/common/lc_viewwidget.cpp b/common/lc_viewwidget.cpp
index 206e542..e4c2d56 100644
--- a/common/lc_viewwidget.cpp
+++ b/common/lc_viewwidget.cpp
@@ -217,6 +217,33 @@ void lcViewWidget::mouseMoveEvent(QMouseEvent* MouseEvent)
 
 void lcViewWidget::wheelEvent(QWheelEvent* WheelEvent)
 {
+	if (WheelEvent->source() == Qt::MouseEventSynthesizedBySystem)
+	{
+		switch (WheelEvent->phase())
+		{
+		case Qt::NoScrollPhase:
+			break;
+
+		case Qt::ScrollBegin:
+			mView->StartPanGesture();
+			WheelEvent->accept();
+			return;
+
+		case Qt::ScrollUpdate:
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
+		case Qt::ScrollMomentum:
+#endif
+			mView->UpdatePanGesture(WheelEvent->pixelDelta().x(), -WheelEvent->pixelDelta().y());
+			WheelEvent->accept();
+			return;
+
+		case Qt::ScrollEnd:
+			mView->EndPanGesture(true);
+			WheelEvent->accept();
+			return;
+		}
+	}
+
 	if (WheelEvent->angleDelta().y() == 0)
 	{
 		WheelEvent->ignore();
@@ -232,13 +259,13 @@ void lcViewWidget::wheelEvent(QWheelEvent* WheelEvent)
 #endif
 	mView->SetMouseModifiers(WheelEvent->modifiers());
 
-	mWheelAccumulator += WheelEvent->angleDelta().y() / 8;
-	int numSteps = mWheelAccumulator / 15;
+	mWheelAccumulator += WheelEvent->angleDelta().y();
+	int Steps = mWheelAccumulator / 8;
 
-	if (numSteps)
+	if (Steps)
 	{
-		mView->OnMouseWheel(numSteps);
-		mWheelAccumulator -= numSteps * 15;
+		mView->OnMouseWheel(Steps / 15);
+		mWheelAccumulator -= Steps * 8;
 	}
 
 	WheelEvent->accept();
diff --git a/common/lc_zipfile.cpp b/common/lc_zipfile.cpp
index 848d18a..3ad2cc7 100644
--- a/common/lc_zipfile.cpp
+++ b/common/lc_zipfile.cpp
@@ -64,7 +64,7 @@ bool lcZipFile::OpenWrite(const QString& FileName)
 quint64 lcZipFile::SearchCentralDir()
 {
 	quint64 SizeFile, MaxBack, BackRead, PosFound;
-	const int CommentBufferSize = 1024;
+	constexpr int CommentBufferSize = 1024;
 	quint8 buf[CommentBufferSize + 4];
 
 	SizeFile = mFile->GetLength();
diff --git a/common/light.cpp b/common/light.cpp
index affeb0b..12f01c7 100644
--- a/common/light.cpp
+++ b/common/light.cpp
@@ -58,7 +58,7 @@ void lcLight::CreateName(const lcArray<lcLight*>& Lights)
 	{
 		bool Found = false;
 
-		for (lcLight* Light : Lights)
+		for (const lcLight* Light : Lights)
 		{
 			if (Light->GetName() == mName)
 			{
@@ -74,14 +74,14 @@ void lcLight::CreateName(const lcArray<lcLight*>& Lights)
 	int MaxLightNumber = 0;
 	const QLatin1String Prefix("Light ");
 
-	for (lcLight* Light : Lights)
+	for (const lcLight* Light : Lights)
 	{
 		QString LightName = Light->GetName();
 
 		if (LightName.startsWith(Prefix))
 		{
 			bool Ok = false;
-			int LightNumber = LightName.midRef(Prefix.size()).toInt(&Ok);
+			int LightNumber = LightName.mid(Prefix.size()).toInt(&Ok);
 
 			if (Ok && LightNumber > MaxLightNumber)
 				MaxLightNumber = LightNumber;
@@ -132,11 +132,14 @@ void lcLight::RayTest(lcObjectRayTest& ObjectRayTest) const
 	lcVector3 End = lcMul31(ObjectRayTest.End, mWorldLight);
 
 	float Distance;
-	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr) && (Distance < ObjectRayTest.Distance))
+	lcVector3 Plane;
+
+	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr, &Plane) && (Distance < ObjectRayTest.Distance))
 	{
 		ObjectRayTest.ObjectSection.Object = const_cast<lcLight*>(this);
 		ObjectRayTest.ObjectSection.Section = LC_LIGHT_SECTION_POSITION;
 		ObjectRayTest.Distance = Distance;
+		ObjectRayTest.PieceInfoRayTest.Plane = Plane;
 	}
 
 	Min = lcVector3(-LC_LIGHT_TARGET_EDGE, -LC_LIGHT_TARGET_EDGE, -LC_LIGHT_TARGET_EDGE);
@@ -148,11 +151,12 @@ void lcLight::RayTest(lcObjectRayTest& ObjectRayTest) const
 	Start = lcMul31(ObjectRayTest.Start, WorldTarget);
 	End = lcMul31(ObjectRayTest.End, WorldTarget);
 
-	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr) && (Distance < ObjectRayTest.Distance))
+	if (lcBoundingBoxRayIntersectDistance(Min, Max, Start, End, &Distance, nullptr, &Plane) && (Distance < ObjectRayTest.Distance))
 	{
 		ObjectRayTest.ObjectSection.Object = const_cast<lcLight*>(this);
 		ObjectRayTest.ObjectSection.Section = LC_LIGHT_SECTION_TARGET;
 		ObjectRayTest.Distance = Distance;
+		ObjectRayTest.PieceInfoRayTest.Plane = Plane;
 	}
 }
 
@@ -175,7 +179,7 @@ void lcLight::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 
 	for (int PlaneIdx = 0; PlaneIdx < 6; PlaneIdx++)
 	{
-		lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], mWorldLight);
+		const lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], mWorldLight);
 		LocalPlanes[PlaneIdx] = lcVector4(Normal, ObjectBoxTest.Planes[PlaneIdx][3] - lcDot3(mWorldLight[3], Normal));
 	}
 
@@ -193,7 +197,7 @@ void lcLight::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 
 	for (int PlaneIdx = 0; PlaneIdx < 6; PlaneIdx++)
 	{
-		lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldTarget);
+		const lcVector3 Normal = lcMul30(ObjectBoxTest.Planes[PlaneIdx], WorldTarget);
 		LocalPlanes[PlaneIdx] = lcVector4(Normal, ObjectBoxTest.Planes[PlaneIdx][3] - lcDot3(WorldTarget[3], Normal));
 	}
 
@@ -318,7 +322,7 @@ void lcLight::DrawSpotLight(lcContext* Context) const
 	LightMatrix = lcMatrix44AffineInverse(LightMatrix);
 	LightMatrix.SetTranslation(lcVector3(0, 0, 0));
 
-	lcMatrix44 LightViewMatrix = lcMul(LightMatrix, lcMatrix44Translation(mPosition));
+	const lcMatrix44 LightViewMatrix = lcMul(LightMatrix, lcMatrix44Translation(mPosition));
 	Context->SetWorldMatrix(LightViewMatrix);
 
 	float Verts[(20 + 8 + 2 + 16) * 3];
@@ -375,12 +379,16 @@ void lcLight::DrawSpotLight(lcContext* Context) const
 	Context->SetVertexFormatPosition(3);
 	Context->SetIndexBufferPointer(Indices);
 
-	float LineWidth = lcGetPreferences().mLineWidth;
+	const lcPreferences& Preferences = lcGetPreferences();
+	const float LineWidth = Preferences.mLineWidth;
+	const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+	const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+	const lcVector4 LightColor = lcVector4FromColor(Preferences.mLightColor);
 
 	if (!IsSelected())
 	{
 		Context->SetLineWidth(LineWidth);
-		Context->SetInterfaceColor(LC_COLOR_LIGHT);
+		Context->SetColor(LightColor);
 
 		Context->DrawIndexedPrimitives(GL_LINES, 56 + 24 + 2, GL_UNSIGNED_SHORT, 0);
 	}
@@ -390,14 +398,14 @@ void lcLight::DrawSpotLight(lcContext* Context) const
 		{
 			Context->SetLineWidth(2.0f * LineWidth);
 			if (IsFocused(LC_LIGHT_SECTION_POSITION))
-				Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+				Context->SetColor(FocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_SELECTED);
+				Context->SetColor(SelectedColor);
 		}
 		else
 		{
 			Context->SetLineWidth(LineWidth);
-			Context->SetInterfaceColor(LC_COLOR_LIGHT);
+			Context->SetColor(LightColor);
 		}
 
 		Context->DrawIndexedPrimitives(GL_LINES, 56, GL_UNSIGNED_SHORT, 0);
@@ -406,20 +414,20 @@ void lcLight::DrawSpotLight(lcContext* Context) const
 		{
 			Context->SetLineWidth(2.0f * LineWidth);
 			if (IsFocused(LC_LIGHT_SECTION_TARGET))
-				Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+				Context->SetColor(FocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_SELECTED);
+				Context->SetColor(SelectedColor);
 		}
 		else
 		{
 			Context->SetLineWidth(LineWidth);
-			Context->SetInterfaceColor(LC_COLOR_LIGHT);
+			Context->SetColor(LightColor);
 		}
 
 		Context->DrawIndexedPrimitives(GL_LINES, 24, GL_UNSIGNED_SHORT, 56 * 2);
 
 		Context->SetLineWidth(LineWidth);
-		Context->SetInterfaceColor(LC_COLOR_LIGHT);
+		Context->SetColor(LightColor);
 
 		float Radius = tanf(LC_DTOR * mSpotCutoff) * Length;
 
@@ -436,10 +444,10 @@ void lcLight::DrawSpotLight(lcContext* Context) const
 
 void lcLight::DrawPointLight(lcContext* Context) const
 {
-	const int Slices = 6;
-	const int NumIndices = 3 * Slices + 6 * Slices * (Slices - 2) + 3 * Slices;
-	const int NumVertices = (Slices - 1) * Slices + 2;
-	const float Radius = LC_LIGHT_SPHERE_RADIUS;
+	constexpr int Slices = 6;
+	constexpr int NumIndices = 3 * Slices + 6 * Slices * (Slices - 2) + 3 * Slices;
+	constexpr int NumVertices = (Slices - 1) * Slices + 2;
+	constexpr float Radius = LC_LIGHT_SPHERE_RADIUS;
 	lcVector3 Vertices[NumVertices];
 	quint16 Indices[NumIndices];
 
@@ -450,13 +458,13 @@ void lcLight::DrawPointLight(lcContext* Context) const
 
 	for (int i = 1; i < Slices; i++ )
 	{
-		float r0 = Radius * sinf(i * (LC_PI / Slices));
-		float z0 = Radius * cosf(i * (LC_PI / Slices));
+		const float r0 = Radius * sinf(i * (LC_PI / Slices));
+		const float z0 = Radius * cosf(i * (LC_PI / Slices));
 
 		for (int j = 0; j < Slices; j++)
 		{
-			float x0 = r0 * sinf(j * (LC_2PI / Slices));
-			float y0 = r0 * cosf(j * (LC_2PI / Slices));
+			const float x0 = r0 * sinf(j * (LC_2PI / Slices));
+			const float y0 = r0 * cosf(j * (LC_2PI / Slices));
 
 			*Vertex++ = lcVector3(x0, y0, z0);
 		}
@@ -464,7 +472,7 @@ void lcLight::DrawPointLight(lcContext* Context) const
 
 	*Vertex++ = lcVector3(0, 0, -Radius);
 
-	for (int i = 0; i < Slices - 1; i++ )
+	for (quint16 i = 0; i < Slices - 1; i++ )
 	{
 		*Index++ = 0;
 		*Index++ = 1 + i;
@@ -475,12 +483,12 @@ void lcLight::DrawPointLight(lcContext* Context) const
 	*Index++ = 1;
 	*Index++ = 1 + Slices - 1;
 
-	for (int i = 0; i < Slices - 2; i++ )
+	for (quint16 i = 0; i < Slices - 2; i++ )
 	{
-		int Row1 = 1 + i * Slices;
-		int Row2 = 1 + (i + 1) * Slices;
+		quint16 Row1 = 1 + i * Slices;
+		quint16 Row2 = 1 + (i + 1) * Slices;
 
-		for (int j = 0; j < Slices - 1; j++ )
+		for (quint16 j = 0; j < Slices - 1; j++ )
 		{
 			*Index++ = Row1 + j;
 			*Index++ = Row2 + j + 1;
@@ -500,7 +508,7 @@ void lcLight::DrawPointLight(lcContext* Context) const
 		*Index++ = Row1 + 0;
 	}
 
-	for (int i = 0; i < Slices - 1; i++ )
+	for (quint16 i = 0; i < Slices - 1; i++ )
 	{
 		*Index++ = (Slices - 1) * Slices + 1;
 		*Index++ = (Slices - 1) * (Slices - 1) + i;
@@ -513,12 +521,23 @@ void lcLight::DrawPointLight(lcContext* Context) const
 
 	Context->SetWorldMatrix(lcMatrix44Translation(mPosition));
 
+	const lcPreferences& Preferences = lcGetPreferences();
+
 	if (IsFocused(LC_LIGHT_SECTION_POSITION))
-		Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+	{
+		const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+		Context->SetColor(FocusedColor);
+	}
 	else if (IsSelected(LC_LIGHT_SECTION_POSITION))
-		Context->SetInterfaceColor(LC_COLOR_SELECTED);
+	{
+		const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+		Context->SetColor(SelectedColor);
+	}
 	else
-		Context->SetInterfaceColor(LC_COLOR_LIGHT);
+	{
+		const lcVector4 LightColor = lcVector4FromColor(Preferences.mLightColor);
+		Context->SetColor(LightColor);
+	}
 
 	Context->SetVertexBufferPointer(Vertices);
 	Context->SetVertexFormatPosition(3);
diff --git a/common/minifig.h b/common/minifig.h
index 08c6f7b..0ab192e 100644
--- a/common/minifig.h
+++ b/common/minifig.h
@@ -53,7 +53,9 @@ public:
 	~MinifigWizard();
 
 	MinifigWizard(const MinifigWizard&) = delete;
+	MinifigWizard(MinifigWizard&&) = delete;
 	MinifigWizard& operator=(const MinifigWizard&) = delete;
+	MinifigWizard& operator=(MinifigWizard&&) = delete;
 
 	lcModel* GetModel() const
 	{
diff --git a/common/object.cpp b/common/object.cpp
index f9f74ef..4272309 100644
--- a/common/object.cpp
+++ b/common/object.cpp
@@ -41,7 +41,7 @@ template void lcObjectKeyArray<lcMatrix33>::RemoveTime(lcStep Start, lcStep Time
 template<typename T>
 void lcObjectKeyArray<T>::SaveKeysLDraw(QTextStream& Stream, const char* KeyName) const
 {
-	const int Count = sizeof(T) / sizeof(float);
+	constexpr int Count = sizeof(T) / sizeof(float);
 
 	for (const lcObjectKey<T>& Key : mKeys)
 	{
@@ -60,10 +60,10 @@ void lcObjectKeyArray<T>::LoadKeysLDraw(QTextStream& Stream)
 	QString Token;
 	Stream >> Token;
 
-	int Step = Token.toInt();
+	const int Step = Token.toInt();
 	T Value;
 
-	const int Count = sizeof(T) / sizeof(float);
+	constexpr int Count = sizeof(T) / sizeof(float);
 
 	for (int ValueIdx = 0; ValueIdx < Count; ValueIdx++)
 		Stream >> ((float*)&Value)[ValueIdx];
diff --git a/common/object.h b/common/object.h
index 12e4667..aaf1a77 100644
--- a/common/object.h
+++ b/common/object.h
@@ -49,8 +49,15 @@ protected:
 
 struct lcObjectSection
 {
-	lcObject* Object;
-	quint32 Section;
+	lcObject* Object = nullptr;
+	quint32 Section = 0;
+};
+
+struct lcPieceInfoRayTest
+{
+	const PieceInfo* Info = nullptr;
+	lcMatrix44 Transform;
+	lcVector3 Plane;
 };
 
 struct lcObjectRayTest
@@ -60,8 +67,9 @@ struct lcObjectRayTest
 	bool IgnoreSelected;
 	lcVector3 Start;
 	lcVector3 End;
-	float Distance;
+	float Distance = FLT_MAX;
 	lcObjectSection ObjectSection;
+	lcPieceInfoRayTest PieceInfoRayTest;
 };
 
 struct lcObjectBoxTest
@@ -88,7 +96,9 @@ public:
 	virtual ~lcObject();
 
 	lcObject(const lcObject&) = delete;
+	lcObject(lcObject&&) = delete;
 	lcObject& operator=(const lcObject&) = delete;
+	lcObject& operator=(lcObject&&) = delete;
 
 public:
 	bool IsPiece() const
diff --git a/common/piece.cpp b/common/piece.cpp
index 3a0338f..bba88f2 100644
--- a/common/piece.cpp
+++ b/common/piece.cpp
@@ -15,14 +15,14 @@
 #include "lc_qutils.h"
 #include "lc_synth.h"
 
-#define LC_PIECE_CONTROL_POINT_SIZE 10.0f
+constexpr float LC_PIECE_CONTROL_POINT_SIZE = 10.0f;
 
 lcPiece::lcPiece(PieceInfo* Info)
 	: lcObject(lcObjectType::Piece)
 {
 	mMesh = nullptr;
 	SetPieceInfo(Info, QString(), true);
-	mState = 0;
+	mFocusedSection = LC_PIECE_SECTION_INVALID;
 	mColorIndex = gDefaultColor;
 	mColorCode = 16;
 	mStepShow = 1;
@@ -37,7 +37,9 @@ lcPiece::lcPiece(const lcPiece& Other)
 {
 	mMesh = nullptr;
 	SetPieceInfo(Other.mPieceInfo, Other.mID, true);
-	mState = 0;
+	mHidden = Other.mHidden;
+	mSelected = Other.mSelected;
+	mFocusedSection = LC_PIECE_SECTION_INVALID;
 	mColorIndex = Other.mColorIndex;
 	mColorCode = Other.mColorCode;
 	mStepShow = Other.mStepShow;
@@ -46,7 +48,7 @@ lcPiece::lcPiece(const lcPiece& Other)
 	mFileLine = -1;
 
 	mPivotMatrix = Other.mPivotMatrix;
-	mState |= ( Other.mState & LC_PIECE_PIVOT_POINT_VALID );
+	mPivotPointValid = Other.mPivotPointValid;
 
 	mPositionKeys = Other.mPositionKeys;
 	mRotationKeys = Other.mRotationKeys;
@@ -85,7 +87,7 @@ void lcPiece::SetPieceInfo(PieceInfo* Info, const QString& ID, bool Wait)
 	delete mMesh;
 	mMesh = nullptr;
 
-	lcSynthInfo* SynthInfo = mPieceInfo ? mPieceInfo->GetSynthInfo() : nullptr;
+	const lcSynthInfo* SynthInfo = mPieceInfo ? mPieceInfo->GetSynthInfo() : nullptr;
 
 	if (SynthInfo)
 	{
@@ -101,7 +103,7 @@ void lcPiece::UpdateID()
 
 void lcPiece::SaveLDraw(QTextStream& Stream) const
 {
-	QLatin1String LineEnding("\r\n");
+	const QLatin1String LineEnding("\r\n");
 
 	if (mStepHide != LC_STEP_MAX)
 		Stream << QLatin1String("0 !LEOCAD PIECE STEP_HIDE ") << mStepHide << LineEnding;
@@ -109,10 +111,10 @@ void lcPiece::SaveLDraw(QTextStream& Stream) const
 	if (IsHidden())
 		Stream << QLatin1String("0 !LEOCAD PIECE HIDDEN") << LineEnding;
 
-	if (mState & LC_PIECE_PIVOT_POINT_VALID)
+	if (mPivotPointValid)
 	{
 		const float* PivotMatrix = mPivotMatrix;
-		float PivotNumbers[12] = { PivotMatrix[12], -PivotMatrix[14], PivotMatrix[13], PivotMatrix[0], -PivotMatrix[8], PivotMatrix[4], -PivotMatrix[2], PivotMatrix[10], -PivotMatrix[6], PivotMatrix[1], -PivotMatrix[9], PivotMatrix[5] };
+		const float PivotNumbers[12] = { PivotMatrix[12], -PivotMatrix[14], PivotMatrix[13], PivotMatrix[0], -PivotMatrix[8], PivotMatrix[4], -PivotMatrix[2], PivotMatrix[10], -PivotMatrix[6], PivotMatrix[1], -PivotMatrix[9], PivotMatrix[5] };
 
 		Stream << QLatin1String("0 !LEOCAD PIECE PIVOT ");
 
@@ -131,7 +133,7 @@ void lcPiece::SaveLDraw(QTextStream& Stream) const
 	Stream << "1 " << mColorCode << ' ';
 
 	const float* Matrix = mModelWorld;
-	float Numbers[12] = { Matrix[12], -Matrix[14], Matrix[13], Matrix[0], -Matrix[8], Matrix[4], -Matrix[2], Matrix[10], -Matrix[6], Matrix[1], -Matrix[9], Matrix[5] };
+	const float Numbers[12] = { Matrix[12], -Matrix[14], Matrix[13], Matrix[0], -Matrix[8], Matrix[4], -Matrix[2], Matrix[10], -Matrix[6], Matrix[1], -Matrix[9], Matrix[5] };
 
 	for (int NumberIdx = 0; NumberIdx < 12; NumberIdx++)
 		Stream << lcFormatValue(Numbers[NumberIdx], NumberIdx < 3 ? 4 : 6) << ' ';
@@ -156,11 +158,11 @@ bool lcPiece::ParseLDrawLine(QTextStream& Stream)
 			for (int TokenIdx = 0; TokenIdx < 12; TokenIdx++)
 				Stream >> PivotNumbers[TokenIdx];
 
-			lcMatrix44 PivotMatrix(lcVector4( PivotNumbers[3],  PivotNumbers[9], -PivotNumbers[6], 0.0f), lcVector4(PivotNumbers[5], PivotNumbers[11], -PivotNumbers[8], 0.0f),
-								   lcVector4(-PivotNumbers[4], -PivotNumbers[10], PivotNumbers[7], 0.0f), lcVector4(PivotNumbers[0], PivotNumbers[2],  -PivotNumbers[1], 1.0f));
+			const lcMatrix44 PivotMatrix(lcVector4( PivotNumbers[3],  PivotNumbers[9], -PivotNumbers[6], 0.0f), lcVector4(PivotNumbers[5], PivotNumbers[11], -PivotNumbers[8], 0.0f),
+								         lcVector4(-PivotNumbers[4], -PivotNumbers[10], PivotNumbers[7], 0.0f), lcVector4(PivotNumbers[0], PivotNumbers[2],  -PivotNumbers[1], 1.0f));
 
 			mPivotMatrix = PivotMatrix;
-			mState |= LC_PIECE_PIVOT_POINT_VALID;
+			mPivotPointValid = true;
 		}
 		else if (Token == QLatin1String("POSITION_KEY"))
 			mPositionKeys.LoadKeysLDraw(Stream);
@@ -346,7 +348,7 @@ bool lcPiece::FileLoad(lcFile& file)
 			quint8 Hidden;
 			file.ReadU8(&Hidden, 1);
 			if (Hidden & 1)
-				mState |= LC_PIECE_HIDDEN;
+				mHidden = true;
 			file.ReadU8(&ch, 1);
 			file.Seek(ch, SEEK_CUR);
 		}
@@ -355,7 +357,7 @@ bool lcPiece::FileLoad(lcFile& file)
 			qint32 hide;
 			file.ReadS32(&hide, 1);
 			if (hide != 0)
-				mState |= LC_PIECE_HIDDEN;
+				mHidden = true;
 			file.Seek(81, SEEK_CUR);
 		}
 
@@ -375,7 +377,7 @@ bool lcPiece::FileLoad(lcFile& file)
 
 		file.ReadU8(&ch, 1);
 		if (ch & 0x01)
-			mState |= LC_PIECE_HIDDEN;
+			mHidden = true;
 	}
 
 	return true;
@@ -461,42 +463,50 @@ void lcPiece::RemoveTime(lcStep Start, lcStep Time)
 
 void lcPiece::RayTest(lcObjectRayTest& ObjectRayTest) const
 {
-	lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(mModelWorld);
-	lcVector3 Start = lcMul31(ObjectRayTest.Start, InverseWorldMatrix);
-	lcVector3 End = lcMul31(ObjectRayTest.End, InverseWorldMatrix);
+	const lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(mModelWorld);
+	const lcVector3 Start = lcMul31(ObjectRayTest.Start, InverseWorldMatrix);
+	const lcVector3 End = lcMul31(ObjectRayTest.End, InverseWorldMatrix);
 
 	if (mMesh)
 	{
-		if (mMesh->MinIntersectDist(Start, End, ObjectRayTest.Distance))
+		if (mMesh->MinIntersectDist(Start, End, ObjectRayTest.Distance, ObjectRayTest.PieceInfoRayTest.Plane))
 		{
 			ObjectRayTest.ObjectSection.Object = const_cast<lcPiece*>(this);
 			ObjectRayTest.ObjectSection.Section = LC_PIECE_SECTION_POSITION;
+			ObjectRayTest.PieceInfoRayTest.Transform = mModelWorld;
 		}
 	}
-	else if (mPieceInfo->MinIntersectDist(Start, End, ObjectRayTest.Distance))
+	else
 	{
-		ObjectRayTest.ObjectSection.Object = const_cast<lcPiece*>(this);
-		ObjectRayTest.ObjectSection.Section = LC_PIECE_SECTION_POSITION;
+		if (mPieceInfo->MinIntersectDist(Start, End, ObjectRayTest.Distance, ObjectRayTest.PieceInfoRayTest))
+		{
+			ObjectRayTest.ObjectSection.Object = const_cast<lcPiece*>(this);
+			ObjectRayTest.ObjectSection.Section = LC_PIECE_SECTION_POSITION;
+			ObjectRayTest.PieceInfoRayTest.Transform = lcMul(ObjectRayTest.PieceInfoRayTest.Transform, mModelWorld);
+		}
 	}
 
 	if (AreControlPointsVisible())
 	{
-		lcVector3 Min(-LC_PIECE_CONTROL_POINT_SIZE, -LC_PIECE_CONTROL_POINT_SIZE, -LC_PIECE_CONTROL_POINT_SIZE);
-		lcVector3 Max(LC_PIECE_CONTROL_POINT_SIZE, LC_PIECE_CONTROL_POINT_SIZE, LC_PIECE_CONTROL_POINT_SIZE);
+		const lcVector3 Min(-LC_PIECE_CONTROL_POINT_SIZE, -LC_PIECE_CONTROL_POINT_SIZE, -LC_PIECE_CONTROL_POINT_SIZE);
+		const lcVector3 Max(LC_PIECE_CONTROL_POINT_SIZE, LC_PIECE_CONTROL_POINT_SIZE, LC_PIECE_CONTROL_POINT_SIZE);
 
 		for (int ControlPointIdx = 0; ControlPointIdx < mControlPoints.GetSize(); ControlPointIdx++)
 		{
-			lcMatrix44 InverseTransform = lcMatrix44AffineInverse(mControlPoints[ControlPointIdx].Transform);
-			lcVector3 PointStart = lcMul31(Start, InverseTransform);
-			lcVector3 PointEnd = lcMul31(End, InverseTransform);
+			const lcMatrix44 InverseTransform = lcMatrix44AffineInverse(mControlPoints[ControlPointIdx].Transform);
+			const lcVector3 PointStart = lcMul31(Start, InverseTransform);
+			const lcVector3 PointEnd = lcMul31(End, InverseTransform);
 
 			float Distance;
-			if (!lcBoundingBoxRayIntersectDistance(Min, Max, PointStart, PointEnd, &Distance, nullptr) || (Distance >= ObjectRayTest.Distance))
-				continue;
+			lcVector3 Plane;
 
-			ObjectRayTest.ObjectSection.Object = const_cast<lcPiece*>(this);
-			ObjectRayTest.ObjectSection.Section = LC_PIECE_SECTION_CONTROL_POINT_1 + ControlPointIdx;
-			ObjectRayTest.Distance = Distance;
+			if (lcBoundingBoxRayIntersectDistance(Min, Max, PointStart, PointEnd, &Distance, nullptr, &Plane))
+			{
+				ObjectRayTest.ObjectSection.Object = const_cast<lcPiece*>(this);
+				ObjectRayTest.ObjectSection.Section = LC_PIECE_SECTION_CONTROL_POINT_FIRST + ControlPointIdx;
+				ObjectRayTest.Distance = Distance;
+				ObjectRayTest.PieceInfoRayTest.Plane = Plane;
+			}
 		}
 	}
 }
@@ -509,7 +519,9 @@ void lcPiece::BoxTest(lcObjectBoxTest& ObjectBoxTest) const
 
 void lcPiece::DrawInterface(lcContext* Context, const lcScene& Scene) const
 {
-	float LineWidth = lcGetPreferences().mLineWidth;
+	const lcPreferences& Preferences = lcGetPreferences();
+	const float LineWidth = Preferences.mLineWidth;
+
 	Context->SetLineWidth(2.0f * LineWidth);
 
 	const lcBoundingBox& BoundingBox = GetBoundingBox();
@@ -552,14 +564,20 @@ void lcPiece::DrawInterface(lcContext* Context, const lcScene& Scene) const
 		{ Min[0], Min[1], Min[2] }, { Min[0], Min[1], Min[2] + Edge[2] },
 	};
 
-	lcMatrix44 WorldMatrix = Scene.ApplyActiveSubmodelTransform(mModelWorld);
+	const lcMatrix44 WorldMatrix = Scene.ApplyActiveSubmodelTransform(mModelWorld);
 	Context->SetMaterial(lcMaterialType::UnlitColor);
 	Context->SetWorldMatrix(WorldMatrix);
 
 	if (IsFocused(LC_PIECE_SECTION_POSITION))
-		Context->SetInterfaceColor(LC_COLOR_FOCUSED);
+	{
+		const lcVector4 FocusedColor = lcVector4FromColor(Preferences.mObjectFocusedColor);
+		Context->SetColor(FocusedColor);
+	}
 	else
-		Context->SetInterfaceColor(LC_COLOR_SELECTED);
+	{
+		const lcVector4 SelectedColor = lcVector4FromColor(Preferences.mObjectSelectedColor);
+		Context->SetColor(SelectedColor);
+	}
 
 	Context->SetVertexBufferPointer(LineVerts);
 	Context->SetVertexFormatPosition(3);
@@ -568,8 +586,8 @@ void lcPiece::DrawInterface(lcContext* Context, const lcScene& Scene) const
 
 	if (IsPivotPointVisible())
 	{
-		const float Size = 5.0f;
-		const float Verts[8 * 3] =
+		constexpr float Size = 5.0f;
+		constexpr float Verts[8 * 3] =
 		{
 			-Size, -Size, -Size, -Size,  Size, -Size, Size,  Size, -Size, Size, -Size, -Size,
 			-Size, -Size,  Size, -Size,  Size,  Size, Size,  Size,  Size, Size, -Size,  Size
@@ -612,9 +630,12 @@ void lcPiece::DrawInterface(lcContext* Context, const lcScene& Scene) const
 			7, 3, 2, 6, 7, 2, 0, 3, 7, 0, 7, 4, 6, 2, 1, 5, 6, 1
 		};
 
-		glEnable(GL_BLEND);
+		Context->EnableColorBlend(true);
 		Context->EnableCullFace(true);
 
+		const lcVector4 ControlPointColor = lcVector4FromColor(Preferences.mControlPointColor);
+		const lcVector4 ControlPointFocusedColor = lcVector4FromColor(Preferences.mControlPointFocusedColor);
+
 		for (int ControlPointIdx = 0; ControlPointIdx < mControlPoints.GetSize(); ControlPointIdx++)
 		{
 			Context->SetWorldMatrix(lcMul(mControlPoints[ControlPointIdx].Transform, WorldMatrix));
@@ -623,16 +644,16 @@ void lcPiece::DrawInterface(lcContext* Context, const lcScene& Scene) const
 			Context->SetVertexFormatPosition(3);
 			Context->SetIndexBufferPointer(Indices);
 
-			if (IsFocused(LC_PIECE_SECTION_CONTROL_POINT_1 + ControlPointIdx))
-				Context->SetInterfaceColor(LC_COLOR_CONTROL_POINT_FOCUSED);
+			if (IsFocused(LC_PIECE_SECTION_CONTROL_POINT_FIRST + ControlPointIdx))
+				Context->SetColor(ControlPointFocusedColor);
 			else
-				Context->SetInterfaceColor(LC_COLOR_CONTROL_POINT);
+				Context->SetColor(ControlPointColor);
 
 			Context->DrawIndexedPrimitives(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
 		}
 
 		Context->EnableCullFace(false);
-		glDisable(GL_BLEND);
+		Context->EnableColorBlend(false);
 	}
 }
 
@@ -658,7 +679,7 @@ void lcPiece::AddMainModelRenderMeshes(lcScene* Scene, bool Highlight, bool Fade
 
 	if (Scene->GetDrawInterface())
 	{
-		lcPiece* ActiveSubmodelInstance = Scene->GetActiveSubmodelInstance();
+		const lcPiece* ActiveSubmodelInstance = Scene->GetActiveSubmodelInstance();
 
 		if (!ActiveSubmodelInstance)
 			RenderMeshState = IsFocused() ? lcRenderMeshState::Focused : (IsSelected() ? lcRenderMeshState::Selected : RenderMeshState);
@@ -684,7 +705,7 @@ void lcPiece::AddSubModelRenderMeshes(lcScene* Scene, const lcMatrix44& WorldMat
 	if (ColorIndex == gDefaultColor)
 		ColorIndex = DefaultColorIndex;
 
-	lcPiece* ActiveSubmodelInstance = Scene->GetActiveSubmodelInstance();
+	const lcPiece* ActiveSubmodelInstance = Scene->GetActiveSubmodelInstance();
 
 	if (ActiveSubmodelInstance == this)
 		RenderMeshState = lcRenderMeshState::Default;
@@ -722,11 +743,11 @@ void lcPiece::SubModelAddBoundingBoxPoints(const lcMatrix44& WorldMatrix, std::v
 
 void lcPiece::MoveSelected(lcStep Step, bool AddKey, const lcVector3& Distance)
 {
-	quint32 Section = GetFocusSection();
+	const quint32 Section = GetFocusSection();
 
 	if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID)
 	{
-		lcVector3 Position = mModelWorld.GetTranslation() + Distance;
+		const lcVector3 Position = mModelWorld.GetTranslation() + Distance;
 
 		SetPosition(Position, Step, AddKey);
 
@@ -734,11 +755,11 @@ void lcPiece::MoveSelected(lcStep Step, bool AddKey, const lcVector3& Distance)
 	}
 	else
 	{
-		int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1;
+		const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
 		if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize())
 		{
-			lcMatrix33 InverseWorldMatrix = lcMatrix33AffineInverse(lcMatrix33(mModelWorld));
+			const lcMatrix33 InverseWorldMatrix = lcMatrix33AffineInverse(lcMatrix33(mModelWorld));
 			lcMatrix44& Transform = mControlPoints[ControlPointIndex].Transform;
 
 			Transform.SetTranslation(Transform.GetTranslation() + lcMul(Distance, InverseWorldMatrix));
@@ -750,17 +771,17 @@ void lcPiece::MoveSelected(lcStep Step, bool AddKey, const lcVector3& Distance)
 
 void lcPiece::Rotate(lcStep Step, bool AddKey, const lcMatrix33& RotationMatrix, const lcVector3& Center, const lcMatrix33& RotationFrame)
 {
-	quint32 Section = GetFocusSection();
+	const quint32 Section = GetFocusSection();
 
 	if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID)
 	{
 		lcVector3 Distance = mModelWorld.GetTranslation() - Center;
-		lcMatrix33 LocalToWorldMatrix = lcMatrix33(mModelWorld);
+		const lcMatrix33 LocalToWorldMatrix = lcMatrix33(mModelWorld);
 
-		lcMatrix33 LocalToFocusMatrix = lcMul(LocalToWorldMatrix, RotationFrame);
+		const lcMatrix33 LocalToFocusMatrix = lcMul(LocalToWorldMatrix, RotationFrame);
 		lcMatrix33 NewLocalToWorldMatrix = lcMul(LocalToFocusMatrix, RotationMatrix);
 
-		lcMatrix33 WorldToLocalMatrix = lcMatrix33AffineInverse(LocalToWorldMatrix);
+		const lcMatrix33 WorldToLocalMatrix = lcMatrix33AffineInverse(LocalToWorldMatrix);
 
 		Distance = lcMul(Distance, WorldToLocalMatrix);
 		Distance = lcMul(Distance, NewLocalToWorldMatrix);
@@ -772,15 +793,15 @@ void lcPiece::Rotate(lcStep Step, bool AddKey, const lcMatrix33& RotationMatrix,
 	}
 	else
 	{
-		int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1;
+		const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
 		if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize())
 		{
 			lcMatrix44& Transform = mControlPoints[ControlPointIndex].Transform;
-			lcMatrix33 PieceWorldMatrix(mModelWorld);
-			lcMatrix33 LocalToWorldMatrix = lcMul(lcMatrix33(Transform), PieceWorldMatrix);
+			const lcMatrix33 PieceWorldMatrix(mModelWorld);
+			const lcMatrix33 LocalToWorldMatrix = lcMul(lcMatrix33(Transform), PieceWorldMatrix);
 
-			lcMatrix33 LocalToFocusMatrix = lcMul(LocalToWorldMatrix, RotationFrame);
+			const lcMatrix33 LocalToFocusMatrix = lcMul(LocalToWorldMatrix, RotationFrame);
 			lcMatrix33 NewLocalToWorldMatrix = lcMul(lcMul(LocalToFocusMatrix, RotationMatrix), lcMatrix33AffineInverse(PieceWorldMatrix));
 
 			NewLocalToWorldMatrix.Orthonormalize();
@@ -797,7 +818,7 @@ void lcPiece::MovePivotPoint(const lcVector3& Distance)
 		return;
 
 	mPivotMatrix.SetTranslation(mPivotMatrix.GetTranslation() + lcMul30(Distance, lcMatrix44AffineInverse(mModelWorld)));
-	mState |= LC_PIECE_PIVOT_POINT_VALID;
+	mPivotPointValid = true;
 }
 
 void lcPiece::RotatePivotPoint(const lcMatrix33& RotationMatrix)
@@ -809,19 +830,20 @@ void lcPiece::RotatePivotPoint(const lcMatrix33& RotationMatrix)
 	NewPivotRotationMatrix.Orthonormalize();
 
 	mPivotMatrix = lcMatrix44(NewPivotRotationMatrix, mPivotMatrix.GetTranslation());
-	mState |= LC_PIECE_PIVOT_POINT_VALID;
+	mPivotPointValid = true;
 }
 
 quint32 lcPiece::GetAllowedTransforms() const
 {
-	const quint32 Move = LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z;
-	const quint32 Rotate = LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
-	quint32 Section = GetFocusSection();
+	constexpr quint32 Move = LC_OBJECT_TRANSFORM_MOVE_X | LC_OBJECT_TRANSFORM_MOVE_Y | LC_OBJECT_TRANSFORM_MOVE_Z;
+	constexpr quint32 Rotate = LC_OBJECT_TRANSFORM_ROTATE_X | LC_OBJECT_TRANSFORM_ROTATE_Y | LC_OBJECT_TRANSFORM_ROTATE_Z;
+	const quint32 Section = GetFocusSection();
 
 	if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID)
 		return Move | Rotate;
 
-	lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+	const lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+
 	if (SynthInfo)
 	{
 		if (SynthInfo->IsUnidirectional())
@@ -842,13 +864,13 @@ bool lcPiece::CanAddControlPoint() const
 	if (mControlPoints.GetSize() >= LC_MAX_CONTROL_POINTS)
 		return false;
 
-	lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+	const lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
 	return SynthInfo && SynthInfo->CanAddControlPoints();
 }
 
 bool lcPiece::CanRemoveControlPoint() const
 {
-	quint32 Section = GetFocusSection();
+	const quint32 Section = GetFocusSection();
 	return Section >= LC_PIECE_SECTION_CONTROL_POINT_FIRST && Section <= LC_PIECE_SECTION_CONTROL_POINT_LAST && mControlPoints.GetSize() > 2;
 }
 
@@ -857,17 +879,17 @@ bool lcPiece::InsertControlPoint(const lcVector3& WorldStart, const lcVector3& W
 	if (!CanAddControlPoint())
 		return false;
 
-	lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(mModelWorld);
-	lcVector3 Start = lcMul31(WorldStart, InverseWorldMatrix);
-	lcVector3 End = lcMul31(WorldEnd, InverseWorldMatrix);
+	const lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(mModelWorld);
+	const lcVector3 Start = lcMul31(WorldStart, InverseWorldMatrix);
+	const lcVector3 End = lcMul31(WorldEnd, InverseWorldMatrix);
 
-	lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
-	int ControlPointIndex = SynthInfo->InsertControlPoint(mControlPoints, Start, End);
+	const lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+	const int ControlPointIndex = SynthInfo->InsertControlPoint(mControlPoints, Start, End);
 
 	if (ControlPointIndex)
 	{
 		SetFocused(GetFocusSection(), false);
-		SetFocused(LC_PIECE_SECTION_CONTROL_POINT_1 + ControlPointIndex, true);
+		SetFocused(LC_PIECE_SECTION_CONTROL_POINT_FIRST + ControlPointIndex, true);
 		UpdateMesh();
 		return true;
 	}
@@ -877,7 +899,7 @@ bool lcPiece::InsertControlPoint(const lcVector3& WorldStart, const lcVector3& W
 
 bool lcPiece::RemoveFocusedControlPoint()
 {
-	int ControlPointIndex = GetFocusSection() - LC_PIECE_SECTION_CONTROL_POINT_1;
+	const int ControlPointIndex = GetFocusSection() - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
 	if (ControlPointIndex < 0 || ControlPointIndex >= mControlPoints.GetSize() || mControlPoints.GetSize() <= 2)
 		return false;
@@ -893,7 +915,8 @@ bool lcPiece::RemoveFocusedControlPoint()
 
 void lcPiece::VerifyControlPoints(lcArray<lcPieceControlPoint>& ControlPoints) const
 {
-	lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+	const lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+
 	if (!SynthInfo)
 	{
 		ControlPoints.RemoveAll();
@@ -914,15 +937,12 @@ QString lcPiece::GetName() const
 
 bool lcPiece::IsVisible(lcStep Step) const
 {
-	if (mState & LC_PIECE_HIDDEN)
-		return false;
-
-	return (mStepShow <= Step) && (mStepHide > Step || mStepHide == LC_STEP_MAX);
+	return !mHidden && (mStepShow <= Step) && (mStepHide > Step || mStepHide == LC_STEP_MAX);
 }
 
 bool lcPiece::IsVisibleInSubModel() const
 {
-	return (mStepHide == LC_STEP_MAX) && !(mState & LC_PIECE_HIDDEN);
+	return (mStepHide == LC_STEP_MAX) && !mHidden;
 }
 
 void lcPiece::GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex, std::vector<lcModelPartsEntry>& ModelParts) const
@@ -938,7 +958,7 @@ void lcPiece::GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex
 	if (!mMesh)
 		mPieceInfo->GetModelParts(lcMul(mModelWorld, WorldMatrix), ColorIndex, ModelParts);
 	else
-		ModelParts.emplace_back(lcModelPartsEntry{ WorldMatrix, mPieceInfo, mMesh, DefaultColorIndex });
+		ModelParts.emplace_back(lcModelPartsEntry{ lcMul(mModelWorld, WorldMatrix), mPieceInfo, mMesh, ColorIndex });
 }
 
 const lcBoundingBox& lcPiece::GetBoundingBox() const
@@ -961,7 +981,7 @@ void lcPiece::CompareBoundingBox(lcVector3& Min, lcVector3& Max) const
 
 		for (int i = 0; i < 8; i++)
 		{
-			lcVector3 Point = lcMul31(Points[i], mModelWorld);
+			const lcVector3 Point = lcMul31(Points[i], mModelWorld);
 
 			Min = lcMin(Point, Min);
 			Max = lcMax(Point, Max);
@@ -976,8 +996,8 @@ lcGroup* lcPiece::GetTopGroup()
 
 void lcPiece::UpdatePosition(lcStep Step)
 {
-	lcVector3 Position = mPositionKeys.CalculateKey(Step);
-	lcMatrix33 Rotation = mRotationKeys.CalculateKey(Step);
+	const lcVector3 Position = mPositionKeys.CalculateKey(Step);
+	const lcMatrix33 Rotation = mRotationKeys.CalculateKey(Step);
 
 	mModelWorld = lcMatrix44(Rotation, Position);
 }
@@ -985,6 +1005,6 @@ void lcPiece::UpdatePosition(lcStep Step)
 void lcPiece::UpdateMesh()
 {
 	delete mMesh;
-	lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
+	const lcSynthInfo* SynthInfo = mPieceInfo->GetSynthInfo();
 	mMesh = SynthInfo ? SynthInfo->CreateMesh(mControlPoints) : nullptr;
 }
diff --git a/common/piece.h b/common/piece.h
index 1cb36ac..ff714fe 100644
--- a/common/piece.h
+++ b/common/piece.h
@@ -6,58 +6,16 @@ class PieceInfo;
 #include "lc_colors.h"
 #include "lc_math.h"
 
-#define LC_PIECE_HIDDEN                    0x000001
-#define LC_PIECE_PIVOT_POINT_VALID         0x000002
-#define LC_PIECE_POSITION_SELECTED         0x000004
-#define LC_PIECE_POSITION_FOCUSED          0x000008
-#define LC_PIECE_CONTROL_POINT_1_SELECTED  0x000010
-#define LC_PIECE_CONTROL_POINT_1_FOCUSED   0x000020
-#define LC_PIECE_CONTROL_POINT_2_SELECTED  0x000040
-#define LC_PIECE_CONTROL_POINT_2_FOCUSED   0x000080
-#define LC_PIECE_CONTROL_POINT_3_SELECTED  0x000100
-#define LC_PIECE_CONTROL_POINT_3_FOCUSED   0x000200
-#define LC_PIECE_CONTROL_POINT_4_SELECTED  0x000400
-#define LC_PIECE_CONTROL_POINT_4_FOCUSED   0x000800
-#define LC_PIECE_CONTROL_POINT_5_SELECTED  0x001000
-#define LC_PIECE_CONTROL_POINT_5_FOCUSED   0x002000
-#define LC_PIECE_CONTROL_POINT_6_SELECTED  0x004000
-#define LC_PIECE_CONTROL_POINT_6_FOCUSED   0x008000
-#define LC_PIECE_CONTROL_POINT_7_SELECTED  0x010000
-#define LC_PIECE_CONTROL_POINT_7_FOCUSED   0x020000
-#define LC_PIECE_CONTROL_POINT_8_SELECTED  0x040000
-#define LC_PIECE_CONTROL_POINT_8_FOCUSED   0x080000
-#define LC_PIECE_CONTROL_POINT_9_SELECTED  0x100000
-#define LC_PIECE_CONTROL_POINT_9_FOCUSED   0x200000
-#define LC_PIECE_CONTROL_POINT_10_SELECTED 0x400000
-#define LC_PIECE_CONTROL_POINT_10_FOCUSED  0x800000
-
-#define LC_MAX_CONTROL_POINTS 10
-
-#define LC_PIECE_CONTROL_POINT_SELECTION_MASK (LC_PIECE_CONTROL_POINT_1_SELECTED | LC_PIECE_CONTROL_POINT_2_SELECTED | LC_PIECE_CONTROL_POINT_3_SELECTED | LC_PIECE_CONTROL_POINT_4_SELECTED | LC_PIECE_CONTROL_POINT_5_SELECTED | LC_PIECE_CONTROL_POINT_6_SELECTED | LC_PIECE_CONTROL_POINT_7_SELECTED | LC_PIECE_CONTROL_POINT_8_SELECTED | LC_PIECE_CONTROL_POINT_9_SELECTED | LC_PIECE_CONTROL_POINT_10_SELECTED)
-#define LC_PIECE_CONTROL_POINT_FOCUS_MASK (LC_PIECE_CONTROL_POINT_1_FOCUSED | LC_PIECE_CONTROL_POINT_2_FOCUSED | LC_PIECE_CONTROL_POINT_3_FOCUSED | LC_PIECE_CONTROL_POINT_4_FOCUSED | LC_PIECE_CONTROL_POINT_5_FOCUSED | LC_PIECE_CONTROL_POINT_6_FOCUSED | LC_PIECE_CONTROL_POINT_7_FOCUSED | LC_PIECE_CONTROL_POINT_8_FOCUSED | LC_PIECE_CONTROL_POINT_9_FOCUSED | LC_PIECE_CONTROL_POINT_10_FOCUSED)
-
-#define LC_PIECE_SELECTION_MASK     (LC_PIECE_POSITION_SELECTED | LC_PIECE_CONTROL_POINT_SELECTION_MASK)
-#define LC_PIECE_FOCUS_MASK         (LC_PIECE_POSITION_FOCUSED | LC_PIECE_CONTROL_POINT_FOCUS_MASK)
-
-enum lcPieceSection
+#define LC_MAX_CONTROL_POINTS 1000
+
+enum lcPieceSection : quint32
 {
-	LC_PIECE_SECTION_POSITION,
+	LC_PIECE_SECTION_INVALID = ~0U,
+	LC_PIECE_SECTION_POSITION = 0,
 	LC_PIECE_SECTION_CONTROL_POINT_FIRST,
-	LC_PIECE_SECTION_CONTROL_POINT_1 = LC_PIECE_SECTION_CONTROL_POINT_FIRST,
-	LC_PIECE_SECTION_CONTROL_POINT_2,
-	LC_PIECE_SECTION_CONTROL_POINT_3,
-	LC_PIECE_SECTION_CONTROL_POINT_4,
-	LC_PIECE_SECTION_CONTROL_POINT_5,
-	LC_PIECE_SECTION_CONTROL_POINT_6,
-	LC_PIECE_SECTION_CONTROL_POINT_7,
-	LC_PIECE_SECTION_CONTROL_POINT_8,
-	LC_PIECE_SECTION_CONTROL_POINT_9,
-	LC_PIECE_SECTION_CONTROL_POINT_10,
-	LC_PIECE_SECTION_CONTROL_POINT_LAST = LC_PIECE_SECTION_CONTROL_POINT_10
+	LC_PIECE_SECTION_CONTROL_POINT_LAST = LC_PIECE_SECTION_CONTROL_POINT_FIRST + LC_MAX_CONTROL_POINTS - 1,
 };
 
-#define LC_PIECE_SECTION_INVALID (~0U)
-
 struct lcPieceControlPoint
 {
 	lcMatrix44 Transform;
@@ -77,315 +35,78 @@ public:
 
 	bool IsSelected() const override
 	{
-		return (mState & LC_PIECE_SELECTION_MASK) != 0;
+		return mSelected;
 	}
 
 	bool IsSelected(quint32 Section) const override
 	{
 		Q_UNUSED(Section);
 
-		return (mState & LC_PIECE_SELECTION_MASK) != 0;
+		return mSelected;
 	}
 
 	void SetSelected(bool Selected) override
 	{
-		if (Selected)
-			mState |= LC_PIECE_SELECTION_MASK;
-		else
-			mState &= ~(LC_PIECE_SELECTION_MASK | LC_PIECE_FOCUS_MASK);
+		mSelected = Selected;
+		if (!Selected)
+			mFocusedSection = LC_PIECE_SECTION_INVALID;
 	}
 
 	void SetSelected(quint32 Section, bool Selected) override
 	{
-		switch (Section)
-		{
-		case LC_PIECE_SECTION_POSITION:
-			if (Selected)
-				mState |= LC_PIECE_POSITION_SELECTED;
-			else
-				mState &= ~(LC_PIECE_POSITION_SELECTED | LC_PIECE_POSITION_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_1:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_1_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_1_SELECTED | LC_PIECE_CONTROL_POINT_1_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_2:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_2_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_2_SELECTED | LC_PIECE_CONTROL_POINT_2_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_3:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_3_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_3_SELECTED | LC_PIECE_CONTROL_POINT_3_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_4:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_4_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_4_SELECTED | LC_PIECE_CONTROL_POINT_4_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_5:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_5_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_5_SELECTED | LC_PIECE_CONTROL_POINT_5_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_6:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_6_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_6_SELECTED | LC_PIECE_CONTROL_POINT_6_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_7:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_7_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_7_SELECTED | LC_PIECE_CONTROL_POINT_7_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_8:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_8_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_8_SELECTED | LC_PIECE_CONTROL_POINT_8_FOCUSED);
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_9:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_9_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_9_SELECTED | LC_PIECE_CONTROL_POINT_9_FOCUSED);
-			break;
+		Q_UNUSED(Section);
 
-		case LC_PIECE_SECTION_CONTROL_POINT_10:
-			if (Selected)
-				mState |= LC_PIECE_CONTROL_POINT_10_SELECTED;
-			else
-				mState &= ~(LC_PIECE_CONTROL_POINT_10_SELECTED | LC_PIECE_CONTROL_POINT_10_FOCUSED);
-			break;
-		}
+		mSelected = Selected;
+		if (!Selected)
+			mFocusedSection = LC_PIECE_SECTION_INVALID;
 	}
 
 	bool IsFocused() const override
 	{
-		return (mState & LC_PIECE_FOCUS_MASK) != 0;
+		return mFocusedSection != LC_PIECE_SECTION_INVALID;
 	}
 
 	bool IsFocused(quint32 Section) const override
 	{
-		switch (Section)
-		{
-		case LC_PIECE_SECTION_POSITION:
-			return (mState & LC_PIECE_POSITION_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_1:
-			return (mState & LC_PIECE_CONTROL_POINT_1_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_2:
-			return (mState & LC_PIECE_CONTROL_POINT_2_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_3:
-			return (mState & LC_PIECE_CONTROL_POINT_3_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_4:
-			return (mState & LC_PIECE_CONTROL_POINT_4_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_5:
-			return (mState & LC_PIECE_CONTROL_POINT_5_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_6:
-			return (mState & LC_PIECE_CONTROL_POINT_6_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_7:
-			return (mState & LC_PIECE_CONTROL_POINT_7_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_8:
-			return (mState & LC_PIECE_CONTROL_POINT_8_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_9:
-			return (mState & LC_PIECE_CONTROL_POINT_9_FOCUSED) != 0;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_10:
-			return (mState & LC_PIECE_CONTROL_POINT_10_FOCUSED) != 0;
-		}
-
-		return false;
+		return mFocusedSection == Section;
 	}
 
 	void SetFocused(quint32 Section, bool Focused) override
 	{
-		switch (Section)
+		if (Focused)
 		{
-		case LC_PIECE_SECTION_POSITION:
-			if (Focused)
-				mState |= (LC_PIECE_POSITION_SELECTED | LC_PIECE_POSITION_FOCUSED);
-			else
-				mState &= ~LC_PIECE_POSITION_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_1:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_1_SELECTED | LC_PIECE_CONTROL_POINT_1_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_1_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_2:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_2_SELECTED | LC_PIECE_CONTROL_POINT_2_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_2_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_3:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_3_SELECTED | LC_PIECE_CONTROL_POINT_3_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_3_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_4:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_4_SELECTED | LC_PIECE_CONTROL_POINT_4_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_4_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_5:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_5_SELECTED | LC_PIECE_CONTROL_POINT_5_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_5_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_6:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_6_SELECTED | LC_PIECE_CONTROL_POINT_6_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_6_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_7:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_7_SELECTED | LC_PIECE_CONTROL_POINT_7_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_7_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_8:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_8_SELECTED | LC_PIECE_CONTROL_POINT_8_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_8_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_9:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_9_SELECTED | LC_PIECE_CONTROL_POINT_9_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_9_FOCUSED;
-			break;
-
-		case LC_PIECE_SECTION_CONTROL_POINT_10:
-			if (Focused)
-				mState |= (LC_PIECE_CONTROL_POINT_10_SELECTED | LC_PIECE_CONTROL_POINT_10_FOCUSED);
-			else
-				mState &= ~LC_PIECE_CONTROL_POINT_10_FOCUSED;
-			break;
+			mFocusedSection = Section;
+			mSelected = true;
 		}
+		else
+			mFocusedSection = LC_PIECE_SECTION_INVALID;
 	}
 
 	quint32 GetFocusSection() const override
 	{
-		if (mState & LC_PIECE_POSITION_FOCUSED)
-			return LC_PIECE_SECTION_POSITION;
-
-		if (mState & LC_PIECE_CONTROL_POINT_1_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_1;
-
-		if (mState & LC_PIECE_CONTROL_POINT_2_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_2;
-
-		if (mState & LC_PIECE_CONTROL_POINT_3_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_3;
-
-		if (mState & LC_PIECE_CONTROL_POINT_4_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_4;
-
-		if (mState & LC_PIECE_CONTROL_POINT_5_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_5;
-
-		if (mState & LC_PIECE_CONTROL_POINT_6_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_6;
-
-		if (mState & LC_PIECE_CONTROL_POINT_7_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_7;
-
-		if (mState & LC_PIECE_CONTROL_POINT_8_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_8;
-
-		if (mState & LC_PIECE_CONTROL_POINT_9_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_9;
-
-		if (mState & LC_PIECE_CONTROL_POINT_10_FOCUSED)
-			return LC_PIECE_SECTION_CONTROL_POINT_10;
-
-		return LC_PIECE_SECTION_INVALID;
+		return mFocusedSection;
 	}
 
 	quint32 GetAllowedTransforms() const override;
 
 	lcVector3 GetSectionPosition(quint32 Section) const override
 	{
-		switch (Section)
+		if (Section == LC_PIECE_SECTION_POSITION)
 		{
-		case LC_PIECE_SECTION_POSITION:
-			if (mState & LC_PIECE_PIVOT_POINT_VALID)
+			if (mPivotPointValid)
 				return lcMul(mPivotMatrix, mModelWorld).GetTranslation();
 			else
 				return mModelWorld.GetTranslation();
+		}
+		else
+		{
+			const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
-		case LC_PIECE_SECTION_CONTROL_POINT_1:
-			return lcMul(mControlPoints[0].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_2:
-			return lcMul(mControlPoints[1].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_3:
-			return lcMul(mControlPoints[2].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_4:
-			return lcMul(mControlPoints[3].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_5:
-			return lcMul(mControlPoints[4].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_6:
-			return lcMul(mControlPoints[5].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_7:
-			return lcMul(mControlPoints[6].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_8:
-			return lcMul(mControlPoints[7].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_9:
-			return lcMul(mControlPoints[8].Transform, mModelWorld).GetTranslation();
-
-		case LC_PIECE_SECTION_CONTROL_POINT_10:
-			return lcMul(mControlPoints[9].Transform, mModelWorld).GetTranslation();
+			if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize())
+			{
+				const lcMatrix44& Transform = mControlPoints[ControlPointIndex].Transform;
+				return lcMul(Transform, mModelWorld).GetTranslation();
+			}
 		}
 
 		return lcVector3(0.0f, 0.0f, 0.0f);
@@ -419,15 +140,12 @@ public:
 
 	bool IsHidden() const
 	{
-		return (mState & LC_PIECE_HIDDEN) != 0;
+		return mHidden;
 	}
 
 	void SetHidden(bool Hidden)
 	{
-		if (Hidden)
-			mState |= LC_PIECE_HIDDEN;
-		else
-			mState &= ~LC_PIECE_HIDDEN;
+		mHidden = Hidden;
 	}
 
 	const lcArray<lcPieceControlPoint>& GetControlPoints() const
@@ -563,14 +281,14 @@ public:
 
 		if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID)
 		{
-			if (mState & LC_PIECE_PIVOT_POINT_VALID)
+			if (mPivotPointValid)
 				return lcMul31(mPivotMatrix.GetTranslation(), mModelWorld);
 			else
 				return mModelWorld.GetTranslation();
 		}
 		else
 		{
-			const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1;
+			const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
 			if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize())
 			{
@@ -588,14 +306,14 @@ public:
 
 		if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID)
 		{
-			if (mState & LC_PIECE_PIVOT_POINT_VALID)
+			if (mPivotPointValid)
 				return lcMatrix33(lcMul(mModelWorld, mPivotMatrix));
 			else
 				return lcMatrix33(mModelWorld);
 		}
 		else
 		{
-			const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1;
+			const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_FIRST;
 
 			if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize())
 			{
@@ -609,7 +327,7 @@ public:
 
 	void ResetPivotPoint()
 	{
-		mState &= ~LC_PIECE_PIVOT_POINT_VALID;
+		mPivotPointValid = false;
 		mPivotMatrix = lcMatrix44Identity();
 	}
 
@@ -624,7 +342,7 @@ protected:
 
 	bool IsPivotPointVisible() const
 	{
-		return (mState & LC_PIECE_PIVOT_POINT_VALID) && IsFocused();
+		return mPivotPointValid && IsFocused();
 	}
 
 	bool AreControlPointsVisible() const
@@ -646,7 +364,10 @@ protected:
 	lcStep mStepShow;
 	lcStep mStepHide;
 
-	quint32 mState;
+	bool mPivotPointValid = false;
+	bool mHidden = false;
+	bool mSelected = false;
+	quint32 mFocusedSection;
 	lcArray<lcPieceControlPoint> mControlPoints;
 	lcMesh* mMesh;
 };
diff --git a/common/pieceinf.cpp b/common/pieceinf.cpp
index 5b78f5d..a183857 100644
--- a/common/pieceinf.cpp
+++ b/common/pieceinf.cpp
@@ -18,20 +18,24 @@ PieceInfo::PieceInfo()
 {
 	mZipFileType = lcZipFileType::Count;
 	mZipFileIndex = -1;
-	mState = LC_PIECEINFO_UNLOADED;
+	mFolderType = -1;
+	mFolderIndex = -1;
+	mState = lcPieceInfoState::Unloaded;
 	mRefCount = 0;
 	mType = lcPieceInfoType::Part;
 	mMesh = nullptr;
 	mModel = nullptr;
 	mProject = nullptr;
 	mSynthInfo = nullptr;
+	mFileName[0] = 0;
+	m_strDescription[0] = 0;
 }
 
 PieceInfo::~PieceInfo()
 {
 	delete mSynthInfo;
 
-	if (mState == LC_PIECEINFO_LOADED)
+	if (mState == lcPieceInfoState::Loaded)
 		Unload();
 }
 
@@ -99,7 +103,7 @@ void PieceInfo::CreateProject(Project* Project, const char* PieceName)
 	{
 		mType = lcPieceInfoType::Project;
 		mProject = Project;
-		mState = LC_PIECEINFO_LOADED;
+		mState = lcPieceInfoState::Loaded;
 	}
 
 	strncpy(mFileName, PieceName, sizeof(mFileName) - 1);
@@ -108,6 +112,13 @@ void PieceInfo::CreateProject(Project* Project, const char* PieceName)
 	m_strDescription[sizeof(m_strDescription) - 1] = 0;
 }
 
+bool PieceInfo::IsProjectPiece() const
+{
+	if (mProject)
+		return !strcmp(m_strDescription, mProject->GetFileName().toLatin1().data());
+	return false;
+}
+
 bool PieceInfo::GetPieceWorldMatrix(lcPiece* Piece, lcMatrix44& WorldMatrix) const
 {
 	if (IsModel())
@@ -143,7 +154,7 @@ void PieceInfo::Load()
 {
 	if (!IsModel() && !IsProject())
 	{
-		mState = LC_PIECEINFO_LOADING; // todo: mutex lock when changing load state
+		mState = lcPieceInfoState::Loading; // todo: mutex lock when changing load state
 
 		if (IsPlaceholder())
 		{
@@ -154,7 +165,7 @@ void PieceInfo::Load()
 			lcGetPiecesLibrary()->LoadPieceData(this);
 	}
 
-	mState = LC_PIECEINFO_LOADED;
+	mState = lcPieceInfoState::Loaded;
 }
 
 void PieceInfo::ReleaseMesh()
@@ -168,7 +179,7 @@ void PieceInfo::ReleaseMesh()
 				lcMeshSection& Section = mMesh->mLods[LodIdx].Sections[SectionIdx];
 
 				if (Section.Texture)
-					lcGetPiecesLibrary()->ReleaseTexture(Section.Texture);
+					Section.Texture->Release();
 			}
 		}
 
@@ -180,7 +191,7 @@ void PieceInfo::ReleaseMesh()
 void PieceInfo::Unload()
 {
 	ReleaseMesh();
-	mState = LC_PIECEINFO_UNLOADED;
+	mState = lcPieceInfoState::Unloaded;
 	mModel = nullptr;
 
 	if (IsModel())
@@ -193,31 +204,46 @@ void PieceInfo::Unload()
 	}
 }
 
-bool PieceInfo::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance) const
+bool PieceInfo::MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance, lcPieceInfoRayTest& PieceInfoRayTest) const
 {
 	bool Intersect = false;
 
 	if (IsPlaceholder() || IsModel() || IsProject())
 	{
 		float Distance;
-		if (!lcBoundingBoxRayIntersectDistance(mBoundingBox.Min, mBoundingBox.Max, Start, End, &Distance, nullptr) || (Distance >= MinDistance))
+		lcVector3 Plane;
+
+		if (!lcBoundingBoxRayIntersectDistance(mBoundingBox.Min, mBoundingBox.Max, Start, End, &Distance, nullptr, &Plane) || (Distance >= MinDistance))
 			return false;
 
 		if (IsPlaceholder())
+		{
+			PieceInfoRayTest.Info = this;
+			PieceInfoRayTest.Transform = lcMatrix44Identity();
+			MinDistance = Distance;
+			PieceInfoRayTest.Plane = Plane;
 			return true;
+		}
 
 		if (IsModel())
-			Intersect |= mModel->SubModelMinIntersectDist(Start, End, MinDistance);
+			Intersect |= mModel->SubModelMinIntersectDist(Start, End, MinDistance, PieceInfoRayTest);
 		else if (IsProject())
 		{
 			const lcModel* const Model = mProject->GetMainModel();
 			if (Model)
-				Intersect |= Model->SubModelMinIntersectDist(Start, End, MinDistance);
+				Intersect |= Model->SubModelMinIntersectDist(Start, End, MinDistance, PieceInfoRayTest);
 		}
 	}
 
 	if (mMesh)
-		Intersect = mMesh->MinIntersectDist(Start, End, MinDistance);
+	{
+		if (mMesh->MinIntersectDist(Start, End, MinDistance, PieceInfoRayTest.Plane))
+		{
+			PieceInfoRayTest.Info = this;
+			PieceInfoRayTest.Transform = lcMatrix44Identity();
+			Intersect = true;
+		}
+	}
 
 	return Intersect;
 }
@@ -327,7 +353,7 @@ void PieceInfo::GetPartsList(int DefaultColorIndex, bool ScanSubModels, bool Add
 		if (AddSubModels)
 			PartsList[this][DefaultColorIndex]++;
 	}
-	else if (IsProject())
+	else if (IsProject() && !IsProjectPiece())
 	{
 		const lcModel* const Model = mProject->GetMainModel();
 		if (Model)
@@ -368,7 +394,7 @@ void PieceInfo::CompareBoundingBox(const lcMatrix44& WorldMatrix, lcVector3& Min
 
 		for (int i = 0; i < 8; i++)
 		{
-			lcVector3 Point = lcMul31(Points[i], WorldMatrix);
+			const lcVector3 Point = lcMul31(Points[i], WorldMatrix);
 
 			Min = lcMin(Point, Min);
 			Max = lcMax(Point, Max);
diff --git a/common/pieceinf.h b/common/pieceinf.h
index b38c10f..93cf43b 100644
--- a/common/pieceinf.h
+++ b/common/pieceinf.h
@@ -14,11 +14,11 @@ enum class lcPieceInfoType
 
 #define LC_PIECE_NAME_LEN 256
 
-enum lcPieceInfoState
+enum class lcPieceInfoState
 {
-	LC_PIECEINFO_UNLOADED,
-	LC_PIECEINFO_LOADING,
-	LC_PIECEINFO_LOADED
+	Unloaded,
+	Loading,
+	Loaded
 };
 
 struct lcModelPartsEntry
@@ -158,6 +158,7 @@ public:
 		return (m_strDescription[0] == '~');
 	}
 
+	bool IsProjectPiece() const;
 	void ZoomExtents(float FoV, float AspectRatio, lcMatrix44& ProjectionMatrix, lcMatrix44& ViewMatrix) const;
 	void AddRenderMesh(lcScene& Scene);
 	void AddRenderMeshes(lcScene* Scene, const lcMatrix44& WorldMatrix, int ColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const;
@@ -169,7 +170,7 @@ public:
 	void CreateProject(Project* Project, const char* PieceName);
 	bool GetPieceWorldMatrix(lcPiece* Piece, lcMatrix44& WorldMatrix) const;
 	bool IncludesModel(const lcModel* Model) const;
-	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance) const;
+	bool MinIntersectDist(const lcVector3& Start, const lcVector3& End, float& MinDistance, lcPieceInfoRayTest& PieceInfoRayTest) const;
 	bool BoxTest(const lcMatrix44& WorldMatrix, const lcVector4 Planes[6]) const;
 	void GetPartsList(int DefaultColorIndex, bool ScanSubModels, bool AddSubModels, lcPartsList& PartsList) const;
 	void GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorIndex, std::vector<lcModelPartsEntry>& ModelParts) const;
diff --git a/common/project.cpp b/common/project.cpp
index 8a4cdca..eff545d 100644
--- a/common/project.cpp
+++ b/common/project.cpp
@@ -1428,7 +1428,7 @@ bool Project::ExportCOLLADA(const QString& FileName)
 	return true;
 }
 
-void Project::ExportCSV()
+bool Project::ExportCSV(const QString& FileName)
 {
 	lcPartsList PartsList;
 
@@ -1438,13 +1438,13 @@ void Project::ExportCSV()
 	if (PartsList.empty())
 	{
 		QMessageBox::information(gMainWindow, tr("LeoCAD"), tr("Nothing to export."));
-		return;
+		return false;
 	}
 
-	QString SaveFileName = GetExportFileName(QString(), "csv", tr("Export CSV"), tr("CSV Files (*.csv);;All Files (*.*)"));
+	QString SaveFileName = GetExportFileName(FileName, "csv", tr("Export CSV"), tr("CSV Files (*.csv);;All Files (*.*)"));
 
 	if (SaveFileName.isEmpty())
-		return;
+		return false;
 
 	lcDiskFile CSVFile(SaveFileName);
 	char Line[1024];
@@ -1452,7 +1452,7 @@ void Project::ExportCSV()
 	if (!CSVFile.Open(QIODevice::WriteOnly))
 	{
 		QMessageBox::warning(gMainWindow, tr("LeoCAD"), tr("Could not open file '%1' for writing.").arg(SaveFileName));
-		return;
+		return false;
 	}
 
 	CSVFile.WriteLine("Part Name,Color,Quantity,Part ID,Color Code\n");
@@ -1463,10 +1463,15 @@ void Project::ExportCSV()
 
 		for (const auto& ColorIt : PartIt.second)
 		{
-			sprintf(Line, "\"%s\",\"%s\",%d,%s,%d\n", Info->m_strDescription, gColorList[ColorIt.first].Name, ColorIt.second, Info->mFileName, gColorList[ColorIt.first].Code);
+			std::string Description = Info->m_strDescription;
+			Description.erase(std::remove(Description.begin(), Description.end(), ','), Description.end());
+
+			sprintf(Line, "\"%s\",\"%s\",%d,%s,%d\n", Description.c_str(), gColorList[ColorIt.first].Name, ColorIt.second, Info->mFileName, gColorList[ColorIt.first].Code);
 			CSVFile.WriteLine(Line);
 		}
 	}
+
+	return true;
 }
 
 lcInstructions* Project::GetInstructions()
diff --git a/common/project.h b/common/project.h
index 3a8e00f..e40efdc 100644
--- a/common/project.h
+++ b/common/project.h
@@ -35,7 +35,9 @@ public:
 	~Project();
 
 	Project(const Project&) = delete;
+	Project(Project&&) = delete;
 	Project& operator=(const Project&) = delete;
+	Project& operator=(Project&&) = delete;
 
 	const lcArray<lcModel*>& GetModels() const
 	{
@@ -91,7 +93,7 @@ public:
 	bool Export3DStudio(const QString& FileName);
 	void ExportBrickLink();
 	bool ExportCOLLADA(const QString& FileName);
-	void ExportCSV();
+	bool ExportCSV(const QString& FileName);
 	void ExportHTML(const lcHTMLExportOptions& Options);
 	bool ExportPOVRay(const QString& FileName);
 	bool ExportWavefront(const QString& FileName);
diff --git a/common/texfont.cpp b/common/texfont.cpp
index 761fa89..a05a918 100644
--- a/common/texfont.cpp
+++ b/common/texfont.cpp
@@ -2,6 +2,8 @@
 #include <string.h>
 #include "texfont.h"
 #include "lc_context.h"
+#include "lc_texture.h"
+#include "image.h"
 
 static const unsigned char TextureData[2048] =
 {
@@ -93,7 +95,6 @@ TexFont gTexFont;
 
 TexFont::TexFont()
 {
-	mTexture = 0;
 	memset(&mGlyphs, 0, sizeof(mGlyphs));
 }
 
@@ -103,26 +104,22 @@ bool TexFont::Initialize(lcContext* Context)
 		return true;
 
 	mFontHeight = 16;
+	mTextureWidth = 128;
+	mTextureHeight = 128;
 
-	glGenTextures(1, &mTexture);
-	Context->BindTexture2D(mTexture);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+	Image Image;
+	Image.Allocate(mTextureWidth, mTextureHeight, lcPixelFormat::L8A8);
 
-	unsigned char ExpandedData[sizeof(TextureData) * 8 * 2];
+	unsigned char* ExpandedData = Image.mData;
 	for (unsigned int TexelIdx = 0; TexelIdx < sizeof(TextureData) * 8; TexelIdx++)
 	{
-		unsigned char Texel = TextureData[TexelIdx / 8] & (1 << (TexelIdx % 8)) ? 255 : 0;
+		const unsigned char Texel = TextureData[TexelIdx / 8] & (1 << (TexelIdx % 8)) ? 255 : 0;
 		ExpandedData[TexelIdx * 2] = ExpandedData[TexelIdx * 2 + 1] = Texel;
 	}
 
-	mTextureWidth = 128;
-	mTextureHeight = 128;
-
-	glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, mTextureWidth, mTextureHeight, 0, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, ExpandedData);
+	mTexture = new lcTexture();
+	mTexture->SetImage(std::move(Image), LC_TEXTURE_WRAPU | LC_TEXTURE_WRAPV | LC_TEXTURE_POINT);
+	mTexture->Upload(Context);
 
 	const unsigned char* Ptr = GlyphData;
 
@@ -167,7 +164,7 @@ void TexFont::GetStringDimensions(int* cx, int* cy, const char* Text) const
 
 void TexFont::PrintText(lcContext* Context, float Left, float Top, float Z, const char* Text) const
 {
-	size_t Length = strlen(Text);
+	const size_t Length = strlen(Text);
 
 	if (!Length)
 		return;
@@ -233,13 +230,13 @@ void TexFont::GetTriangles(const lcMatrix44& Transform, const char* Text, float*
 
 	for (const char* ch = Text; *ch; ch++)
 	{
-		int Glyph = *ch;
+		const int Glyph = *ch;
 		Width += mGlyphs[Glyph].width;
 	}
 
 	float Left = -Width / 2.0f;
-	float Top = mFontHeight / 2.0f;
-	float Z = 0.0f;
+	const float Top = mFontHeight / 2.0f;
+	const float Z = 0.0f;
 
 	while (*Text)
 	{
diff --git a/common/texfont.h b/common/texfont.h
index e970226..9dddf46 100644
--- a/common/texfont.h
+++ b/common/texfont.h
@@ -7,10 +7,10 @@ public:
 
 	bool IsLoaded() const
 	{
-		return mTexture != 0;
+		return mTexture != nullptr;
 	}
 
-	GLuint GetTexture() const
+	lcTexture* GetTexture() const
 	{
 		return mTexture;
 	}
@@ -30,7 +30,7 @@ protected:
 		float left, right, top, bottom;
 	} mGlyphs[256];
 
-	GLuint mTexture;
+	lcTexture* mTexture = nullptr;
 	int mTextureWidth;
 	int mTextureHeight;
 	int mFontHeight;
diff --git a/debian/changelog b/debian/changelog
index 280e867..6b04d66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+leocad (23.03-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 20 Apr 2023 22:44:07 -0000
+
 leocad (21.06-1) unstable; urgency=medium
 
   [ Johannes Schauer Marin Rodrigues ]
diff --git a/debian/patches/ldraw-parts b/debian/patches/ldraw-parts
index cebbeda..06a351e 100644
--- a/debian/patches/ldraw-parts
+++ b/debian/patches/ldraw-parts
@@ -2,9 +2,11 @@ Author: Johannes Schauer Marin Rodrigues <josch@debian.org>
 Description: mention ldraw-parts package in startup popup
 Forwarded: not-needed
 
---- a/common/lc_application.cpp
-+++ b/common/lc_application.cpp
-@@ -930,9 +930,9 @@ lcStartupMode lcApplication::Initialize(
+Index: leocad.git/common/lc_application.cpp
+===================================================================
+--- leocad.git.orig/common/lc_application.cpp
++++ leocad.git/common/lc_application.cpp
+@@ -938,9 +938,9 @@ lcStartupMode lcApplication::Initialize(
  		QString Message;
  
  		if (mLibrary->LoadBuiltinPieces())
diff --git a/docs/COPYING.txt b/docs/COPYING.txt
index ae3b531..ecbc059 100644
--- a/docs/COPYING.txt
+++ b/docs/COPYING.txt
@@ -1,12 +1,12 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
-	  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-	 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users.  This
 General Public License applies to most of the Free Software
 Foundation's software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+the GNU Lesser General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
+
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
     License.  (Exception: if the Program itself is interactive but
     does not normally print such an announcement, your work based on
     the Program is not required to print an announcement.)
-
+
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
 and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
 access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
-
+
   4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
 
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
-
+
   8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
-
-	Appendix: How to Apply These Terms to Your New Programs
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
+    Copyright (C) <year>  <name of author>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
-    USA.
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision version 69, Copyright (C) year name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@ necessary.  Here is a sample; alter the names:
 This General Public License does not permit incorporating your program into
 proprietary programs.  If your program is a subroutine library, you may
 consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
\ No newline at end of file
diff --git a/docs/CREDITS.txt b/docs/CREDITS.txt
index b49d5c4..6238113 100644
--- a/docs/CREDITS.txt
+++ b/docs/CREDITS.txt
@@ -4,7 +4,7 @@ Author, Original Design:
 Leonardo Zide <leozide@gmail.com>
 
 Contributions (in alphabetical order):
-Christian H�ltje <docwhat@gerf.org>
+Christian Höltje <docwhat@gerf.org>
 David Paleino <dapal@debian.org>
 Hubert Figuiere <hub@figuiere.net>
 Joerg Scheurich <rusmufti@helpdesk.bera.rus.uni-stuttgart.de>
@@ -14,7 +14,7 @@ Pat Mahoney <pat7@gmx.net>
 Petter Reinholdtsen <pere@hungry.com>
 Renaud Breard <renaud@islande.net>
 Rodney Rushing <leocad.reg@yenandjen.com>
-Torbj�rn S�derstedt <torbjrn@gmail.com>
+Torbjörn Söderstedt <torbjrn@gmail.com>
 
 Translations:
 Sylvain L. Sauvage <SSauvage@club-internet.fr>
diff --git a/docs/leocad.1 b/docs/leocad.1
index 57ee6f0..109a419 100644
--- a/docs/leocad.1
+++ b/docs/leocad.1
@@ -130,7 +130,7 @@ Select shading mode for rendering.
 
 .TP
 .BI "\-\-line-width " width
-Set the with of the edge lines.
+Set the width of the edge lines.
 
 .TP
 .BI "\-\-aa\-samples " count
diff --git a/leocad.pro b/leocad.pro
index 5d67934..a94e2cc 100644
--- a/leocad.pro
+++ b/leocad.pro
@@ -1,4 +1,4 @@
-QT += core gui opengl network xml concurrent
+QT += core gui widgets opengl network xml concurrent
 QT *= printsupport
 TEMPLATE = app
 
@@ -10,6 +10,13 @@ equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 4) {
 	error("LeoCAD requires Qt5.4 or later.")
 }
 
+greaterThan(QT_MAJOR_VERSION, 5) {
+	QT += openglwidgets
+	win32-msvc* {
+		QMAKE_CXXFLAGS += /std:c++17
+	}
+}
+
 qtHaveModule(gamepad) {
 	QT += gamepad
 	DEFINES += LC_ENABLE_GAMEPAD
@@ -20,7 +27,7 @@ CONFIG += precompile_header incremental c++11 force_debug_info
 
 win32 {
 	RC_ICONS = resources/leocad.ico
-	VERSION = 21.6.0.0
+	VERSION = 23.3.0.0
 	QMAKE_TARGET_COMPANY = LeoCAD Software
 	QMAKE_TARGET_DESCRIPTION = LeoCAD
 	QMAKE_TARGET_COPYRIGHT = "Copyright (C) LeoCAD.org"
@@ -197,6 +204,7 @@ SOURCES += \
 	common/lc_texture.cpp \
 	common/lc_timelinewidget.cpp \
 	common/lc_view.cpp \
+	common/lc_viewmanipulator.cpp \
 	common/lc_viewsphere.cpp \
 	common/lc_viewwidget.cpp \
 	common/lc_zipfile.cpp \
@@ -265,6 +273,7 @@ HEADERS += \
 	common/lc_synth.h \
 	common/lc_texture.h \
 	common/lc_view.h \
+	common/lc_viewmanipulator.h \
 	common/lc_viewsphere.h \
 	common/lc_viewwidget.h \
 	common/lc_zipfile.h \
diff --git a/leocad.spec b/leocad.spec
index 88949c3..514adca 100644
--- a/leocad.spec
+++ b/leocad.spec
@@ -28,7 +28,7 @@ Group: Graphics
 %if 0%{?fedora} || 0%{?centos_version}
 Group: Amusements/Graphics
 %endif
-Version: 21.03
+Version: 23.03
 %if 0%{?opensuse_bs}
 Release: <CI_CNT>.<B_CNT>%{?dist}
 %else
@@ -281,6 +281,9 @@ install -m 644 tools/icon/scalable/apps/leocad.svg \
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Sun Jan 30 2022 - sT331h0rs3 (at) gmail.com 0.92
+- Actualize LeoCAD version
+
 * Sat May 08 2021 - sT331h0rs3 (at) gmail.com 0.91
 - Build with Qt5 by default
 - Actualize LeoCAD version
diff --git a/qt/Info.plist b/qt/Info.plist
index e1a6f3b..89fed5d 100644
--- a/qt/Info.plist
+++ b/qt/Info.plist
@@ -63,7 +63,7 @@
 	<key>CFBundleSignature</key>
 	<string>LCAD</string>
 	<key>CFBundleVersion</key>
-	<string>21.06.0</string>
+	<string>23.03.0</string>
 	<key>CFBundleDisplayName</key>
 	<string>LeoCAD</string>
 	<key>CFBundleName</key>
diff --git a/qt/lc_qcolorpicker.cpp b/qt/lc_qcolorpicker.cpp
index c947a5e..2d7e102 100644
--- a/qt/lc_qcolorpicker.cpp
+++ b/qt/lc_qcolorpicker.cpp
@@ -123,7 +123,12 @@ void lcQColorPicker::buttonPressed(bool toggled)
 	connect(popup, SIGNAL(hid()), SLOT(popupClosed()));
 	popup->setMinimumSize(300, 200);
 
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+	QScreen* Screen = screen();
+	const QRect desktop = Screen ? Screen->geometry() : QRect();
+#else
 	const QRect desktop = QApplication::desktop()->geometry();
+#endif
 
 	QPoint pos = mapToGlobal(rect().bottomLeft());
 	if (pos.x() < desktop.left())
diff --git a/qt/lc_qpreferencesdialog.cpp b/qt/lc_qpreferencesdialog.cpp
index 89f86aa..968a151 100644
--- a/qt/lc_qpreferencesdialog.cpp
+++ b/qt/lc_qpreferencesdialog.cpp
@@ -45,6 +45,12 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget* Parent, lcPreferencesDialogO
 	connect(ui->ViewSphereColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
 	connect(ui->ViewSphereTextColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
 	connect(ui->ViewSphereHighlightColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->ObjectSelectedColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->ObjectFocusedColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->CameraColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->LightColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->ControlPointColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
+	connect(ui->ControlPointFocusedColorButton, &QToolButton::clicked, this, &lcQPreferencesDialog::ColorButtonClicked);
 	connect(ui->categoriesTree, SIGNAL(itemSelectionChanged()), this, SLOT(updateParts()));
 	ui->shortcutEdit->installEventFilter(this);
 	connect(ui->commandList, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)), this, SLOT(commandChanged(QTreeWidgetItem*)));
@@ -210,6 +216,12 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget* Parent, lcPreferencesDialogO
 	SetButtonPixmap(mOptions->Preferences.mViewSphereColor, ui->ViewSphereColorButton);
 	SetButtonPixmap(mOptions->Preferences.mViewSphereTextColor, ui->ViewSphereTextColorButton);
 	SetButtonPixmap(mOptions->Preferences.mViewSphereHighlightColor, ui->ViewSphereHighlightColorButton);
+	SetButtonPixmap(mOptions->Preferences.mObjectSelectedColor, ui->ObjectSelectedColorButton);
+	SetButtonPixmap(mOptions->Preferences.mObjectFocusedColor, ui->ObjectFocusedColorButton);
+	SetButtonPixmap(mOptions->Preferences.mCameraColor, ui->CameraColorButton);
+	SetButtonPixmap(mOptions->Preferences.mLightColor, ui->LightColorButton);
+	SetButtonPixmap(mOptions->Preferences.mControlPointColor, ui->ControlPointColorButton);
+	SetButtonPixmap(mOptions->Preferences.mControlPointFocusedColor, ui->ControlPointFocusedColorButton);
 
 	on_studStyleCombo_currentIndexChanged(ui->studStyleCombo->currentIndex());
 	on_antiAliasing_toggled();
@@ -495,6 +507,38 @@ void lcQPreferencesDialog::ColorButtonClicked()
 		Color = &mOptions->Preferences.mViewSphereHighlightColor;
 		Title = tr("Select View Sphere Highlight Color");
 	}
+	else if (Button == ui->ObjectSelectedColorButton)
+	{
+		Color = &mOptions->Preferences.mObjectSelectedColor;
+		Title = tr("Select Object Selected Color");
+	}
+	else if (Button == ui->ObjectFocusedColorButton)
+	{
+		Color = &mOptions->Preferences.mObjectFocusedColor;
+		Title = tr("Select Object Focused Color");
+	}
+	else if (Button == ui->CameraColorButton)
+	{
+		Color = &mOptions->Preferences.mCameraColor;
+		Title = tr("Select Camera Color");
+	}
+	else if (Button == ui->LightColorButton)
+	{
+		Color = &mOptions->Preferences.mLightColor;
+		Title = tr("Select Light Color");
+	}
+	else if (Button == ui->ControlPointColorButton)
+	{
+		Color = &mOptions->Preferences.mControlPointColor;
+		Title = tr("Select Control Point Color");
+		DialogOptions = QColorDialog::ShowAlphaChannel;
+	}
+	else if (Button == ui->ControlPointFocusedColorButton)
+	{
+		Color = &mOptions->Preferences.mControlPointFocusedColor;
+		Title = tr("Select Control Point Focused Color");
+		DialogOptions = QColorDialog::ShowAlphaChannel;
+	}
 	else
 		return;
 
diff --git a/qt/lc_qpreferencesdialog.ui b/qt/lc_qpreferencesdialog.ui
index 3acb423..2c53c1f 100644
--- a/qt/lc_qpreferencesdialog.ui
+++ b/qt/lc_qpreferencesdialog.ui
@@ -909,114 +909,64 @@
       <attribute name="title">
        <string>Colors</string>
       </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_14">
-       <item>
-        <widget class="QGroupBox" name="groupBox_7">
+      <layout class="QGridLayout" name="gridLayout_9">
+       <item row="2" column="0" colspan="2">
+        <widget class="QGroupBox" name="groupBox_11">
          <property name="title">
-          <string>Background</string>
+          <string>Interface</string>
          </property>
-         <layout class="QGridLayout" name="gridLayout_7">
-          <item row="1" column="1">
-           <layout class="QHBoxLayout" name="horizontalLayout_2">
-            <item>
-             <widget class="QLabel" name="label_27">
-              <property name="text">
-               <string>Top Color:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="BackgroundGradient1ColorButton">
-              <property name="text">
-               <string/>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QLabel" name="label_28">
-              <property name="text">
-               <string>Bottom Color:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="BackgroundGradient2ColorButton">
-              <property name="text">
-               <string/>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_10">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-          <item row="0" column="0">
-           <widget class="QRadioButton" name="BackgroundSolidRadio">
+         <layout class="QGridLayout" name="gridLayout_8">
+          <item row="3" column="0">
+           <widget class="QLabel" name="label_15">
             <property name="text">
-             <string>So&amp;lid Color</string>
+             <string>Marquee Border:</string>
             </property>
            </widget>
           </item>
-          <item row="1" column="0">
-           <widget class="QRadioButton" name="BackgroundGradientRadio">
+          <item row="3" column="1">
+           <widget class="QToolButton" name="MarqueeBorderColorButton">
             <property name="text">
-             <string>&amp;Gradient</string>
+             <string/>
             </property>
            </widget>
           </item>
-          <item row="0" column="1">
-           <layout class="QHBoxLayout" name="horizontalLayout_11">
-            <item>
-             <widget class="QToolButton" name="BackgroundSolidColorButton">
-              <property name="text">
-               <string/>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_12">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_11">
-         <property name="title">
-          <string>Interface</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_8">
-          <item row="0" column="2">
+          <item row="0" column="3">
            <widget class="QLabel" name="label_32">
             <property name="text">
              <string>Inactive View Border:</string>
             </property>
            </widget>
           </item>
-          <item row="0" column="1">
-           <widget class="QToolButton" name="ActiveViewColorButton">
+          <item row="3" column="4">
+           <widget class="QToolButton" name="MarqueeFillColorButton">
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_14">
+            <property name="text">
+             <string>Camera Name:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="4">
+           <widget class="QToolButton" name="AxesColorButton">
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="3">
+           <widget class="QLabel" name="label_16">
+            <property name="text">
+             <string>Marquee Fill:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="4">
+           <widget class="QToolButton" name="InactiveViewColorButton">
             <property name="text">
              <string/>
             </property>
@@ -1029,10 +979,10 @@
             </property>
            </widget>
           </item>
-          <item row="0" column="0">
-           <widget class="QLabel" name="label_6">
+          <item row="2" column="3">
+           <widget class="QLabel" name="label_31">
             <property name="text">
-             <string>Active View Border:</string>
+             <string>Axis Icon Labels:</string>
             </property>
            </widget>
           </item>
@@ -1043,21 +993,21 @@
             </property>
            </widget>
           </item>
-          <item row="0" column="3">
-           <widget class="QToolButton" name="InactiveViewColorButton">
+          <item row="5" column="1">
+           <widget class="QToolButton" name="OverlayColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="label_14">
+          <item row="0" column="1">
+           <widget class="QToolButton" name="ActiveViewColorButton">
             <property name="text">
-             <string>Camera Name:</string>
+             <string/>
             </property>
            </widget>
           </item>
-          <item row="0" column="4">
+          <item row="0" column="5">
            <spacer name="horizontalSpacer_16">
             <property name="orientation">
              <enum>Qt::Horizontal</enum>
@@ -1070,59 +1020,142 @@
             </property>
            </spacer>
           </item>
-          <item row="5" column="1">
-           <widget class="QToolButton" name="OverlayColorButton">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_6">
             <property name="text">
-             <string/>
+             <string>Active View Border:</string>
             </property>
            </widget>
           </item>
-          <item row="2" column="2">
-           <widget class="QLabel" name="label_31">
+          <item row="0" column="2">
+           <spacer name="horizontalSpacer_18">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="4" column="1">
+        <widget class="QGroupBox" name="groupBox_9">
+         <property name="title">
+          <string>View Sphere</string>
+         </property>
+         <layout class="QHBoxLayout" name="horizontalLayout_16">
+          <item>
+           <widget class="QLabel" name="label_22">
             <property name="text">
-             <string>Axis Icon Labels:</string>
+             <string>Color:</string>
             </property>
            </widget>
           </item>
-          <item row="2" column="3">
-           <widget class="QToolButton" name="AxesColorButton">
+          <item>
+           <widget class="QToolButton" name="ViewSphereColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="label_15">
+          <item>
+           <spacer name="horizontalSpacer_21">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item>
+           <widget class="QLabel" name="label_23">
             <property name="text">
-             <string>Marquee Border:</string>
+             <string>Text Color:</string>
             </property>
            </widget>
           </item>
-          <item row="3" column="1">
-           <widget class="QToolButton" name="MarqueeBorderColorButton">
+          <item>
+           <widget class="QToolButton" name="ViewSphereTextColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item row="3" column="2">
-           <widget class="QLabel" name="label_16">
+          <item>
+           <spacer name="horizontalSpacer_22">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item>
+           <widget class="QLabel" name="label_20">
             <property name="text">
-             <string>Marquee Fill:</string>
+             <string>Highlight Color:</string>
             </property>
            </widget>
           </item>
-          <item row="3" column="3">
-           <widget class="QToolButton" name="MarqueeFillColorButton">
+          <item>
+           <widget class="QToolButton" name="ViewSphereHighlightColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
+          <item>
+           <spacer name="horizontalSpacer_14">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
          </layout>
         </widget>
        </item>
-       <item>
+       <item row="6" column="0">
+        <spacer name="verticalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="4" column="0">
         <widget class="QGroupBox" name="groupBox_10">
          <property name="title">
           <string>Grid</string>
@@ -1142,6 +1175,22 @@
             </property>
            </widget>
           </item>
+          <item>
+           <spacer name="horizontalSpacer_20">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
           <item>
            <widget class="QLabel" name="label_30">
             <property name="text">
@@ -1172,56 +1221,222 @@
          </layout>
         </widget>
        </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_9">
+       <item row="0" column="0" colspan="2">
+        <widget class="QGroupBox" name="groupBox_7">
          <property name="title">
-          <string>View Sphere</string>
+          <string>Background</string>
          </property>
-         <layout class="QHBoxLayout" name="horizontalLayout_16">
-          <item>
-           <widget class="QLabel" name="label_22">
+         <layout class="QGridLayout" name="gridLayout_7">
+          <item row="1" column="1">
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <item>
+             <widget class="QLabel" name="label_27">
+              <property name="text">
+               <string>Top Color:</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="BackgroundGradient1ColorButton">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_19">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeType">
+               <enum>QSizePolicy::Fixed</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>20</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QLabel" name="label_28">
+              <property name="text">
+               <string>Bottom Color:</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="BackgroundGradient2ColorButton">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_10">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item row="0" column="0">
+           <widget class="QRadioButton" name="BackgroundSolidRadio">
             <property name="text">
-             <string>Color:</string>
+             <string>So&amp;lid Color</string>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QToolButton" name="ViewSphereColorButton">
+          <item row="1" column="0">
+           <widget class="QRadioButton" name="BackgroundGradientRadio">
+            <property name="text">
+             <string>&amp;Gradient</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <layout class="QHBoxLayout" name="horizontalLayout_11">
+            <item>
+             <widget class="QToolButton" name="BackgroundSolidColorButton">
+              <property name="text">
+               <string/>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_12">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="1" column="0" colspan="2">
+        <widget class="QGroupBox" name="groupBox_12">
+         <property name="title">
+          <string>Objects</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_10">
+          <item row="1" column="3">
+           <widget class="QLabel" name="label_37">
+            <property name="text">
+             <string>Light:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="4">
+           <widget class="QToolButton" name="LightColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QLabel" name="label_23">
+          <item row="0" column="2">
+           <spacer name="horizontalSpacer_15">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Fixed</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="0" column="3">
+           <widget class="QLabel" name="label_38">
             <property name="text">
-             <string>Text Color:</string>
+             <string>Focused:</string>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QToolButton" name="ViewSphereTextColorButton">
+          <item row="1" column="1">
+           <widget class="QToolButton" name="CameraColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QLabel" name="label_20">
+          <item row="2" column="3">
+           <widget class="QLabel" name="label_36">
             <property name="text">
-             <string>Highlight Color:</string>
+             <string>Control Point Focused:</string>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QToolButton" name="ViewSphereHighlightColorButton">
+          <item row="2" column="1">
+           <widget class="QToolButton" name="ControlPointColorButton">
             <property name="text">
              <string/>
             </property>
            </widget>
           </item>
-          <item>
-           <spacer name="horizontalSpacer_14">
+          <item row="2" column="4">
+           <widget class="QToolButton" name="ControlPointFocusedColorButton">
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QToolButton" name="ObjectSelectedColorButton">
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="4">
+           <widget class="QToolButton" name="ObjectFocusedColorButton">
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_35">
+            <property name="text">
+             <string>Control Point:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_33">
+            <property name="text">
+             <string>Selected:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_34">
+            <property name="text">
+             <string>Camera:</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="5">
+           <spacer name="horizontalSpacer_17">
             <property name="orientation">
              <enum>Qt::Horizontal</enum>
             </property>
@@ -1236,19 +1451,6 @@
          </layout>
         </widget>
        </item>
-       <item>
-        <spacer name="verticalSpacer_3">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>40</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tabCategories">
@@ -1826,6 +2028,12 @@
   <tabstop>BackgroundGradientRadio</tabstop>
   <tabstop>BackgroundGradient1ColorButton</tabstop>
   <tabstop>BackgroundGradient2ColorButton</tabstop>
+  <tabstop>ObjectSelectedColorButton</tabstop>
+  <tabstop>ObjectFocusedColorButton</tabstop>
+  <tabstop>CameraColorButton</tabstop>
+  <tabstop>LightColorButton</tabstop>
+  <tabstop>ControlPointColorButton</tabstop>
+  <tabstop>ControlPointFocusedColorButton</tabstop>
   <tabstop>ActiveViewColorButton</tabstop>
   <tabstop>InactiveViewColorButton</tabstop>
   <tabstop>TextColorButton</tabstop>
diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp
index 95ec88c..0ce4afd 100644
--- a/qt/lc_qpropertiestree.cpp
+++ b/qt/lc_qpropertiestree.cpp
@@ -517,9 +517,15 @@ QWidget *lcQPropertiesTree::createEditor(QWidget *parent, QTreeWidgetItem *item)
 			lcPiecesLibrary* Library = lcGetPiecesLibrary();
 			std::vector<PieceInfo*> SortedPieces;
 			SortedPieces.reserve(Library->mPieces.size());
+			const lcModel* ActiveModel = gMainWindow->GetActiveModel();
 
 			for (const auto& PartIt : Library->mPieces)
-				SortedPieces.push_back(PartIt.second);
+			{
+				PieceInfo* Info = PartIt.second;
+
+				if (!Info->IsModel() || !Info->GetModel()->IncludesModel(ActiveModel))
+					SortedPieces.push_back(PartIt.second);
+			}
 
 			auto PieceCompare = [](PieceInfo* Info1, PieceInfo* Info2)
 			{
@@ -788,7 +794,10 @@ void lcQPropertiesTree::slotColorButtonClicked()
 	connect(Popup, SIGNAL(selected(int)), SLOT(slotSetValue(int)));
 	Popup->setMinimumSize(qMax(300, width()), qMax(200, static_cast<int>(width() * 2 / 3)));
 
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+	QScreen* Screen = Button->screen();
+	const QRect ScreenRect = Screen ? Screen->geometry() : QRect();
+#elif (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
 	QScreen* Screen = QGuiApplication::screenAt(Button->mapToGlobal(Button->rect().bottomLeft()));
 	const QRect ScreenRect = Screen ? Screen->geometry() : QApplication::desktop()->geometry();
 #else
diff --git a/qt/lc_qutils.cpp b/qt/lc_qutils.cpp
index dbfe26a..a852296 100644
--- a/qt/lc_qutils.cpp
+++ b/qt/lc_qutils.cpp
@@ -7,7 +7,7 @@
 QString lcFormatValue(float Value, int Precision)
 {
 	QString String = QString::number(Value, 'f', Precision);
-	int Dot = String.indexOf('.');
+	const int Dot = String.indexOf('.');
 
 	if (Dot != -1)
 	{
@@ -25,7 +25,7 @@ QString lcFormatValueLocalized(float Value)
 {
 	QLocale Locale = QLocale::system();
 	Locale.setNumberOptions(QLocale::OmitGroupSeparator);
-	QChar DecimalPoint = Locale.decimalPoint();
+	QString DecimalPoint = Locale.decimalPoint();
 	QString String = Locale.toString(Value, 'f', 4);
 
 	if (String.indexOf(DecimalPoint) != -1)
@@ -47,40 +47,56 @@ float lcParseValueLocalized(const QString& Value)
 
 // Resize all columns to content except for one stretching column. (taken from QT creator)
 lcQTreeWidgetColumnStretcher::lcQTreeWidgetColumnStretcher(QTreeWidget *treeWidget, int columnToStretch)
-	: QObject(treeWidget->header()), m_columnToStretch(columnToStretch)
+	: QObject(treeWidget->header()), m_columnToStretch(columnToStretch), m_interactiveResize(false), m_stretchWidth(0)
 {
 	parent()->installEventFilter(this);
+	connect(treeWidget->header(), SIGNAL(sectionResized(int, int, int)), SLOT(sectionResized(int, int, int)));
 	QHideEvent fake;
 	lcQTreeWidgetColumnStretcher::eventFilter(parent(), &fake);
 }
 
-bool lcQTreeWidgetColumnStretcher::eventFilter(QObject *obj, QEvent *ev)
+void lcQTreeWidgetColumnStretcher::sectionResized(int LogicalIndex, int OldSize, int NewSize)
 {
-	if (obj == parent())
+	Q_UNUSED(OldSize)
+
+	if (LogicalIndex == m_columnToStretch) 
+	{ 
+		QHeaderView* HeaderView = qobject_cast<QHeaderView*>(parent()); 
+ 
+		if (HeaderView->isVisible()) 
+			m_interactiveResize = true; 
+ 
+		m_stretchWidth = NewSize; 
+	}
+}
+
+bool lcQTreeWidgetColumnStretcher::eventFilter(QObject* Object, QEvent* Event)
+{
+	if (Object == parent())
 	{
-		if (ev->type() == QEvent::Show)
-		{
-			QHeaderView* HeaderView = qobject_cast<QHeaderView*>(obj);
+		QHeaderView* HeaderView = qobject_cast<QHeaderView*>(Object);
 
+		if (Event->type() == QEvent::Show)
+		{
 			for (int i = 0; i < HeaderView->count(); ++i)
 				HeaderView->setSectionResizeMode(i, QHeaderView::Interactive);
+
+			m_stretchWidth = HeaderView->sectionSize(m_columnToStretch);
+
 		}
-		else if (ev->type() == QEvent::Hide)
+		else if (Event->type() == QEvent::Hide)
 		{
-			QHeaderView* HeaderView = qobject_cast<QHeaderView*>(obj);
-
-			for (int i = 0; i < HeaderView->count(); ++i)
-				HeaderView->setSectionResizeMode(i, i == m_columnToStretch ? QHeaderView::Stretch : QHeaderView::ResizeToContents);
+			if (!m_interactiveResize)
+				for (int i = 0; i < HeaderView->count(); ++i)
+					HeaderView->setSectionResizeMode(i, i == m_columnToStretch ? QHeaderView::Stretch : QHeaderView::ResizeToContents);
 		}
-		else if (ev->type() == QEvent::Resize)
+		else if (Event->type() == QEvent::Resize)
 		{
-			QHeaderView* HeaderView = qobject_cast<QHeaderView*>(obj);
+			if (HeaderView->sectionResizeMode(m_columnToStretch) == QHeaderView::Interactive) {
+
+				const int StretchWidth = HeaderView->isVisible() ? m_stretchWidth : 32;
 
-			if (HeaderView->sectionResizeMode(m_columnToStretch) == QHeaderView::Interactive)
-			{
-				QResizeEvent *re = static_cast<QResizeEvent*>(ev);
-				int diff = re->size().width() - re->oldSize().width() ;
-				HeaderView->resizeSection(m_columnToStretch, qMax(32, HeaderView->sectionSize(1) + diff));
+				HeaderView->resizeSection(m_columnToStretch, StretchWidth);
 			}
 		}
 	}
diff --git a/qt/lc_qutils.h b/qt/lc_qutils.h
index 159e5de..5a6591e 100644
--- a/qt/lc_qutils.h
+++ b/qt/lc_qutils.h
@@ -15,7 +15,13 @@ public:
 
 	bool eventFilter(QObject* Object, QEvent* Event) override;
 
+private slots:
+	void sectionResized(int LogicalIndex, int OldSize, int NewSize);
+
+private:
 	const int m_columnToStretch;
+	bool m_interactiveResize;
+	int m_stretchWidth;
 };
 
 class lcSmallLineEdit : public QLineEdit
@@ -28,9 +34,9 @@ public:
 		QFontMetrics FontMetrics(font());
 
 #if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0))
-		int Width = FontMetrics.horizontalAdvance(QLatin1Char('x')) * 10;
+		const int Width = FontMetrics.horizontalAdvance(QLatin1Char('x')) * 10;
 #else
-		int Width = FontMetrics.width(QLatin1Char('x')) * 10;
+		const int Width = FontMetrics.width(QLatin1Char('x')) * 10;
 #endif
 
 		return QLineEdit::sizeHint() - QSize(Width, 0);
@@ -46,8 +52,8 @@ protected:
 	{
 		if (Event->type() == QEvent::ShortcutOverride)
 		{
-			QKeyEvent* KeyEvent = (QKeyEvent*)Event;
-			int Key = KeyEvent->key();
+			const QKeyEvent* KeyEvent = (QKeyEvent*)Event;
+			const int Key = KeyEvent->key();
 
 			if (KeyEvent->modifiers() == Qt::NoModifier && Key >= Qt::Key_A && Key <= Qt::Key_Z)
 				Event->accept();
diff --git a/qt/lc_setsdatabasedialog.cpp b/qt/lc_setsdatabasedialog.cpp
index 3d7aa56..d2264d6 100644
--- a/qt/lc_setsdatabasedialog.cpp
+++ b/qt/lc_setsdatabasedialog.cpp
@@ -74,7 +74,7 @@ void lcSetsDatabaseDialog::accept()
 	ProgressDialog.show();
 
 	int KeyIndex = QTime::currentTime().msec() % mKeys.size();
-	QString DownloadUrl = QString("https://rebrickable.com/api/v3/lego/sets/%1/parts/?key=%2").arg(SetNum, mKeys[KeyIndex]);
+	QString DownloadUrl = QString("https://rebrickable.com/api/v3/lego/sets/%1/parts/?key=%2&page_size=1000").arg(SetNum, mKeys[KeyIndex]);
 
 	mInventoryReply = mHttpManager->DownloadFile(DownloadUrl);
 
diff --git a/qt/qtmain.cpp b/qt/qtmain.cpp
index a38dd01..db9d884 100644
--- a/qt/qtmain.cpp
+++ b/qt/qtmain.cpp
@@ -2,6 +2,7 @@
 #include "lc_application.h"
 #include "lc_qupdatedialog.h"
 #include "lc_profile.h"
+#include "pieceinf.h"
 #include <QApplication>
 #include <locale.h>
 
@@ -173,7 +174,11 @@ int main(int argc, char *argv[])
 	if (Translator.load("leocad_" + Locale.name(), ":/resources"))
 		Application.installTranslator(&Translator);
 
+	qRegisterMetaType<PieceInfo*>("PieceInfo*");
+	qRegisterMetaType<QList<int> >("QList<int>");
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
 	qRegisterMetaTypeStreamOperators<QList<int> >("QList<int>");
+#endif
 
 	QList<QPair<QString, bool>> LibraryPaths;
 
diff --git a/qt/system.cpp b/qt/system.cpp
index 36d636d..fb534c4 100644
--- a/qt/system.cpp
+++ b/qt/system.cpp
@@ -9,7 +9,7 @@ char* strcasestr(const char *s, const char *find)
 	if ((c = *find++) != 0)
 	{
 		c = tolower((unsigned char)c);
-		int len = (int)strlen(find);
+		const int len = (int)strlen(find);
 		do
 		{
 			do
diff --git a/resources/ldconfig.ldr b/resources/ldconfig.ldr
index 8b11eec..6680943 100644
--- a/resources/ldconfig.ldr
+++ b/resources/ldconfig.ldr
@@ -1,7 +1,7 @@
 0 LDraw.org Configuration File
 0 Name: LDConfig.ldr
 0 Author: LDraw.org
-0 !LDRAW_ORG Configuration UPDATE 2020-05-11
+0 !LDRAW_ORG Configuration UPDATE 2022-03-31
 
 0 // * LDraw and BrickLink mostly share naming conventions for their colours.
 0 // * Where possible LEGO colour numbers were used.
@@ -107,7 +107,7 @@
 0 !COLOUR Medium_Nougat                                         CODE  84   VALUE #AA7D55   EDGE #333333
 0                              // LEGOID 268 - Medium Lilac
 0 !COLOUR Medium_Lilac                                          CODE  85   VALUE #441A91   EDGE #333333
-0                              // LEGOID 128 - Dark Nougat
+0                              // LEGOID 217 - Brown
 0 !COLOUR Medium_Brown                                          CODE  86   VALUE #7B5D41   EDGE #333333
 0                              // LEGOID 195 - Medium Royal Blue
 0 !COLOUR Blue_Violet                                           CODE  89   VALUE #1C58A7   EDGE #333333
@@ -175,6 +175,10 @@
 0 !COLOUR Coral                                                 CODE 353   VALUE #FF6D77   EDGE #333333
 0                              // LEGOID  12 - Light Orange Brown
 0 !COLOUR Earth_Orange                                          CODE 366   VALUE #D86D2C   EDGE #333333
+0                              // LEGOID 368 - Vibrant Yellow 
+0 !COLOUR Vibrant_Yellow                                        CODE 368   VALUE #EDFF21   EDGE #333333
+0                              // LEGOID 370 - Medium Brown
+0 !COLOUR Medium_Brown                                          CODE 370   VALUE #755945   EDGE #333333
 0                              // LEGOID 136 - Sand Violet
 0 !COLOUR Sand_Purple                                           CODE 373   VALUE #75657D   EDGE #333333
 0                              // LEGOID 151 - Sand Green
@@ -199,13 +203,12 @@
 0 !COLOUR Fabuland_Pastel_Green                                 CODE 510   VALUE #78FC78   EDGE #333333
 
 
-
 0 // LDraw Transparent Colours
 0                              // LEGOID  43 - Transparent Blue
 0 !COLOUR Trans_Dark_Blue                                       CODE  33   VALUE #0020A0   EDGE #000B38   ALPHA 128
 0                              // LEGOID  48 - Transparent Green
 0 !COLOUR Trans_Green                                           CODE  34   VALUE #237841   EDGE #174F2B   ALPHA 128
-0                              // LEGOID 311 / 227 - Transparent Bright Green / Transparent Bright Yellowish Green 
+0                              // LEGOID 311 - Transparent Bright Green 
 0 !COLOUR Trans_Bright_Green                                    CODE  35   VALUE #56E646   EDGE #27AF18   ALPHA 128
 0                              // LEGOID  41 - Transparent Red
 0 !COLOUR Trans_Red                                             CODE  36   VALUE #C91A09   EDGE #660D05   ALPHA 128
@@ -237,6 +240,8 @@
 0 !COLOUR Trans_Neon_Yellow                                     CODE  54   VALUE #DAB000   EDGE #755E00   ALPHA 128
 0                              // LEGOID 182 - Trans Bright Orange
 0 !COLOUR Trans_Orange                                          CODE  57   VALUE #F08F1C   EDGE #9E5C0A   ALPHA 128
+0                              // LEGOID 227 - Transparent Bright Yellowish Green
+0 !COLOUR Trans_Bright_Light_Green                              CODE  227  VALUE #B5D96C   EDGE #86B22E   ALPHA 128
 0                              // LEGOID 231 - Transparent Flame Yellowish Orange
 0 !COLOUR Trans_Bright_Light_Orange                             CODE  231  VALUE #FCB76D   EDGE #FA860A   ALPHA 128
 0                              // LEGOID 234 - Transparent Fire Yellow
@@ -249,64 +254,68 @@
 0 !COLOUR Trans_Light_Blue_Violet                               CODE  293  VALUE #6BABE4   EDGE #247BC6   ALPHA 128
 
 
-
-0 // LDraw Chrome Colours
-0                              // LEGOID 310 - Metalized Gold
-0 !COLOUR Chrome_Gold                                           CODE 334   VALUE #DFC176   EDGE #C2982E                               CHROME
-0                              // LEGOID 309 - Metalized Silver
-0 !COLOUR Chrome_Silver                                         CODE 383   VALUE #CECECE   EDGE #9C9C9C                               CHROME
-0                              // LEGOID 187 - Metallic Earth Orange
+0 // LDraw Chrome Plated Colours
 0 !COLOUR Chrome_Antique_Brass                                  CODE  60   VALUE #645A4C   EDGE #665B4D                               CHROME
-0 !COLOUR Chrome_Black                                          CODE  64   VALUE #1B2A34   EDGE #3D5F76                               CHROME
-0                              // LEGOID 185 - Metallic Bright Blue
 0 !COLOUR Chrome_Blue                                           CODE  61   VALUE #6C96BF   EDGE #3D638A                               CHROME
-0                              // LEGOID 147 - Metallic Dark Green
 0 !COLOUR Chrome_Green                                          CODE  62   VALUE #3CB371   EDGE #226741                               CHROME
 0 !COLOUR Chrome_Pink                                           CODE  63   VALUE #AA4D8E   EDGE #632C52                               CHROME
+0 !COLOUR Chrome_Black                                          CODE  64   VALUE #1B2A34   EDGE #3D5F76                               CHROME
+0                              // LEGOID 310 - Metalized Gold
+0 !COLOUR Chrome_Gold                                           CODE 334   VALUE #DFC176   EDGE #C2982E                               CHROME
+0                              // LEGOID 309 - Metalized Silver
+0 !COLOUR Chrome_Silver                                         CODE 383   VALUE #CECECE   EDGE #9C9C9C                               CHROME
 
 
-0 // LDraw Pearl Colours
-0                              // LEGOID 183 - Metallic White
-0 !COLOUR Pearl_White                                           CODE 183   VALUE #F6F2DF   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 150 - Metallic Light Grey
-0 !COLOUR Pearl_Very_Light_Grey                                 CODE 150   VALUE #989B99   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 179 / 296 / 131 / 315 - Silver Flip-flop / Cool Silver / Silver / Silver Metallic
+0 // LDraw Pearlescent Plastic Colours
+0                              // LEGOID 149 - Metallic Black
+0 !COLOUR Metallic_Black                                        CODE  83   VALUE #0A1327   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 139 - Copper
+0 !COLOUR Copper                                                CODE 134   VALUE #764D3B   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 296 / 131 / 315 - Cool Silver / Silver / Silver Metallic
 0 !COLOUR Pearl_Light_Grey                                      CODE 135   VALUE #A0A0A0   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 131 - Silver
-0 !COLOUR Flat_Silver                                           CODE 179   VALUE #898788   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 148 - Metallic Dark Grey
-0 !COLOUR Pearl_Dark_Grey                                       CODE 148   VALUE #484D48   EDGE #333333                               PEARLESCENT
 0                              // LEGOID 145 - Sand Blue Metallic
-0 !COLOUR Metal_Blue                                            CODE 137   VALUE #5B7590   EDGE #333333                               PEARLESCENT
+0 !COLOUR Metallic_Blue                                         CODE 137   VALUE #5B7590   EDGE #333333                               PEARLESCENT
 0                              // LEGOID 127 - Gold
 0 !COLOUR Pearl_Light_Gold                                      CODE 142   VALUE #DEAC66   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 297 - Warm Gold
-0 !COLOUR Pearl_Gold                                            CODE 297   VALUE #AA7F2E   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 148 - Metallic Dark Grey
+0 !COLOUR Pearl_Dark_Grey                                       CODE 148   VALUE #484D48   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 150 - Metallic Light Grey
+0 !COLOUR Pearl_Very_Light_Grey                                 CODE 150   VALUE #989B99   EDGE #333333                               PEARLESCENT
 0                              // LEGOID 147 - Metallic Sand Yellow
 0 !COLOUR Flat_Dark_Gold                                        CODE 178   VALUE #83724F   EDGE #333333                               PEARLESCENT
-0                              // LEGOID 139 - Copper
-0 !COLOUR Copper                                                CODE 134   VALUE #764D3B   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 179 - Silver Flip-flop
+0 !COLOUR Flat_Silver                                           CODE 179   VALUE #898788   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 183 - Metallic White
+0 !COLOUR Pearl_White                                           CODE 183   VALUE #F6F2DF   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 184 - Metallic Bright Red
+0 !COLOUR Metallic_Bright_Red                                   CODE 184   VALUE #D60026   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 185 - Metallic Bright Blue
+0 !COLOUR Metallic_Bright_Blue                                  CODE 185   VALUE #0059A3   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 186 - Metallic Dark Green
+0 !COLOUR Metallic_Dark_Green                                   CODE 186   VALUE #008E3C   EDGE #333333                               PEARLESCENT
 0                              // LEGOID 189 - Reddish Gold
 0 !COLOUR Reddish_Gold                                          CODE 189   VALUE #AC8247   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 200 - Lemon Metallic
+0 !COLOUR Lemon_Metallic                                        CODE 200   VALUE #708224   EDGE #333333                               PEARLESCENT
+0                              // LEGOID 297 - Warm Gold
+0 !COLOUR Pearl_Gold                                            CODE 297   VALUE #AA7F2E   EDGE #333333                               PEARLESCENT
 
 
-0 // LDraw Metallic Colours
+0 // LDraw Metallic Paint Colours
 0                              // LEGOID 298 / 336 - Cool Silver Drum Lacq / Silver Ink
 0 !COLOUR Metallic_Silver                                       CODE  80   VALUE #767676   EDGE #333333                               METAL
-0                              // LEGOID 200 - Lemon Metallic
-0 !COLOUR Metallic_Green                                        CODE  81   VALUE #6A7944   EDGE #333333                               METAL
+0                              // BricksetID 910 - Metallic Green
+0 !COLOUR Metallic_Green                                        CODE  81   VALUE #C2C06F   EDGE #333333                               METAL
 0                              // LEGOID 299 / 335 - Warm Gold Drum Lacq / Gold Ink
 0 !COLOUR Metallic_Gold                                         CODE  82   VALUE #DBAC34   EDGE #333333                               METAL
-0                              // LEGOID 149 - Metallic Black
-0 !COLOUR Metallic_Black                                        CODE  83   VALUE #0A1327   EDGE #333333                               METAL
 0                              // LEGOID 337 - Titanium
 0 !COLOUR Metallic_Dark_Grey                                    CODE  87   VALUE #3E3C39   EDGE #333333                               METAL
 0                              // LEGOID 300 / 334 - Copper Drum Lacq / Copper Ink
 0 !COLOUR Metallic_Copper                                       CODE 300   VALUE #C27F53   EDGE #333333                               METAL
-0                              // LEGOID 184 - Metallic Bright Red
-0 !COLOUR Metallic_Bright_Red                                   CODE 184   VALUE #D60026   EDGE #333333                               METAL
-0                              // LEGOID 186 - Metallic Dark Green
-0 !COLOUR Metallic_Dark_Green                                   CODE 186   VALUE #008E3C   EDGE #333333                               METAL
+0 !COLOUR Metallic_Light_Blue                                   CODE 10045 VALUE #97CBD9   EDGE #333333                               METAL
+0                              // BricksetID 911 - Metallic Pink
+0 !COLOUR Metallic_Pink                                         CODE 10046 VALUE #AD659A   EDGE #333333                               METAL
+0 !COLOUR Metallic_Light_Pink                                   CODE 10049 VALUE #FECCCF   EDGE #333333                               METAL
 
 
 0 // LDraw Milky Colours
@@ -321,34 +330,42 @@
 
 
 0 // LDraw Glitter Colours
-0                              // LEGOID 114 - Tr. Medium Reddish-Violet w. Glitter 2%
+0                              // LEGOID 114 - Transparent Medium Reddish-Violet w. Glitter 2%
 0 !COLOUR Glitter_Trans_Dark_Pink                               CODE 114   VALUE #DF6695   EDGE #B9275F   ALPHA 128                   MATERIAL GLITTER VALUE #B92790 FRACTION 0.17 VFRACTION 0.2 SIZE 1
 0                              // LEGOID 117 - Transparent Glitter
 0 !COLOUR Glitter_Trans_Clear                                   CODE 117   VALUE #EEEEEE   EDGE #BABABA   ALPHA 128                   MATERIAL GLITTER VALUE #FFFFFF FRACTION 0.08 VFRACTION 0.1 SIZE 1
-0                              // LEGOID 129 - Tr. Bright Bluish Violet w. Glitter 2%
+0                              // LEGOID 129 - Transparent Bright Bluish Violet w. Glitter 2%
 0 !COLOUR Glitter_Trans_Purple                                  CODE 129   VALUE #640061   EDGE #000000   ALPHA 128                   MATERIAL GLITTER VALUE #8F00CC FRACTION 0.03 VFRACTION 0.4 SIZE 1
-0                              // LEGOID 302 - Tr. Light Blue with Glitter 2%
+0                              // LEGOID 302 - Transparent Light Blue with Glitter 2%
 0 !COLOUR Glitter_Trans_Light_Blue                              CODE 302   VALUE #AEE9EF   EDGE #59D1DE   ALPHA 128                   MATERIAL GLITTER VALUE #59DEBF FRACTION 0.17 VFRACTION 0.2 SIZE 1
-0                              // LEGOID 339 - Tr. Fluorescent Green with Glitter 2%
+0                              // LEGOID 339 - Transparent Fluorescent Green with Glitter 2%
 0 !COLOUR Glitter_Trans_Neon_Green                              CODE 339   VALUE #C0FF00   EDGE #739900   ALPHA 128                   MATERIAL GLITTER VALUE #998C00 FRACTION 0.17 VFRACTION 0.2 SIZE 1 
-0                              // LEGOID 341 - Tr. Bright Orange with Glitter 2%
+0                              // LEGOID 341 - Transparent Bright Orange with Glitter 2%
 0 !COLOUR Glitter_Trans_Orange                                  CODE 341   VALUE #F08F1C   EDGE #9E5C0A   ALPHA 128                   MATERIAL GLITTER VALUE #9E2A0A FRACTION 0.17 VFRACTION 0.2 SIZE 1
 0                              // LEGOID 360 - Transparent Clear Opal
 0 !COLOUR Opal_Trans_Clear                                      CODE 360   VALUE #FCFCFC   EDGE #C9C9C9   ALPHA 240   LUMINANCE 5     MATERIAL GLITTER VALUE #FFFFFF FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
 0                              // LEGOID 362 - Transparent Blue Opal
 0 !COLOUR Opal_Trans_Light_Blue                                 CODE 362   VALUE #AEE9EF   EDGE #59D1DE   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #59DEBF FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
-0                              // LEGOID 364 - Tr. Medium Reddish Violet Opal
+0                              // LEGOID 363 - Transparent Brown Opal
+0 !COLOUR Opal_Trans_Black                                      CODE 363   VALUE #635F52   EDGE #2A2823   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #292522 FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
+0                              // LEGOID 364 - Transparent Medium Reddish Violet Opal
 0 !COLOUR Opal_Trans_Dark_Pink                                  CODE 364   VALUE #DF6695   EDGE #B9275F   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #B92790 FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
-0                              // LEGOID 351 - Tr. Bright Green with Glitter 2%
+0                              // LEGOID 365 - Transparent Violet Opal
+0 !COLOUR Opal_Trans_Purple                                     CODE 365   VALUE #671F81   EDGE #441456   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #2F1456 FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
+0                              // LEGOID 367 - Transparent Green Opal
+0 !COLOUR Opal_Trans_Green                                      CODE 367   VALUE #237841   EDGE #174F2B   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #0B270B FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
+0                              // LEGOID 351 - Transparent Bright Green with Glitter 2%
 0 !COLOUR Glitter_Trans_Bright_Green                            CODE 10351 VALUE #56E646   EDGE #27AF18   ALPHA 128                   MATERIAL GLITTER VALUE #59AF18 FRACTION 0.17 VFRACTION 0.2 SIZE 1
+0                              // LEGOID 366 - Transparent Blue Opal 
+0 !COLOUR Opal_Trans_Dark_Blue                                  CODE 10366 VALUE #0020A0   EDGE #000B38   ALPHA 200   LUMINANCE 5     MATERIAL GLITTER VALUE #001D38 FRACTION 0.8 VFRACTION 0.6 MINSIZE 0.02 MAXSIZE 0.1
 
 
 0 // LDraw Speckle Colours
-0 !COLOUR Speckle_Black_Silver                                  CODE 132   VALUE #000000   EDGE #898788                               MATERIAL SPECKLE VALUE #898788 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
-0                              // LEGOID 132 - Black Glitter
-0 !COLOUR Speckle_Black_Gold                                    CODE 133   VALUE #000000   EDGE #DBAC34                               MATERIAL SPECKLE VALUE #DBAC34 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
 0 !COLOUR Speckle_Black_Copper                                  CODE  75   VALUE #000000   EDGE #AB6038                               MATERIAL SPECKLE VALUE #AB6038 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
 0 !COLOUR Speckle_Dark_Bluish_Grey_Silver                       CODE  76   VALUE #635F61   EDGE #898788                               MATERIAL SPECKLE VALUE #898788 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
+0                              // LEGOID 132 - Black Glitter
+0 !COLOUR Speckle_Black_Silver                                  CODE 132   VALUE #000000   EDGE #898788                               MATERIAL SPECKLE VALUE #898788 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
+0 !COLOUR Speckle_Black_Gold                                    CODE 133   VALUE #000000   EDGE #DBAC34                               MATERIAL SPECKLE VALUE #DBAC34 FRACTION 0.4 MINSIZE 1 MAXSIZE 3
 
 
 0 // LDraw Rubber Colours
@@ -371,6 +388,7 @@
 0 !COLOUR Rubber_Lavender                                       CODE 10031 VALUE #CDA4DE   EDGE #333333                               RUBBER
 0 !COLOUR Rubber_Reddish_Brown                                  CODE 10070 VALUE #5F3109   EDGE #808080                               RUBBER
 0 !COLOUR Rubber_Medium_Blue                                    CODE 10073 VALUE #7396C8   EDGE #333333                               RUBBER
+0 !COLOUR Rubber_Light_Nougat                                   CODE 10078 VALUE #FFC995   EDGE #333333                               RUBBER
 0 !COLOUR Rubber_Bright_Light_Yellow                            CODE 10226 VALUE #FFEC6C   EDGE #333333                               RUBBER
 0 !COLOUR Rubber_Dark_Brown                                     CODE 10308 VALUE #352100   EDGE #808080                               RUBBER
 0 !COLOUR Rubber_Dark_Red                                       CODE 10320 VALUE #720012   EDGE #333333                               RUBBER
diff --git a/resources/leocad_cs.ts b/resources/leocad_cs.ts
index 09b77f2..4b7c7b5 100644
--- a/resources/leocad_cs.ts
+++ b/resources/leocad_cs.ts
@@ -711,38 +711,37 @@
         <translation>Zobrazit.Kamery.Kamera16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="981"/>
         <source>View.Cameras.Reset</source>
         <translatorcomment>TODO - přenastavit, obnovit, resetovat, vynulovat, obnovit tovární nastavení</translatorcomment>
-        <translation>Zobrazit.Kamery.Přenastavit</translation>
+        <translation type="vanished">Zobrazit.Kamery.Přenastavit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
+        <location filename="../common/lc_commands.cpp" line="981"/>
         <source>View.Time.First</source>
         <translation>Zobrazit.Čas.První</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
         <translation>Zobrazit.Čas.Předchozí</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
         <translation>Zobrazit.Čas.Další</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
         <translation>Zobrazit.Čas.Poslední</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
         <translation></translation>
     </message>
@@ -751,554 +750,554 @@
         <translation type="vanished">Zobrazit.Čas.Vložit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
         <translation>Čas.Zobrazit.Vymazat</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
         <translation>Zobrazit.Čas.Přidat klíče</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
         <translation>Zobrazit.Rozdělit vodorovně</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
         <translation>Zobrazit.Rozdělit svisle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
         <translation>Zobrazit.Odstranit zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
         <translation>Zobrazit.Obnovit zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
         <translation>Zobrazit.Panely nástrojů.Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
         <translation>Zobrazit.Panely nástrojů.Nástroje</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
         <translation>Zobrazit.Panely nástrojů.Čas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
         <translation>Zobrazit.Panely nástrojů.Části</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
         <translation>Zobrazit.Panely nástrojů.Barvy</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
         <translation>Zobrazit.Panely nástrojů.Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
         <translation>Zobrazit.Panely nástrojů.Časová osa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
         <translation>Zobrazit.Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
         <translation>Zobrazit.Zavřít aktuální kartu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
         <translation>Zobrazit.Stín.Schéma</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
         <translation>Zobrazit.Stín.Plochý</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
         <translation>Zobrazit.Stín.Výchozí osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation>Zobrazit.Projekce.Perspektivní</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation>Zobrazit.Projekce.Pravoúhlá</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
         <translatorcomment>TODO - space betwen words?</translatorcomment>
         <translation>Zobrazit.Přepnout sférické zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
         <translation>Zobrazit.Zeslabit předchozí kroky</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translatorcomment>TODO - kousek, kus, část</translatorcomment>
         <translation>Dílek.Vložit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation>Dílek.Odstranit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation>Dílek.Duplikovat</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
         <translation>Dílek.Vynulovat bod otáčení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
         <translation>Dílek.Odstranit klíčový snímek</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
         <translation>Dílek.Kontrolní bod.Vložit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
         <translation>Dílek.Kontrolní bod.Odstranit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation>Dílek.Posuny.PlusX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation>Dílek.Posuny.MinusX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation>Dílek.Posuny.PlusY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation>Dílek.Posuny.MinusY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
         <translation>Dílek.Posuny.PlusZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
         <translation>Dílek.Posuny.MinusZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation>Dílek.Otočení.PlusX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation>Dílek.Otočení.MinusX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation>Dílek.Otočení.PlusY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation>Dílek.Otočení.MinusY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation>Dílek.Otočení.PlusZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation>Dílek.Otočení.MinusZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
         <translation>Dílek.Průvodce Minifig</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
         <translation>Dílek.Pole</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
         <translation>Dílek.Zobrazit vybraný model</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
         <translation>Dílek.Přesunout výběr do modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
         <translation>Dílek.Vložené vybrané modely</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
         <translation>Dílek.Upravit vybraný podmodel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
         <translation>Dílek.Upravit koncový podmodel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation>Dílek.Seskupit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation>Dílek.Rozdělit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
         <translation>Dílek.Přidat skupinu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
         <translation>Dílek.Odstranit skupinu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
         <translation>Dílek.Upravit skupinu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
         <translation>Dílek.Skrýt vybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
         <translation>Dílek.Skrýt nevybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
         <translation>Dílek.Zobrazit vybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
         <translation>Dílek.Zobrazit vše</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
         <translation>Dílek.Zobrazit dříve</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
         <translation>Dílek.Zobrazit později</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation>Model.Nový</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation>Model.Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation>Model.Seznam</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation>Model.Model01</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation>Model.Model02</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation>Model.Model03</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation>Model.Model04</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation>Model.Model05</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation>Model.Model06</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation>Model.Model07</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation>Model.Model08</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation>Model.Model09</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation>Model.Model10</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation>Model.Model11</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation>Model.Model12</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation>Model.Model13</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation>Model.Model14</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation>Model.Model15</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation>Model.Model16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation>Model.Model17</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation>Model.Model18</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation>Model.Model19</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation>Model.Model20</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation>Model.Model21</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation>Model.Model22</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation>Model.Model23</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation>Model.Model24</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation type="unfinished">Model.Model25</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation type="unfinished">Model.Model26</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation type="unfinished">Model.Model27</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation type="unfinished">Model.Model28</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation type="unfinished">Model.Model29</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation type="unfinished">Model.Model30</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation type="unfinished">Model.Model31</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation type="unfinished">Model.Model32</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation type="unfinished">Model.Model33</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation type="unfinished">Model.Model34</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation type="unfinished">Model.Model35</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation type="unfinished">Model.Model36</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation type="unfinished">Model.Model37</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation type="unfinished">Model.Model38</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation type="unfinished">Model.Model39</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation type="unfinished">Model.Model40</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
         <translation>Nápověda.Domovská stránka</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
         <translation>Nápověda.Náhlásit chyby</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation>Nápověda.Aktualizace</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
         <translation>Nápověda.O</translation>
     </message>
@@ -1957,38 +1956,37 @@
         <translation>Kamera 16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>Reset</source>
-        <translation>Obnovit</translation>
+        <translation type="vanished">Obnovit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
+        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>First</source>
         <translation>První</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
         <translation>Předchozí</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation>Další</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translatorcomment>TODO - posledn, další, následující</translatorcomment>
         <translation>Poslední</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
         <translation>Vložit před</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
         <translation>Vložit za</translation>
     </message>
@@ -2052,578 +2050,578 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
         <translation>Odebrat krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
         <translation>Přidat klíče</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
         <translation>Rozdělit &amp;vodorovně</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
         <translation>Rozdělit &amp;svisle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
         <translation>Ode&amp;brat zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
         <translation>Obnovi&amp;t zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
         <translation>Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation>Nástroje</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation>Čas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation>Části</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation>Barvy</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation>Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
         <translation>Časová osa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Celá obrazovka</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
         <translation>Zavří&amp;t záložku</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation>&amp;Drátový model</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
         <translation>&amp;Ploché stínování</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
         <translation>&amp;Výchozí osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translatorcomment>TODO - Perspektiva, Perspektivně</translatorcomment>
         <translation>&amp;Perspektivně</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
         <translatorcomment>TODO - Pravoúhle, Ortograficky</translatorcomment>
         <translation>Prav&amp;oúhle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
         <translatorcomment>TODO - sphere?</translatorcomment>
         <translation>Zobrazit sféru</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
         <translation type="unfinished">Základní mřížka</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
         <translation>Zeslabit předchozí kroky</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation>Vlož&amp;it</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation>&amp;Odstranit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation>&amp;Duplikovat</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
         <translation>Vynulovat &amp;bod otáčení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
         <translation>Odstranit &amp;klíčové snímky</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
         <translation>Vložit kontrolní bod</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
         <translation>Odstranit kontrolní bod</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation>Přesunout +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation>Přesunout -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation>Přesunout +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation>Přesunout -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation>Přesunout +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation>Přesunout -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation>Otočit +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation>Otočit -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation>Otočit +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation>Otočit -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation>Otočit +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation>Otočit -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
         <translation>Průvodce &amp;Minifig...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
         <translation>Po&amp;le...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
         <translation>Otevřít vybraný model</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
         <translation>Přesunout na nový model...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
         <translation>Vložit vybrané modely</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
         <translation>Upravit vybrané podmodely</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
         <translation>Ukončit úpravy podmodelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translatorcomment>TODO - možná seskupit</translatorcomment>
         <translation>&amp;Skupina...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation>&amp;Rozdělit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
         <translation>&amp;Přidat do skupiny</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
         <translation>&amp;Odebrat ze skupiny</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
         <translation>&amp;Upravit skupiny...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
         <translation>&amp;Skrýt vybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
         <translation>Skrýt &amp;nevybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
         <translation>&amp;Zobrazit vybrané</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
         <translation>Zobrazit &amp;vše</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
         <translation>Zobrazit starší</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
         <translation>Zobrazit později</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
         <translation>Nový podmodel...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
         <translation>Vlastno&amp;sti...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation>Podmodely...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation>Model 1</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation>Model 2</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation>Model 3</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation>Model 4</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation>Model 5</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation>Model 6</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation>Model 7</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation>Model 8</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation>Model 9</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation>Model 10</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation>Model 11</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation>Model 12</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation>Model 13</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation>Model 14</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation>Model 15</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation>Model 16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation>Model 17</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation>Model 18</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation>Model 19</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation>Model 20</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation>Model 21</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation>Model 22</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation>Model 23</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation>Model 24</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation type="unfinished">Model 25</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation type="unfinished">Model 26</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation type="unfinished">Model 27</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation type="unfinished">Model 28</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation type="unfinished">Model 29</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation type="unfinished">Model 30</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation type="unfinished">Model 31</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation type="unfinished">Model 32</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation type="unfinished">Model 33</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation type="unfinished">Model 34</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation type="unfinished">Model 35</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation type="unfinished">Model 36</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation type="unfinished">Model 37</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation type="unfinished">Model 38</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation type="unfinished">Model 39</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation type="unfinished">Model 40</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
         <translation>LeoCAD &amp;domovská stránka</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
         <translatorcomment>TODO - Oznámit chybu</translatorcomment>
         <translation>Nahlásit chybu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
         <translation>Zkontrolovat akt&amp;ualizace...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation>&amp;O...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
         <translation>Vložit krok před</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
         <translation>Vložit krok za</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
         <translation>Přesunout výběr sem</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
         <translation>Nastavit aktuální krok</translation>
     </message>
@@ -2631,82 +2629,82 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nový díl</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nové bodové světlo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nový zdroj osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nová kamera</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation>Vybrat</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation>Přesunout</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation>Otočit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation>Odstranit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation>Malování</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
         <translation>Výběr barvy</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translatorcomment>Lupa</translatorcomment>
         <translation>Zvětšit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation>Posouvat</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation>Otáčení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
         <translation>Přetočení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Oblast zvětšení</translation>
@@ -2715,172 +2713,170 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
         <translation>Nový Model.ldr</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
         <translation>Nový Model.mpd</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation>Podmodel #</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
         <translation>Název podmodelu:</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
         <translation>Prázdný název</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation>Název podmodelu nesmí být prázdný.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
         <translation>Duplikovat podmodel</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
         <translation>Podmodel s názvem &apos;%1&apos; již existuje, zadejte jedinečný název.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
         <translation>Nový podmodel</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
         <translation>Chyba při čtení souboru &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
         <translation>Chyba při načítání souboru &apos;%1&apos;:
 Formát souboru není rozpoznán.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Chyba zápisu do souboru &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Sloučeno </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
         <translation>Není co exportovat.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Exportovat 3D Studio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
         <translation>3DS soubory (*.3ds);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
         <translation>Nelze otevřít soubor &apos;%1&apos; pro zápis.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Exportovat BrickLink</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
         <translation>XML soubory (*.xml);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation>Exportovat COLLADA</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
         <translation>COLLADA soubory (*.dae);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Exportovat CSV</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
         <translation>CSV soubory (*.csv);;všechny soubory (*.*)</translation>
     </message>
@@ -2889,28 +2885,28 @@ Formát souboru není rozpoznán.</translation>
         <translation type="vanished">Při vytváření obrázků došlo k chybě.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation>Exportovat POV-Ray</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
         <translation>POV-Ray soubory (*.pov);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
         <translation>Nelze najít soubory LGEO ve složce &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Exportovat Wavefront</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Wavefront soubory (*.obj);;všechny soubory (*.*)</translation>
     </message>
@@ -2941,19 +2937,19 @@ Formát souboru není rozpoznán.</translation>
         <translation type="vanished">Zvláštní barvy</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
         <translation>Plné</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
         <translation>Průsvitné</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation>Zvláštní</translation>
@@ -2962,14 +2958,21 @@ Formát souboru není rozpoznán.</translation>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation type="unfinished">Chyba</translation>
+        <translation type="obsolete">Chyba</translation>
     </message>
+</context>
+<context>
+    <name>QObject</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
-        <source>Failed to load &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation type="unfinished">LeoCAD</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation type="unfinished">Nelze otevřít soubor &apos;%1&apos; pro zápis.</translation>
     </message>
 </context>
 <context>
@@ -3622,39 +3625,38 @@ Formát souboru není rozpoznán.</translation>
         <translation>Použít tuto kameru</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Reset views to their default positions</source>
-        <translation>Obnovit výchozí pozici</translation>
+        <translation type="vanished">Obnovit výchozí pozici</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="990"/>
+        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Go to the first step of the model</source>
         <translation>Přejít na první krok modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="997"/>
+        <location filename="../common/lc_commands.cpp" line="990"/>
         <source>Go to the previous step</source>
         <translation>Přejít na předchozí krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1004"/>
+        <location filename="../common/lc_commands.cpp" line="997"/>
         <source>Go to the next step</source>
         <translation>Přejít na další krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1004"/>
         <source>Go to the last step of the model</source>
         <translation>Přejít na poslední krok modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1018"/>
-        <location filename="../common/lc_commands.cpp" line="1802"/>
+        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
         <source>Insert a new step before the current step</source>
         <translation>Vložit nový krok před aktuální krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1025"/>
-        <location filename="../common/lc_commands.cpp" line="1809"/>
+        <location filename="../common/lc_commands.cpp" line="1018"/>
+        <location filename="../common/lc_commands.cpp" line="1802"/>
         <source>Insert a new step after the current step</source>
         <translation>Vložit nový krok za aktuální krok</translation>
     </message>
@@ -3663,317 +3665,318 @@ Formát souboru není rozpoznán.</translation>
         <translation type="vanished">Vložit nový krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
+        <location filename="../common/lc_commands.cpp" line="1025"/>
+        <location filename="../common/lc_commands.cpp" line="1809"/>
         <source>Remove current step</source>
         <translation>Odebrat aktuální krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
         <translation>Přepnout přidávání nových animačních klíčů</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation>Rozdělit aktuální pohled vodorovně</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation>Rozdělit aktuální pohled svisle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation>Odebrat aktuální zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation>Obnovit všechny pohledy</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
         <translation>Přepnout panel standardních nástrojů</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
         <translation>Přepnout panel nástrojů</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
         <translation>Přepnout panel nástrojů času</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
         <translation>Přepnout panel částí</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
         <translation>Přepnout panel nástrojů barev</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
         <translation>Přepnout panel vlastností</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
         <translation>Přepnout panel časové osy</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
         <translation>Přepnout režim celé obrazovky</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation>Zavřít aktuální záložku</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Zobrazit scénu jako drátový model</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
         <translation>Zobrazit scénu bez stínování nebo osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
         <translation>Zobrazit scénu s výchozími světly</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
         <translation>Nastavte aktuální kameru tak, aby použila perspektivní projekci</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation>Nastavte aktuální kameru tak, aby použila pravoúhlou projekci</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
         <translation>Přepnout sférické zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
         <translation>Přepnout zeslabování předchozích kroků modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
         <translation>Přidat nový dílek do modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation>Odstranit vybrané objekty</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
         <translation>Vytvořte kopii vybraných dílků</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
         <translatorcomment>TODO - původ, zdroj, počátek, vznik</translatorcomment>
         <translation>Obnovte bod otáčení vybraných dílků dle jejich původu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
         <translation>Odstraňte všechny klíčové snímky z vybraných dílků</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation>Vložit nový kontrolní bod</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
         <translation>Odstranit vybraný kontrolní bod</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation>Přesunout vybrané objekty podél osy X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation>Přesunout vybrané objekty podél osy Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation>Přesunout vybrané objekty podél osy Z</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation>Otočit vybrané objekty podél osy X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation>Otočit vybrané objekty podél osy Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation>Otočit vybrané objekty podél osy Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation>Přidat k modelu nový minifig</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation>Vytvořit kopie vybraných dílků</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Otevřete model, na který odkazuje vybraný dílek, na nové kartě</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation>Přesuňte vybrané dílky do nového modelu a nahraďte je odkazem na model</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation>Vložte obsah vybraných referencí modelu do aktuálního modelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
         <translatorcomment>TODO - in-place -&gt; vložený, na místě, v místě</translatorcomment>
         <translation>Upravte aktuálně vybraný vložený podmodel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
         <translation>Ukončit místní úpravy podmodelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
         <translation>Seskupit vybrané dílky dohromady</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation>Oddělit vybranou skupinu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation>Odstranit vybraný kousek ze skupiny</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation>Upravit skupiny</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation>Skrýt vybrané objekty</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation>Skrýt objekty, které nejsou vybrány</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
         <translation>Zobrazit skryté vybrané objekty</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation>Zobrazit všechny skryté objekty</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
         <translation>Zobrazit vybrané dílky o krok dříve</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
         <translation>Zobrazit vybrané dílky o krok později</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation>Vytvořit nový podmodel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation>Zobrazit vlastnosti aktuálního podmodelu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation>Zobrazit seznam všech podmodelů</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -4013,37 +4016,36 @@ Formát souboru není rozpoznán.</translation>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation>Přepnout na tento podmodel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
         <translation>Otevřít domovskou stránku LeoCADu na internetu výchozím webovím prohlížečem</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
         <translation>Otevřít formulář hlášení chyb LeoCADu ve výchozím webovém prohlížeči</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
         <translation>Zkontrolovat, zda nebyla vydána novější verze LeoCADu nebo knihovny součástí</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
         <translation>Zobrazit verzi programu a systémové informace</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
         <translation>Přesunout vybrané části do tohoto kroku</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation>Zobrazit model v tomto okamžiku na časové ose</translation>
     </message>
@@ -4084,398 +4086,398 @@ Formát souboru není rozpoznán.</translation>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
         <translation type="unfinished">LeoCAD průběžné sestavení %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
         <translation type="unfinished">LeoCAD verze %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4484,7 +4486,7 @@ Please visit https://www.leocad.org for information on how to download and insta
 Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese https://www.leocad.org.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4493,28 +4495,28 @@ Please visit https://www.leocad.org for information on how to download and insta
 Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese https://www.leocad.org.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
         <translation>Některé změny se projeví až při příštím spuštění LeoCADu.</translation>
     </message>
@@ -4551,6 +4553,26 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <source>Reset</source>
         <translation type="unfinished">Obnovit</translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
@@ -4586,11 +4608,21 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <source>Select Part Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
@@ -4649,109 +4681,134 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation>Pokyny</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation type="unfinished">Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
         <translation type="unfinished">Výchozí</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4759,210 +4816,205 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
         <translation>Nový model</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
         <translation>Otevřít model</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
         <translation>Uložit model</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Transformace</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>K&amp;amery</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
         <translatorcomment>TODO - pohled, hledisko, vyhlídka, zorný úhel,</translatorcomment>
         <translation>&amp;Pohledy</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Projekce</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation>Stínov&amp;ání</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
         <translation>Nástroje</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Soubor</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation>&amp;Importovat</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Exportovat</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Upravit</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translatorcomment>TODO - Zobrazit, pohled,</translatorcomment>
         <translation>&amp;Zobrazit</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>Kro&amp;k</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
         <translation>Panely nástr&amp;ojů</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translatorcomment>TODO - dílek, kus</translatorcomment>
         <translation>&amp;Dílek</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation>Pod&amp;model</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>&amp;Nápověda</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
         <translation>Režim výběru</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation>Změna režimu výběru</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
         <translatorcomment>TODO - Přichytit, Lusknutí, Přichycení</translatorcomment>
         <translation>Přichycení XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
         <translation>Přichycení Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
         <translation>Nabídka přichycení</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
         <translatorcomment>TODO - pohyb, přesun</translatorcomment>
         <translation>Přesun přichycení</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
         <translation>Přichycení posunů k pevným bodům</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
         <translation>Nabídka úhlů přichycení</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
         <translation>Otočení přichycení</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
         <translation>Přychycení otáčení k pevným bodům</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
         <translation>Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation>Čas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation>Části</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation>Barvy</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation>Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
         <translation>Časová osa</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
         <translation>Zavřít ostatní záložky</translation>
     </message>
@@ -4971,22 +5023,22 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <translation type="vanished">Obnovit zobrazení</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
         <translation>Soubor &apos;%1&apos; byl upraven jinou aplikací, chcete jej znovu načíst?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
         <translation>Soubor byl změněn</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
         <translation>%1 (ID: %2)</translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation>
             <numerusform>%n vybraný objekt</numerusform>
@@ -4995,17 +5047,17 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
         <translation> - %1 (ID: %2)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
         <translation> ve skupině &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation>Krok %1</translation>
     </message>
@@ -5014,183 +5066,182 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <translation type="vanished"> M: %1 %2 R: %3 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation>&amp;Zpět %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation>&amp;Zpět</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation>&amp;Znovu %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation>&amp;Znovu</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Podporované soubory (*.lcd *.ldr *.dat *.mpd);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
         <translation>Sloučit model</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
         <translation>Sloučit 1 podmodel.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
         <translation>Sloučit %1 podmodelů.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation>Importovat</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
         <translation>LEGO Diginal Designer soubory (*.lxf);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
         <translation>Podporované soubory (*.mpd);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Podporované soubory (*.ldr *.dat *.mpd);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation type="unfinished"> M: %1 %2 R: %3  {1 %2 ?} {3 %4 ?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
         <translation>Ukládání souborů ve formátu LCD již není podporováno, místo toho použijte formáty LDR nebo MPD.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
         <translation>Chcete uložit změny v &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation>1/20S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation>1/4S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation>1F</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation>1/2S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation>1S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation>2S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation>3S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation>4S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation>8S</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation>Žádné</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation>1B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation>2B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation>4B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation>8B</translation>
     </message>
@@ -5303,131 +5354,131 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
         <translation>Skupina #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
         <translatorcomment>TODO - Vyjmutí, Řezání</translatorcomment>
         <translation>Vyjmutí</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
         <translation>Vkládání</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
         <translation>Duplikování dílků</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
         <translation>Při vytváření obrázků došlo k chybě.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation>Chyba</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Chyba zápisu do souboru &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
         <translation>Vložen krok</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
         <translation>Odebrání kroku</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation>Nejsou vybrány žádné dílky.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
         <translation>Seskupení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
         <translation>Rozdělení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
         <translation>Úpravy skupin</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
         <translation>Přidání dílku</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
         <translation>Resetování kamer</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
         <translation>Odstraňování</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
         <translation>Odstranění klíčových snímků</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
         <translation>Úprava</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
         <translation>Nový model</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
         <translation>Nebyly vybrány žádné modely.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Inlining</translation>
@@ -5449,7 +5500,7 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
         <translation>Malování</translation>
     </message>
@@ -5486,112 +5537,112 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <translation>Přejmenovávání kamery</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
         <translation>Skrýt</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
         <translation>Zobrazit</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
         <translation>Nový zdroj osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
         <translation>Nová kamera</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
         <translation>Přesunout</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
         <translation>Otočit</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
         <translation>Zvětšit</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
         <translation>Posouvat</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
         <translation>Otočení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
         <translation>Přetočení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
         <translation>Vložit</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
         <translation>Nové osvětlení</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
         <translation>Prohledávat</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
         <translation>Přesunití kamery</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
         <translation>Změna vlastností</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
         <translation>Není nic vybráno.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
         <translation>Pole obsahuje pouze 1 prvek nebo méně, nejsou přidávány žádné dílky.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
         <translation>Pole</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
         <translation>Minifig #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Minifig</translation>
     </message>
@@ -5721,17 +5772,17 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcPartSelectionListView</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
         <translation>Přidat do palety</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation>Žádné</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
         <translation>Odebrat z palety</translation>
     </message>
@@ -5739,80 +5790,85 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
         <translation>Prohledat části</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation>Možnosti</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
         <translation>Žádné ikony</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
         <translation>Malé ikony</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
         <translation>Střední ikony</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
         <translation>Velké ikony</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
         <translation>Největší ikony</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
         <translatorcomment>Otázka je zda nepojmenovat parts -&gt; díly, (části)</translatorcomment>
         <translation>Zobrazit názvy částí</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
         <translatorcomment>Otázka co znamená zdobené?</translatorcomment>
         <translation>Zobrazit zdobené součásti</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
         <translatorcomment>Allises -&gt; popis, přezdívka, označení</translatorcomment>
         <translation>Zobrazit přezdívny částí</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
         <translation>Režim seznamu</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
         <translation>Uzamknutí barevného náhledu</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation>Oblíbené</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
         <translation>Všechny části</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
         <translation>Využíváno</translation>
     </message>
@@ -5821,7 +5877,7 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <translation type="vanished">Používané části</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation>Podmodely</translation>
     </message>
@@ -5829,12 +5885,12 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation>Zahajuji načítání</translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
         <translation>Načítání knihovny dílů</translation>
     </message>
@@ -5843,6 +5899,7 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5867,23 +5924,18 @@ Informace o tom, jak stáhnout a nainstalovat knihovnu, naleznete na adrese http
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Lock</source>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
-        <source>%1 the preview display to %2 updates</source>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
-        <source>%1 Preview</source>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -6722,23 +6774,23 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Ikona osy</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Režim stínování:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
@@ -6747,7 +6799,7 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">šířka</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Antialiasing</translation>
     </message>
@@ -6777,28 +6829,27 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Logo5</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
         <translatorcomment>TODO</translatorcomment>
-        <translation>Okrajové čáry</translation>
+        <translation type="vanished">Okrajové čáry</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation>Drátový model</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
         <translation>Ploché stínování</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
         <translation>Výchozí osvětlení</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
         <translation>Síť LOD</translation>
     </message>
@@ -6833,17 +6884,15 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation>Obnovit rozvržení karty</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation>Zvýrazněte nové části</translation>
+        <translation type="vanished">Zvýrazněte nové části</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
         <source>Fade previous steps</source>
-        <translation>Zeslabit předchozí kroky</translation>
+        <translation type="vanished">Zeslabit předchozí kroky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation>Rozhraní</translation>
     </message>
@@ -6852,7 +6901,7 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Překrývání</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
         <translation>Barva překrytí:</translation>
     </message>
@@ -6861,60 +6910,60 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Aktivní zobrazení:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
         <translation>Základní mřížka</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nakreslete cvočky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>cvočky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Nakreslí včechny čáry</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Zobrazit sféru</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
         <translation>Zakázáno</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
         <translation>Malé</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
         <translation>Střední</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation>Velké</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
         <translation>Barva zvýraznění:</translation>
     </message>
@@ -6923,682 +6972,782 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Velikost:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation>Barva:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
         <translation>Barva textu:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
         <translatorcomment>TODO - poloha, umístění , místo</translatorcomment>
         <translation>Umístění:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
-        <source>Automate edge color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
         <translation>Vlevo nahoře</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
         <translation>Vpravo nahoře</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
         <translation>Vlevo dole</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
         <translation>Vpravo dole</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation type="unfinished">Barvy</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation type="unfinished">Pozadí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
         <translation type="unfinished">P&amp;lná barva</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation type="unfinished">Př&amp;echod</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation type="unfinished">Zeslabit předchozí kroky</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
         <translation>Kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Kategorie knihoven součástí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Název</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Číslo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Importovat...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
         <translation>Exportovat...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
         <translatorcomment>TODO - Vynulovat, obnovit, zrušit, přenastavit, resetovat</translatorcomment>
         <translation>Obnovit...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
         <translation>Nová...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
         <translation>Upravit...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
         <translation>Odstranit...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Klávesnice</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
         <translation>Klávesové zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Příkaz</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Zkratka</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation>Hledání zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
         <translation>Kom&amp;binace kláves:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Přiřadit</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Odebrat</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation>Myš</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
         <translation>Zkratky myší</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation>Akce</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation>Zkratka 1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation>Zkratka 2</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
         <translation>Tlačítko:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation>Žádné</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
         <translation>Levé</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation>Střední</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
         <translation>Pravé</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
         <translation>Modifikátory:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation>Control</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
         <translation>Shift</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
         <translation>Citlivost myši:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
         <translation>Rozteč mřížky musí být větší než 0.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
         <translation>Vyberte složku knihovny částí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
         <translation>Vyberte archiv knihovny částí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
         <translation>Podporované archivy (*.zip *.bin);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
         <translation>Vyberte konfigurační soubor barev</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
         <translation>Soubory nastavení (*.ldr);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
         <translation>Vyberte soubor nastavení Minifig</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
         <translation>Soubory nastavení (*.ini);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
         <translation>Spustitelné soubory (*.exe);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
         <translation>Všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
         <translation>Vyberte spustitelný soubor POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
         <translation>Otevřete složku LGEO</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
         <translation>Obnovit barvy</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
         <translation>Chcete také resetovat barvy rozhraní tak, aby odpovídaly barevnému motivu?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
         <translation type="unfinished">Vybrat barvu pozadí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
         <translation>Vybrat barvu os</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
         <translation>Vybrat barvu aktivního pohledu</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
         <translation>Výbrat barvu slábnutí</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
         <translation>Vybrat barvu zvýraznění</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Vyberte barevnou mřížku Stud</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Vyberte barevnou mřížku Line</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Vyberte pohled dle barvy Sphere</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Vyberte pohled dle barvy textu Sphere</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
         <translatorcomment>TODO</translatorcomment>
         <translation>Vyberte pohled dle barvy zvíraznění Sphere</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
         <translation>Nepřiřazeno</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
         <translation>Opravdu chcete smazat kategorii &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
         <translation>Importovat kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
         <translation>Textové soubory (*.txt);;všechny soubory (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
         <translation>Při načítání souboru kategorií došlo k chybě.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
         <translation>Exportovat kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
         <translation>Chyba při ukládání souboru kategorií.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
         <translation>Opravdu chcete načíst výchozí kategorie?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Importovat zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Chyba při čtení souboru klávesových zkratek.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Exportovat zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Chyba při ukládání souboru klávesových zkratek.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
         <translation>Opravdu chcete načíst výchozí klávesové zkratky?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
         <translation>Levé tlačítko</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
         <translation>Střední tlačítko</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
         <translation>Pravé tlačítko</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
         <translation>Přepsat zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
         <translation>Tato zkratka je již přiřazena k &apos;%1&apos;, chcete ji nahradit?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
         <translation>Importovat zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
         <translation>Chyba při čtení souboru zkratek myši.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
         <translation>Exportovat zkratky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
         <translation>Při ukládání souboru klávesových zkratek došlo k chybě.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
         <translation>Opravdu chcete načíst výchozí zkratky pro myš?</translation>
     </message>
@@ -7630,6 +7779,11 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <source>Comments:</source>
         <translation>Komentáře:</translation>
     </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Scene</source>
         <translation type="vanished">Scéna</translation>
@@ -7664,7 +7818,7 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Nastavit jako výchozí možnosti pro nové projekty</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
         <translation>Použité díly</translation>
     </message>
@@ -7674,13 +7828,20 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation>%1 Vlastnosti</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Část</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Celkem</translation>
     </message>
@@ -7718,40 +7879,40 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation>Hodnota</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Pozice</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Rotace</translation>
     </message>
@@ -7760,73 +7921,73 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
         <translation type="vanished">Viditelnost</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
         <translation>Viditelné kroky</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
         <translation>Zobrazit</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
         <translation>Skrýt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Vzhled</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Barva</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Část</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
         <translation>Cíl</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Nahoru</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
         <translation>Pravoúhle</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
         <translation>FOV</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Blízko</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Daleko</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Název</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
         <translation>Bylo vybráno několik objektů</translation>
     </message>
@@ -8119,22 +8280,22 @@ GL_EXT_texture_filter_anisotropic rozšíření: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation type="unfinished">Při vytváření obrázků došlo k chybě.</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation type="unfinished">Chyba</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Chyba zápisu do souboru &apos;%1&apos;:
diff --git a/resources/leocad_de.ts b/resources/leocad_de.ts
index 626673b..95be5c2 100644
--- a/resources/leocad_de.ts
+++ b/resources/leocad_de.ts
@@ -700,586 +700,581 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="981"/>
-        <source>View.Cameras.Reset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.First</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1381,37 +1376,37 @@
         <translation>Einrasten eingeschaltet</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
         <translation>Öffne Ausgewähltes Modell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
         <translation>Bearbeite Ausgewähltes Untermodell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
         <translation>Beende Untermodell Bearbeitung</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
         <translation>Neues Untermodell...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
         <translation>&amp;Eigenschaften…</translation>
     </message>
@@ -1983,27 +1978,26 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>Reset</source>
-        <translation>Zurücksetzen</translation>
+        <translation type="vanished">Zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
+        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>First</source>
         <translation>Erster</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
         <translation>Vorheriger</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation>Nächster</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translation>Letzter</translation>
     </message>
@@ -2012,533 +2006,533 @@
         <translation type="vanished">Schritt einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
         <translation>Schritt entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
         <translation>Schlüssel hinzufügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
         <translation>&amp;Horizontal teilen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
         <translation>&amp;Vertikal teilen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
         <translation>Ansicht &amp;entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
         <translation>Ansicht z&amp;urücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
         <translation type="unfinished">Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation type="unfinished">Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation type="unfinished">Zeit</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation type="unfinished">Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation type="unfinished">Farben</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation type="unfinished">Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
         <translation type="unfinished">Zeitachse</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Vollbildansicht</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
         <translation>Schließe &amp;Tab</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation>&amp;Drahtrahmen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
         <translation>&amp;Einfache Schattierung</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
         <translation>&amp;Default Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translation>&amp;Perspektive</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
         <translation>&amp;Rechtwinklig</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
         <translation type="unfinished">Ansichtskugel</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
         <translation type="unfinished">Grundraster</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation>&amp;Einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation>&amp;Duplizieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
         <translation>&amp;Ursprungspunkt zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
         <translation>&amp;Keyframes entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
         <translation>Steuerpunkt setzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
         <translation>Steuerpunkt entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation>Bewege +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation>Bewege -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation>Bewege +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation>Bewege -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation>Bewege +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation>Bewege -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation>Drehe +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation>Drehe -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation>Drehe +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation>Drehe -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation>Drehe +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation>Drehe -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
         <translation>Minifig &amp;Assistent…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
         <translation>&amp;Vervielfachen…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
         <translation>In Neues Modell verschieben…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
         <translation>Ausgewählte Modelle integrieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translation>&amp;Gruppieren...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation>&amp;Gruppierung aufheben</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
         <translation>Zur Gru&amp;ppe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
         <translation>A&amp;us der Gruppe entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
         <translation>Grup&amp;pen Bearbeiten…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
         <translation>Auswahl &amp;ausblenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
         <translation>Nichtausgewähltes aus&amp;blenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
         <translation>Auswahl einb&amp;lenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
         <translation>Alles einbl&amp;enden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
         <translation>Früheres zeigen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
         <translation>Späteres zeigen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation>Untermodelle...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
         <translation>Bewege die Auswahl hierher</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
         <translation>Aktuelle Schrittweite festlegen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
         <translation>&amp;Homepage von LeoCAD</translation>
     </message>
@@ -2573,17 +2567,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
         <translation>Auf Aktualisierungen prü&amp;fen…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation>&amp;Über…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
         <translation>Einen Fehler melden</translation>
     </message>
@@ -2591,77 +2585,77 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
         <translation>Neues Teil</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
         <translation>Neues Punktlicht</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
         <translation>Neues Spotlicht</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
         <translation>Neue Kamera</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation>Auswählen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation>Bewegen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation>Drehen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation>Anmalen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translation>Zoomen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation>Verschieben</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation>Umkreisen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
         <translation>Rollen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
         <translation>Bereich zoomen</translation>
     </message>
@@ -2669,117 +2663,115 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
         <translation>Leerer Name</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Vereint </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
         <translation>Nichts zu exportieren.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Ins 3D Studio exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
         <translation>3DS Datei (*.3ds);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
         <translation>Konnte Datei » %1 « nicht zum Schreiben öffnen.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Nach BrickLink exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
         <translation>XML Dateien (*.xml);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation>COLLADA exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
         <translation>COLLADA Dateien (*.dae);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Nach CSV exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
         <translation>CSV Datei (*.csv);;Alle Dateien (*.*)</translation>
     </message>
@@ -2788,81 +2780,81 @@ File format is not recognized.</source>
         <translation type="vanished">Fehler beim Erzeugen der Bilder.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation>POV-Ray exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
         <translation>POV-Ray Datei (*.pov);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
         <translation>Konnte keine LGEO Dateien im Verzeichnis » %1 « finden.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Nach Wavefront exportieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Wavefront Dateien (*.obj);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Fehler beim Schreiben der Datei » %1 « :
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
         <translation>Neues Modell.ldr</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
         <translation>Neues Modell.mpd</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation>Untermodell #</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
         <translation>Untermodellname:</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation>Das Untermodell kann nicht leer sein.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
         <translation>Untermodell duplizieren</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
         <translation>Ein Untermodell names &apos;%1&apos; existiert bereits, bitte geben sie einen eindeutigen Namen ein.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
         <translation>Neues Untermodell</translation>
     </message>
@@ -2890,19 +2882,19 @@ File format is not recognized.</source>
         <translation type="vanished">Spezialfarben</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
@@ -2911,14 +2903,21 @@ File format is not recognized.</source>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation type="unfinished">Fehler</translation>
+        <translation type="obsolete">Fehler</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
-        <source>Failed to load &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation type="unfinished">Konnte Datei » %1 « nicht zum Schreiben öffnen.</translation>
     </message>
 </context>
 <context>
@@ -3517,27 +3516,26 @@ File format is not recognized.</source>
         <translation>Diese Kamera benutzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Reset views to their default positions</source>
-        <translation>Alle Ansichten auf Voreinstellung zurücksetzen</translation>
+        <translation type="vanished">Alle Ansichten auf Voreinstellung zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="990"/>
+        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Go to the first step of the model</source>
         <translation>Gehe zum ersten Schritt des Modells</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="997"/>
+        <location filename="../common/lc_commands.cpp" line="990"/>
         <source>Go to the previous step</source>
         <translation>Gehe zum vorangehenden Schritt</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1004"/>
+        <location filename="../common/lc_commands.cpp" line="997"/>
         <source>Go to the next step</source>
         <translation>Gehe zum folgenden Schritt</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1004"/>
         <source>Go to the last step of the model</source>
         <translation>Gehe zum letzten Schritt des Modells</translation>
     </message>
@@ -3546,42 +3544,43 @@ File format is not recognized.</source>
         <translation type="vanished">Einen neuen Schritt einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
+        <location filename="../common/lc_commands.cpp" line="1025"/>
+        <location filename="../common/lc_commands.cpp" line="1809"/>
         <source>Remove current step</source>
         <translation>Aktuellen Schritt entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation>Aktuellen Tab schließen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
         <translation>Ausgewählten Steuerungspunkt entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation>Bewege die ausgewählten Teile in ein neues Modell und ersetze diese durch eine Referenz auf das Modell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation>Erzeuge ein neues Untermodell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation>Eigenschaften des aktuellen Untermodells anzeigen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation>Liste aller Untermodell anzeigen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -3621,27 +3620,26 @@ File format is not recognized.</source>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation>Wechsel zu diesem Untermodell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
         <translation>LeoCADs Fehlerreportformular im voreingestellten Browser zeigen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
         <translation>Bewege die ausgewählten Teile in diesen Schritt</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation>Zeige das Modell an diesem Punkt der Zeitachse</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
         <translation>Hinzufügen neuer Animationsschlüssel umschalten</translation>
     </message>
@@ -3696,295 +3694,295 @@ File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1018"/>
-        <location filename="../common/lc_commands.cpp" line="1802"/>
+        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
         <source>Insert a new step before the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1025"/>
-        <location filename="../common/lc_commands.cpp" line="1809"/>
+        <location filename="../common/lc_commands.cpp" line="1018"/>
+        <location filename="../common/lc_commands.cpp" line="1802"/>
         <source>Insert a new step after the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation>Ansicht horizontal teilen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation>Ansicht vertikal teilen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation>Aktuelle Ansicht entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation>Alle Ansichten zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
         <translation>Vollbildmodus umschalten</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translation>Anzeige der Szene als Drahtgittermodell</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
         <translation>Anzeige der Szene ohne Schatten und Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
         <translation>Anzeige der Szene mit voreingestellter Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
         <translation>Aktuelle Kamera auf perspektivische Projektion umstellen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation>Aktuelle Kamera auf orthografische Projektion umstellen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
         <translation>Ein neues Teil zum Modell hinzufügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation>Ausgewählte Objekte entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
         <translation>Erzeuge eine Kopie der ausgewählten Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
         <translation>Drehpunkt der ausgewählten Teile auf deren Ursprung zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
         <translation>Entferne alle Keyframes aus den ausgewählten Teilen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation>Einen neuen Steuerungspunkt einfügen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation>Ausgewählte Teile entlang der X-Achse bewegen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation>Ausgewählte Teile entlang der Y-Achse bewegen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation>Ausgewählte Teile entlang der Z-Achse bewegen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation>Ausgewählte Teile entlang der X-Achse drehen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation>Ausgewählte Teile entlang der Y-Achse drehen</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation>Ausgewählte Teile entlang der Z-Achse drehen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation>Ein neues minifig zum Modell hinzufügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation>Erstelle Kopien der ausgewählten Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translation>Öffne das vom ausgewählten Teil referenzierte Modell in einem neuen Tab</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation>Inhalte der ausgewählten Modellreferenzen in ein neues Modell einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
         <translation>Bearbeite das ausgewählte Untermodell an Ort und Stelle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
         <translation>Beende Untermodellbearbeitung an Ort und Stelle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
         <translation>Ausgewählte Teile gruppieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation>Ausgewählte Gruppe auflösen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation>Füge Teil mit Fokus zur ausgewählten Gruppe hinzu</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation>Entferne Teil mit Fokus aus der Gruppe</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation>Gruppe bearbeiten</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation>Ausgewählte Teile ausblenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation>Nicht ausgewählte Teile ausblenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
         <translation>Zeige ausgeblendete Objekte die ausgewählt sind</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation>Zeige alle ausgeblendeten Objekte</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
         <translation>Zeige ausgewählte Teile einen Schritt vorher</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
         <translation>Zeige ausgewählte Teile einen Schritt danach</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
         <translation>LeoCAD&apos;s Homepage im Standardbrowsers öffnen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
         <translation>Prüfe ob eine aktualisierte Version von LeoCAD oder der Teilebibliothek verfügbar ist</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
         <translation>Zeige die Programmversion und Systemversion</translation>
     </message>
@@ -4025,13 +4023,13 @@ File format is not recognized.</source>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4040,397 +4038,397 @@ Please visit https://www.leocad.org for information on how to download and insta
 Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunterläd und installiert.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
         <translation type="unfinished">LeoCAD Version %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4439,22 +4437,22 @@ Please visit https://www.leocad.org for information on how to download and insta
 Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunterläd und installiert.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4503,6 +4501,26 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <source>Reset</source>
         <translation type="unfinished">Zurücksetzen</translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
@@ -4538,11 +4556,21 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <source>Select Part Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
@@ -4601,109 +4629,134 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation type="unfinished">Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4711,108 +4764,103 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Transformation</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>K&amp;ameras</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Datei</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Exportieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translation>&amp;Ansicht</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
         <translation>&amp;Ansichten</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
         <translation>Neues Modell</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
         <translation>Modell öffnen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
         <translation>Modell speichern</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation>Sch&amp;atten</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation>&amp;Import</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>Schrit&amp;te</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
         <translation>Werkz&amp;euge</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translation>&amp;Teil</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation>
             <numerusform></numerusform>
@@ -4820,154 +4868,154 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation type="unfinished"> M : %1 %2 R : %3  {1 %2 ?} {3 %4 ?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
         <translation>Modell zusammenführen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
         <translation>Ein Untermodell zusammenführen.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
         <translation>%1 Untermodelle zusammengefügt.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation>Import</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
         <translation>LEGO Diginal Designer Dateien (*.lxf);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
         <translation>Einrasten XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
         <translation>Einrasten Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
         <translation>Schritte Menü</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
         <translation>Einrasten für Bewegung</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
         <translation>Einrasten der Bewegung in festen Intervallen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
         <translation>Winkelschritte Menü</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
         <translation>Einrasten für Drehung</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
         <translation>Einrasten der Drehung in festen Intervallen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
         <translation>Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation>Unter&amp;modell</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
         <translation>Auswahlmodus</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation>Zeit</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation>Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation>Farben</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation>Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
         <translation>Zeitachse</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
         <translation>%1 (ID : %2)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
         <translation> - %1 (ID : %2)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
         <translation> in der Gruppe » %1 «</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation>Schritt %1</translation>
     </message>
@@ -4976,44 +5024,44 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="vanished"> M : %1 %2 R : %3 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation>%1 rück&amp;gängig machen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation>Rückg&amp;ängig machen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation>%1 &amp;wiederherstellen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation>&amp;Wiederherstellen</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Unterstützte Dateien (*.lcd *.ldr *.dat *.mpd);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation>Auswahlmodus wechseln</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
         <translation>Andere Tabs schliessen</translation>
     </message>
@@ -5022,12 +5070,12 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="vanished">Ansicht zurücksetzten</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
         <translation>Die Datei &apos;%1&apos; wurde von einer anderen Anwwendung verändert, erneut laden?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
         <translation>Datei verändert</translation>
     </message>
@@ -5036,111 +5084,110 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="vanished">Fehler beim Laden von » %1 «.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
         <translation>Unterstützte Dateien (*.mpd);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Unterstützte Dateien (*.ldr *.dat *.mpd);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
         <translation>Speichern als LCD Format wird nicht mehr unterstützt, bitte LDR oder MPD Format verwenden.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
         <translation>Änderungen an » %1 « speichern?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation>1/20T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation>1/4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation>1P</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation>1/2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation>1T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation>2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation>3T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation>4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation>8T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation>1B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation>2B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation>4B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation>8B</translation>
     </message>
@@ -5252,119 +5299,119 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
         <translation>Pasting</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
         <translation>Fehler beim Bilder Erstellen.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
         <translation>Schritt einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
         <translation>Schritt löschen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation>Kein Teil ausgewählt.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
         <translation>Gruppe #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
         <translation>Schneiden</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
         <translation>Teile duplizieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Fehler beim Schreiben der Datei » %1 « :
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
         <translation>Gruppieren</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
         <translation>Gruppierung aufheben</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
         <translation>Gruppen bearbeiten</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
         <translation>Teil hinzufügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
         <translation>Kameras zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
         <translation>Keyframes entfernen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
         <translation>Verändernd</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
         <translation>Neues Modell</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
         <translation>In eine Reihe</translation>
     </message>
@@ -5389,89 +5436,89 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation>Teil setzen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
         <translation>Ausblenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
         <translation>Einblenden</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
         <translation>Neues Scheinwerferlicht</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
         <translation>Neue Kamera</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
         <translation>Bewegen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
         <translation>Drehen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
         <translation>Zoomen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
         <translation>Verschieben</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
         <translation>Umkreisen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
         <translation>Rollen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
         <translation>Neues Licht</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
         <translation>Löschen</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
         <translation>Farbgebung</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
         <translation>Kein Modell ausgewählt.</translation>
     </message>
@@ -5503,42 +5550,42 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation>Kamera umbenennen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
         <translation>Modell betrachten</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
         <translation>Kamera bewegen</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
         <translation>Eigenschaften ändern</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
         <translation>Nichts auszuwählen.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
         <translation>Das Array hat nur 1 Element oder weniger, keine Teile zugefügt.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
         <translation>Array</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
         <translation>Minifig #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Minifig</translation>
     </message>
@@ -5704,17 +5751,17 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="vanished">Vorschaufarbe sperren</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation type="unfinished">Keine</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5722,77 +5769,82 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
         <translation>Teile suchen</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
         <translation type="unfinished">Keine Symbole</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
         <translation type="unfinished">Kleine Symbole</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
         <translation type="unfinished">Mittelgroße Symbole</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
         <translation type="unfinished">Große Symbole</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
         <translation type="unfinished">Extragroße Symbole</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
         <translation type="unfinished">Zeige Teilenamen</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
         <translation type="unfinished">Zeige verzierte Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
         <translation type="unfinished">Listenmodus</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
         <translation type="unfinished">Vorschaufarbe sperren</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
         <translation>Alle Teile</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5801,7 +5853,7 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="vanished">Teile in Verwendung</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation>Untermodelle</translation>
     </message>
@@ -5809,12 +5861,12 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation>Initialisiere</translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
         <translation>Lade Teile Bibliothek</translation>
     </message>
@@ -5823,6 +5875,7 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5847,23 +5900,18 @@ Bitte lesen sie unter https://www.leocad.org nach wie man eine Bibliothek herunt
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Lock</source>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
-        <source>%1 the preview display to %2 updates</source>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
-        <source>%1 Preview</source>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -6562,77 +6610,77 @@ Anisotropic: %5
         <translation>Öffne die zuletzt verwendete Datei beim Start</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation>Maus</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
         <translation>Maus-Kurzbefehle</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation>Aktion</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation>Tastenkürzel 1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation>Tastenkürzel 2</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
         <translation>Maustaste:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
         <translation>Links</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation>Mitte</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
         <translation>Rechts</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
         <translation>Sondertaste:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation>Strg</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
         <translation>Shift</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
         <translation>Mausempfindlichkeit:</translation>
     </message>
@@ -6676,9 +6724,8 @@ Anisotropic: %5
         <translation>Rendern</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
-        <translation>Randlinien</translation>
+        <translation type="vanished">Randlinien</translation>
     </message>
     <message>
         <source>Axis icon</source>
@@ -6689,96 +6736,96 @@ Anisotropic: %5
         <translation type="vanished">Breite</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Anti-aliasing</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
         <translation>Schattenmodus:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation>Drahtmodell</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
         <translation>Einfache Schatten</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
         <translation>Voreingestellte Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
         <translation>Grundraster</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
         <translation>Noppen darstellen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translation>Noppen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
         <translation>Linien zeichnen alle</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
         <translation>Ansichtskugel</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
         <translation>Deaktiviert</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
         <translation>Klein</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation>Groß</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
         <translation>Hervorhebungsfarbe:</translation>
     </message>
@@ -6787,18 +6834,19 @@ Anisotropic: %5
         <translation type="vanished">Größe:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation>Farbe:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
         <translation>Textfarbe:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
         <translation>Position:</translation>
     </message>
@@ -6893,374 +6941,437 @@ Anisotropic: %5
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
-        <source>Fade previous steps</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation type="unfinished">Neue Teile Markieren</translation>
+        <translation type="obsolete">Neue Teile Markieren</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
-        <source>Automate edge color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
         <translation>Oben links</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
         <translation>Oben rechts</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
         <translation>Unten links</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
         <translation>Oben rechts</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation type="unfinished">Farben</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation type="unfinished">Hintergrund</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
         <translation type="unfinished">F&amp;lächenfarbe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation type="unfinished">&amp;Gradient</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
         <translation>Kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
         <translation>Kategorie der Teilebibliothek</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Nummer</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Importieren…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
         <translation>Exportieren…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
         <translation>Zurücksetzen…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Kategorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
         <translation>Neu…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
         <translation>Bearbeiten…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
         <translation>Löschen…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translation>Tastatur</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
         <translation>Tastenkürzel</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Befehl</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Kürzel</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
         <translation>Tasten&amp;folge:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Zuweisen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Entfernen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
         <translation>Rasterweite muss grösser als 0 sein.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
         <translation>Wähle Teilebibliothek Ordner</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
         <translation>Unterstütze Bibliotheken (*.zip *.bin);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
         <translation>Wähle Teilebibliothek Archiv</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
         <translation>Asuführbare Dateien (*.exe);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
@@ -7269,235 +7380,265 @@ Anisotropic: %5
         <translation type="vanished">Asuführbares POV-Ray öffnen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
         <translation>LGEO Ordner öffnen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
         <translation type="unfinished">Hintergrundfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
         <translation>Farbe der Noppen im Gitter wählen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
         <translation>Farbe der Gitterlinien wählen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
         <translation>Wähle Ansichtskugelfarbe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
         <translation>Wähle Ansichtskugel Textfarbe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
         <translation>Wähle Ansichtskugel Hervorhebungsfarbe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
         <translation>Unbestimmt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
         <translation>Sind sie sicher dass sie die Kategorie » %1 « löschen möchten?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
         <translation>Kategorien importieren</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
         <translation>Textdateien (*.txt);;Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
         <translation>Fehler beim Laden der Kategoriedatei.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
         <translation>Kategorien exportieren</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
         <translation>Fehler beim Speichern der Kategoriendatei.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
         <translation>Sind sie sicher dass sie die voreingestellten Kategorien laden möchten?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Tastenkürzel laden</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Fehler beim Laden der Tastaturkürzel-Datei.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Tastaturkürzel exportieren</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Fehler beim Speichern der Tastaturkürzel-Datei.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
         <translation>Sind sie sicher dass sie die voreingestellten Tastaturkürzel laden möchten?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
         <translation>Linke Maustaste</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
         <translation>Mittlere Maustaste</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
         <translation>Rechte Maustaste</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
         <translation>Tastaturkürzel ändern</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
         <translation>Dieses Tastaturkürzel ist bereits » %1 « zugewiesen, möchten sie es ersetzen?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
         <translation>Sind sie sicher dass sie die voreingestellten Mauskürzel laden möchten?</translation>
     </message>
@@ -7529,6 +7670,11 @@ Anisotropic: %5
         <source>Comments:</source>
         <translation>Kommentare:</translation>
     </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Scene</source>
         <translation type="vanished">Szene</translation>
@@ -7562,7 +7708,7 @@ Anisotropic: %5
         <translation type="vanished">Voreinstellungen der Optionen für neue Projekte</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
         <translation>Verwendete Teile</translation>
     </message>
@@ -7572,13 +7718,20 @@ Anisotropic: %5
         <translation>%1 Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Teil</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Gesamt</translation>
     </message>
@@ -7616,40 +7769,40 @@ Anisotropic: %5
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Drehung</translation>
     </message>
@@ -7658,73 +7811,73 @@ Anisotropic: %5
         <translation type="vanished">Sichtbarkeit</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
         <translation>Zeige</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
         <translation>Ausblenden</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Erscheinungsbild</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Teil</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
         <translation>Ziel</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Hoch</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
         <translation>Orhografisch</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
         <translation>FOV</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Nah</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Fern</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
         <translation>Mehrere Objekre ausgewählt</translation>
     </message>
@@ -8016,22 +8169,22 @@ Anisotropic: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation type="unfinished">Fehler</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Fehler beim Schreiben der Datei » %1 « :
diff --git a/resources/leocad_es.ts b/resources/leocad_es.ts
index 78a15dc..fe78847 100644
--- a/resources/leocad_es.ts
+++ b/resources/leocad_es.ts
@@ -26,17 +26,17 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="36"/>
         <source>File.SaveAs</source>
-        <translation>Archivo.Guardar como</translation>
+        <translation>Archivo.GuardarComo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="43"/>
         <source>File.SaveImage</source>
-        <translation>Archivo.Guardar Imagen</translation>
+        <translation>Archivo.GuardarImagen</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="50"/>
         <source>File.Import.LDD</source>
-        <translation>Archivo.Importar LDD</translation>
+        <translation>Archivo.Importar.LDD</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="57"/>
@@ -81,7 +81,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="113"/>
         <source>File.Render</source>
-        <translation>Archivo.Renderizado</translation>
+        <translation>Archivo.Renderizar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="120"/>
@@ -96,11 +96,11 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="134"/>
         <source>File.PrintPreview</source>
-        <translation>Archivo.Imprimir Previa</translation>
+        <translation>Archivo.VistaPrevia</translation>
     </message>
     <message>
         <source>File.PrintBOM</source>
-        <translation type="vanished">Archivo.Imprimir BOM</translation>
+        <translation type="vanished">Archivo.ImprimirBOM</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="141"/>
@@ -155,7 +155,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="211"/>
         <source>Edit.PasteSteps</source>
-        <translation>Editar.CopiarPasos</translation>
+        <translation>Editar.PegarPasos</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="218"/>
@@ -165,17 +165,17 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="225"/>
         <source>Edit.FindNext</source>
-        <translation>Editar.Buscar Siguiente</translation>
+        <translation>Editar.BuscarSiguiente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="232"/>
         <source>Edit.FindPrevious</source>
-        <translation>Editar.Buscar Previo</translation>
+        <translation>Editar.BuscarAnterior</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="239"/>
         <source>Edit.FindAll</source>
-        <translation>Editar.EncontrarTodos</translation>
+        <translation>Editar.BuscarTodos</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="246"/>
@@ -195,265 +195,257 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="267"/>
         <source>Edit.SelectAll</source>
-        <translation>Editar.Seleccionar Todos</translation>
+        <translation>Editar.SeleccionarTodo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="274"/>
         <source>Edit.SelectNone</source>
-        <translation>Editar.Seleccionar Ninguno</translation>
+        <translation>Editar.DeseleccionarTodo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="281"/>
         <source>Edit.SelectInvert</source>
-        <translation>Editar.Seleccionar Invertir</translation>
+        <translation>Editar.InvertirSeleccion</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="288"/>
         <source>Edit.SelectByName</source>
-        <translation>Editar.Seleccionar Por Nombre</translation>
-    </message>
-    <message>
-        <source>Edit.SelectByColor</source>
-        <translation type="vanished">Editar.Seleccionar Por Color</translation>
+        <translation>Editar.SeleccionarPorNombre</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="295"/>
         <source>Edit.SelectSingle</source>
-        <translation>Editar.Seleccionar Unico</translation>
+        <translation>Editar.SeleccionarIndividualmente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="302"/>
         <source>Edit.SelectPiece</source>
-        <translation>Editar.Seleccionar Pieza</translation>
+        <translation>Editar.SeleccionarPieza</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="309"/>
         <source>Edit.SelectColor</source>
-        <translation>Editar.Seleccionar Color</translation>
+        <translation>Editar.SeleccionarColor</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="316"/>
         <source>Edit.SelectPieceColor</source>
-        <translation>Editar.Seleccionar Color de Pieza</translation>
+        <translation>Editar.SeleccionarPiezaColor</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="323"/>
         <source>Edit.TransformRelative</source>
-        <translation>Editar.Tranformacion Relativa</translation>
-    </message>
-    <message>
-        <source>Edit.TransformLocal</source>
-        <translation type="vanished">Editar.TransformacionLocal</translation>
+        <translation>Editar.TransformacionesRelativas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="330"/>
         <source>Edit.TransformAbsolute</source>
-        <translation>Editar.TransformacionAbsoluta</translation>
+        <translation>Editar.TransformacionesAbsolutas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="337"/>
         <source>Edit.TransformToggleRelative</source>
-        <translation>Editar.CambioTransformacionRelativa</translation>
+        <translation>Editar.AlternarTransformacionesRelativas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="344"/>
         <source>Edit.TransformSeparately</source>
-        <translation>Editar.TransformacionSeparadamente</translation>
+        <translation>Editar.TransformarPorSeparado</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="351"/>
         <source>Edit.TransformTogether</source>
-        <translation>Editar.TransformacionJuntos</translation>
+        <translation>Editar.TransformarJuntas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="358"/>
         <source>Edit.TransformToggleSeparate</source>
-        <translation>Editar.CambioTransformacionSeparada</translation>
+        <translation>Edit.AlternarTransformarPorSeparado</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="365"/>
         <source>Edit.Snap.Toggle</source>
-        <translation>Editar.Acople Activar</translation>
+        <translation>Editar.Ajuste.Alternar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="372"/>
         <source>Edit.SnapMove.XY0</source>
-        <translation>Editar.Acople Mover.XY0</translation>
+        <translation>Editar.AjusteDeMovimiento.XY0</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="379"/>
         <source>Edit.SnapMove.XY1</source>
-        <translation>Editar.Acople Mover.XY1</translation>
+        <translation>Editar.AjusteDeMovimiento.XY1</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="386"/>
         <source>Edit.SnapMove.XY2</source>
-        <translation>Editar.Acople Mover.XY2</translation>
+        <translation>Editar.AjusteDeMovimiento.XY2</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="393"/>
         <source>Edit.SnapMove.XY3</source>
-        <translation>Editar.Acople Mover.XY3</translation>
+        <translation>Editar.AjusteDeMovimiento.XY3</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="400"/>
         <source>Edit.SnapMove.XY4</source>
-        <translation>Editar.Acople Mover.XY4</translation>
+        <translation>Editar.AjusteDeMovimiento.XY4</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="407"/>
         <source>Edit.SnapMove.XY5</source>
-        <translation>Editar.Acople Mover.XY5</translation>
+        <translation>Editar.AjusteDeMovimiento.XY5</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="414"/>
         <source>Edit.SnapMove.XY6</source>
-        <translation>Editar.Acople Mover.XY6</translation>
+        <translation>Editar.AjusteDeMovimiento.XY6</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="421"/>
         <source>Edit.SnapMove.XY7</source>
-        <translation>Editar.Acople Mover.XY7</translation>
+        <translation>Editar.AjusteDeMovimiento.XY7</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="428"/>
         <source>Edit.SnapMove.XY8</source>
-        <translation>Editar.Acople Mover.XY8</translation>
+        <translation>Editar.AjusteDeMovimiento.XY8</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="435"/>
         <source>Edit.SnapMove.XY9</source>
-        <translation>Editar.Acople Mover.XY9</translation>
+        <translation>Editar.AjusteDeMovimiento.XY9</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="442"/>
         <source>Edit.SnapMove.Z0</source>
-        <translation>Editar.Acople Mover.Z0</translation>
+        <translation>Editar.AjusteDeMovimiento.Z0</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="449"/>
         <source>Edit.SnapMove.Z1</source>
-        <translation>Editar.Acople Mover.Z1</translation>
+        <translation>Editar.AjusteDeMovimiento.Z1</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="456"/>
         <source>Edit.SnapMove.Z2</source>
-        <translation>Editar.Acople Mover.Z2</translation>
+        <translation>Editar.AjusteDeMovimiento.Z2</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="463"/>
         <source>Edit.SnapMove.Z3</source>
-        <translation>Editar.Acople Mover.Z3</translation>
+        <translation>Editar.AjusteDeMovimiento.Z3</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="470"/>
         <source>Edit.SnapMove.Z4</source>
-        <translation>Editar.Acople Mover.Z4</translation>
+        <translation>Editar.AjusteDeMovimiento.Z4</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="477"/>
         <source>Edit.SnapMove.Z5</source>
-        <translation>Editar.Acople Mover.Z5</translation>
+        <translation>Editar.AjusteDeMovimiento.Z5</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="484"/>
         <source>Edit.SnapMove.Z6</source>
-        <translation>Editar.Acople Mover.Z6</translation>
+        <translation>Editar.AjusteDeMovimiento.Z6</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="491"/>
         <source>Edit.SnapMove.Z7</source>
-        <translation>Editar.Acople Mover.Z7</translation>
+        <translation>Editar.AjusteDeMovimiento.Z7</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="498"/>
         <source>Edit.SnapMove.Z8</source>
-        <translation>Editar.Acople Mover.Z8</translation>
+        <translation>Editar.AjusteDeMovimiento.Z8</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="505"/>
         <source>Edit.SnapMove.Z9</source>
-        <translation>Editar.Acople Mover.Z9</translation>
+        <translation>Editar.AjusteDeMovimiento.Z9</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="512"/>
         <source>Edit.SnapAngle.Toggle</source>
-        <translation>Editar.Acople Angulo.Activar</translation>
+        <translation>Editar.AjusteDeAngulo.Alternar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="519"/>
         <source>Edit.SnapAngle.Angle0</source>
-        <translation>Editar.Acople Angulo.Angulo0</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo0</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="526"/>
         <source>Edit.SnapAngle.Angle1</source>
-        <translation>Editar.Acople Angulo.Angulo1</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo1</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="533"/>
         <source>Edit.SnapAngle.Angle2</source>
-        <translation>Editar.Acople Angulo.Angulo2</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo2</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="540"/>
         <source>Edit.SnapAngle.Angle3</source>
-        <translation>Editar.Acople Angulo.Angulo3</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo3</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="547"/>
         <source>Edit.SnapAngle.Angle4</source>
-        <translation>Editar.Acople Angulo.Angulo4</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo4</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="554"/>
         <source>Edit.SnapAngle.Angle5</source>
-        <translation>Editar.Acople Angulo.Angulo5</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo5</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="561"/>
         <source>Edit.SnapAngle.Angle6</source>
-        <translation>Editar.Acople Angulo.Angulo6</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo6</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="568"/>
         <source>Edit.SnapAngle.Angle7</source>
-        <translation>Editar.Acople Angulo.Angulo7</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo7</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="575"/>
         <source>Edit.SnapAngle.Angle8</source>
-        <translation>Editar.Acople Angulo.Angulo8</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo8</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="582"/>
         <source>Edit.SnapAngle.Angle9</source>
-        <translation>Editar.Acople Angulo.Angulo9</translation>
+        <translation>Editar.AjusteDeAngulo.Angulo9</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="589"/>
         <source>Edit.Transform</source>
-        <translation>Editar.Transformacion</translation>
+        <translation>Editar.Transformar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="596"/>
         <source>Edit.TransformAbsoluteTranslation</source>
-        <translation>Editar.TransformacionAbsolutaTranslacion</translation>
+        <translation>Editar.TransformarTraslacionAbsoluta</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="603"/>
         <source>Edit.TransformRelativeTranslation</source>
-        <translation>Editar.TransformacionRelativaTranslacion</translation>
+        <translation>Editar.TransformarTranslacionRelativa</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="610"/>
         <source>Edit.TransformAbsoluteRotation</source>
-        <translation>Editar.TransformacionAbsolutaRotacion</translation>
+        <translation>Editar.TransformarRotacionAbsoluta</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="617"/>
         <source>Edit.TransformRelativeRotation</source>
-        <translation>Editar.TransformacionRelativaRotacion</translation>
+        <translation>Editar.TransformarRotacionRelativa</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="624"/>
@@ -488,7 +480,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="666"/>
         <source>Edit.Tool.Rotate</source>
-        <translation>Editar.Herramienta.Rotar</translation>
+	<translation>Editar.Herramienta>Rotar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="673"/>
@@ -503,12 +495,12 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="687"/>
         <source>Edit.Tool.ColorPicker</source>
-        <translation>Editar.Herramienta.Selector de Color</translation>
+        <translation>Editar.Herramienta.SelectorDeColor</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="694"/>
         <source>Edit.Tool.Zoom</source>
-        <translation>Editar.Herramienta.Ampliacion</translation>
+        <translation>Editar.Herramienta.Ampliar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="701"/>
@@ -523,7 +515,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="715"/>
         <source>Edit.Tool.Roll</source>
-        <translation>Editar.Herramienta.Rodar</translation>
+        <translation>Editar.Herramienta.PivotarVista</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="722"/>
@@ -551,9 +543,9 @@
         <translation>Ver.Reducir</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="757"/>
+        <location filename="../common/lc_commandsi.cpp" line="757"/>
         <source>View.ZoomExtents</source>
-        <translation>Ver.AmpliarTodo</translation>
+        <translation>Ver.Todo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="764"/>
@@ -573,12 +565,12 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="785"/>
         <source>View.MoveLeft</source>
-        <translation>Ver.MoverIzquierda</translation>
+        <translation>Ver.MoverALaIzquierda</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="792"/>
         <source>View.MoveRight</source>
-        <translation>Ver.MoverDerecha</translation>
+        <translation>Ver.MoverALaDeracha</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="799"/>
@@ -593,37 +585,37 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="813"/>
         <source>View.Viewpoint.Front</source>
-        <translation>Ver.Puntadevista.Frente</translation>
+        <translation>Ver.Vista.Frente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="820"/>
         <source>View.Viewpoint.Back</source>
-        <translation>Ver.Puntadevista.Detras</translation>
+        <translation>Ver.Vista.Detras</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="827"/>
         <source>View.Viewpoint.Top</source>
-        <translation>Ver.Puntadevista.Arriba</translation>
+        <translation>Ver.Vista.Encima</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="834"/>
         <source>View.Viewpoint.Bottom</source>
-        <translation>Ver.Puntadevista.Abajo</translation>
+        <translation>Ver.Vista.Debajo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="841"/>
         <source>View.Viewpoint.Left</source>
-        <translation>Ver.Puntadevista.Izquierda</translation>
+        <translation>Ver.Vista.Izquierda</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="848"/>
         <source>View.Viewpoint.Right</source>
-        <translation>Ver.Puntadevista.Derecha</translation>
+        <translation>Ver.Vista.Derecha</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="855"/>
         <source>View.Viewpoint.Home</source>
-        <translation>Ver.Puntadevista.Inicio</translation>
+        <translation>Ver.Vista.Inicio</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="862"/>
@@ -712,588 +704,583 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="981"/>
-        <source>View.Cameras.Reset</source>
-        <translation>Ver.Camaras.Reiniciar</translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.First</source>
-        <translation>Ver.Tiempo.Primero</translation>
+        <translation>Ver.LineaDeTiempo.Primero</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
-        <translation>Ver.Tiempo.Previo</translation>
+        <translation>Ver.LineaDeTiempo.Anterior</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
-        <translation>Ver.Tiempo.Siguiente</translation>
+        <translation>Ver.LineaDeTiempo.Siguiente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
-        <translation>Ver.Tiempo.Ultimo</translation>
+        <translation>Ver.LineaDeTiempo.Ultimo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
-        <translation>Ver.Tiempo.InsertarAntes</translation>
+        <translation>Ver.LineaDeTiempo.InsertarAntes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
-        <translation>Ver.Tiempo.InsertarDespues</translation>
+        <translation>Ver.LineaDeTiempo.InsertarDespues</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
-        <translation>Ver.Tiempo.Borrar</translation>
+        <translation>Ver.LineaDeTiempo.Eliminar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
-        <translation>Ver.Tiempo.AñadirClaves</translation>
+        <translation>Ver.LineaDeTiempo.AnadirClaves</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
-        <translation>Ver.DivisionHorizontal</translation>
+        <translation>Ver.DividirHorizontalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
-        <translation>Ver.DivisionVertical</translation>
+        <translation>Ver.DividirVerticalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
-        <translation>Ver.RemotaVista</translation>
+        <translation>Ver.EliminarVista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
-        <translation>Ver.ReinicioVistas</translation>
+        <translation>Ver.ReiniciarVistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
-        <translation>Ver.Barrasdeherramientas.Estandar</translation>
+        <translation>Ver.BarrasDeHerramientas.Estandar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
-        <translation>Ver.Barrasdeherramientas.Herramientas</translation>
+        <translation>Ver.BarrasDeHerramientas.Herramientas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
-        <translation>Ver.Barrasdeherramientas.Tiempo</translation>
+        <translation>Ver.BarrasDeHerramientas.LineaDeTiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
-        <translation>Ver.Barrasdeherramientas.Partes</translation>
+        <translation>Ver.BarrasDeHerramientas.Piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
-        <translation>Ver.Barrasdeherramientas.Colores</translation>
+        <translation>Ver.BarrasDeHerramientas.Colores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
-        <translation>Ver.Barrasdeherramientas.Propiedades</translation>
+        <translation>Ver.BarrasDeHerramientas.Propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
-        <translation>Ver.Barrasdeherramientas.Lineadetiempo</translation>
+        <translation>Ver.BarrasDeHerramientas.LineaDeTiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
-        <translation>Ver.Barrasdeherramientas.Previa</translation>
+        <translation>Ver.BarrasDeHerramientas.VistaPrevia</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
-        <translation>Ver.PantallaCompleta</translation>
+        <translation>Ver.PantallCompleta</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
-        <translation>Ver.CerrarActualPestaña</translation>
+        <translation>Ver.CerrarPestanaActual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
-        <translation>Ver.Sombreado.Malla</translation>
+        <translation>View.Sombreado.Malla</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
-        <translation>Ver.Sombreado.Plano</translation>
+        <translation>View.Sombreado.Plano</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
-        <translation>Ver.Sombreado.DefectoLuces</translation>
+        <translation>View.Sombreado.LucesPredeterminadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation>Ver.Proyeccion.Perspectiva</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation>Ver.Proyeccion.Ortografica</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
-        <translation>ActivarVerEsfera</translation>
+        <translation>Ver.AlternarEsferaDeVista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
-        <translation>Ver.CambioEjesIcono</translation>
+        <translation>Ver.AlternarIconoDeEjes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
-        <translation>Ver.CambioMalla</translation>
+        <translation>Ver.AlternarCuadricula</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
-        <translation>TransparentarPasosPrevios</translation>
+        <translation>Ver.AtenuarPasosAnteriores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translation>Pieza.Insertar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation>Pieza.Borrar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation>Pieza.Duplicar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
-        <translation>Pieza.PintarSeleccionado</translation>
+        <translation>Pieza.PintarSeleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
-        <translation>Pieza.ReiniciarPivotePunto</translation>
+        <translation>Pieza.ReiniciarPuntoDePivote</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
-        <translation>Pieza.QuitarClaveFotogramas</translation>
+        <translation>Pieza.EliminarFotogramasClave</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
-        <translation>Pieza.ControlPunto.Insertar</translation>
+        <translation>Pieza.PuntoDeControl.Insertar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
-        <translation>Pieza.ControlPunto.Quitar</translation>
+        <translation>Pieza.PuntoDeControl.Eliminar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation>Pieza.Mover.MasX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation>Pieza.Mover.MenosX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation>Pieza.Mover.MasY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation>Pieza.Mover.MenosY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
-        <translation>Pieza.Mover.MasZ</translation>
+	<translation>Pieza.Mover.MasZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
-        <translation>Pieza.Mover.MenosZ</translation>
+	<translation>Pieza.Mover.MenosZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation>Pieza.Rotar.MasX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation>Pieza.Rotar.MenosX</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation>Pieza.Rotar.MasY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation>Pieza.Rotar.MenosY</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation>Pieza.Rotar.MasZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation>Pieza.Rotar.MenosZ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
-        <translation>Pieza.MinifigAsistente</translation>
+        <translation>Pieza.AsistenteDeMinifig</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
-        <translation>Pieza.Conjunto</translation>
+        <translation>Pieza.Secuencia</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
-        <translation>Pieza.VerSeleccionadoModelo</translation>
+        <translation>Pieza.VerModeloSeleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
-        <translation>Pieza.MoverSeleccionaModelo</translation>
+        <translation>Pieza.MoverSeleccionAModelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
-        <translation>Pieza.InsertarSeleccionadosModelos</translation>
+        <translation>Pieza.FusionarModelosSeleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
-        <translation>Pieza.EditarSeleccionadosSubmodelos</translation>
+        <translation>Pieza.EditarSubmodeloSeleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
-        <translation>Pieza.EditarFinSubmodelo</translation>
+        <translation>Pieza.FinalizarEdicionDeSubmodelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation>Pieza.Agrupar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation>Pieza.Desagrupar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
-        <translation>Pieza.GrupoAñadir</translation>
+        <translation>Pieza.AnadirAGrupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
-        <translation>Pieza.GrupoQuitar</translation>
+        <translation>Pieza.EliminarDeGrupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
-        <translation>Pieza.GrupoEditar</translation>
+        <translation>Pieza.EditarGrupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
-        <translation>Pieza.OcultarSeleccionado</translation>
+        <translation>Pieza.OcultarSeleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
-        <translation>Pieza.OcultarNoseleccionado</translation>
+        <translation>Pieza.OcultarNoSeleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
-        <translation>Pieza.MostrarSeleccionado</translation>
+        <translation>Pieza.MostrarSeleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
-        <translation>Pieza.MostrarTodo</translation>
+        <translation>Pieza.MostrarTodas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
-        <translation>Pieza.MostrarPrevio</translation>
+        <translation>Pieza.MostrarUnPasoAtras</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
-        <translation>Pieza.MostrarPosterior</translation>
+        <translation>Pieza.MostrarUnPasoDespues</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation>Modelo.Nuevo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation>Modelo.Propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation>Modelo.Lista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation>Modelo.Modelo01</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation>Modelo.Modelo02</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation>Modelo.Modelo03</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation>Modelo.Modelo04</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation>Modelo.Modelo05</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation>Modelo.Modelo06</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation>Modelo.Modelo07</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation>Modelo.Modelo08</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation>Modelo.Modelo09</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation>Modelo.Modelo10</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation>Modelo.Modelo11</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation>Modelo.Modelo12</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation>Modelo.Modelo13</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation>Modelo.Modelo14</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation>Modelo.Modelo15</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation>Modelo.Modelo16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation>Modelo.Modelo17</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation>Modelo.Modelo18</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation>Modelo.Modelo19</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation>Modelo.Modelo20</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation>Modelo.Modelo21</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation>Modelo.Modelo22</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation>Modelo.Modelo23</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation>Modelo.Modelo24</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation>Modelo.Modelo25</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation>Modelo.Modelo26</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation>Modelo.Modelo27</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation>Modelo.Modelo28</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation>Modelo.Modelo29</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation>Modelo.Modelo30</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation>Modelo.Modelo31</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation>Modelo.Modelo32</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation>Modelo.Modelo33</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation>Modelo.Modelo34</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation>Modelo.Modelo35</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation>Modelo.Modelo36</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation>Modelo.Modelo37</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation>Modelo.Modelo38</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation>Modelo.Modelo39</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation>Modelo.Modelo40</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
-        <translation>Ayuda.PaginaInicial</translation>
+        <translation>Ayuda.PaginaDeInicio</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
-        <translation>Ayuda.ReportarError</translation>
+        <translation>Ayuda.ReportarErrores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation>Ayuda.Actualizaciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
-        <translation>Ayuda.Acercade</translation>
+        <translation>Ayuda.AcercaDe</translation>
     </message>
 </context>
 <context>
@@ -1321,101 +1308,101 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="37"/>
         <source>Save &amp;As...</source>
-        <translation>Guardar C&amp;omo...</translation>
+        <translation>Guardar c&amp;omo...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="44"/>
         <source>Save &amp;Image...</source>
-        <translation>Guardar la &amp;Imagen...</translation>
+        <translation>Guardar &amp;imagen...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="65"/>
         <source>3D &amp;Studio...</source>
-        <translation>3D &amp;Studio…</translation>
+        <translation>3D &amp;Studio...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="79"/>
         <source>&amp;HTML...</source>
-        <translation>&amp;HTML…</translation>
+        <translation>&amp;HTML...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="86"/>
         <source>&amp;BrickLink...</source>
-        <translation>&amp;BrickLink…</translation>
+        <translation>&amp;BrickLink...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="93"/>
         <source>&amp;CSV...</source>
-        <translation>&amp;CSV…</translation>
+        <translation>&amp;CSV...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="100"/>
         <source>&amp;POV-Ray...</source>
-        <translation>&amp;POV-Ray…</translation>
+        <translation>&amp;POV-Ray...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="107"/>
         <source>&amp;Wavefront...</source>
-        <translation>&amp;Wavefront…</translation>
+        <translation>&amp;Wavefront...</translation>
     </message>
     <message>
         <source>Select by Col&amp;or...</source>
-        <translation type="vanished">Seleccionar por Col&amp;or...</translation>
+        <translation type="vanished">Seleccionar por col&amp;or...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="296"/>
         <source>Single Selection</source>
-        <translation>Selección Única</translation>
+        <translation>Selección individual</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="303"/>
         <source>Piece Selection</source>
-        <translation>Seleccionar por Pieza</translation>
+        <translation>Selección por pieza</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="310"/>
         <source>Color Selection</source>
-        <translation>Seleccionar por Color</translation>
+        <translation>Selección por color</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="317"/>
         <source>Piece and Color Selection</source>
-        <translation>Pieza y Seleccionar Color</translation>
+        <translation>Selección por pieza y color</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="324"/>
         <source>Relative Transforms</source>
-        <translation>Transformaciones Relativas</translation>
+        <translation>Transformaciones relativas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="366"/>
         <source>Move Snap Enabled</source>
-        <translation>Movimiento por Acople Habilitado</translation>
+        <translation>Ajustar traslaciones a rejilla</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
-        <translation>Abrir Modelo Seleccionado</translation>
+        <translation>Abrir modelo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
-        <translation>Editar Submodelo Seleccionado</translation>
+        <translation>Editar submodelo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
-        <translation>Cerrar Edición del Submodelo</translation>
+        <translation>Finalizar edición de submodelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
-        <translation>Nuevo Submodelo...</translation>
+        <translation>Nuevo submodelo...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
-        <translation>Prop&amp;iedades…</translation>
+        <translation>Prop&amp;iedades...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="128"/>
@@ -1430,7 +1417,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="58"/>
         <source>Set &amp;Inventory...</source>
-        <translation>Escoger &amp;Inventario...</translation>
+        <translation>Escoger &amp;inventario...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="72"/>
@@ -1450,11 +1437,11 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="135"/>
         <source>Print Pre&amp;view...</source>
-        <translation>Pre&amp;via de impresión...</translation>
+        <translation>Vista pre&amp;via...</translation>
     </message>
     <message>
         <source>Print &amp;Bill of Materials...</source>
-        <translation type="vanished">Imprimir &amp;lista de materiales…</translation>
+        <translation type="vanished">Imprimir &amp;lista de materiales...</translation>
     </message>
     <message>
         <source>&amp;Recent1</source>
@@ -1509,17 +1496,17 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="226"/>
         <source>Find Ne&amp;xt</source>
-        <translation>Buscar Sig&amp;uiente</translation>
+        <translation>Buscar sig&amp;uiente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="233"/>
         <source>Find Pre&amp;vious</source>
-        <translation>Buscar Pre&amp;vio</translation>
+        <translation>Buscar an&amp;terior</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="240"/>
         <source>Find All</source>
-        <translation>Encontrar.Todos</translation>
+        <translation>Buscar todo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="247"/>
@@ -1529,57 +1516,57 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="254"/>
         <source>Replace Next</source>
-        <translation>Reemplazar Siguiente</translation>
+        <translation>Reemplazar siguiente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="261"/>
         <source>Replace All</source>
-        <translation>Replace Todos</translation>
+        <translation>Reemplazar todo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="268"/>
         <source>Select &amp;All</source>
-        <translation>Seleccionar &amp;Todo</translation>
+        <translation>Seleccionar &amp;todo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="275"/>
         <source>Select &amp;None</source>
-        <translation>Seleccionar &amp;Ninguno</translation>
+        <translation>Deseleccionar to&amp;do</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="282"/>
         <source>Select &amp;Invert</source>
-        <translation>&amp;Invertir la Selección</translation>
+        <translation>&amp;Invertir selección</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="289"/>
         <source>Select by Na&amp;me...</source>
-        <translation>Seleccionar por No&amp;mbre…</translation>
+        <translation>Seleccionar por no&amp;mbre...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="331"/>
         <source>Absolute Transforms</source>
-        <translation>Transformaciones Absolutas</translation>
+        <translation>Transformaciones absolutas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="338"/>
         <source>Toggle Relative Transforms</source>
-        <translation>Cambiar Tranformaciones Relativas</translation>
+        <translation>Alternar transformaciones relativas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="345"/>
         <source>Rotate Separately</source>
-        <translation>Rotar Separadamente</translation>
+        <translation>Rotar por separado</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="352"/>
         <source>Rotate Together</source>
-        <translation>Rotar Junto</translation>
+        <translation>Rotar juntas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="359"/>
         <source>Toggle Separate Transforms</source>
-        <translation>Cambiar Tranformaciones Separadas</translation>
+        <translation>Alternar transformaciones individuales</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="373"/>
@@ -1593,146 +1580,146 @@
         <location filename="../common/lc_commands.cpp" line="380"/>
         <location filename="../common/lc_commands.cpp" line="450"/>
         <source>1/20 Stud</source>
-        <translation>1/20 Tetón</translation>
+        <translation>1/20 tetón</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="387"/>
         <location filename="../common/lc_commands.cpp" line="457"/>
         <source>1/4 Stud</source>
-        <translation>1/4 Tetón</translation>
+        <translation>1/4 tetón</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="394"/>
         <location filename="../common/lc_commands.cpp" line="464"/>
         <source>1 Flat</source>
-        <translation>1 Placa</translation>
+        <translation>1 placa</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="401"/>
         <location filename="../common/lc_commands.cpp" line="471"/>
         <source>1/2 Stud</source>
-        <translation>1/2 Tetón</translation>
+        <translation>1/2 tetón</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="408"/>
         <location filename="../common/lc_commands.cpp" line="478"/>
         <source>1 Stud</source>
-        <translation>1 Tetón</translation>
+        <translation>1 tetón</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="415"/>
         <source>2 Studs</source>
-        <translation>2 Tetones</translation>
+        <translation>2 tetones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="422"/>
         <source>3 Studs</source>
-        <translation>3 Tetones</translation>
+        <translation>3 tetones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="429"/>
         <source>4 Studs</source>
-        <translation>4 Tetones</translation>
+        <translation>4 tetones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="436"/>
         <source>8 Studs</source>
-        <translation>8 Tetones</translation>
+        <translation>8 tetones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="485"/>
         <source>1 Brick</source>
-        <translation>1 Bloque</translation>
+        <translation>1 bloque</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="492"/>
         <source>2 Bricks</source>
-        <translation>2 Bloques</translation>
+        <translation>2 bloques</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="499"/>
         <source>4 Bricks</source>
-        <translation>4 Bloques</translation>
+        <translation>4 bloques</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="506"/>
         <source>8 Bricks</source>
-        <translation>8 Bloques</translation>
+        <translation>8 bloques</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="513"/>
         <source>Rotation Snap Enabled</source>
-        <translation>Rotación por Acople Habilitado</translation>
+        <translation>Ajustar rotaciones a rejilla</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="527"/>
         <source>1 Degree</source>
-        <translation>1 Grado</translation>
+        <translation>1 grado</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="534"/>
         <source>5 Degrees</source>
-        <translation>5 Grados</translation>
+        <translation>5 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="541"/>
         <source>15 Degrees</source>
-        <translation>15 Grados</translation>
+        <translation>15 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="548"/>
         <source>22.5 Degrees</source>
-        <translation>22.5 Grados</translation>
+        <translation>22.5 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="555"/>
         <source>30 Degrees</source>
-        <translation>30 Grados</translation>
+        <translation>30 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="562"/>
         <source>45 Degrees</source>
-        <translation>45 Grados</translation>
+        <translation>45 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="569"/>
         <source>60 Degrees</source>
-        <translation>60 Grados</translation>
+        <translation>60 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="576"/>
         <source>90 Degrees</source>
-        <translation>90 Grados</translation>
+        <translation>90 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="583"/>
         <source>180 Degrees</source>
-        <translation>180 Grados</translation>
+        <translation>180 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="590"/>
         <source>Transform</source>
-        <translation>Transformación</translation>
+        <translation>Transformaciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="597"/>
         <source>Absolute Translation</source>
-        <translation>Translación Absoluta</translation>
+        <translation>Traslación absoluta</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="604"/>
         <source>Relative Translation</source>
-        <translation>Translación Relativa</translation>
+        <translation>Traslación relativa</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="611"/>
         <source>Absolute Rotation</source>
-        <translation>Rotación Absoluta</translation>
+        <translation>Rotación absoluta</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="618"/>
         <source>Relative Rotation</source>
-        <translation>Rotación Relativa</translation>
+        <translation>Rotación relativa</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="625"/>
@@ -1782,12 +1769,12 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="688"/>
         <source>Color Picker</source>
-        <translation>Selector de Color</translation>
+        <translation>Selector de color</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="695"/>
         <source>Zoom</source>
-        <translation>Ampliación</translation>
+        <translation>Ampliar</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="702"/>
@@ -1797,27 +1784,27 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="709"/>
         <source>Rotate View</source>
-        <translation>Rotar Vista</translation>
+        <translation>Rotar vista</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="716"/>
         <source>Roll</source>
-        <translation>Pivotar la Vista</translation>
+        <translation>Pivotar vista</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="723"/>
         <source>Zoom Region</source>
-        <translation>Ampliar Región</translation>
+        <translation>Ampliar región</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="730"/>
         <source>Cancel Action</source>
-        <translation>Cancelar Acción</translation>
+        <translation>Cancelar acción</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="737"/>
         <source>P&amp;references...</source>
-        <translation>P&amp;referencias…</translation>
+        <translation>P&amp;referencias...</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="744"/>
@@ -1832,42 +1819,42 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="758"/>
         <source>Zoom E&amp;xtents</source>
-        <translation>&amp;Ver Todo</translation>
+        <translation>&amp;Ver todo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="765"/>
         <source>Look At</source>
-        <translation>Ver el Modelo</translation>
+        <translation>Ver modelo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="772"/>
         <source>Move Forward</source>
-        <translation>Mover Adelante</translation>
+        <translation>Mover adelante</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="779"/>
         <source>Move Backward</source>
-        <translation>Mover Atrás</translation>
+        <translation>Mover atrás</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="786"/>
         <source>Move Left</source>
-        <translation>Mover Izquierda</translation>
+        <translation>Mover a la izquierda</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="793"/>
         <source>Move Right</source>
-        <translation>Mover Derecha</translation>
+        <translation>Mover a la derecha</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="800"/>
         <source>Move Up</source>
-        <translation>Mover Arriba</translation>
+        <translation>Mover arriba</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="807"/>
         <source>Move Down</source>
-        <translation>Mover Abajo</translation>
+        <translation>Mover abajo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="814"/>
@@ -1985,579 +1972,578 @@
         <translation>Cámara 16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>Reset</source>
-        <translation>Reiniciar</translation>
+        <translation type="vanished">Reiniciar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
+        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>First</source>
         <translation>Primero</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
-        <translation>Previo</translation>
+        <translation>Anterior</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation>Siguiente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translation>Último</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
-        <translation>Insertar Antes</translation>
+        <translation>Insertar antes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
-        <translation>Insertar Después</translation>
+        <translation>Insertar después</translation>
     </message>
     <message>
         <source>Insert Step</source>
-        <translation type="vanished">Insertar Paso</translation>
+        <translation type="vanished">Insertar paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
-        <translation>Quitar Paso</translation>
+        <translation>Quitar paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
-        <translation>Añadir Claves</translation>
+        <translation>Añadir claves</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
-        <translation>Dividir &amp;Horizontalmente</translation>
+        <translation>Dividir &amp;horizontalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
-        <translation>Dividir &amp;Verticalmente</translation>
+        <translation>Dividir &amp;verticalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
-        <translation>Qui&amp;tar Vista</translation>
+        <translation>Qui&amp;tar vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
-        <translation>Resetear &amp;Vistas</translation>
+        <translation>Reiniciar &amp;vistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
-        <translation>Estandar</translation>
+        <translation>Estándar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation>Herramientas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation>Tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation>Piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation>Colores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation>Propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
-        <translation>Línea de Tiempo</translation>
+        <translation>Línea de tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
-        <translation>Previa</translation>
+        <translation>Vista previa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
-        <translation>&amp;Pantalla Completa</translation>
+        <translation>&amp;Pantalla completa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
-        <translation>Cerrar &amp;Pestaña</translation>
+        <translation>Cerrar &amp;pestaña</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation>&amp;Malla</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
-        <translation>&amp;Sombreado Plano</translation>
+        <translation>&amp;Sombreado plano</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
-        <translation>&amp;Luces por Defecto</translation>
+        <translation>&amp;Luces predeterminadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translation>&amp;Perspectiva</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
-        <translation>&amp;Ortográfico</translation>
+        <translation>&amp;Ortográfica</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
-        <translation>Ver Esfera</translation>
+        <translation>Ver esfera</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
-        <translation>Icono de los Ejes</translation>
+        <translation>Icono de ejes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
-        <translation>Malla Base</translation>
+        <translation>Cuadrícula base</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
-        <translation>Desvanecer Pasos Previos</translation>
+        <translation>Atenuar pasos anteriores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation>&amp;Insertar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation>&amp;Borrar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation>&amp;Duplicar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
-        <translation>&amp;Pintar Seleccionado</translation>
+        <translation>&amp;Pintar selección</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
-        <translation>Reiniciar el &amp;Punto de Pivote</translation>
+        <translation>Reiniciar &amp;punto de pivote</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
-        <translation>Quitar &amp;Fotogramas Clave</translation>
+        <translation>Quitar &amp;fotogramas clave</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
-        <translation>Insertar un Punto de Control</translation>
+        <translation>Insertar punto de control</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
-        <translation>Quitar el Punto de Control</translation>
+        <translation>Quitar punto de control</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation>Mover +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation>Mover -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation>Mover +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation>Mover -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation>Mover +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation>Mover -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation>Rotar +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation>Rotar -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation>Rotar +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation>Rotar -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation>Rotar +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation>Rotar -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
-        <translation>&amp;Asistente de Minifig…</translation>
+        <translation>&amp;Asistente de Minifig...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
-        <translation>&amp;Conjunto…</translation>
+        <translation>&amp;Secuencia...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
-        <translation>Mover al Nuevo Modelo…</translation>
+        <translation>Mover a modelo nuevo...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
-        <translation>Fusionar los Modelos Seleccionados</translation>
+        <translation>Fusionar modelos seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translation>&amp;Agrupar...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation>&amp;Desagrupar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
-        <translation>&amp;Añadir al Grupo</translation>
+        <translation>&amp;Añadir a grupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
-        <translation>Qui&amp;tar del Grupo</translation>
+        <translation>Qui&amp;tar del grupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
-        <translation>&amp;Editar Grupos…</translation>
+        <translation>&amp;Editar grupos...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
-        <translation>&amp;Ocultar la Selección</translation>
+        <translation>&amp;Ocultar seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
-        <translation>Ocultar los no &amp;Seleccionados</translation>
+        <translation>Ocultar no &amp;seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
-        <translation>&amp;Mostrar los Seleccionados</translation>
+        <translation>&amp;Mostrar seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
-        <translation>Mostrar &amp;Todo</translation>
+        <translation>Mostrar &amp;todas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
-        <translation>Mostrar Anterior</translation>
+        <translation>Mostrar en paso anterior</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
-        <translation>Mostrar Posterior</translation>
+        <translation>Mostrar en paso siguiente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation>Submodelos...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation>Modelo 1</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation>Modelo 2</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation>Modelo 3</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation>Modelo 4</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation>Modelo 5</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation>Modelo 6</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation>Modelo 7</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation>Modelo 8</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation>Modelo 9</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation>Modelo 10</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation>Modelo 11</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation>Modelo 12</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation>Modelo 13</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation>Modelo 14</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation>Modelo 15</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation>Modelo 16</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation>Modelo 17</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation>Modelo 18</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation>Modelo 19</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation>Modelo 20</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation>Modelo 21</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation>Modelo 22</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation>Modelo 23</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation>Modelo 24</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation>Modelo 25</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation>Modelo 26</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation>Modelo 27</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation>Modelo 28</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation>Modelo 29</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation>Modelo 30</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation>Modelo 31</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation>Modelo 32</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation>Modelo 33</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation>Modelo 34</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation>Modelo 35</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation>Modelo 36</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation>Modelo 37</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation>Modelo 38</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation>Modelo 39</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation>Modelo 40</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
-        <translation>Reportar un Error</translation>
+        <translation>Reportar errores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
-        <translation>Insertar Paso Antes</translation>
+        <translation>Insertar paso antes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
-        <translation>Insertar Paso Despues</translation>
+        <translation>Insertar paso después</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
-        <translation>Mover la Selección Aquí</translation>
+        <translation>Mover selección aquí</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
-        <translation>Escoger el Paso Actual</translation>
+        <translation>Usar como paso actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
-        <translation>&amp;Pagina Principal de LeoCAD</translation>
+        <translation>&amp;Pagina principal de LeoCAD</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="142"/>
@@ -2582,7 +2568,7 @@
     <message>
         <location filename="../common/lc_commands.cpp" line="212"/>
         <source>Paste with Steps</source>
-        <translation>Pegar con Pasos</translation>
+        <translation>Pegar con pasos</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="219"/>
@@ -2590,12 +2576,12 @@
         <translation>&amp;Buscar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
-        <translation>&amp;Verificar Actualizaciones…</translation>
+        <translation>&amp;Comprobar actualizaciones...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation>&amp;Acerca de...</translation>
     </message>
@@ -2603,282 +2589,280 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
-        <translation>NuevaPieza</translation>
+        <translation type="unfinished">NuevaPieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
-        <translation>NuevoPuntodeLuz</translation>
+        <translation type="unfinished">NuevoPuntoDeLuz</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
-        <translation>NuevoFoco</translation>
+        <translation type="unfinished">NuevoFoco</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
-        <translation>NuevaCámara</translation>
+        <translation type="unfinished">NuevaCamara</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation>Seleccionar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation>Mover</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation>Rotar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation>Borrar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation>Pintar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
-        <translation>Selector de Color</translation>
+        <translation>Selector de color</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translation>Ampliación</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation>Desplazar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation>Orbitar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
-        <translation>Pivotar la Vista</translation>
+        <translation>Pivotar la vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
-        <translation>AmpliarRegión</translation>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
-        <translation>Nombre Vacío</translation>
-    </message>
-    <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <translation>Nombre vacío</translation>
+    </message>
+    <message>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
-        <translation>Error leyendo fichero &apos;%1&apos;:
+        <translation>Error leyendo archivo &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
-        <translation>Error cargando fichero &apos;%1&apos;:
-Formato de fichero no reconocido.</translation>
+        <translation>Error cargando archivo &apos;%1&apos;:
+Formato de archivo no reconocido.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Fusionado </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
-        <translation>Nada para Exportar.</translation>
+        <translation>Nada que exportar.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Exportar a 3D Studio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
-        <translation>Archivos 3DS (*.3ds);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos 3DS (*.3ds);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
-        <translation>No se pudo abrir el archivo « %1 » para guardar.</translation>
+        <translation>No se pudo abrir el archivo &apos;%1&apos; para escritura.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Exportar a BrickLink</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
-        <translation>Archivos XML (*.xml);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos XML (*.xml);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation>Exportar COLLADA</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
-        <translation>Archivos COLLADA (*.dae);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos COLLADA (*.dae);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Exportar a CSV</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
-        <translation>Archivos CSV (*.csv);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos CSV (*.csv);;Todos los archivos (*.*)</translation>
     </message>
     <message>
         <source>Error creating images.</source>
         <translation type="vanished">Error creando imágenes.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation>Exportar a POV-Ray</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
-        <translation>Archivos POV-Ray (*.pov);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos POV-Ray (*.pov);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
-        <translation>No se pudo encontrar los archivos LGEO en la carpeta « %1 ».</translation>
+        <translation>No se pudo encontrar los archivos LGEO en la carpeta &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Exportar a Wavefront</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Archivos Wavefront (*.obj);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
-        <translation>Error guardando el archivo « %1 » :
+        <translation>Error escribiendo el archivo &apos;%1&apos; :
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
-        <translation>Nuevo Modelo.ldr</translation>
+        <translation>Nuevo modelo.ldr</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
-        <translation>Nuevo Modelo.mpd</translation>
+        <translation>Nuevo modelo.mpd</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation>Submodelo #</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
-        <translation>Nombre del Submodelo:</translation>
+        <translation>Nombre de submodelo:</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation>El nombre del submodelo no puede estar vacío.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
-        <translation>Duplicar Submodelo</translation>
+        <translation>Duplicar submodelo</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
-        <translation>Un submodelo llamado &apos;%1&apos; ya existe, por favor ponga un nombre único.</translation>
+        <translation>Ya existe un submodelo llamado &apos;%1&apos;. Por favor, utiliza otro nombre.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
-        <translation>Nuevo Submodelo</translation>
+        <translation>Nuevo submodelo</translation>
     </message>
 </context>
 <context>
@@ -2886,37 +2870,37 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/group.cpp" line="43"/>
         <source>Group #</source>
-        <translation>Grupo n°</translation>
+        <translation>Grupo #</translation>
     </message>
     <message>
         <source>Solid Colors</source>
         <comment>Colors</comment>
-        <translation type="vanished">Colores Sólidos</translation>
+        <translation type="vanished">Colores sólidos</translation>
     </message>
     <message>
         <source>Translucent Colors</source>
         <comment>Colors</comment>
-        <translation type="vanished">Colores Translúcidos</translation>
+        <translation type="vanished">Colores translúcidos</translation>
     </message>
     <message>
         <source>Special Colors</source>
         <comment>Colors</comment>
-        <translation type="vanished">Colores Especiales</translation>
+        <translation type="vanished">Colores especiales</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
-        <translation>Solido</translation>
+        <translation>Sólido</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
-        <translation>Translucido</translation>
+        <translation>Translúcido</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation>Especial</translation>
@@ -2925,14 +2909,25 @@ Formato de fichero no reconocido.</translation>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation>Error</translation>
+        <translation type="vanished">Error</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Failed to load &apos;%1&apos;.</source>
-        <translation>Fallo al cargar &apos;%1&apos;.</translation>
+        <translation type="vanished">Fallo al cargar &apos;%1&apos;.</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation>LeoCAD</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation>No se pudo abrir el archivo &apos;%1&apos; para escritura.</translation>
     </message>
 </context>
 <context>
@@ -2940,21 +2935,21 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="45"/>
         <source>Save a picture of the current view</source>
-        <translation>Guardar una imagen de la vista actual</translation>
+        <translation>Guarda una imagen de la vista actual</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="87"/>
         <source>Export a list of parts used in BrickLink XML format</source>
-        <translation>Exportar una lista de las piezas usadas en formato XML de BrickLink</translation>
+        <translation>Exporta una lista de las piezas usadas en formato XML de BrickLink</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="94"/>
         <source>Export a list of parts used in comma delimited file format</source>
-        <translation>Exportar una lista de las piezas usadas en formato de coma delimitada</translation>
+        <translation>Exporta una lista de las piezas usadas en formato delimitado por comas</translation>
     </message>
     <message>
         <source>Print a list of parts used</source>
-        <translation type="vanished">Imprimir una lista de piezas usadas</translation>
+        <translation type="vanished">Imprime una lista de piezas usadas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="178"/>
@@ -2982,11 +2977,11 @@ Formato de fichero no reconocido.</translation>
     </message>
     <message>
         <source>Find object</source>
-        <translation type="vanished">Buscar objecto</translation>
+        <translation type="vanished">Buscar un objeto</translation>
     </message>
     <message>
         <source>Find next object</source>
-        <translation type="vanished">Buscar el siguiente objecto</translation>
+        <translation type="vanished">Buscar el siguiente objeto</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="276"/>
@@ -2996,137 +2991,137 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="283"/>
         <source>Invert the current selection set</source>
-        <translation>Invertir el conjunto de selección actual</translation>
+        <translation>Invertir la selección actual</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="290"/>
         <source>Select objects by name</source>
-        <translation>Seleccionar objetos por su nombre</translation>
+        <translation>Seleccionar objetos por nombre</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="367"/>
         <source>Toggle snap axes</source>
-        <translation>Cambiar los ejes de acoplado</translation>
+        <translation>Alternar el ajuste a la rejilla para traslaciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="514"/>
         <source>Snap rotations to fixed intervals</source>
-        <translation>Acoplar rotaciones a intervalos fijos</translation>
+        <translation>Ajustar rotaciones a intervalos fijos</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="374"/>
         <source>Do not snap movement along the XY plane</source>
-        <translation>No acoplar el movimiento a lo largo del plano XY</translation>
+        <translation>No ajustar traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="381"/>
         <source>Snap movement along the XY plane to 1/20 stud</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 1/20</translation>
+        <translation>Ajustar 1/20 tetón las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="388"/>
         <source>Snap movement along the XY plane to 1/4 stud</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 1/4</translation>
+        <translation>Ajustar 1/4 tetón las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="395"/>
         <source>Snap movement along the XY plane to 1 flat</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY a la placa 1</translation>
+        <translation>Ajustar 1 placa las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="402"/>
         <source>Snap movement along the XY plane to 1/2 stud</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 1/2</translation>
+        <translation>Ajustar 1/2 tetón las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="409"/>
         <source>Snap movement along the XY plane to 1 stud</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 1</translation>
+        <translation>Ajustar 1 tetón las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="416"/>
         <source>Snap movement along the XY plane to 2 studs</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 2</translation>
+        <translation>Ajustar 2 tetones las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="423"/>
         <source>Snap movement along the XY plane to 3 studs</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 3</translation>
+        <translation>Ajustar 3 tetones las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="430"/>
         <source>Snap movement along the XY plane to 4 studs</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 4</translation>
+        <translation>Ajustar 4 tetones las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="437"/>
         <source>Snap movement along the XY plane to 8 studs</source>
-        <translation>Acoplar el movimiento a lo largo del plano XY al Tetón de 8</translation>
+        <translation>Ajustar 8 tetones las traslaciones en el plano XY</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="444"/>
         <source>Do not snap movement along the Z axis</source>
-        <translation>No acoplar el movimiento a lo largo del eje Z</translation>
+        <translation>No ajustar traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="451"/>
         <source>Snap movement along the Z axis to 1/20 stud</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Tetón de 1/20</translation>
+        <translation>Ajustar 1/20 tetón las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="458"/>
         <source>Snap movement along the Z axis to 1/4 stud</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Tetón de 1/4</translation>
+        <translation>Ajustar 1/4 tetón las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="465"/>
         <source>Snap movement along the Z axis to 1 flat</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z a la placa de 1</translation>
+        <translation>Ajustar 1 placa las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="472"/>
         <source>Snap movement along the Z axis to 1/2 stud</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Tetón de 1/2</translation>
+        <translation>Ajustar 1/2 tetón las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="479"/>
         <source>Snap movement along the Z axis to 1 stud</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Tetón de 1</translation>
+        <translation>Ajustar 1 tetón las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="486"/>
         <source>Snap movement along the Z axis to 1 brick</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Bloque de 1</translation>
+        <translation>Ajustar 1 bloque las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="493"/>
         <source>Snap movement along the Z axis to 2 bricks</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Bloque de 2</translation>
+        <translation>Ajustar 2 bloques las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="500"/>
         <source>Snap movement along the Z axis to 4 bricks</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Bloque de 4</translation>
+        <translation>Ajustar 4 bloques las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="507"/>
         <source>Snap movement along the Z axis to 8 bricks</source>
-        <translation>Acoplar el movimiento a lo largo del eje Z al Bloque de 8</translation>
+        <translation>Ajustar 8 bloques las traslaciones en el eje Z</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="521"/>
         <source>Do not snap rotations</source>
-        <translation>No acoplar rotaciones</translation>
+        <translation>No ajustar rotaciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="528"/>
         <source>Snap rotations to 1 degree</source>
-        <translation>Acoplar rotaciones a 1 grado</translation>
+        <translation>Ajustar rotaciones a 1 grado</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="535"/>
         <source>Snap rotations to 5 degrees</source>
-        <translation>Acoplar rotaciones a 5 grados</translation>
+        <translation>Ajustar rotaciones a 5 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="10"/>
@@ -3156,7 +3151,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="52"/>
         <source>Import a file in LEGO Digital Designer LXF format</source>
-        <translation>Importar un archivo de LEGO-Digital Designer formato LXF</translation>
+        <translation>Importar un archivo en formato LXF de LEGO-Digital Designer</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="59"/>
@@ -3166,12 +3161,12 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="66"/>
         <source>Export the current model in 3D Studio 3DS format</source>
-        <translation>Exportar el modelo actual en formato 3D Studio Formato 3DS</translation>
+        <translation>Exportar el modelo actual en formato 3DS de 3D Studio</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="73"/>
         <source>Export the current model in COLLADA DAE format</source>
-        <translation>Exportar el modelo actual en formato COLLADA Formato DAE</translation>
+        <translation>Exportar el modelo actual en formato DAE de COLLADA</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="80"/>
@@ -3186,7 +3181,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="108"/>
         <source>Export the current model in Wavefront OBJ format</source>
-        <translation>Exportar el modelo actual en formato Wavefront Formato OBJ</translation>
+        <translation>Exportar el modelo actual en formato OBJ de Wavefront</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="115"/>
@@ -3201,7 +3196,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="136"/>
         <source>Display how the model would look if printed</source>
-        <translation>Mostrar como ser veria el modelo imprimido</translation>
+        <translation>Mostrar cómo ser vería el modelo imprimido</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="143"/>
@@ -3214,7 +3209,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="171"/>
         <source>Quit the application; prompts to save model</source>
-        <translation>Salir del programa; notificacion para guardar el modelo</translation>
+        <translation>Salir del programa; notificación para guardar el modelo</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="269"/>
@@ -3228,7 +3223,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="297"/>
         <source>Select one piece at a time</source>
-        <translation>Seleccionar una pieza a la vez</translation>
+        <translation>Seleccionar piezas de una en una</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="304"/>
@@ -3248,7 +3243,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="325"/>
         <source>Move and rotate objects relative to the one that has focus</source>
-        <translation>Mover y rotar objectos relativos al que tiene el foco</translation>
+        <translation>Mover y rotar objetos relativos al que tiene el foco</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="332"/>
@@ -3258,17 +3253,17 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="339"/>
         <source>Toggle moving and rotating objects relative to the one that has focus</source>
-        <translation>Cambiar mover y rotar objetos relativos al que tiene el foco</translation>
+        <translation>Alternar mover y rotar objetos relativos al que tiene el foco</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="346"/>
         <source>Rotate selected pieces separately</source>
-        <translation>Rotar piezas seleccionadas separadamente</translation>
+        <translation>Rotar cada pieza seleccionada individualmente</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="353"/>
         <source>Rotate selected pieces together</source>
-        <translation>Rotar piezas seleccionadas juntas</translation>
+        <translation>Rotar piezas seleccionadas como si fueran una sola</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="360"/>
@@ -3278,52 +3273,52 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="542"/>
         <source>Snap rotations to 15 degrees</source>
-        <translation>Acoplar rotaciones a 15 grados</translation>
+        <translation>Ajustar rotaciones a 15 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="549"/>
         <source>Snap rotations to 22.5 degrees</source>
-        <translation>Acoplar rotaciones a 22.5 grados</translation>
+        <translation>Ajustar rotaciones a 22.5 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="556"/>
         <source>Snap rotations to 30 degrees</source>
-        <translation>Acoplar rotaciones a 30 grados</translation>
+        <translation>Ajustar rotaciones a 30 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="563"/>
         <source>Snap rotations to 45 degrees</source>
-        <translation>Acoplar rotaciones a 45 grados</translation>
+        <translation>Ajustar rotaciones a 45 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="570"/>
         <source>Snap rotations to 60 degrees</source>
-        <translation>Acoplar rotaciones a 60 grados</translation>
+        <translation>Ajustar rotaciones a 60 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="577"/>
         <source>Snap rotations to 90 degrees</source>
-        <translation>Acoplar rotaciones a 90 grados</translation>
+        <translation>Ajustar rotaciones a 90 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="584"/>
         <source>Snap rotations to 180 degrees</source>
-        <translation>Acoplar rotaciones a 180 grados</translation>
+        <translation>Ajustar rotaciones a 180 grados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="591"/>
         <source>Apply transform to selected objects</source>
-        <translation>Aplicar tranformaciones a los objetos seleccionados</translation>
+        <translation>Aplicar transformaciones a los objetos seleccionados</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="598"/>
         <source>Switch to absolute translation mode when applying transforms</source>
-        <translation>Cambiar al modo de translación absoluta cuando se apliquen transformaciones</translation>
+        <translation>Cambiar al modo de traslación absoluta cuando se apliquen transformaciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="605"/>
         <source>Switch to relative translation mode when applying transforms</source>
-        <translation>Cambiar al modo de translación relativa cuando se apliquen transformaciones</translation>
+        <translation>Cambiar al modo de traslación relativa cuando se apliquen transformaciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="612"/>
@@ -3358,7 +3353,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="654"/>
         <source>Select objects (hold the CTRL key down or drag the mouse to select multiple objects)</source>
-        <translation>Seleccionar objetos (mantener pulsado Ctrl o arrastrar el ratón para seleccionar multiples objetos)</translation>
+        <translation>Seleccionar objetos (mantener pulsado Ctrl o arrastrar el ratón para seleccionar múltiples objetos)</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="661"/>
@@ -3383,12 +3378,12 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="689"/>
         <source>Get piece color</source>
-        <translation>Coger color de la pieza</translation>
+        <translation>Obtener el color de una pieza</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="696"/>
         <source>Zoom in or out</source>
-        <translation>Ampliar o Reducir</translation>
+        <translation>Ampliar o reducir</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="703"/>
@@ -3438,7 +3433,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="766"/>
         <source>Rotate view so selected pieces are at center</source>
-        <translation>Rotar vista para que las piezas seleccionadas esten centradas</translation>
+        <translation>Rotar vista para que las piezas seleccionadas estén centradas</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="773"/>
@@ -3448,7 +3443,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="780"/>
         <source>Move the current view backward</source>
-        <translation>Mover la vista actual hacia atras</translation>
+        <translation>Mover la vista actual hacia atrás</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="787"/>
@@ -3478,7 +3473,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="822"/>
         <source>View model from the back</source>
-        <translation>Ver el modelo desde detras</translation>
+        <translation>Ver el modelo desde atrás</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="829"/>
@@ -3503,12 +3498,12 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="857"/>
         <source>View model from the default position</source>
-        <translation>Ver el modelo desde la posición por defecto</translation>
+        <translation>Ver el modelo desde la posición predeterminada</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="864"/>
         <source>Do not use a camera</source>
-        <translation>No usar cámara</translation>
+        <translation>No usar ninguna cámara</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="871"/>
@@ -3531,27 +3526,26 @@ Formato de fichero no reconocido.</translation>
         <translation>Usar esta cámara</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Reset views to their default positions</source>
-        <translation>Reinicializar las vistas a sus posiciones por defecto</translation>
+        <translation type="vanished">Reiniciar las vistas a sus posiciones predeterminadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="990"/>
+        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Go to the first step of the model</source>
         <translation>Ir al primer paso del modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="997"/>
+        <location filename="../common/lc_commands.cpp" line="990"/>
         <source>Go to the previous step</source>
-        <translation>Ir al paso previo del modelo</translation>
+        <translation>Ir al anterior paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1004"/>
+        <location filename="../common/lc_commands.cpp" line="997"/>
         <source>Go to the next step</source>
         <translation>Ir al siguiente paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1004"/>
         <source>Go to the last step of the model</source>
         <translation>Ir al último paso del modelo</translation>
     </message>
@@ -3560,47 +3554,48 @@ Formato de fichero no reconocido.</translation>
         <translation type="vanished">Insertar nuevo paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
+        <location filename="../common/lc_commands.cpp" line="1025"/>
+        <location filename="../common/lc_commands.cpp" line="1809"/>
         <source>Remove current step</source>
         <translation>Quitar el paso actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation>Cerrar la pestaña actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
-        <translation>Quitar la seleccion del punto de control</translation>
+        <translation>Quitar la selección del punto de control</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translation>Abrir el modelo referenciado por la pieza seleccionada en la nueva pestaña</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation>Mover las piezas seleccionadas a un nuevo modelo y reemplazarlas con una referencia al modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation>Crear un nuevo submodelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation>Mostrar las propiedades del submodelo actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation>Mostrar una lista de todos los submodelos</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -3640,44 +3635,43 @@ Formato de fichero no reconocido.</translation>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation>Cambiar a este submodelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
-        <translation>Abrir la página de reporte de errores de LeoCAD en tu navegador por defecto</translation>
+        <translation>Abrir la página de reporte de errores de LeoCAD en tu navegador predeterminado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
-        <translation>Mover las piezas seleccionadas en este paso</translation>
+        <translation>Mover las piezas seleccionadas a este paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation>Ver el modelo actual en la línea de tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
-        <translation>Activar añadir nuevas claves de animación</translation>
+        <translation>Alternar añadir nuevas claves de animación</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="122"/>
         <source>Configure instructions layout</source>
-        <translation>Configurar composicion de las instrucciones</translation>
+        <translation>Configurar diseño de instrucciones</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="206"/>
         <source>Insert Clipboard contents in the current step</source>
-        <translation>Insertar contenido del Portapapeles en el paso actual</translation>
+        <translation>Insertar contenido del portapapeles en el paso actual</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="213"/>
         <source>Insert Clipboard contents in their original steps</source>
-        <translation>Insertar contenido del Portapapeles en los pasos originales</translation>
+        <translation>Insertar contenido del portapapeles en sus pasos originales</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="220"/>
@@ -3692,12 +3686,12 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="234"/>
         <source>Find previous piece</source>
-        <translation>Buscar pieza anterior</translation>
+        <translation>Buscar anterior pieza</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="241"/>
         <source>Find all pieces that match the search criteria</source>
-        <translation>Encontrar todas las piezas que concuerden con el criterio de busqueda</translation>
+        <translation>Buscar todas las piezas que coincidan con el criterio de búsqueda</translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="248"/>
@@ -3712,295 +3706,295 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_commands.cpp" line="262"/>
         <source>Replace all pieces that match the search criteria</source>
-        <translation>Reemplazar todas las piezas que concuerden con el criterio de busqueda</translation>
+        <translation>Reemplazar todas las piezas que coincidan con el criterio de búsqueda</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1018"/>
-        <location filename="../common/lc_commands.cpp" line="1802"/>
+        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
         <source>Insert a new step before the current step</source>
-        <translation>Insertar un nuevo paso antes del paso actual</translation>
+        <translation>Insertar nuevo paso antes del paso actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1025"/>
-        <location filename="../common/lc_commands.cpp" line="1809"/>
+        <location filename="../common/lc_commands.cpp" line="1018"/>
+        <location filename="../common/lc_commands.cpp" line="1802"/>
         <source>Insert a new step after the current step</source>
-        <translation>Insertar un nuevo paso despues del paso actual</translation>
+        <translation>Insertar nuevo paso después del paso actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation>Dividir la vista actual horizontalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation>Dividir la vista actual verticalmente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation>Quitar la vista actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation>Reiniciar todas las vistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
-        <translation>Cambiar la Barra de Herramientas Estandar</translation>
+        <translation>Alternar barra de herramientas estándar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Utilidades</translation>
+        <translation>Alternar barra de herramientas de utilidades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Tiempo</translation>
+        <translation>Alternar barra de herramientas de tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Partes</translation>
+        <translation>Alternar barra de herramientas de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Colores</translation>
+        <translation>Alternar barra de herramientas de colores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Propiedades</translation>
+        <translation>Alternar barra de herramientas de propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Linea de tiempo</translation>
+        <translation>Alternar barra de herramientas de línea de tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
-        <translation>Cambiar Barra de Herramientas de Previa</translation>
+        <translation>Alternar barra de herramientas de vista previa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
-        <translation>Activar modo de pantalla completa</translation>
+        <translation>Alternar el modo pantalla completa</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translation>Mostrar la escena como malla</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
-        <translation>Mostrar las escena sin sombreados o luces</translation>
+        <translation>Mostrar la escena sin sombreados ni luces</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
-        <translation>Mostrar la escena con las luces por defecto</translation>
+        <translation>Mostrar la escena con las luces predeterminadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
-        <translation>Asignar a la cámara actual la perspectiva de proyección</translation>
+        <translation>Asignar a la cámara actual la proyección de perspectiva</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation>Asignar a la cámara actual la proyección ortográfica</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
-        <translation>Cambiar la vista de esfera</translation>
+        <translation>Alternar la esfera de la vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
-        <translation>Cambiar icono del eje</translation>
+        <translation>Alternar icono de ejes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
-        <translation>Cambiar Malla</translation>
+        <translation>Alternar cuadrícula</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
-        <translation>Cambiar Desvanecer pasos previos</translation>
+        <translation>Alternar atenuar pasos previos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
-        <translation>Añadir una pieza al modelo</translation>
+        <translation>Añadir nueva pieza al modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation>Borrar objetos seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
-        <translation>Crear una copia de las piezas seleccionadas</translation>
+        <translation>Crear copia de las piezas seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
-        <translation>Cambiar el color de las piezas seleccionadas</translation>
+        <translation>Cambiar color de las piezas seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
-        <translation>Reicinializar el punto de pivote de las piezas seleccionadas a su origen</translation>
+        <translation>Reiniciar punto de pivote de las piezas seleccionadas a su origen</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
-        <translation>Quitar todos los fotogramas claves de las piezas seleccionadas</translation>
+        <translation>Quitar todos los fotogramas clave de las piezas seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation>Insertar un nuevo punto de control</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation>Mover los objetos seleccionados a lo largo del eje X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation>Mover los objetos seleccionados a lo largo del eje Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation>Mover los objetos seleccionados a lo largo del eje Z</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation>Rotar los objetos seleccionados a lo largo del eje X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation>Rotar los objetos seleccionados a lo largo del eje Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation>Rotar los objetos seleccionados a lo largo del eje Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation>Añadir un nuevo minifig al modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation>Hacer copias de las piezas seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation>Insertar los contenidos de las referencias del modelo seleccionado en modelo actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
-        <translation>Editar el submodelo seleccinado actual en el lugar</translation>
+        <translation>Editar el submodelo seleccionado actual in-situ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
-        <translation>Finalizar la edición del submodelo en su lugar</translation>
+        <translation>Finalizar la edición del submodelo in-situ</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
-        <translation>Agrupar las piezas seleccionadas juntas</translation>
+        <translation>Agrupar las piezas seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation>Desagrupar el grupo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation>Añadir la pieza enfocada al grupo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation>Quitar la pieza enfocada del grupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation>Editar grupos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation>Ocultar los objetos seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation>Ocultar objetos que no han sido seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
-        <translation>Mostrar los objetos ocultos que estan seleccionados</translation>
+        <translation>Mostrar los objetos ocultos que están seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation>Mostrar todos los objetos ocultos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
-        <translation>Montrer les pièces sélectionnées une étape plus tôt</translation>
+        <translation>Mover piezas seleccionadas un paso atrás</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
-        <translation>Montrer les pièces sélectionnées une étape plus tard</translation>
+        <translation>Mover piezas seleccionadas un paso después</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
-        <translation>Ouvrir la page d’accueil de LeoCAD avec votre navigateur web par défaut</translation>
+        <translation>Abrir la página de LeoCAD en internet usando tu navegador predeterminado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
-        <translation>Vérifier si une nouvelle version de LeoCAD ou de la bibliothèque de pièces est disponible</translation>
+        <translation>Comprobar si hay nuevas versiones de LeoCAD o de la biblioteca de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
-        <translation>Voir la version du programme et des informations sur le système</translation>
+        <translation>Mostrar versión del programa e información del sistema</translation>
     </message>
 </context>
 <context>
@@ -4018,7 +4012,7 @@ Formato de fichero no reconocido.</translation>
     <message>
         <location filename="../common/lc_viewsphere.cpp" line="68"/>
         <source>Back</source>
-        <translation>Detras</translation>
+        <translation>Detrás</translation>
     </message>
     <message>
         <location filename="../common/lc_viewsphere.cpp" line="69"/>
@@ -4039,450 +4033,506 @@ Formato de fichero no reconocido.</translation>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
-        <translation>LeoCAD no pudo encontrar una biblioteca de piezas compatible con lo que solo un reducido número de piezas estaran disponibles.
+        <translation>LeoCAD no pudo encontrar ninguna biblioteca de piezas compatible por lo que solo un reducido número de piezas estará disponible.
 
-Por favor Visita https://www.leocad.org para aprender como descargar e instalar una biblioteca.</translation>
+Por favor, visita https://www.leocad.org para saber cómo descargar e instalar una biblioteca.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>No hay suficientes parámetros para la opción &apos;%1&apos;.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Especificado valor de parámetro inválido para la opción &apos;%1&apos; option: &apos;%2&apos;.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>El archivo &apos;%1&apos; no se puede leer.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Valores de parámetros inválidos especificados para la opción &apos;%1&apos;: los límites son +/- 360 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Valores de parámetros inválidos especificados para la opción &apos;%1&apos;.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Valores de parámetros inválidos especificados para la opción &apos;%1&apos;: se ha de cumplir: 1 &lt;= &lt;cerca&gt; &lt; &lt;lejos&gt;.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>La opción &apos;%1&apos; necesita que esté activado el contraste alto para el estilo de tetón, pero no lo está.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>La opción &apos;%1&apos; necesita que esté activado el color de border automático, pero no lo está.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
-        <translation type="unfinished"></translation>
+        <translation>LeoCAD compilación continua %1
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
-        <translation type="unfinished">Version de LeoCAD %1
+        <translation>LeoCAD versión %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Compilado %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Uso: leocad [opciones] [archivo]</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  [opciones] puede ser:</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -l, --libpath &lt;ruta&gt;: Establece la ubicación de la biblioteca de piezas a ruta.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -i, --image &lt;outfile.ext&gt;: Guarda una imagen en el formato especificado por ext y termina.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -w, --width &lt;ancho&gt;: Establece la anchura de la imagen.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -h, --height &lt;altura&gt;: Establece la altura de la imagen.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -f, --from &lt;paso&gt;: Establece el primer paso para guardar imágenes.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -t, --to &lt;paso&gt;: Establece el último paso para guardar imágenes.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -s, --submodel &lt;submodelo&gt;: Establece el submodelo activo.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -c, --camera &lt;cámara&gt;: Establece la cámara activa.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -ss, --stud-style &lt;id&gt;: Establece el estilo de tetón 0=plano, 1=trazo único de LDraw, 2=trazo doble de LDraw, 3=flotante elevado de LDraw, 4=redondo elevado de LDraw, 5=rondeado suavo de LDraw, 6=LEGO sin logo, 7=LEGO trazo único.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Establece la vista.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --camera-angles &lt;latitud&gt; &lt;longitud&gt;: Establece los ángulos de cámara en grados alrededor del modelo.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Establece la posición de la cámara, el objetivo y el vector vertical.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Establece la posición de la cámara, el objetivo y el vector vertical usando coordenadas de LDraw.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --orthographic: Renderiza imágenes usando una proyección ortogonal.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --fov &lt;grados&gt;: Establece el campo de visión vertical usado para renderizar imágenes (&lt; 180).
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --zplanes &lt;cerca&gt; &lt;lejos&gt;: Establece los planos de recorte cercanos y lejanos usados para renderizar imágenes (1 &lt;= &lt;cerca&gt; &lt; &lt;lejos&gt;).
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --fade-steps: Renderiza piezas de pasos anteriores atenuadas.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --no-fade-steps: No renderiza piezas de partes anteriores atenuadas.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --fade-steps-color &lt;rgba&gt;: Color de renderizado para piezas de pasos anteriores (#AARRGGBB).
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --highlight: Resalta piezas en los pasos en los que aparecen.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --no-highlight: No resalta piezas en los pasos en los que aparecen.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --highlight-color: Color de renderizado para piezas resaltadas (#AARRGGBB).
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --shading &lt;wireframe|flat|default|full&gt;: Seleccionar modo de sombreado para renderizaciones.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --line-width &lt;width&gt;: Establece el grosor de los bordes.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  --aa-samples &lt;cantidad&gt;: Tamaño de muestreo de anti-aliasing (1, 2, 4 u 8).
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: Color del tetón cilíndrico en alto contraste.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -ec, --edge-color &lt;#AARRGGBB&gt;: Color del borde en alto contraste.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: Color del borde para piezas negras en algo contraste.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: Color de borde para piezas oscuras en alto contraste.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -aec, --automate-edge-color: Habilitar ajuste automático de colores de borde.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -cc, --color-contrast &lt;decimal&gt;: El color de contraste ha de estar comprendido entre 0.0 y 1.0.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -ldv, --light-dark-value &lt;decimal&gt;: El color claro/oscuro ha de estar comprendido entre 0.0 y 1.0.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -obj, --export-wavefront &lt;outfile.obj&gt;: Exporta el modelo al formato OBJ de Wavefront.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Exporta el modelo al formato 3ds de 3D Studio.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -dae, --export-collada &lt;outfile.dae&gt;: Exporta el modelo al formato DAE de COLLADA.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -html, --export-html &lt;carpeta&gt;: Crea una página HTML para el modelo.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -v, --version: Muestra información sobre la versión y termina.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>  -?, --help: Muestra este mensaje de ayuda y termina.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Opción desconocida: &apos;%1&apos;.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Las opciones de tetón en alto contraste y color de borde se ignoran cuando se especifica -aec o --automate-edge-color.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--viewpoint se ignora cuando se especifica --camera.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--orthographic se ignora cuando se especifica --camera.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--camera-angles se ignora cuando se especifica --camera.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--camera-position se ignora cuando se especifica --camera.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--camera-angles se ignora cuando se especifica --viewpoint.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--camera-position se ignora cuando se especifica --viewpoint.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>--camera-position se ignora cuando se especifica --camera-angles.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Nombre de archivo no especificado.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Error creando contexto OpenGL.
+</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
-        <translation>LeoCAD no pudo cargar una biblioteca de piezas.
+        <translation>LeoCAD no pudo cargar la biblioteca de piezas.
 
-Por favor Visite https://www.leocad.org para aprender como descargar e instalar una librería.</translation>
+Por favor, visita https://www.leocad.org para saber cómo descargar e instalar una biblioteca.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Error: el modelo &apos;%1&apos; no existe.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
-        <translation type="unfinished"></translation>
+        <translation>&apos;%1&apos; guardado.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
-        <translation type="unfinished"></translation>
+        <translation>Algunos cambios no tendrán efecto hasta que reinicies LeoCAD.</translation>
     </message>
     <message>
         <source>Parts library and Anti-aliasing changes will only take effect the next time you start LeoCAD.</source>
-        <translation type="vanished">Los cambios en las Librerias de piezas y los cambios Anti-aliasing tendran efecto la próxima vez que inicie LeoCAD.</translation>
+        <translation type="vanished">Los cambios en la biblioteca de piezas y anti-aliasing no tendrán efecto hasta que reinicies LeoCAD.</translation>
     </message>
     <message>
         <source>Parts library changes will only take effect the next time you start LeoCAD.</source>
-        <translation type="vanished">Los cambios en las librerias de piezas solo tendran efecto la próxima vez que inicie LeoCAD.</translation>
+        <translation type="vanished">Los cambios en las biblioteca de piezas no tendrán efecto hasta que reinicies LeoCAD.</translation>
     </message>
     <message>
         <source>Anti-aliasing changes will only take effect the next time you start LeoCAD.</source>
-        <translation type="vanished">Los cambios de Anti-aliasing solo tendran efecto la próxima vez que inicie LeoCAD.</translation>
+        <translation type="vanished">Los cambios de anti-aliasing no tendrán efecto hasta que reinicies LeoCAD.</translation>
     </message>
 </context>
 <context>
@@ -4490,12 +4540,12 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="15"/>
         <source>Color Preferences</source>
-        <translation>Preferencias de Color</translation>
+        <translation>Preferencias de color</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="18"/>
         <source>Edge Colors</source>
-        <translation>Color de los bordes</translation>
+        <translation>Color de bordes</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="29"/>
@@ -4505,7 +4555,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="34"/>
         <source>Set the amount of contrast - 0.50 is midway.</source>
-        <translation>Introducir la cantidad de contraste - 0.50 es medio.</translation>
+        <translation>Establece la cantidad de contraste - 0.50 es la mitad.</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="39"/>
@@ -4517,50 +4567,80 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
         <source>Reset</source>
         <translation>Reiniciar</translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation>Valor claro/oscuro:</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation>Saturación:</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation>Establecer cuándo un color es claro u oscuro, por ejemplo, gris azulado oscuro (72) es claro a 0.39.</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation>Establecer la candidad de tinte o matiz de color de borde a partir de la saturación ajustada del color de la pieza.</translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
-        <translation>Alto Contraste</translation>
+        <translation>Alto contraste</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="83"/>
         <source>Stud Cylinder Color:</source>
-        <translation>Color del Teton Cilindrico:</translation>
+        <translation>Color de tetón cilíndrico:</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="96"/>
         <source>Parts Edge Color:</source>
-        <translation>Color de los Lados de las Partes:</translation>
+        <translation>Color de borde para piezas:</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="109"/>
         <source>Black Parts Edge Color:</source>
-        <translation>Color de los Lados de las Partes Negras:</translation>
+        <translation>Color de borde para piezas negras:</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="122"/>
         <source>Dark Parts Edge Color:</source>
-        <translation>Color de los Lados de las Partes Oscuras:</translation>
+        <translation>Color de borde para piezas oscuras:</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="166"/>
         <source>Select Stud Cylinder Color</source>
-        <translation>Seleccionar Color del Teton Cilindrico</translation>
+        <translation>Seleccionar color para tetón cilíndrico</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="171"/>
         <source>Select Part Edge Color</source>
-        <translation>Seleccionar Color del Lado de la Parte</translation>
+        <translation>Seleccionar color para borde de pieza</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation>El color de borde automático está habilitado.&lt;br&gt;El color de borde de las piezas negras no será accesible.&lt;br&gt;¿Quieres continuar?</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
-        <translation>Seleccionar Color de los Lados Negros</translation>
+        <translation>Seleccionar color para bordes negros</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation>El color de borde automático está habilitado.&lt;br&gt;El color de borde de las piezas oscuras no será accesible.&lt;br&gt;¿Quieres continuar?</translation>
     </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
-        <translation>Seleccionar Color de los Lados Oscuros</translation>
+        <translation>Seleccionar color para bordes oscuros</translation>
     </message>
 </context>
 <context>
@@ -4568,7 +4648,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_findreplacewidget.cpp" line="22"/>
         <source>Find:</source>
-        <translation>Encontrar:</translation>
+        <translation>Buscar:</translation>
     </message>
     <message>
         <location filename="../common/lc_findreplacewidget.cpp" line="51"/>
@@ -4581,12 +4661,12 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_instructions.cpp" line="46"/>
         <source>Show Step Number</source>
-        <translation>Mostrar Numero del Paso</translation>
+        <translation>Mostrar número del paso</translation>
     </message>
     <message>
         <location filename="../common/lc_instructions.cpp" line="48"/>
         <source>Show Parts List</source>
-        <translation>Mostrar Lista de Partes</translation>
+        <translation>Mostrar lista de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_instructions.cpp" line="50"/>
@@ -4598,563 +4678,586 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
         <location filename="../common/lc_instructions.cpp" line="52"/>
         <location filename="../common/lc_instructions.cpp" line="60"/>
         <source>Text Color:</source>
-        <translation>Color del Texto:</translation>
+        <translation>Color de texto:</translation>
     </message>
     <message>
         <location filename="../common/lc_instructions.cpp" line="54"/>
         <location filename="../common/lc_instructions.cpp" line="56"/>
         <source>Background Color:</source>
-        <translation>Color de Fondo:</translation>
+        <translation>Color de fondo:</translation>
     </message>
     <message>
         <location filename="../common/lc_instructions.cpp" line="62"/>
         <source>Border Color:</source>
-        <translation>Color del Borde:</translation>
+        <translation>Color de borde:</translation>
     </message>
 </context>
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation>Instrucciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
-        <translation>Preferencias de la Página</translation>
+        <translation>Preferencias de página</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation>Imprimir</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation>Vertical</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation>Horizontal</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation>Página %1</translation>
     </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation>Páginas</translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation>Configuración de página</translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation>Propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
-        <translation>Sistema</translation>
+        <translation>Predeterminado</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
-        <translation>Modelo Actual</translation>
+        <translation>Modelo actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
-        <translation>Solo Paso Actual</translation>
+        <translation>Solo paso actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
-        <translation>Siguiente Paso</translation>
+        <translation>Paso siguiente</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
-        <translation>Alcance:</translation>
+        <translation>Ámbito:</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
-        <translation>Preestablecido:</translation>
+        <translation>Ajustes prestablecidos:</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
-        <translation>Seleccionar el Numero del Color del Paso</translation>
+        <translation>Seleccionar color para el número del paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
-        <translation>Seleccionar el Color del Fondo del Paso</translation>
+        <translation>Seleccionar color de fondo para los pasos</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
-        <translation>Seleccionar el Color de fondo de la Lista de Partes</translation>
+        <translation>Seleccionar color de fondo para la lista de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
-        <translation>Seleccionar el Color del borde de la Lista de Partes</translation>
+        <translation>Seleccionar color de borde para la lista de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
-        <translation>Seleccionar el Color del Texto de la Lista de Partes</translation>
+        <translation>Seleccionar color de texto para la lista de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
-        <translation>Seleccionar el Numero de Fuente del Paso</translation>
+        <translation>Seleccionar fuente para el número de paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
-        <translation>Seleccionar la Fuente de la Lista de Partes</translation>
+        <translation>Seleccionar fuente para la lista de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
-        <translation>Propiedades de los Pasos</translation>
+        <translation>Propiedades de pasos</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
-        <translation>Propiedades de los Numeros de los Pasos</translation>
+        <translation>Propiedades de números de pasos</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
-        <translation>Propiedades de la Lista de Partes</translation>
+        <translation>Propiedades de la lista de piezas</translation>
     </message>
 </context>
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Transformación</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>Cá&amp;maras</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Archivo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Exportar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
-        <translation>&amp;Puntos de Vista</translation>
+        <translation>&amp;Puntos de vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Proyección</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>Pa&amp;so</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
-        <translation>Barras de &amp;Herramientas</translation>
+        <translation>Barras de &amp;herramientas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translation>&amp;Pieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>&amp;Ayuda</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
-        <translation>Opciones de Transformación</translation>
+        <translation>Opciones de transformación</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
-        <translation>Acoplar XY</translation>
+        <translation>Rejilla XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
-        <translation>Acoplar Z</translation>
+        <translation>Rejilla Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
-        <translation>Menu de Acoplar</translation>
+        <translation>Menu de ajuste</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
-        <translation>Movimiento de Acoplar</translation>
+        <translation>Ajustar traslaciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
-        <translation>Utilizar intervalos fijos para el acople de translación</translation>
+        <translation>Ajustar traslaciones a intervalos fijos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
-        <translation>Menú de Angulos de Acople</translation>
+        <translation>Menú de ángulos de ajuste</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
-        <translation>Rotación de Acople</translation>
+        <translation>Ajustar rotaciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
-        <translation>Utilizar intervalos fijos para el acople de rotación</translation>
+        <translation>Ajustar rotaciones a intervalos fijos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
-        <translation>Estandar</translation>
+        <translation>Estándar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
-        <translation>Utilidades</translation>
+        <translation>Herramientas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
-        <translation>Nuevo Modelo</translation>
+        <translation>Nuevo modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
-        <translation>Abrir Modelo</translation>
+        <translation>Abrir modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
-        <translation>Guardar Modelo</translation>
+        <translation>Guardar modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation>S&amp;ombreado</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation>&amp;Importar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation>Sub&amp;modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
-        <translation>Modo de Selección</translation>
+        <translation>Modo de selección</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation>Cambiar modo de selección</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation>Tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation>Piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation>Colores</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation>Propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
-        <translation>Línea de Tiempo</translation>
+        <translation>Línea de tiempo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
         <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation>Fallo la previa de la Parte &apos;%1&apos; .</translation>
+        <translation type="vanished">Falló la previsualización de la pieza &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
-        <translation>Previa</translation>
+        <translation>Vista previa</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
-        <translation>Cerrar las Otras Pestañas</translation>
+        <translation>Cerrar otras pestañas</translation>
     </message>
     <message>
         <source>Reset Views</source>
-        <translation type="vanished">Reiniciar Vistas</translation>
+        <translation type="vanished">Reiniciar vistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
-        <translation>El archivo &apos;%1&apos; ha sido modificado por otro programa, quieres volver a cargarlo?</translation>
+        <translation>El archivo &apos;%1&apos; ha sido modificado por otro programa. ¿Quieres volver a cargarlo?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
-        <translation>Archivo Cambiado</translation>
+        <translation>Archivo cambiado</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
-        <translation>%1 (ID : %2)</translation>
+        <translation>%1 (ID: %2)</translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation>
-            <numerusform>%n Objeto seleccionado</numerusform>
-            <numerusform>%n Objectos seleccionados</numerusform>
+            <numerusform>%n objeto seleccionado</numerusform>
+            <numerusform>%n objetos seleccionados</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation>Rel</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation>Abs</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation> M: %1 %2 R: %3 %4 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
-        <translation>Fusionar Modelo</translation>
+        <translation>Fusionar modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
-        <translation>Un submodelo Fusionado 1.</translation>
+        <translation>Fusionado 1 submodelo.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
-        <translation>Submodelos %1 fusionados.</translation>
+        <translation>Fusionados %1 submodelos.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation>Importar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
-        <translation>Archivos LEGO Diginal Designer (*.lxf);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos LEGO Diginal Designer (*.lxf);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
-        <translation> - %1 (ID : %2)</translation>
+        <translation> - %1 (ID: %2)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
-        <translation> dentro del grupo « %1 »</translation>
+        <translation> dentro del grupo &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation>Paso %1</translation>
     </message>
     <message>
         <source> M: %1 %2 R: %3 </source>
-        <translation type="vanished"> M : %1 %2 R : %3 </translation>
+        <translation type="vanished"> M: %1 %2 R: %3 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation>&amp;Deshacer %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation>Des&amp;hacer</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation>&amp;Rehacer %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation>&amp;Rehacer</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
-        <translation>Archivos Soportados (*.lcd *.ldr *.dat *.mpd);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos soportados (*.lcd *.ldr *.dat *.mpd);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
         <source>Error loading &apos;%1&apos;.</source>
-        <translation type="vanished">Error cargando « %1 ».</translation>
+        <translation type="vanished">Error cargando &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
-        <translation>Archivos Soportados (*.mpd);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos soportados (*.mpd);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
-        <translation>Archivos Soportados (*.ldr *.dat *.mpd);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos soportados (*.ldr *.dat *.mpd);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
-        <translation>Guardar archivos con el formato LCD ya no esta soportado, Por favor utilizar los formatos LDR o MPD en su lugar.</translation>
+        <translation>Guardar archivos en formato LCD ya no está soportado, Por favor, utiliza los formatos LDR o MPD en su lugar.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
-        <translation>Guardar los cambios en « %1 » ?</translation>
+        <translation>¿Guardar los cambios en &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation>1/20T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation>1/4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation>1P</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation>1/2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation>1T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation>2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation>3T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation>4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation>8T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation>1B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation>2B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation>4B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation>8B</translation>
     </message>
@@ -5164,395 +5267,396 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="14"/>
         <source>Minifig Wizard</source>
-        <translation type="unfinished">Asistente de Minifig</translation>
+        <translation>Asistente de Minifig</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="686"/>
         <source>Templates</source>
-        <translation type="unfinished">Plantillas</translation>
+        <translation>Plantillas</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="702"/>
         <source>Save...</source>
-        <translation type="unfinished">Guardar...</translation>
+        <translation>Guardar...</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="709"/>
         <source>Delete...</source>
-        <translation type="unfinished">Borrar…</translation>
+        <translation>Borrar...</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="716"/>
         <source>Import...</source>
-        <translation type="unfinished">Importar...</translation>
+        <translation>Importar...</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.ui" line="723"/>
         <source>Export...</source>
-        <translation type="unfinished">Exportar…</translation>
+        <translation>Exportar...</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="159"/>
         <location filename="../common/lc_minifigdialog.cpp" line="166"/>
         <source>Save Template</source>
-        <translation type="unfinished">Guardar Plantilla</translation>
+        <translation>Guardar plantilla</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="159"/>
         <source>Template Name:</source>
-        <translation type="unfinished">Nombre de Plantilla:</translation>
+        <translation>Nombre de plantilla:</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="166"/>
         <source>Template name cannot be empty.</source>
-        <translation type="unfinished">La plantilla no puede estar vacía.</translation>
+        <translation>El nombre de plantilla no puede estar vacío.</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="172"/>
         <source>Are you sure you want to overwrite the template &apos;%1&apos;?</source>
-        <translation type="unfinished">Estas seguro de querer sobreescribir la plantilla &apos;%1&apos;?</translation>
+        <translation>¿Seguro que quieres sobreescribir la plantilla &apos;%1&apos;?</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="173"/>
         <source>Overwrite Template</source>
-        <translation type="unfinished">Sobreescribir Plantilla</translation>
+        <translation>Sobreescribir plantilla</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="198"/>
         <source>Are you sure you want to delete the template &apos;%1&apos;?</source>
-        <translation type="unfinished">Estas seguro de querer borrar la plantilla &apos;%1&apos;?</translation>
+        <translation>¿Seguro que quieres borrar la plantilla &apos;%1&apos;?</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="200"/>
         <source>Delete Template</source>
-        <translation type="unfinished">Borrar Plantilla</translation>
+        <translation>Borrar plantilla</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="210"/>
         <source>Import Templates</source>
-        <translation type="unfinished"></translation>
+        <translation>Importar plantillas</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="210"/>
         <location filename="../common/lc_minifigdialog.cpp" line="231"/>
         <source>Minifig Template Files (*.minifig);;All Files (*.*)</source>
-        <translation type="unfinished"></translation>
+        <translation>Archivos de plantillas de Minifig (*.minifig);;Todos los archivos(*.*)</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="219"/>
         <location filename="../common/lc_minifigdialog.cpp" line="240"/>
         <source>Error</source>
-        <translation type="unfinished">Error</translation>
+        <translation>Error</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="219"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Error leyendo el archivo &apos;%1&apos;:
+%2</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="231"/>
         <source>Export Templates</source>
-        <translation type="unfinished"></translation>
+        <translation>Exportar plantillas</translation>
     </message>
     <message>
         <location filename="../common/lc_minifigdialog.cpp" line="240"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
-        <translation type="unfinished">Error guardando el archivo « %1 » :
+        <translation>Error escribiendo el archivo &apos;%1&apos;:
 %2</translation>
     </message>
 </context>
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
-        <translation>Pegando</translation>
+        <translation>pegado</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
-        <translation>Error creando imagenes.</translation>
+        <translation>Error creando imágenes.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
-        <translation>Insertar Paso</translation>
+        <translation>inserción de paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
-        <translation>Quitar Paso</translation>
+        <translation>eliminación de paso</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation>Ninguna pieza seleccionada.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
-        <translation>Grupo n°</translation>
+        <translation>Grupo #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
-        <translation>Cortando</translation>
+        <translation>cortado</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
-        <translation>Duplicando Piezas</translation>
+        <translation>duplicación de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
-        <translation>Error guardando el archivo « %1 » :
+        <translation>Error escribiendo el archivo &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
-        <translation>Agrupado</translation>
+        <translation>agrupación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
-        <translation>Desagrupado</translation>
+        <translation>desagrupación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
-        <translation>Editar Grupos</translation>
+        <translation>edición de grupos</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
-        <translation>Añadiendo Pieza</translation>
+        <translation>adición de pieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
-        <translation>Reseteando Cámaras</translation>
+        <translation>reiniciado de cámaras</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
-        <translation>Quitando Fotogramas Clave</translation>
+        <translation>eliminación de fotogramas clave</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
-        <translation>Modificando</translation>
+        <translation>modificación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
-        <translation>Nuevo Modelo</translation>
+        <translation>nuevo modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
-        <translation>Insertando</translation>
+        <translation>fusión</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2677"/>
         <source>Moving</source>
-        <translation>Moviendo</translation>
+        <translation>movimiento</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2772"/>
         <source>Rotating</source>
-        <translation>Rotando</translation>
+        <translation>rotación</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2798"/>
         <source>Scaling</source>
-        <translation>Escalando</translation>
+        <translation>escalado</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2868"/>
         <source>Setting Part</source>
-        <translation>Mofificar una Pieza</translation>
+        <translation>cambio de pieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
-        <translation>Ocultar</translation>
+        <translation>ocultación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
-        <translation>Mostrar</translation>
+        <translation>mostrado</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
-        <translation>Reemplazar Parte</translation>
+        <translation>reemplazo de pieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
-        <translation>Nuevo Foco</translation>
+        <translation>nuevo foco</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
-        <translation>Nueva Cámara</translation>
+        <translation>nueva cámara</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
-        <translation>Mover</translation>
+        <translation>movimiento</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
-        <translation>Rotar</translation>
+        <translation>rotación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
-        <translation>Ampliación</translation>
+        <translation>ampliación</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
-        <translation>Desplazar</translation>
+        <translation>desplazamiento</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
-        <translation>Orbitar</translation>
+        <translation>órbita</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
-        <translation>Pivotar</translation>
+        <translation>pivotaje</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
-        <translation>Insertar</translation>
+        <translation>inserción</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
-        <translation>Nueva Luz</translation>
+        <translation>nueva luz</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
-        <translation>Borrar</translation>
+        <translation>borrado</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
-        <translation>Pintar</translation>
+        <translation>pintado</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
-        <translation>Ningun modelo seleccionado.</translation>
+        <translation>Ningún modelo seleccionado.</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2912"/>
         <source>Showing Pieces</source>
-        <translation>Montre les pièces</translation>
+        <translation>mostrado de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2941"/>
         <source>Hiding Pieces</source>
-        <translation>Escondiendo Piezas</translation>
+        <translation>ocultación de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2956"/>
         <location filename="../common/lc_model.cpp" line="2981"/>
         <location filename="../common/lc_model.cpp" line="2993"/>
         <source>Editing Camera</source>
-        <translation>Editando Cámara</translation>
+        <translation>edición de cámara</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2969"/>
         <source>Changing FOV</source>
-        <translation>Cambiando el FOV</translation>
+        <translation>cambio de campo de visión</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="3004"/>
         <source>Renaming Camera</source>
-        <translation>Renombrando Cámara</translation>
+        <translation>renombrado de cámara</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
-        <translation>Mirar el modelo</translation>
+        <translation>mirar al modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
-        <translation>Moviendo Cámara</translation>
+        <translation>movimiento de cámara</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
-        <translation>Cambiar las propiedades</translation>
+        <translation>cambio de propiedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
-        <translation>Nada para seleccionar.</translation>
+        <translation>Nada que seleccionar.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
-        <translation>El conjunto solo tiene un elemento o menos, ninguna pieza añadida.</translation>
+        <translation>La secuencia solo tiene un elemento o menos, ninguna pieza añadida.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
-        <translation>Conjunto</translation>
+        <translation>secuencia</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
-        <translation>Minifig n°</translation>
+        <translation>Minifig #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Minifig</translation>
     </message>
@@ -5562,7 +5666,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="14"/>
         <source>Page Setup</source>
-        <translation>Configuración de la Página</translation>
+        <translation>Configuración de página</translation>
     </message>
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="20"/>
@@ -5582,7 +5686,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="52"/>
         <source>Preset:</source>
-        <translation>Preestablecido:</translation>
+        <translation>Ajustes predefinidos:</translation>
     </message>
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="62"/>
@@ -5592,7 +5696,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="75"/>
         <source>Margins</source>
-        <translation>Margenes</translation>
+        <translation>Márgenes</translation>
     </message>
     <message>
         <location filename="../common/lc_pagesetupdialog.ui" line="81"/>
@@ -5620,17 +5724,17 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="14"/>
         <source>Part Palettes</source>
-        <translation>Paletas de Partes</translation>
+        <translation>Paletas de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="27"/>
         <source>New...</source>
-        <translation>Nuevo…</translation>
+        <translation>Nueva...</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="34"/>
         <source>Delete...</source>
-        <translation>Borrar…</translation>
+        <translation>Borrar...</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="41"/>
@@ -5645,38 +5749,38 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="55"/>
         <source>Move Up</source>
-        <translation>Mover Arriba</translation>
+        <translation>Mover arriba</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.ui" line="62"/>
         <source>Move Down</source>
-        <translation>Mover Abajo</translation>
+        <translation>Mover abajo</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.cpp" line="68"/>
         <source>New Part Palette</source>
-        <translation>Nueva Paleta de Partes</translation>
+        <translation>Nueva paleta de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.cpp" line="68"/>
         <location filename="../common/lc_partpalettedialog.cpp" line="107"/>
         <source>Palette Name:</source>
-        <translation>Nombre de la Paleta:</translation>
+        <translation>Nombre de paleta:</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.cpp" line="87"/>
         <source>Are you sure you want to delete the palette &apos;%1&apos;?</source>
-        <translation>Estas seguro de querer borrar la paleta &apos;%1&apos;?</translation>
+        <translation>¿Seguro que quieres borrar la paleta &apos;%1&apos;?</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.cpp" line="88"/>
         <source>Delete Part Palette</source>
-        <translation>Borrar la Paleta de Partes</translation>
+        <translation>Borrar paleta de piezas</translation>
     </message>
     <message>
         <location filename="../common/lc_partpalettedialog.cpp" line="107"/>
         <source>Rename Part Palette</source>
-        <translation>Renombrar la Paleta de Partes</translation>
+        <translation>Renombrar paleta de piezas</translation>
     </message>
 </context>
 <context>
@@ -5687,135 +5791,140 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     </message>
     <message>
         <source>Small Icons</source>
-        <translation type="vanished">Iconos Pequeños</translation>
+        <translation type="vanished">Iconos pequeños</translation>
     </message>
     <message>
         <source>Medium Icons</source>
-        <translation type="vanished">Iconos Medianos</translation>
+        <translation type="vanished">Iconos medianos</translation>
     </message>
     <message>
         <source>Large Icons</source>
-        <translation type="vanished">Iconos Grandes</translation>
+        <translation type="vanished">Iconos grandes</translation>
     </message>
     <message>
         <source>Extra Large Icons</source>
-        <translation type="vanished">Iconos Extra Grandes</translation>
+        <translation type="vanished">Iconos extra grandes</translation>
     </message>
     <message>
         <source>Show Part Names</source>
-        <translation type="vanished">Mostras Nombres de las Piezas</translation>
+        <translation type="vanished">Mostrar nombre de piezas</translation>
     </message>
     <message>
         <source>Show Decorated Parts</source>
-        <translation type="vanished">Mostrar Piezas Decoradas</translation>
+        <translation type="vanished">Mostrar piezas decoradas</translation>
     </message>
     <message>
         <source>List Mode</source>
-        <translation type="vanished">Listar Modo</translation>
+        <translation type="vanished">Modo lista</translation>
     </message>
     <message>
         <source>Lock Preview Color</source>
-        <translation type="vanished">Fijar Previa de Color</translation>
+        <translation type="vanished">Bloquear color</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
-        <translation>Añadir a la Paleta</translation>
+        <translation>Añadir a paleta</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
-        <translation>Quitar de la Paleta</translation>
+        <translation>Quitar de paleta</translation>
     </message>
 </context>
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
-        <translation>Buscar Piezas</translation>
+        <translation>Buscar piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation>Opciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation>Editar paletas...</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
-        <translation>Sin Iconos</translation>
+        <translation>Sin iconos</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
-        <translation>Iconos Pequeños</translation>
+        <translation>Iconos pequeños</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
-        <translation>Iconos Medianos</translation>
+        <translation>Iconos medianos</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
-        <translation>Iconos Grandes</translation>
+        <translation>Iconos grandes</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
-        <translation>Iconos Extra Grandes</translation>
+        <translation>Iconos extra grandes</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
-        <translation>Mostras Nombres de las Piezas</translation>
+        <translation>Mostrar nombre de pieza</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
-        <translation>Mostrar Piezas Decoradas</translation>
+        <translation>Mostrar piezas decoradas</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
-        <translation>Mostrar los Apodos de las Piezas</translation>
+        <translation>Mostrar apodos de piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
-        <translation>Listar Modo</translation>
+        <translation>Modo lista</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
-        <translation>Fijar Previa de Color</translation>
+        <translation>Bloquear color</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation>Favoritos</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
-        <translation>Todas las Piezas</translation>
+        <translation>Todas las piezas</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
-        <translation>En Uso</translation>
+        <translation>En uso</translation>
     </message>
     <message>
         <source>Parts In Use</source>
-        <translation type="vanished">Piezas Usadas</translation>
+        <translation type="vanished">Piezas usadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation>Submodelos</translation>
     </message>
@@ -5823,22 +5932,23 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation>Inicializando</translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
-        <translation>Cargando Librería de Piezas</translation>
+        <translation>Cargando biblioteca de piezas</translation>
     </message>
 </context>
 <context>
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
-        <translation>Bloquear Previa</translation>
+        <translation>Bloquear previsualización</translation>
     </message>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="22"/>
@@ -5848,12 +5958,12 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="28"/>
         <source>Toolbar</source>
-        <translation>Barra de Herramientas</translation>
+        <translation>Barra de herramientas</translation>
     </message>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="30"/>
         <source>Preview Toolbar</source>
-        <translation>Previa de la Barra de Herramientas</translation>
+        <translation>Barra de herramientas de vista previa</translation>
     </message>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="44"/>
@@ -5861,24 +5971,35 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
         <translation>Cargando...</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
+        <translation>Desbloquear previsualización para permitir actualizaciones</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
+        <translation>Bloquear previsualización para impedir actualizaciones</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
+        <translation>Desbloquear previsualización</translation>
+    </message>
+    <message>
         <source>Unlock</source>
-        <translation>Desbloquear</translation>
+        <translation type="vanished">Desbloquear</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
         <source>Lock</source>
-        <translation>Bloquear</translation>
+        <translation type="vanished">Bloquear</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
         <source>%1 the preview display to %2 updates</source>
-        <translation>%1 la visualización previa en %2 actualizaciones</translation>
+        <translation type="vanished">%1 la visualización previa en %2 actualizaciones</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
         <source>%1 Preview</source>
-        <translation>%1 Previa</translation>
+        <translation type="vanished">%1 previsualización</translation>
     </message>
 </context>
 <context>
@@ -5906,12 +6027,12 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
     <message>
         <location filename="../qt/lc_qaboutdialog.cpp" line="18"/>
         <source>LeoCAD Version %1</source>
-        <translation>Version de LeoCAD %1</translation>
+        <translation>LeoCAD versión %1</translation>
     </message>
     <message>
         <source>Qt version %1 (compiled with %2)
 </source>
-        <translation type="vanished">Version de QT %1 (compilado con %2)
+        <translation type="vanished">QT versión %1 (compilado con %2)
 </translation>
     </message>
     <message>
@@ -5920,7 +6041,7 @@ Por favor Visite https://www.leocad.org para aprender como descargar e instalar
 %3 - %4
 
 </source>
-        <translation>Version de OpenGL %1 (GLSL %2)
+        <translation>OpenGL versión %1 (GLSL %2)
 %3 - %4
 
 </translation>
@@ -5931,9 +6052,9 @@ Depth Buffer: %4 bits
 Stencil Buffer: %5 bits
 
 </source>
-        <translation type="vanished">Memoria Intermedia de Color: %1 bits %2 %3
-Memoria Intermedia de Profundidad: %4 bits
-Memoria Intermedia de Éstencil: %5 bits
+        <translation type="vanished">Memoria intermedia de color: %1 bits %2 %3
+Memoria intermedia de profundidad: %4 bits
+Memoria intermedia de éstencil: %5 bits
 
 </translation>
     </message>
@@ -5943,7 +6064,7 @@ Memoria Intermedia de Éstencil: %5 bits
     </message>
     <message>
         <source>double buffered</source>
-        <translation type="vanished">Memoria Intermedia Doble</translation>
+        <translation type="vanished">Memoria intermedia doble</translation>
     </message>
     <message>
         <source>GL_ARB_vertex_buffer_object extension: %1
@@ -5962,14 +6083,14 @@ GL_EXT_texture_filter_anisotropic extension: %5
     <message>
         <location filename="../qt/lc_qaboutdialog.cpp" line="16"/>
         <source>LeoCAD Continuous Build %1</source>
-        <translation>LeoCAD Compilación Continua %1</translation>
+        <translation>LeoCAD compilación continua %1</translation>
     </message>
     <message>
         <location filename="../qt/lc_qaboutdialog.cpp" line="26"/>
         <source>Qt Version %1 (compiled with %2)
 
 </source>
-        <translation>Version de QT %1 (compilado con %2)
+        <translation>QT versión %1 (compilado con %2)
 
 </translation>
     </message>
@@ -6029,7 +6150,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qarraydialog.ui" line="14"/>
         <source>Array</source>
-        <translation>Conjunto</translation>
+        <translation>Secuencia</translation>
     </message>
     <message>
         <location filename="../qt/lc_qarraydialog.ui" line="22"/>
@@ -6039,7 +6160,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qarraydialog.ui" line="65"/>
         <source>Offsets</source>
-        <translation>Atenuaciones</translation>
+        <translation>Desplazamientos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qarraydialog.ui" line="101"/>
@@ -6049,7 +6170,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qarraydialog.cpp" line="74"/>
         <source>Array is empty.</source>
-        <translation>El Conjunto está vacío.</translation>
+        <translation>La secuencia está vacía.</translation>
     </message>
 </context>
 <context>
@@ -6067,27 +6188,27 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qcategorydialog.ui" line="35"/>
         <source>Keywords:</source>
-        <translation>Palabras Clave:</translation>
+        <translation>Palabras clave:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qcategorydialog.cpp" line="15"/>
         <source>Edit Category</source>
-        <translation>Editar la Categoría</translation>
+        <translation>Editar categoría</translation>
     </message>
     <message>
         <location filename="../qt/lc_qcategorydialog.cpp" line="17"/>
         <source>New Category</source>
-        <translation>Nueva Categoría</translation>
+        <translation>Nueva categoría</translation>
     </message>
     <message>
         <location filename="../qt/lc_qcategorydialog.cpp" line="34"/>
         <source>Name cannot be empty.</source>
-        <translation>El Nombre no puede estar vacío.</translation>
+        <translation>El nombre no puede estar vacío.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qcategorydialog.cpp" line="42"/>
         <source>Keywords cannot be empty.</source>
-        <translation>Las Palabras Clave no pueden estar vacías.</translation>
+        <translation>El palabras clave no puede estar vacío.</translation>
     </message>
 </context>
 <context>
@@ -6095,17 +6216,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qeditgroupsdialog.ui" line="14"/>
         <source>Edit Groups</source>
-        <translation>Edición de Grupos</translation>
+        <translation>Editar grupos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qeditgroupsdialog.cpp" line="20"/>
         <source>New Group</source>
-        <translation>Nuevo Grupo</translation>
+        <translation>Nuevo grupo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qeditgroupsdialog.cpp" line="59"/>
         <source>Group #</source>
-        <translation>Grupo n°</translation>
+        <translation>Grupo #</translation>
     </message>
 </context>
 <context>
@@ -6120,7 +6241,7 @@ Anisotropic: %5
     </message>
     <message>
         <source>Part ID</source>
-        <translation type="vanished">ID de la pieza</translation>
+        <translation type="vanished">ID de pieza</translation>
     </message>
     <message>
         <source>Color</source>
@@ -6142,7 +6263,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qgroupdialog.cpp" line="26"/>
         <source>Name cannot be empty.</source>
-        <translation>El Nombre no puede estar vacío.</translation>
+        <translation>El nombre no puede estar vacío.</translation>
     </message>
 </context>
 <context>
@@ -6160,7 +6281,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="40"/>
         <source>Output folder:</source>
-        <translation>Carpeta de Salida :</translation>
+        <translation>Carpeta de salida:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="53"/>
@@ -6185,7 +6306,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="122"/>
         <source>Index page</source>
-        <translation>Página de Índice</translation>
+        <translation>Página índice</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="72"/>
@@ -6195,17 +6316,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="78"/>
         <source>All Models</source>
-        <translation>Todos los Modelos</translation>
+        <translation>Todos los modelos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="85"/>
         <source>Current Model and Submodels</source>
-        <translation>Modelo Actual y Submodelos</translation>
+        <translation>Modelo actual y submodelos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="92"/>
         <source>Current Model Only</source>
-        <translation>Solo el Modelo Actual</translation>
+        <translation>Solo el modelo actual</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="102"/>
@@ -6215,12 +6336,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="108"/>
         <source>Single Page</source>
-        <translation>Página Única</translation>
+        <translation>Página individual</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="115"/>
         <source>One Step per Page</source>
-        <translation>Un Paso por Página</translation>
+        <translation>Un paso por página</translation>
     </message>
     <message>
         <source>Highlight new parts</source>
@@ -6229,7 +6350,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="172"/>
         <source>Parts List</source>
-        <translation>Lista de Piezas</translation>
+        <translation>Lista de piezas</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="178"/>
@@ -6239,7 +6360,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.ui" line="185"/>
         <source>After each step</source>
-        <translation>Después de cada paso</translation>
+        <translation>Tras cada paso</translation>
     </message>
     <message>
         <source>Color:</source>
@@ -6247,7 +6368,7 @@ Anisotropic: %5
     </message>
     <message>
         <source>Create images</source>
-        <translation type="vanished">Crear imagenes</translation>
+        <translation type="vanished">Crear imágenes</translation>
     </message>
     <message>
         <location filename="../qt/lc_qhtmldialog.cpp" line="46"/>
@@ -6257,7 +6378,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qhtmldialog.cpp" line="66"/>
         <source>Select Output Folder</source>
-        <translation>Seleccionar la Carpeta de Salida</translation>
+        <translation>Seleccionar carpeta de salida</translation>
     </message>
 </context>
 <context>
@@ -6265,12 +6386,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="14"/>
         <source>Save Image</source>
-        <translation>Guardar Imagen</translation>
+        <translation>Guardar imagen</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="24"/>
         <source>File name:</source>
-        <translation>Nombre del archivo :</translation>
+        <translation>Nombre de archivo:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="48"/>
@@ -6280,42 +6401,42 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="109"/>
         <source>Step Range</source>
-        <translation>Intervalo de Pasos</translation>
+        <translation>Intervalo de pasos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="115"/>
         <source>All Steps</source>
-        <translation>Todos los Pasos</translation>
+        <translation>Todos los pasos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="122"/>
         <source>Current Step</source>
-        <translation>Paso Actual</translation>
+        <translation>Paso actual</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="131"/>
         <source>Custom Range</source>
-        <translation>Intervalo Personalizado</translation>
+        <translation>Intervalo personalizado</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="138"/>
         <source>From:</source>
-        <translation>Desde :</translation>
+        <translation>Desde:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="161"/>
         <source>To:</source>
-        <translation>Hacia :</translation>
+        <translation>Hasta:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="54"/>
         <source>Width:</source>
-        <translation>Ancho :</translation>
+        <translation>Ancho:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="80"/>
         <source>Height:</source>
-        <translation>Alto :</translation>
+        <translation>Alto:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.ui" line="37"/>
@@ -6325,7 +6446,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="46"/>
         <source>Output File cannot be empty.</source>
-        <translation>El Archivo de Salida no puede estar vacío.</translation>
+        <translation>El archivo de salida no puede estar vacío.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="46"/>
@@ -6350,7 +6471,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="117"/>
         <source>Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*)</source>
-        <translation>Archivos de Imagen Soportados (*.bmp *.png *.jpg);;Archivos BMP (*.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Todos los archivos (*.*)</translation>
+        <translation>Archivos de imágenes soportados (*.bmp *.png *.jpg);;Archivos BMP (*.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Todos los archivos (*.*)</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="98"/>
@@ -6360,17 +6481,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="54"/>
         <source>Please enter a width between 1 and 32768.</source>
-        <translation>Por favor introducir un ancho entre 1 y 32768.</translation>
+        <translation>Por favor, introduce un ancho entre 1 y 32768.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="62"/>
         <source>Please enter a height between 1 and 32768.</source>
-        <translation>Por favor introducir un alto entre 1 y 32768.</translation>
+        <translation>Por favor, introduce un alto entre 1 y 32768.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qimagedialog.cpp" line="117"/>
         <source>Save Image File</source>
-        <translation>Guardar la Imagen</translation>
+        <translation>Guardar imagen</translation>
     </message>
 </context>
 <context>
@@ -6389,15 +6510,15 @@ Anisotropic: %5
     </message>
     <message>
         <source>Delete...</source>
-        <translation type="vanished">Borrar…</translation>
+        <translation type="vanished">Borrar...</translation>
     </message>
     <message>
         <source>Save Template</source>
-        <translation type="vanished">Guardar Plantilla</translation>
+        <translation type="vanished">Guardar plantilla</translation>
     </message>
     <message>
         <source>Template Name:</source>
-        <translation type="vanished">Nombre de Plantilla:</translation>
+        <translation type="vanished">Nombre de plantilla:</translation>
     </message>
     <message>
         <source>Template name cannot be empty.</source>
@@ -6405,7 +6526,7 @@ Anisotropic: %5
     </message>
     <message>
         <source>Are you sure you want to overwrite the template &apos;%1&apos;?</source>
-        <translation type="vanished">Estas seguro de querer sobreescribir la plantilla &apos;%1&apos;?</translation>
+        <translation type="vanished">¿Seguro que quieres sobreescribir la plantilla &apos;%1&apos;?</translation>
     </message>
     <message>
         <source>Overwrite Template</source>
@@ -6413,11 +6534,11 @@ Anisotropic: %5
     </message>
     <message>
         <source>Are you sure you want to delete the template &apos;%1&apos;?</source>
-        <translation type="vanished">Estas seguro de querer borrar la plantilla &apos;%1&apos;?</translation>
+        <translation type="vanished">¿Seguro que quieres borrar la plantilla &apos;%1&apos;?</translation>
     </message>
     <message>
         <source>Delete Template</source>
-        <translation type="vanished">Borrar Plantilla</translation>
+        <translation type="vanished">Borrar plantilla</translation>
     </message>
 </context>
 <context>
@@ -6435,42 +6556,42 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="38"/>
         <source>D&amp;elete...</source>
-        <translation>Bo&amp;rrar…</translation>
+        <translation>Bo&amp;rrar...</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="45"/>
         <source>&amp;Rename...</source>
-        <translation>&amp;Renombrar…</translation>
+        <translation>&amp;Renombrar...</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="52"/>
         <source>Export...</source>
-        <translation>Exportar…</translation>
+        <translation>Exportar...</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="59"/>
         <source>Duplicate...</source>
-        <translation>Duplicado...</translation>
+        <translation>Duplicar...</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="66"/>
         <source>Move &amp;Up</source>
-        <translation>Mover Arr&amp;iba</translation>
+        <translation>Mover arr&amp;iba</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="73"/>
         <source>Move &amp;Down</source>
-        <translation>Mover Aba&amp;jo</translation>
+        <translation>Mover aba&amp;jo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.ui" line="80"/>
         <source>Set Active</source>
-        <translation>Definir Activo</translation>
+        <translation>Definir activo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="113"/>
         <source>New Submodel</source>
-        <translation>Nuevo Submodelo</translation>
+        <translation>Nuevo submodelo</translation>
     </message>
     <message>
         <source>Error</source>
@@ -6484,14 +6605,14 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="141"/>
         <source>Are you sure you want to delete the submodel &apos;%1&apos;?</source>
-        <translation>Estas seguro de querer borrar el submodelo &apos;%1&apos;?</translation>
+        <translation>¿Seguro que quieres borrar el submodelo &apos;%1&apos;?</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="127"/>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="135"/>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="145"/>
         <source>Delete Submodel</source>
-        <translation>Borrar Submodelo</translation>
+        <translation>Borrar submodelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="135"/>
@@ -6499,23 +6620,23 @@ Anisotropic: %5
         <location filename="../qt/lc_qmodellistdialog.cpp" line="189"/>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="248"/>
         <source>No submodel selected.</source>
-        <translation>No hay un submodelo seleccionado.</translation>
+        <translation>No hay ningún submodelo seleccionado.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="143"/>
         <source>Are you sure you want to delete %1 submodels?</source>
-        <translation>Estas seguro de querer borrar %1 estos submodelos?</translation>
+        <translation>¿Seguro que quieres borrar %1 submodelos?</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="165"/>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="176"/>
         <source>Rename Submodel</source>
-        <translation>Renombrar Submodelo</translation>
+        <translation>Renombrar submodelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="189"/>
         <source>Export Submodel</source>
-        <translation>Exportar Submodelo</translation>
+        <translation>Exportar submodelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="204"/>
@@ -6525,12 +6646,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="204"/>
         <source>Nothing to export.</source>
-        <translation>Nada para exportar.</translation>
+        <translation>Nada que exportar.</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="211"/>
         <source>Export Model</source>
-        <translation>Exportar Modelo</translation>
+        <translation>Exportar modelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="222"/>
@@ -6541,7 +6662,7 @@ Anisotropic: %5
         <location filename="../qt/lc_qmodellistdialog.cpp" line="248"/>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="266"/>
         <source>Duplicate Submodel</source>
-        <translation>Duplicar Submodelo</translation>
+        <translation>Duplicar submodelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="263"/>
@@ -6550,12 +6671,12 @@ Anisotropic: %5
     </message>
     <message>
         <source>Save Model</source>
-        <translation type="vanished">Guardar Modelo</translation>
+        <translation type="vanished">Guardar modelo</translation>
     </message>
     <message>
         <location filename="../qt/lc_qmodellistdialog.cpp" line="211"/>
         <source>Supported Files (*.ldr *.dat);;All Files (*.*)</source>
-        <translation>Archivos Soportados (*.ldr *.dat);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos soportados (*.ldr *.dat);;Todos los archivos (*.*)</translation>
     </message>
 </context>
 <context>
@@ -6583,7 +6704,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="107"/>
         <source>Check for updates:</source>
-        <translation>Buscar Actualizaciones:</translation>
+        <translation>Buscar actualizaciones:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="50"/>
@@ -6627,17 +6748,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="94"/>
         <source>Once a day</source>
-        <translation>Una vez cada día</translation>
+        <translation>Una vez al día</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="99"/>
         <source>Once a week</source>
-        <translation>Una vez cada semana</translation>
+        <translation>Una vez por semana</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="157"/>
         <source>Default author name:</source>
-        <translation>Nombre del autor por defecto :</translation>
+        <translation>Nombre de autor predeterminado:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="170"/>
@@ -6647,7 +6768,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="177"/>
         <source>Open most recent file on startup</source>
-        <translation>Abrir archivo mas reciente al inicio</translation>
+        <translation>Abrir archivo más reciente al inicio</translation>
     </message>
     <message>
         <source>Custom paths</source>
@@ -6656,12 +6777,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="190"/>
         <source>Parts Library:</source>
-        <translation>Librería de Piezas:</translation>
+        <translation>Biblioteca de piezas:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="223"/>
         <source>Color Configuration:</source>
-        <translation>Configuración de Color:</translation>
+        <translation>Configuración de color:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="238"/>
@@ -6679,12 +6800,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="271"/>
         <source>PO&amp;V-Ray Executable:</source>
-        <translation>Ejecutable PO&amp;V-Ray:</translation>
+        <translation>Ejecutable de PO&amp;V-Ray:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="295"/>
         <source>&amp;LGEO Library:</source>
-        <translation>Librería &amp;LGEO:</translation>
+        <translation>Biblioteca &amp;LGEO:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="322"/>
@@ -6698,140 +6819,137 @@ Anisotropic: %5
     </message>
     <message>
         <source>Axis icon</source>
-        <translation type="vanished">Icono de Ejes</translation>
+        <translation type="vanished">Icono de ejes</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation>Resaltar piezas nuevas</translation>
+        <translation type="vanished">Resaltar piezas nuevas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
         <source>Fade previous steps</source>
-        <translation>Desvanecer pasos previos</translation>
+        <translation type="vanished">Atenuar pasos previos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
-        <translation>Grilla Base</translation>
+        <translation>Cuadrícula base</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
-        <translation>Dibujar Tetones</translation>
+        <translation>Dibujar tetones</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translation>tetones</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
-        <translation>Dibujar lineas cada</translation>
+        <translation>Dibujar líneas cada</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
-        <translation>Ver Esfera</translation>
+        <translation>Esfera</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
-        <translation>LOD de Malla</translation>
+        <translation>Nivel de detalle de malla</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation>Ratón</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
-        <translation>Atajos del Ratón</translation>
+        <translation>Atajos de ratón</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation>Acción</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation>Atajo 1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation>Atajo 2</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
-        <translation>Botón :</translation>
+        <translation>Botón:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
-        <translation>Izquierda</translation>
+        <translation>Izquierdo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation>Central</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
-        <translation>Derecha</translation>
+        <translation>Derecho</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
-        <translation>Modificadores :</translation>
+        <translation>Modificadores:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation>Control</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
-        <translation>Maj</translation>
+        <translation>Mayúsculas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
-        <translation>Sensibilidad del ratón :</translation>
+        <translation>Sensibilidad del ratón:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
-        <translation>Bordes</translation>
+        <translation type="vanished">Bordes</translation>
     </message>
     <message>
         <source>width</source>
         <translation type="vanished">ancho</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Anti-aliasing</translation>
     </message>
     <message>
         <source>Stud Logo</source>
-        <translation type="vanished">Logo de Tetón</translation>
+        <translation type="vanished">Logo de tetón</translation>
     </message>
     <message>
         <source>Logo1</source>
@@ -6854,98 +6972,99 @@ Anisotropic: %5
         <translation type="vanished">Logo5</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
-        <translation>Modo de Sombreado:</translation>
+        <translation>Modo de sombreado:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation>Malla</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
-        <translation>Sombreado Plano</translation>
+        <translation>Sombreado plano</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
-        <translation>Luces por defecto</translation>
+        <translation>Luces predeterminadas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
-        <translation>Deshabilitado</translation>
+        <translation>Desactivada</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
-        <translation>Pequeño</translation>
+        <translation>Pequeña</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
-        <translation>Medio</translation>
+        <translation>Mediana</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation>Grande</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
-        <translation>Destacar Color:</translation>
+        <translation>Color de resalte:</translation>
     </message>
     <message>
         <source>Size:</source>
         <translation type="vanished">Tamaño:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation>Color:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
-        <translation>Color del Texto:</translation>
+        <translation>Color de texto:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
-        <translation>Localización:</translation>
+        <translation>Posición:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="60"/>
         <source>Deutsch </source>
-        <translation>Alemán </translation>
+        <translation>Deutsch </translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="130"/>
         <source>Color Theme:</source>
-        <translation>Color del Tema:</translation>
+        <translation>Color del tema:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="141"/>
@@ -6960,601 +7079,704 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpreferencesdialog.ui" line="184"/>
         <source>Custom Paths</source>
-        <translation>Carpetas Personalizadas</translation>
+        <translation>Rutas personalizadas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
-        <translation>Estilo del Tetón</translation>
+        <translation>Estilo de tetón</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation>Plano</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
-        <translation>Lineas Delgadas del Logo</translation>
+        <translation>Logo de líneas finas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
-        <translation>Linea Exterior del Logo</translation>
+        <translation>Contorno del logo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
-        <translation>Logo Afilado de la Parte superior</translation>
+        <translation>Logo en relieve</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
-        <translation>Logo Redondeado de la Parte superior</translation>
+        <translation>Logo en relieve redondo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
-        <translation>Logo Aplanado</translation>
+        <translation>Logo aplanado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
-        <translation>Alto Contraste</translation>
+        <translation>Alto contraste</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
-        <translation>Alto Contraste con Logo</translation>
+        <translation>Alto contraste con logo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation>Preferencias...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
         <source>Automate edge color</source>
-        <translation>Automatizar color del borde</translation>
+        <translation type="vanished">Color de bordes automático</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
-        <translation>Prerencias de Contraste...</translation>
+        <translation>Preferencias de contraste...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation>Vistas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
-        <translation>Vistas del Modelo</translation>
+        <translation>Vistas de modelo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
-        <translation>Icono del Eje</translation>
+        <translation>Icono de ejes</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
-        <translation>Ver Esfera:</translation>
+        <translation>Ver esfera:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
-        <translation>Arriba Izquierda</translation>
+        <translation>Arriba izquierda</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
-        <translation>Arriba Derecha</translation>
+        <translation>Arriba derecha</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
-        <translation>Abajo Izquierda</translation>
+        <translation>Abajo izquierda</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
-        <translation>Abajo Derecha</translation>
+        <translation>Abajo derecha</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
-        <translation>Dibujar lineas de origen</translation>
+        <translation>Dibujar líneas de origen</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
-        <translation>Previa de las Partes</translation>
+        <translation>Vista previa de piezas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation>Colores</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation>Fondo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
-        <translation>Color Superior:</translation>
+        <translation>Color superior:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
-        <translation>Color Inferior:</translation>
+        <translation>Color inferior:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
-        <translation>Color Só&amp;lido</translation>
+        <translation>Color só&amp;lido</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation>&amp;Gradiente</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation>Interfaz</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
-        <translation>Vista Inactiva del Borde:</translation>
+        <translation>Borde de vista inactiva:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
-        <translation>Color Sobreimpreso:</translation>
+        <translation>Color de superposiciones:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
-        <translation>Activar Ver Borde:</translation>
+        <translation>Borde de vista activa:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
-        <translation>Nombre de la Cámara:</translation>
+        <translation>Nombre de cámara:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
-        <translation>Etiquetas del Icono del Eje:</translation>
+        <translation>Etiquetas de icono de ejes:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
-        <translation>Borde del Marco:</translation>
+        <translation>Borde del área de selección:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation>Resaltar piezas nuevas</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation>Atenuar pasos previos</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation>Líneas</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation>Líneas condicionales</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation>Grosor de bordes:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation>Dibujar bordes</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation>Color de bordes automático</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
-        <translation>Relleno del Marco:</translation>
+        <translation>Relleno del área de selección:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
-        <translation>Malla</translation>
+        <translation>Cuadrícula</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation>Líneas:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation>Tetones:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation>Objetos</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation>Luz:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation>Resaltado:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation>Punto de control resaltado:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation>Punto de control:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation>Seleccionado:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation>Cámara:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
-        <translation>Categorias</translation>
+        <translation>Categorías</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
-        <translation>Categorias de la biblioteca de piezas</translation>
+        <translation>Categorías de la biblioteca de piezas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Número</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Importar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
-        <translation>Exportar…</translation>
+        <translation>Exportar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
-        <translation>Reiniciar…</translation>
+        <translation>Reiniciar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Categoría</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
-        <translation>Nuevo…</translation>
+        <translation>Nueva...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
-        <translation>Editar…</translation>
+        <translation>Editar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
-        <translation>Borrar…</translation>
+        <translation>Borrar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translation>Teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
-        <translation>Atajos de Teclado</translation>
+        <translation>Atajos de teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Comando</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Atajo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation>Buscar atajos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
-        <translation>Se&amp;cuencia Clave:</translation>
+        <translation>Combina&amp;ción de teclas:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Asignar</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Quitar</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
-        <translation>El espaciado de la grilla debe ser mayor que 0.</translation>
+        <translation>El espaciado de la cuadrícula base debe ser mayor que 0.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
-        <translation>Seleccionar la Carpeta de la Biblioteca de Piezas</translation>
+        <translation>Seleccionar carpeta de la biblioteca de piezas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
-        <translation>Archivos Soportados (*.zip *.bin);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos soportados (*.zip *.bin);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
-        <translation>Seleccionar el Archivo de Piezas</translation>
+        <translation>Seleccionar archivo de la biblioteca de piezas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
-        <translation>Seleccionar Fichero de Configuración del Color</translation>
+        <translation>Seleccionar archivo de configuración de color</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
-        <translation>Ficheros de Preferencias (*.ldr);;Todos los ficheros (*.*)</translation>
+        <translation>Archivos de preferencias (*.ldr);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
-        <translation>Seleccionar Fichero de Preferencias de Minifig</translation>
+        <translation>Seleccionar archivos de preferencias de Minifig</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
-        <translation>Ficheros de Preferencias (*.ini);;Todos los ficheros (*.*)</translation>
+        <translation>Archivos de preferencias (*.ini);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
-        <translation>Archivos Ejecutables (*.exe);;Todos los archivos (*.*)</translation>
+        <translation>Archivos ejecutables (*.exe);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
-        <translation>Todos los Archivos (*.*)</translation>
+        <translation>Todos los archivos (*.*)</translation>
     </message>
     <message>
         <source>Open POV-Ray Executable</source>
-        <translation type="vanished">Abrir Ejecutable POV-Ray</translation>
+        <translation type="vanished">Abrir ejecutable de POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
-        <translation>Abrir la Carpeta LGEO</translation>
+        <translation>Abrir la carpeta de LGEO</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
-        <translation>Resetear Colores</translation>
+        <translation>Reiniciar colores</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
-        <translation>Te gustaria tambien resetear los colores de la interfaz para coincidir con el color del tema?</translation>
+        <translation>¿Te gustaría además reiniciar los colores de la interfaz para que coincidan con los del tema?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
-        <translation>Seleccionar Color de Fondo</translation>
+        <translation>Seleccionar color de fondo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
-        <translation>Seleccionar Gradiente del Color Superior</translation>
+        <translation>Seleccionar color superior del gradiente</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
-        <translation>Seleccionar Gradiente del Color Inferior</translation>
+        <translation>Seleccionar color inferior del gradiente</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
-        <translation>Seleccionar Color de los Ejes</translation>
+        <translation>Seleccionar color de ejes</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
-        <translation>Seleccionar Color del Texto</translation>
+        <translation>Seleccionar color de texto</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
-        <translation>Seleccionar Color del Borde del Marco</translation>
+        <translation>Seleccionar color del borde del área de selección</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
-        <translation>Seleccionar Color de Relleno del Marco</translation>
+        <translation>Seleccionar color de relleno del área de selección</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
-        <translation>Seleccionar Color del Sobreimpreso</translation>
+        <translation>Seleccionar color de superposiciones</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
-        <translation>Seleccionar Color de la Vista Activa</translation>
+        <translation>Seleccionar color de vista activa</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
-        <translation>Seleccionar Color de la Vista Inactvia</translation>
+        <translation>Seleccionar color de vista inactiva</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
-        <translation>Seleccionar Color de Desvanecer</translation>
+        <translation>Seleccionar color de atenuación</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
-        <translation>Seleccionar Color del Destacado</translation>
+        <translation>Seleccionar color de resalte</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
-        <translation>Seleccionar el color de los tetones de la grilla</translation>
+        <translation>Seleccionar color de los tetones de la cuadrícula</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
-        <translation>Seleccionar el color de las líneas de la grilla</translation>
+        <translation>Seleccionar color de las líneas de la cuadrícula</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
-        <translation>Seleccionar el Color de la Vista Esférica</translation>
+        <translation>Seleccionar color de la esfera en las vistas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
-        <translation>Seleccionar el Color del Texto de la Vista Esférica</translation>
+        <translation>Seleccionar color del texto de la esfera en las vistas</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
-        <translation>Seleccionar el Color del Texto Resaltado de la Vista Esférica</translation>
+        <translation>Seleccionar color de resalte de la esfera de la vista</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation>Seleccionar color de objeto seleccionado</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation>Seleccionar color de objeto enfocado</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation>Seleccionar color de cámara</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation>Seleccionar color de luz</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation>Seleccionar color de punto de control</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation>Seleccionar color de punto de control enfocado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
-        <translation>Sin Asignar</translation>
+        <translation>Sin asignar</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
-        <translation>Estas seguro de querer borrar la categoría « %1 » ?</translation>
+        <translation>¿Seguro que quieres borrar la categoría &apos;%1&apos; ?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
-        <translation>Importar Categorias</translation>
+        <translation>Importar categorías</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
-        <translation>Archivos de Texto (*.txt);;Todos los Archivos (*.*)</translation>
+        <translation>Archivos de texto (*.txt);;Todos los archivos (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
-        <translation>Error cargando el archivo de categorias.</translation>
+        <translation>Error cargando el archivo de categorías.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
-        <translation>Exportar Categorias</translation>
+        <translation>Exportar categorías</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
-        <translation>Error guardando el archivo de categorias.</translation>
+        <translation>Error guardando el archivo de categorías.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
-        <translation>Estas seguro de querer cargar las categorias por defecto?</translation>
+        <translation>¿Seguro que quieres cargar las categorías predeterminadas?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
-        <translation>El atajo &apos;%1&apos; ya esta asignado a &apos;%2&apos;. Quieres reemplazarlo?</translation>
+        <translation>El atajo &apos;%1&apos; ya está asignado a &apos;%2&apos;. ¿Quieres reemplazarlo?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Importar atajos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Error cargando el archivo de atajos de teclado.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Exportar atajos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Error guardando el archivo de atajos de teclado.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
-        <translation>Estas seguro de querer cargar los atajos de teclado por defecto?</translation>
+        <translation>¿Seguro que quieres cargar los atajos de teclado predeterminados?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
-        <translation>Botón Izquierdo</translation>
+        <translation>Botón izquierdo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
-        <translation>Botón Central</translation>
+        <translation>Botón central</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
-        <translation>Botón Derecho</translation>
+        <translation>Botón derecho</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
-        <translation>Sobreescribir Atajo</translation>
+        <translation>Sobrescribir atajo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
-        <translation>Seleccionar Ejecutable de POV-Ray</translation>
+        <translation>Seleccionar ejecutable de POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
-        <translation>Este atajo ya esta asignado a « %1 », quieres reemplazarlo ?</translation>
+        <translation>Este atajo ya está asignado a &apos;%1&apos;. ¿Quieres reemplazarlo?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
-        <translation>Importar Atajos</translation>
+        <translation>Importar atajos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
-        <translation>Error cargando el fichero de atajos del raton.</translation>
+        <translation>Error cargando el archivo de atajos de ratón.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
-        <translation>Exportar Atajos</translation>
+        <translation>Exportar atajos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
-        <translation>Error guardando el fichero de atajos del raton.</translation>
+        <translation>Error guardando el archivo de atajos del ratón.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
-        <translation>Estas seguro de querer cargar los atajos de ratón por defecto?</translation>
+        <translation>¿Seguro que quieres cargar los atajos de ratón predeterminados?</translation>
     </message>
 </context>
 <context>
@@ -7572,17 +7794,22 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qpropertiesdialog.ui" line="36"/>
         <source>Author:</source>
-        <translation>Autor :</translation>
+        <translation>Autor:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpropertiesdialog.ui" line="46"/>
         <source>Description:</source>
-        <translation>Descripción :</translation>
+        <translation>Descripción:</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpropertiesdialog.ui" line="56"/>
         <source>Comments:</source>
-        <translation>Comentarios :</translation>
+        <translation>Comentarios:</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation>Medidas:</translation>
     </message>
     <message>
         <source>Scene</source>
@@ -7594,7 +7821,7 @@ Anisotropic: %5
     </message>
     <message>
         <source>So&amp;lid Color</source>
-        <translation type="vanished">Color Só&amp;lido</translation>
+        <translation type="vanished">Color só&amp;lido</translation>
     </message>
     <message>
         <source>&amp;Gradient</source>
@@ -7610,52 +7837,61 @@ Anisotropic: %5
     </message>
     <message>
         <source>Tile</source>
-        <translation type="vanished">Titulo</translation>
+        <translation type="vanished">Mosaico</translation>
     </message>
     <message>
         <source>Set default options for new projects</source>
-        <translation type="vanished">Asignar opciones por defecto para los nuevos proyectos</translation>
+        <translation type="vanished">Establecer opciones predeterminadas para nuevos proyectos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
-        <translation>Piezas Usadas</translation>
+        <translation>Piezas usadas</translation>
     </message>
     <message>
         <location filename="../qt/lc_qpropertiesdialog.cpp" line="44"/>
         <source>%1 Properties</source>
-        <translation>%1 Propiedades</translation>
+        <translation>Propiedades de %1</translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation>%1 x %2 x %3 cm
+%4 x %5 x %6 pulgadas
+%7 x %8 x %9 LDU</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Pieza</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Total</translation>
     </message>
     <message>
         <source>Select Background Color</source>
-        <translation type="vanished">Seleccionar Color de Fondo</translation>
+        <translation type="vanished">Seleccionar color de fondo</translation>
     </message>
     <message>
         <source>Select Background Top Color</source>
-        <translation type="vanished">Seleccionar Color de Arriba del Fondo</translation>
+        <translation type="vanished">Seleccionar color superior de fondo</translation>
     </message>
     <message>
         <source>Select Background Bottom Color</source>
-        <translation type="vanished">Seleccionar Color de Abajo del Fondo</translation>
+        <translation type="vanished">Seleccionar color inferior de fondo</translation>
     </message>
     <message>
         <source>Select Background Image</source>
-        <translation type="vanished">Seleccionar Imagen de Fondo</translation>
+        <translation type="vanished">Seleccionar imagen de fondo</translation>
     </message>
     <message>
         <source>All Image Files (*.png *.jpg *.gif *.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;GIF Files (*.gif);;BMP Files (*.bmp);;All Files (*.*)</source>
-        <translation type="vanished">Todos los Archivos de Imagen (*.png *.jpg *.gif *.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Archivos GIF (*.gif);;Archivos BMP (*.bmp);;Todos los archivos (*.*)</translation>
+        <translation type="vanished">Todos los archivos de imagen (*.png *.jpg *.gif *.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Archivos GIF (*.gif);;Archivos BMP (*.bmp);;Todos los archivos (*.*)</translation>
     </message>
 </context>
 <context>
@@ -7671,40 +7907,40 @@ Anisotropic: %5
         <translation>Valor</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Posición</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Rotación</translation>
     </message>
@@ -7713,75 +7949,75 @@ Anisotropic: %5
         <translation type="vanished">Visibilidad</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
-        <translation>Pasos Visibles</translation>
+        <translation>Pasos visibles</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
-        <translation>Mostrar</translation>
+        <translation>Mostrar en</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
-        <translation>Ocultar</translation>
+        <translation>Ocultar en</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Apariencia</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Color</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Pieza</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
-        <translation>Objectivo</translation>
+        <translation>Objetivo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Arriba</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
-        <translation>Ortográfico</translation>
+        <translation>Ortográfica</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
-        <translation>FOV</translation>
+        <translation>Campo de visión</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Cerca</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Lejos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
-        <translation>Multiples Objectos Seleccionados</translation>
+        <translation>Múltiples objetos seleccionados</translation>
     </message>
 </context>
 <context>
@@ -7789,7 +8025,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qselectdialog.ui" line="14"/>
         <source>Select Objects</source>
-        <translation>Seleccionar Objectos</translation>
+        <translation>Seleccionar objetos</translation>
     </message>
     <message>
         <location filename="../qt/lc_qselectdialog.ui" line="34"/>
@@ -7817,17 +8053,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qupdatedialog.cpp" line="37"/>
         <source>Connecting to update server...</source>
-        <translation>Conectando al servidor para actualizar…</translation>
+        <translation>Conectando con el servidor de actualizaciones...</translation>
     </message>
     <message>
         <location filename="../qt/lc_qupdatedialog.cpp" line="108"/>
         <source>&lt;p&gt;There&apos;s a newer version of LeoCAD available for download (%1.%2.%3).&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Hay una nueva version de LeoCAD disponible para descargar (%1.%2.%3).&lt;/p&gt;</translation>
+        <translation>&lt;p&gt;Hay una nueva versión de LeoCAD disponible para descargar (%1.%2.%3).&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../qt/lc_qupdatedialog.cpp" line="110"/>
         <source>&lt;p&gt;You are using the latest LeoCAD version.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Estas utilizando la última version de LeoCAD.&lt;/p&gt;</translation>
+        <translation>&lt;p&gt;Estás utilizando la última versión de LeoCAD.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../qt/lc_qupdatedialog.cpp" line="118"/>
@@ -7852,7 +8088,7 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_qupdatedialog.cpp" line="138"/>
         <source>Error connecting to the update server.</source>
-        <translation>Error conectando al servidor de actualización.</translation>
+        <translation>Error conectando al servidor de actualizaciones.</translation>
     </message>
 </context>
 <context>
@@ -7882,17 +8118,17 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_renderdialog.ui" line="62"/>
         <source>High</source>
-        <translation>Alto</translation>
+        <translation>Alta</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.ui" line="67"/>
         <source>Medium</source>
-        <translation>Medio</translation>
+        <translation>Media</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.ui" line="72"/>
         <source>Low</source>
-        <translation>Bajo</translation>
+        <translation>Baja</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.ui" line="54"/>
@@ -7912,12 +8148,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="105"/>
         <source>Cancel Render</source>
-        <translation>Cancelar Renderizado</translation>
+        <translation>Cancelar renderizado</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="105"/>
         <source>Are you sure you want to cancel the current render?</source>
-        <translatorcomment>Estas seguro de querer cancelar el renderizado actual?</translatorcomment>
+        <translatorcomment>¿Seguro que quieres cancelar el renderizado actual?</translatorcomment>
         <translation></translation>
     </message>
     <message>
@@ -7936,43 +8172,43 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="214"/>
         <source>Error starting POV-Ray.</source>
-        <translation>Error ejecutando POV-Ray.</translation>
+        <translation>Error al iniciar POV-Ray.</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="320"/>
         <source>An error occurred while rendering. Check details or try again.</source>
-        <translation>Ha ocurrido un error en el renderizado. Mira los detalles o intentalo de nuevo.</translation>
+        <translation>Ha ocurrido un error en el renderizado. Comprueba los detalles o inténtalo de nuevo.</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="337"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
-        <translation>Error guardando el archivo « %1 » :
+        <translation>Error escribiendo el archivo &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="361"/>
         <source>Error writing to %1 file &apos;%2&apos;:
 %3</source>
-        <translation>Error grabando en %1 fichero &apos;%2&apos;:
+        <translation>Error escribiendo en %1 el archivo &apos;%2&apos;:
 %3</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="368"/>
         <source>Select Output File</source>
-        <translation>Seleccionar el Archivo de Salida</translation>
+        <translation>Seleccionar archivo de salida</translation>
     </message>
     <message>
         <location filename="../qt/lc_renderdialog.cpp" line="368"/>
         <source>Supported Image Files (*.bmp *.png *.jpg);;BMP Files (*.bmp);;PNG Files (*.png);;JPEG Files (*.jpg);;All Files (*.*)</source>
-        <translation>Archivos de Imagen Soportados (*.bmp *.png *.jpg);;Archivos BMP (*.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Todos los archivos (*.*)</translation>
+        <translation>Archivos de imágenes soportados (*.bmp *.png *.jpg);;Archivos BMP (*.bmp);;Archivos PNG (*.png);;Archivos JPEG (*.jpg);;Todos los archivos (*.*)</translation>
     </message>
 </context>
 <context>
     <name>lcSelectByColorDialog</name>
     <message>
         <source>Select By Color</source>
-        <translation type="vanished">Seleccionar Por Color</translation>
+        <translation type="vanished">Seleccionar por color</translation>
     </message>
     <message>
         <source>Color:</source>
@@ -7984,12 +8220,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_setsdatabasedialog.ui" line="14"/>
         <source>Sets Database</source>
-        <translation>Base de datos de Piezas</translation>
+        <translation>Base de datos de piezas</translation>
     </message>
     <message>
         <location filename="../qt/lc_setsdatabasedialog.ui" line="22"/>
         <source>Set Name or Number</source>
-        <translation>Asignar Nombre o Número</translation>
+        <translation>Asignar nombre o número</translation>
     </message>
     <message>
         <location filename="../qt/lc_setsdatabasedialog.ui" line="29"/>
@@ -8019,12 +8255,12 @@ Anisotropic: %5
     <message>
         <location filename="../qt/lc_setsdatabasedialog.ui" line="74"/>
         <source>Sets Database provided by &lt;a href=&quot;https://www.rebrickable.com&quot;&gt;Rebrickable&lt;/a&gt;</source>
-        <translation>Base de datos de piezas de &lt;a href=&quot;https://www.rebrickable.com&quot;&gt;Rebrickable&lt;/a&gt;</translation>
+        <translation>Base de datos de piezas proporcionada por &lt;a href=&quot;https://www.rebrickable.com&quot;&gt;Rebrickable&lt;/a&gt;</translation>
     </message>
     <message>
         <location filename="../qt/lc_setsdatabasedialog.cpp" line="62"/>
         <source>Please select a set from the list.</source>
-        <translation>Por favor, seleccione un base de datos de la lista.</translation>
+        <translation>Por favor, selecciona un base de datos de la lista.</translation>
     </message>
     <message>
         <location filename="../qt/lc_setsdatabasedialog.cpp" line="69"/>
@@ -8073,25 +8309,25 @@ Anisotropic: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation>Error creando imagenes.</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation>Error</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
-        <translation>Error guardando el archivo « %1 » :
+        <translation>Error escribiendo el archivo &apos;%1&apos;:
 %2</translation>
     </message>
 </context>
diff --git a/resources/leocad_fr.ts b/resources/leocad_fr.ts
index fffe0fc..d0d7098 100644
--- a/resources/leocad_fr.ts
+++ b/resources/leocad_fr.ts
@@ -700,586 +700,581 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="981"/>
-        <source>View.Cameras.Reset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.First</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1377,37 +1372,37 @@
         <translation>Pas pour les déplacements activé</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
         <translation>Prop&amp;riétés…</translation>
     </message>
@@ -1979,563 +1974,562 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>Reset</source>
-        <translation>Réinitialiser</translation>
+        <translation type="vanished">Réinitialiser</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
+        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>First</source>
         <translation>Premier</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
         <translation>Précédent</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation>Suivant</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translation>Dernier</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
         <translation>Ajouter des clés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
         <translation>Scinder &amp;horizontalement</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
         <translation>Scinder &amp;verticalement</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
         <translation>Suppri&amp;mer la vue</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
         <translation>Réinitialiser &amp;toutes les vues</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
         <translation type="unfinished">Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation type="unfinished">Outils</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation type="unfinished">Temps</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation type="unfinished">Pièces</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation type="unfinished">Propriétés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
         <translation type="unfinished">Ligne temporelle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Plein écran</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translation>&amp;Perspective</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
         <translation>&amp;Orthographique</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
         <translation type="unfinished">Grille de base</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation>&amp;Insérer</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
         <translation>Réinitialiser le &amp;point pivot</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
         <translation>Insérer un point de contrôle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
         <translation>Enlever le point de contrôle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation>Déplacer +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation>Déplacer -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation>Déplacer +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation>Déplacer -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation>Déplacer +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation>Déplacer -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation>Tourner +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation>Tourner -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation>Tourner +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation>Tourner -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation>Tourner +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation>Tourner -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
         <translation>&amp;Assistant de minifig…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
         <translation>&amp;Arrangement…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
         <translation>Déplacer vers un nouveau modèle…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
         <translation>Fusionner les modèles sélectionnés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translation>&amp;Grouper...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation>&amp;Dégrouper</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
         <translation>&amp;Ajouter au groupe</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
         <translation>En&amp;lever du groupe</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
         <translation>&amp;Éditer les groupes…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
         <translation>&amp;Cache la sélection</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
         <translation>Cacher l’&amp;anti-sélection</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
         <translation>&amp;Décacher la sélection</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
         <translation>Décacher &amp;tout</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
         <translation>Montrer plus tôt</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
         <translation>Montrer plus tard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
         <translation>&amp;Page d’accueil de LeoCAD</translation>
     </message>
@@ -2570,12 +2564,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
         <translation>Vérifier les &amp;mises à jour…</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation>&amp;À propos...</translation>
     </message>
@@ -2583,77 +2577,77 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation type="unfinished">Sélectionner</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation type="unfinished">Déplacer</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation type="unfinished">Tourner</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation type="unfinished">Effacer</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation type="unfinished">Peindre</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translation type="unfinished">Zoomer</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation type="unfinished">Glisser</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation type="unfinished">Orbiter</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2661,117 +2655,115 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
         <translation>Nom vide</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Erreur</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Fusionné </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
         <translation>Rien à exporter.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Exporter vers 3D Studio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
         <translation>Fichiers 3DS (*.3ds);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
         <translation>N’a pas pu ouvrir le fichier « %1 » en écriture.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Exporter vers BrickLink</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
         <translation>Fichiers XML (*.xml);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Exporter vers CSV</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
         <translation>Fichiers CSV (*.csv);;Tous les fichiers (*.*)</translation>
     </message>
@@ -2780,81 +2772,81 @@ File format is not recognized.</source>
         <translation type="vanished">Erreur à la création des images.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
         <translation type="unfinished">Fichiers POV-Ray (*.pov);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
         <translation>N’a pas pu trouver les fichiers LGEO dans le dossier « %1 ».</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Exporter vers Wavefront</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Fichiers Wavefront (*.obj);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Erreur en écrivant le fichier « %1 » :
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2882,19 +2874,19 @@ File format is not recognized.</source>
         <translation type="vanished">Couleurs spéciales</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
@@ -2903,14 +2895,21 @@ File format is not recognized.</source>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation type="unfinished">Erreur</translation>
+        <translation type="obsolete">Erreur</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
-        <source>Failed to load &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation type="unfinished">N’a pas pu ouvrir le fichier « %1 » en écriture.</translation>
     </message>
 </context>
 <context>
@@ -3505,27 +3504,26 @@ File format is not recognized.</source>
         <translation>Utiliser cette caméra</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Reset views to their default positions</source>
-        <translation>Réinitialiser les vues à leur position par défaut</translation>
+        <translation type="vanished">Réinitialiser les vues à leur position par défaut</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="990"/>
+        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Go to the first step of the model</source>
         <translation>Aller à la première étape du modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="997"/>
+        <location filename="../common/lc_commands.cpp" line="990"/>
         <source>Go to the previous step</source>
         <translation>Aller à l’étape précédente</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1004"/>
+        <location filename="../common/lc_commands.cpp" line="997"/>
         <source>Go to the next step</source>
         <translation>Aller à l’étape suivante</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1004"/>
         <source>Go to the last step of the model</source>
         <translation>Aller à la dernière étape du modèle</translation>
     </message>
@@ -3534,47 +3532,48 @@ File format is not recognized.</source>
         <translation type="vanished">Insérer une nouvelle étape</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
+        <location filename="../common/lc_commands.cpp" line="1025"/>
+        <location filename="../common/lc_commands.cpp" line="1809"/>
         <source>Remove current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -3614,27 +3613,26 @@ File format is not recognized.</source>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
         <translation>Basculer l’ajout de nouvelles clés d’animation</translation>
     </message>
@@ -3689,290 +3687,290 @@ File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1018"/>
-        <location filename="../common/lc_commands.cpp" line="1802"/>
+        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
         <source>Insert a new step before the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1025"/>
-        <location filename="../common/lc_commands.cpp" line="1809"/>
+        <location filename="../common/lc_commands.cpp" line="1018"/>
+        <location filename="../common/lc_commands.cpp" line="1802"/>
         <source>Insert a new step after the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation>Scinder la vue courante horizontalement</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation>Scinder la vue courante verticalement</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation>Supprimer la vue courante</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation>Réinitialiser toutes les vues</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
         <translation>Basculer en mode plein-écran/fenêtre</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
         <translation>Utiliser une projection perspective pour la caméra courante</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation>Utiliser une projection orthographique pour la caméra courante</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
         <translation>Ajouter une nouvelle pièce au modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation>Supprimer les objets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
         <translation>Réinitialiser le point de pivot des pièces sélectionnées à leur origine</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation>Insérer un nouveau point de contrôle</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation>Déplacer les objets sélectionnés sur l’axe X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation>Déplacer les objets sélectionnés sur l’axe Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation>Déplacer les objets sélectionnés sur l’axe Z</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation>Tourner les objets sélections suivant l’axe X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation>Tourner les objets sélections suivant l’axe Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation>Tourner les objets sélections suivant l’axe Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation>Ajouter une nouvelle minifig au modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation>Faire des copies des pièces sélectionnées</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation>Insérer le contenu des modèles sélectionnés dans le modèle courant</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
         <translation>Grouper les pièces sélectionnées</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation>Dégrouper le groupe sélectionné</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation>Ajouter la pièce qui a le focus au groupe sélectionné</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation>Enlever du groupe la pièce qui a le focus</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation>Éditer les groupes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation>Cacher les objets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation>Cacher les objets qui ne sont pas sélectionnés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
         <translation>Montrer les objets cachés qui sont sélectionnés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation>Montrer les objets cachés</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
         <translation>Montrer les pièces sélectionnées une étape plus tôt</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
         <translation>Montrer les pièces sélectionnées une étape plus tard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
         <translation>Ouvrir la page d’accueil de LeoCAD avec votre navigateur web par défaut</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
         <translation>Vérifier si une nouvelle version de LeoCAD ou de la bibliothèque de pièces est disponible</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
         <translation>Voir la version du programme et des informations sur le système</translation>
     </message>
@@ -4013,13 +4011,13 @@ File format is not recognized.</source>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4028,397 +4026,397 @@ Please visit https://www.leocad.org for information on how to download and insta
 SVP visitez https://www.leocad.org pour apprendre comment télécharger et installer une bibliothèque.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
         <translation type="unfinished">LeoCAD Version %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4427,22 +4425,22 @@ Please visit https://www.leocad.org for information on how to download and insta
 SVP visitez https://www.leocad.org pour apprendre comment télécharger et installer une bibliothèque.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4491,6 +4489,26 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <source>Reset</source>
         <translation type="unfinished">Réinitialiser</translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
@@ -4526,11 +4544,21 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <source>Select Part Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
@@ -4589,109 +4617,134 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation type="unfinished">Propriétés</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4699,225 +4752,220 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Transformation</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>C&amp;améras</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Fichier</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Exporter</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Éditer</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translation>&amp;Vue</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
         <translation>&amp;Points de vue</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Projection</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>Éta&amp;pe</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
         <translation>Barres d’&amp;outils</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translation>&amp;Pièce</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>&amp;Aide</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
         <translation>Pas XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
         <translation>Pas Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
         <translation>Menu pas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
         <translation>Pas pour les déplacements</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
         <translation>Utiliser un pas donné pour les translations</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
         <translation>Menu pas pour les angles</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
         <translation>Pas pour les rotations</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
         <translation>Utiliser un pas fixe pour les rotations</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
         <translation>Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
         <translation>Outils</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
         <translation type="unfinished">Nouveau modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation>Temps</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation>Pièces</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation>Propriétés</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
         <translation>Ligne temporelle</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
         <translation>%1 (ID : %2)</translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -4925,57 +4973,57 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation type="unfinished"> M : %1 %2 R : %3  {1 %2 ?} {3 %4 ?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
         <translation> - %1 (ID : %2)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
         <translation> dans le groupe « %1 »</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation>Étape %1</translation>
     </message>
@@ -4984,34 +5032,34 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <translation type="vanished"> M : %1 %2 R : %3 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation>Ann&amp;uler %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation>Ann&amp;uler</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation>&amp;Refaire %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation>&amp;Refaire</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Fichiers pris en charge (*.lcd *.ldr *.dat *.mpd);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
@@ -5020,111 +5068,110 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <translation type="vanished">Erreur au chargement de « %1 ».</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
         <translation>Fichiers pris en charge (*.mpd);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Fichiers pris en charge (*.ldr *.dat *.mpd);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation>Erreur</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
         <translation>Enregistrer les fichiers sous le format LCD n’est plus possible, SVP utiliser les formats LDR ou MPD à la place.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
         <translation>Enregistrer les modifications à « %1 » ?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation>1/20T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation>1/4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation>1P</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation>1/2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation>1T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation>2T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation>3T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation>4T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation>8T</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation>1B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation>2B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation>4B</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation>8B</translation>
     </message>
@@ -5236,119 +5283,119 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
         <translation>Collage</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
         <translation>Erreur à la création des images.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
         <translation>Insértion d’une étape</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
         <translation>Suppression d’une étape</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation>Aucune pièce sélectionnée.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
         <translation>Groupe n°</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation type="unfinished">Erreur</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Erreur en écrivant le fichier « %1 » :
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
         <translation>Grouper</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
         <translation>Dégrouper</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
         <translation>Éditer les groupes</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
         <translation type="unfinished">Nouveau modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5373,89 +5420,89 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <translation>Modification de pièce</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
         <translation type="unfinished">Cacher</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
         <translation>Nouvelle lumière projecteur</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
         <translation>Nouvelle caméra</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
         <translation>Déplacer</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
         <translation>Tourner</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
         <translation>Zoomer</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
         <translation>Glisser</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
         <translation>Orbiter</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
         <translation>Pivoter</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
         <translation>Insérer</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
         <translation>Nouvelle lumière</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
         <translation>Suppression</translation>
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
         <translation>Peindre</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
         <translation>Aucun modèle sélectionné.</translation>
     </message>
@@ -5487,42 +5534,42 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <translation>Renomme la caméra</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
         <translation>Viser le modèle</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
         <translation>Change les propriétés</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
         <translation>Rien à sélectionner.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
         <translation>L’arrangement a seulement un élément ou moins, aucune pièce ajoutée.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
         <translation>Arrangement</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
         <translation>Minifig n°</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Minifig</translation>
     </message>
@@ -5652,17 +5699,17 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcPartSelectionListView</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation type="unfinished">Aucun</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5670,82 +5717,87 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5753,12 +5805,12 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5767,6 +5819,7 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5791,23 +5844,18 @@ SVP visitez https://www.leocad.org pour apprendre comment télécharger et insta
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Lock</source>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
-        <source>%1 the preview display to %2 updates</source>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
-        <source>%1 Preview</source>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -6452,77 +6500,77 @@ Anisotropic: %5
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation>Souris</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
         <translation>Raccourcis souris</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation>Action</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
         <translation>Bouton :</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
         <translation>Gauche</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation>Central</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
         <translation>Droit</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
         <translation>Modificateurs :</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation>Contrôle</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
         <translation>Maj</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
         <translation>Sensibilité de la souris :</translation>
     </message>
@@ -6562,9 +6610,8 @@ Anisotropic: %5
         <translation>Rendu</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
-        <translation>Bordures</translation>
+        <translation type="vanished">Bordures</translation>
     </message>
     <message>
         <source>Axis icon</source>
@@ -6575,112 +6622,113 @@ Anisotropic: %5
         <translation type="vanished">largeur</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Anti-aliasing</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
         <translation>Grille de base</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
         <translation>Dessiner les tenons</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translation>tenons</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
         <translation>Dessine des lignes tous les</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation type="unfinished">Couleur :</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6775,374 +6823,437 @@ Anisotropic: %5
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
-        <source>Fade previous steps</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation type="unfinished">Mettre en évidence les nouvelles pièces</translation>
+        <translation type="obsolete">Mettre en évidence les nouvelles pièces</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
-        <source>Automate edge color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation type="unfinished">Fond</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
         <translation>Catégories</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
         <translation>Catégories de la bibliothèque de pièces</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Importer…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
         <translation>Exporter…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
         <translation>Réinitialiser…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Catégorie</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
         <translation>Nouveau…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
         <translation>Éditer…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
         <translation>Supprimer…</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translation>Clavier</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
         <translation>Raccourcis clavier</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Commande</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Raccourcis</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Attribuer</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
         <translation>L’espacement de la grille doit être plus grand que 0.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
         <translation>Fichiers exécutables (*.exe);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
         <translation>Tous les fichiers (*.*)</translation>
     </message>
@@ -7151,235 +7262,265 @@ Anisotropic: %5
         <translation type="vanished">Lancer l’exécutable POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
         <translation>Ouvrir le dossier LGEO</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
         <translation type="unfinished">Choisir la couleur de fond</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
         <translation>Choisir le couleur des tenons de la grille</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
         <translation>Choisir la couleur des lignes de la grille</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
         <translation>Non-attribué</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
         <translation>Êtes-vous sûr de vouloir supprimer la catégorie « %1 » ?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
         <translation>Importer les catégories</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
         <translation>Fichiers texte (*.txt);;Tous les fichiers (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
         <translation>Erreur au chargement du fichier des catégories.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
         <translation>Exporter les catégories</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
         <translation>Erreur à l’enregistrement du fichier des catégories.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
         <translation>Êtes-vous sûr de vouloir charger les catégories par défaut ?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Importer les raccourcis</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Erreur au chargement du fichier des raccourcis clavier.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Exporter les raccourcis</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Erreur à l’enregistrement du fichier des raccourcis clavier.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
         <translation>Êtes-vous sûr de vouloir charger les raccourcis clavier par défaut ?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
         <translation>Bouton gauche</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
         <translation>Bouton central</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
         <translation>Bouton droit</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
         <translation>Écraser le raccourcis</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
         <translation>Ce raccourcis est déjà attribué à « %1 », voulez-vous le remplacer ?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
         <translation>Êtes-vous sûr de vouloir charger les raccourcis souris par défaut ?</translation>
     </message>
@@ -7411,6 +7552,11 @@ Anisotropic: %5
         <source>Comments:</source>
         <translation>Commentaires :</translation>
     </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Scene</source>
         <translation type="vanished">Scène</translation>
@@ -7436,7 +7582,7 @@ Anisotropic: %5
         <translation type="vanished">Attribuer les options par défauts aux nouveaux projets</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
         <translation>Pièces utilisées</translation>
     </message>
@@ -7446,13 +7592,20 @@ Anisotropic: %5
         <translation>%1 propriétés</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Pièce</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Total</translation>
     </message>
@@ -7490,40 +7643,40 @@ Anisotropic: %5
         <translation>Valeur</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Rotation</translation>
     </message>
@@ -7532,73 +7685,73 @@ Anisotropic: %5
         <translation type="vanished">Visibilité</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
         <translation>Montrer</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
         <translation>Cacher</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Apparence</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Couleur</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Pièce</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
         <translation>Cible</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Haut</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
         <translation>Orthographique</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
         <translation>FOV</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Proche</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Loin</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
         <translation>Plusieurs objets sélectionnés</translation>
     </message>
@@ -7886,22 +8039,22 @@ Anisotropic: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation type="unfinished">Erreur à la création des images.</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation type="unfinished">Erreur</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Erreur en écrivant le fichier « %1 » :
diff --git a/resources/leocad_pt.ts b/resources/leocad_pt.ts
index 613c912..4bc3183 100644
--- a/resources/leocad_pt.ts
+++ b/resources/leocad_pt.ts
@@ -700,586 +700,581 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="981"/>
-        <source>View.Cameras.Reset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.First</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1377,37 +1372,37 @@
         <translation>Grelha de Movimentos Activada</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
         <translation>Prop&amp;riedades...</translation>
     </message>
@@ -1979,563 +1974,562 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>Reset</source>
-        <translation>Reiniciar</translation>
+        <translation type="vanished">Reiniciar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
+        <location filename="../common/lc_commands.cpp" line="982"/>
         <source>First</source>
         <translation>Primeiro</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
         <translation>Anterior</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation>Seguinte</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translation>Último</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
         <translation>Adicionar Passos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
         <translation>Corte &amp;Horizontal</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
         <translation>Corte &amp;Vertical</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
         <translation>Re&amp;mover Vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
         <translation>Reini&amp;ciar Vistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
         <translation type="unfinished">Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation type="unfinished">Ferramentas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation type="unfinished">Hora</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation type="unfinished">Peças</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation type="unfinished">Propriedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
         <translation type="unfinished">Linha Temporal</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
         <translation>&amp;Tela Cheia</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translation>&amp;Perspectiva</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
         <translation>&amp;Ortográphica</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
         <translation type="unfinished">Grelha de Base</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation>&amp;Inserir</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation>&amp;Apagar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation>Mover +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation>Mover -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation>Mover +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation>Mover -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation>Mover +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation>Mover -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation>Rodar +X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation>Rodar -X</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation>Rodar +Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation>Rodar -Y</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation>Rodar +Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation>Rodar -Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
         <translation>&amp;Assistente Minifig...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
         <translation>Quad&amp;ro...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translation>&amp;Grupo...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation>Desagr&amp;upar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
         <translation>&amp;Meter no Grupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
         <translation>Re&amp;mover do Grupo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
         <translation>&amp;Editar Grupos...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
         <translation>&amp;Esconder Selecção</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
         <translation>E&amp;sconder não Seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
         <translation>&amp;Mostrar Selecção</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
         <translation>Mostr&amp;ar Tudo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
         <translation>Mostrar Anteriores</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
         <translation>Mostrar Seguintes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
         <translation>&amp;Página do LeoCAD</translation>
     </message>
@@ -2570,12 +2564,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
         <translation>Procurar act&amp;ualizações...</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation>&amp;Acerca...</translation>
     </message>
@@ -2583,77 +2577,77 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation>Seleccionar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation>Mover</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation>Rodar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation>Apagar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation>Pintar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translation type="unfinished">Zoom</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation type="unfinished">Movimento Horizontal</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation type="unfinished">Órbitar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
         <translation type="unfinished">Inclinar</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2661,117 +2655,115 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
         <translation>Nome Vazio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Combinado </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
         <translation>Nada a exportar.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Exportar para 3D Studio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
         <translation>Ficheiros 3DS (*.3ds);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
         <translation>Erro ao abrir o ficheiro &apos;%1&apos; para escrever.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Exportar BrickLink</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
         <translation>Ficheiros XML (*.xml);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation>Exportar COLLADA</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
         <translation>Ficheiros COLLADA (*.dae);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Exportar CSV</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
         <translation>Ficheiros CSV (*.csv);;Todos os Ficheiros (*.*)</translation>
     </message>
@@ -2780,81 +2772,81 @@ File format is not recognized.</source>
         <translation type="vanished">Erro ao criar as imagens.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation>Exportar POV-Ray</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
         <translation>Ficheiros POV-Ray (*.pov);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
         <translation>Não achei ficheiros LGEO na pasta &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Exportar Wavefront</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Ficheiros Wavefront (*.obj);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Erro ao escrever no ficheiro &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2882,19 +2874,19 @@ File format is not recognized.</source>
         <translation type="vanished">Cores Especiais</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
@@ -2903,14 +2895,21 @@ File format is not recognized.</source>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation type="unfinished">Erro</translation>
+        <translation type="obsolete">Erro</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
-        <source>Failed to load &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation type="unfinished">Erro ao abrir o ficheiro &apos;%1&apos; para escrever.</translation>
     </message>
 </context>
 <context>
@@ -3505,27 +3504,26 @@ File format is not recognized.</source>
         <translation>Utilizar esta câmara</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Reset views to their default positions</source>
-        <translation>Repor as vistas por omissão</translation>
+        <translation type="vanished">Repor as vistas por omissão</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="990"/>
+        <location filename="../common/lc_commands.cpp" line="983"/>
         <source>Go to the first step of the model</source>
         <translation>Ir ao primeiro passo do modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="997"/>
+        <location filename="../common/lc_commands.cpp" line="990"/>
         <source>Go to the previous step</source>
         <translation>Ir ao passo anterior</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1004"/>
+        <location filename="../common/lc_commands.cpp" line="997"/>
         <source>Go to the next step</source>
         <translation>Ir ao passo seguinte</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1004"/>
         <source>Go to the last step of the model</source>
         <translation>Ir ao último passo do modelo</translation>
     </message>
@@ -3534,47 +3532,48 @@ File format is not recognized.</source>
         <translation type="vanished">Inserir um novo passo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
+        <location filename="../common/lc_commands.cpp" line="1025"/>
+        <location filename="../common/lc_commands.cpp" line="1809"/>
         <source>Remove current step</source>
         <translation>Apaga o passo actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -3614,27 +3613,26 @@ File format is not recognized.</source>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
         <translation>Activa a adição de novos passos</translation>
     </message>
@@ -3689,290 +3687,290 @@ File format is not recognized.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1018"/>
-        <location filename="../common/lc_commands.cpp" line="1802"/>
+        <location filename="../common/lc_commands.cpp" line="1011"/>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
         <source>Insert a new step before the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1025"/>
-        <location filename="../common/lc_commands.cpp" line="1809"/>
+        <location filename="../common/lc_commands.cpp" line="1018"/>
+        <location filename="../common/lc_commands.cpp" line="1802"/>
         <source>Insert a new step after the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation>Divide horizontalemente a vista actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation>Divide verticalemente a vista actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation>Apaga a vista actual</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation>Reinicia todas as vistas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
         <translation>Modo tela cheia</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
         <translation>Define a câmara actual em projecção por perspectiva</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation>Define a câmara actual em projecção ortogonal</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
         <translation>Adiciona ma nova peça ao modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation>Apagar os objectos seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation>Move os objectos seleccionados no eixo X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation>Move os objectos seleccionados no eixo Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation>Move os objectos seleccionados no eixo Z</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation>Roda os objectos seleccionados no eixo X</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation>Roda os objectos seleccionados no eixo Y</translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation>Roda os objectos seleccionados no eixo Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation>Adiciona uma minifigura ao modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation>Duplica as peças seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
         <translation>Agrupa as peças seleccionadas</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation>Desagrupa o grupo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation>Adiciona a peça activa ao grupo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation>Apaga a peça activa do grupo seleccionado</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation>Editar grupos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation>Esconder os objectos seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation>Esconder os objectos não seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
         <translation>Mostrar os objectos escondidos que estão seleccionados</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation>Mostrar todos os objectos escondidos</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
         <translation>Mostrar as peças seleccionadas um passo antes</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
         <translation>Mostrar as peças seleccionadas um passo depois</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
         <translation>Abre a página internet do LeoCAD com o navegador por omissão</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
         <translation>Verifica se uma nova versão do LeoCAD ou da Biblioteca de peças estão disponiveis</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
         <translation>Mostra o número de versão do programa e informações do sisitema</translation>
     </message>
@@ -4013,13 +4011,13 @@ File format is not recognized.</source>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4028,397 +4026,397 @@ Please visit https://www.leocad.org for information on how to download and insta
 Veja https://www.leocad.org para saber como descarragar e instalar uma biblioteca.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
         <translation type="unfinished">LeoCAD Versão %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4427,22 +4425,22 @@ Please visit https://www.leocad.org for information on how to download and insta
 Veja https://www.leocad.org para saber como descarragar e instalar uma biblioteca.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4491,6 +4489,26 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <source>Reset</source>
         <translation type="unfinished">Reiniciar</translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
@@ -4526,11 +4544,21 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <source>Select Part Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
@@ -4589,109 +4617,134 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation type="unfinished">Propriedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4699,225 +4752,220 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Transformar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>Câm&amp;aras</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Ficheiro</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Exportar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translation>&amp;Ver</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
         <translation>Ponto de &amp;Vista</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Projecção</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>&amp;Passo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
         <translation>&amp;Barras de Ferramentas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translation>&amp;Peça</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>A&amp;juda</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
         <translation>Fixa XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
         <translation>Fixa Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
         <translation>Menu Fixar</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
         <translation>Fixar Movimentos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
         <translation>Fixa translações por intervalos fixos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
         <translation>Menu de fixação dos ângulos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
         <translation>Grelha de Rotação</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
         <translation>Fixa as rotações por intervalos fixos</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
         <translation>Standard</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
         <translation>Ferramentas</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
         <translation>Novo Modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation>Hora</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation>Peças</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation>Propriedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
         <translation>Linha Temporal</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -4925,17 +4973,17 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation>Passo %1</translation>
     </message>
@@ -4944,59 +4992,59 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <translation type="vanished"> M: %1 %2 R: %3 </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation>&amp;Desfazer %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation>Desfa&amp;zer</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation>&amp;Refazer %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation>&amp;Refazer</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Ficheiros Aceites (*.lcd *.ldr *.dat *.mpd);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation></translation>
     </message>
@@ -5005,126 +5053,125 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <translation type="vanished">Erro ao carregar &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
         <translation>Ficheiros Aceites (*.mpd);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation>Ficheiros Aceites (*.ldr *.dat *.mpd);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation type="unfinished"> M: %1 %2 R: %3  {1 %2 ?} {3 %4 ?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
         <translation>O formato LCD já não é aceite para gravar, escolha os formatos LDR ou MPD.</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
         <translation>Gravar as modificações de &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation>8x {0?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation>8x {1/20S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation>8x {1/4S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation>8x {1F?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation>8x {1/2S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation>8x {1S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation>8x {2S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation>8x {3S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation>8x {4S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation>8x {8S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation>Nenhum</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation>8x {1B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation>8x {2B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation>8x {4B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation>8x {8B?}</translation>
     </message>
@@ -5236,63 +5283,63 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
         <translation>Colando</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
         <translation>Erro ao criar as imagens.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
         <translation>Inserir Passo</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
         <translation>Remover Passo</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation>Nenhuma peça seleccionada.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
         <translation>Grupo #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
         <translation>Agrupar</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
         <translation>Desagrupar</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
         <translation>Editar Grupos</translation>
     </message>
@@ -5312,127 +5359,127 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <translation>Definir a Peça</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
         <translation>Mover a Câmara</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
         <translation>Novo Projector</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
         <translation>Nova Câmara</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
         <translation>Mover</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
         <translation>Rodar</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
         <translation>Zoom</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
         <translation>Movimento Horizontal</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
         <translation>Órbitar</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
         <translation>Inclinar</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
         <translation>Inserir</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
         <translation>Nova Luz</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
         <translation>Apagando</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation>Erro</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Erro ao escrever no ficheiro &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
         <translation>Novo Modelo</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5443,7 +5490,7 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
         <translation>Pintado</translation>
     </message>
@@ -5475,54 +5522,54 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
         <translation type="unfinished">Esconder</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
         <translation>Olhar Para</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
         <translation>Mudando Propriedades</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
         <translation>Nada a selccionar.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
         <translation>O quadro só tem um elemento ou menos, nenhuma peça foi adicionada.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
         <translation>Quadro</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
         <translation>Mnifig #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Mini-figura</translation>
     </message>
@@ -5652,17 +5699,17 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcPartSelectionListView</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation type="unfinished">Nenhum</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5670,82 +5717,87 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5753,12 +5805,12 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5767,6 +5819,7 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5791,23 +5844,18 @@ Veja https://www.leocad.org para saber como descarragar e instalar uma bibliotec
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Lock</source>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
-        <source>%1 the preview display to %2 updates</source>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
-        <source>%1 Preview</source>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -6447,7 +6495,7 @@ Anisotropic: %5
         <translation type="vanished">Biblioteca de peças personalizada:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
         <translation>Sensibilidade do rato :</translation>
     </message>
@@ -6492,9 +6540,8 @@ Anisotropic: %5
         <translation>Restituir</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
-        <translation>Contornos</translation>
+        <translation type="vanished">Contornos</translation>
     </message>
     <message>
         <source>Axis icon</source>
@@ -6505,112 +6552,113 @@ Anisotropic: %5
         <translation type="vanished">largura</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Suavização</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
         <translation>Grelha de Base</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
         <translation>Desenhar pregos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translation>pregos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
         <translation>Desenhar linhas cada</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation type="unfinished">Cor:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6705,444 +6753,507 @@ Anisotropic: %5
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
-        <source>Fade previous steps</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation type="unfinished">Destacar as novas peças</translation>
+        <translation type="obsolete">Destacar as novas peças</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
-        <source>Automate edge color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation type="unfinished">Fundo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
         <translation>Categorias</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
         <translation>Categorias de Peças na Biblioteca</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Número</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Importar....</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
         <translation>Exportar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
         <translation>Reiniciar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Categoria</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
         <translation>Novo...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
         <translation>Editar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
         <translation>Apagar...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translation>Teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
         <translation>Atalhos de Teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Commando</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Atalho</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation type="unfinished">Nenhum</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
         <translation type="unfinished">Left</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
         <translation type="unfinished">Right</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Definir</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Remover</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
         <translation>O espaço de grelha deve ser superior a 0.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
         <translation>Ficheiros Executaveis(*.exe);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
         <translation>Todos os Ficheiros (*.*)</translation>
     </message>
@@ -7151,235 +7262,265 @@ Anisotropic: %5
         <translation type="vanished">Escolher o programa POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
         <translation>Escolher a Pasta LGEO</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
         <translation type="unfinished">Seleccionar a Cor do Fundo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
         <translation>Cor dos Pregos na Grelha</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
         <translation>Cor das Linhas na Grelha</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
         <translation>Por Definir</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
         <translation>Confirmar querer apagar a categoria &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
         <translation>Importar Categorias</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
         <translation>Ficheiros Texto (*.txt);;Todos os Ficheiros (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
         <translation>Erro ao carregar o ficheiro de categorias.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
         <translation>Exportar Categorias</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
         <translation>Erro ao gravar o ficheiro de categorias.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
         <translation>Confirmar querer carregar as categorias por omissão?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Importar Atalhos de Teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Erro ao carregar o ficheiro de atalhos de teclado.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Exportar Atalhos de Teclado</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Erro ao gravar o ficheiro de atalhos de teclado.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
         <translation>Confirmar querer carregar os atalhos de teclado por omissão?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7411,6 +7552,11 @@ Anisotropic: %5
         <source>Comments:</source>
         <translation>Comentários:</translation>
     </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Scene</source>
         <translation type="vanished">Cena</translation>
@@ -7432,7 +7578,7 @@ Anisotropic: %5
         <translation type="vanished">Definir por omissão para os novos projectos</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
         <translation>Peças Utilizadas</translation>
     </message>
@@ -7442,13 +7588,20 @@ Anisotropic: %5
         <translation>Propriedades %1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Peça</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Total</translation>
     </message>
@@ -7486,40 +7639,40 @@ Anisotropic: %5
         <translation>Valor</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Posição</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Rotação</translation>
     </message>
@@ -7528,73 +7681,73 @@ Anisotropic: %5
         <translation type="vanished">Visibilidade</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
         <translation>Mostrar</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
         <translation>Esconder</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Estilo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Cor</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Peça</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
         <translation>Objectivo</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Subir</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
         <translation>Ortográfico</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
         <translation>FOV</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Perto</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Longe</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7886,22 +8039,22 @@ Anisotropic: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation type="unfinished">Erro ao criar as imagens.</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation type="unfinished">Erro</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Erro ao escrever no ficheiro &apos;%1&apos;:
diff --git a/resources/leocad_uk.ts b/resources/leocad_uk.ts
index 7b8e0e4..f8a0af7 100644
--- a/resources/leocad_uk.ts
+++ b/resources/leocad_uk.ts
@@ -700,586 +700,581 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="981"/>
-        <source>View.Cameras.Reset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.First</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="995"/>
+        <location filename="../common/lc_commands.cpp" line="988"/>
         <source>View.Time.Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1002"/>
+        <location filename="../common/lc_commands.cpp" line="995"/>
         <source>View.Time.Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1009"/>
+        <location filename="../common/lc_commands.cpp" line="1002"/>
         <source>View.Time.Last</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1016"/>
+        <location filename="../common/lc_commands.cpp" line="1009"/>
         <source>View.Time.InsertBefore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1023"/>
+        <location filename="../common/lc_commands.cpp" line="1016"/>
         <source>View.Time.InsertAfter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1030"/>
+        <location filename="../common/lc_commands.cpp" line="1023"/>
         <source>View.Time.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1037"/>
+        <location filename="../common/lc_commands.cpp" line="1030"/>
         <source>View.Time.AddKeys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1044"/>
+        <location filename="../common/lc_commands.cpp" line="1037"/>
         <source>View.SplitHorizontal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1051"/>
+        <location filename="../common/lc_commands.cpp" line="1044"/>
         <source>View.SplitVertical</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1058"/>
+        <location filename="../common/lc_commands.cpp" line="1051"/>
         <source>View.RemoveView</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1065"/>
+        <location filename="../common/lc_commands.cpp" line="1058"/>
         <source>View.ResetViews</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1072"/>
+        <location filename="../common/lc_commands.cpp" line="1065"/>
         <source>View.Toolbars.Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1079"/>
+        <location filename="../common/lc_commands.cpp" line="1072"/>
         <source>View.Toolbars.Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1086"/>
+        <location filename="../common/lc_commands.cpp" line="1079"/>
         <source>View.Toolbars.Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1093"/>
+        <location filename="../common/lc_commands.cpp" line="1086"/>
         <source>View.Toolbars.Parts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1100"/>
+        <location filename="../common/lc_commands.cpp" line="1093"/>
         <source>View.Toolbars.Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1107"/>
+        <location filename="../common/lc_commands.cpp" line="1100"/>
         <source>View.Toolbars.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1114"/>
+        <location filename="../common/lc_commands.cpp" line="1107"/>
         <source>View.Toolbars.Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1121"/>
+        <location filename="../common/lc_commands.cpp" line="1114"/>
         <source>View.Toolbars.Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1128"/>
+        <location filename="../common/lc_commands.cpp" line="1121"/>
         <source>View.FullScreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1135"/>
+        <location filename="../common/lc_commands.cpp" line="1128"/>
         <source>View.CloseCurrentTab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1142"/>
+        <location filename="../common/lc_commands.cpp" line="1135"/>
         <source>View.Shade.Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1149"/>
+        <location filename="../common/lc_commands.cpp" line="1142"/>
         <source>View.Shade.Flat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1156"/>
+        <location filename="../common/lc_commands.cpp" line="1149"/>
         <source>View.Shade.DefaultLights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1163"/>
+        <location filename="../common/lc_commands.cpp" line="1156"/>
         <source>View.Projection.Perspective</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1170"/>
+        <location filename="../common/lc_commands.cpp" line="1163"/>
         <source>View.Projection.Orthographic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1177"/>
+        <location filename="../common/lc_commands.cpp" line="1170"/>
         <source>View.ToggleViewSphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1184"/>
+        <location filename="../common/lc_commands.cpp" line="1177"/>
         <source>View.ToggleAxisIcon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1191"/>
+        <location filename="../common/lc_commands.cpp" line="1184"/>
         <source>View.ToggleGrid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1198"/>
+        <location filename="../common/lc_commands.cpp" line="1191"/>
         <source>View.FadePreviousSteps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1205"/>
+        <location filename="../common/lc_commands.cpp" line="1198"/>
         <source>Piece.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1212"/>
+        <location filename="../common/lc_commands.cpp" line="1205"/>
         <source>Piece.Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1219"/>
+        <location filename="../common/lc_commands.cpp" line="1212"/>
         <source>Piece.Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1226"/>
+        <location filename="../common/lc_commands.cpp" line="1219"/>
         <source>Piece.PaintSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1233"/>
+        <location filename="../common/lc_commands.cpp" line="1226"/>
         <source>Piece.ResetPivotPoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1240"/>
+        <location filename="../common/lc_commands.cpp" line="1233"/>
         <source>Piece.RemoveKeyFrames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1247"/>
+        <location filename="../common/lc_commands.cpp" line="1240"/>
         <source>Piece.ControlPoint.Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1254"/>
+        <location filename="../common/lc_commands.cpp" line="1247"/>
         <source>Piece.ControlPoint.Remove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1261"/>
+        <location filename="../common/lc_commands.cpp" line="1254"/>
         <source>Piece.Move.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1268"/>
+        <location filename="../common/lc_commands.cpp" line="1261"/>
         <source>Piece.Move.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1275"/>
+        <location filename="../common/lc_commands.cpp" line="1268"/>
         <source>Piece.Move.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1282"/>
+        <location filename="../common/lc_commands.cpp" line="1275"/>
         <source>Piece.Move.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1289"/>
+        <location filename="../common/lc_commands.cpp" line="1282"/>
         <source>Piece.Move.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1296"/>
+        <location filename="../common/lc_commands.cpp" line="1289"/>
         <source>Piece.Move.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1303"/>
+        <location filename="../common/lc_commands.cpp" line="1296"/>
         <source>Piece.Rotate.PlusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1310"/>
+        <location filename="../common/lc_commands.cpp" line="1303"/>
         <source>Piece.Rotate.MinusX</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1317"/>
+        <location filename="../common/lc_commands.cpp" line="1310"/>
         <source>Piece.Rotate.PlusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1324"/>
+        <location filename="../common/lc_commands.cpp" line="1317"/>
         <source>Piece.Rotate.MinusY</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1331"/>
+        <location filename="../common/lc_commands.cpp" line="1324"/>
         <source>Piece.Rotate.PlusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1338"/>
+        <location filename="../common/lc_commands.cpp" line="1331"/>
         <source>Piece.Rotate.MinusZ</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1345"/>
+        <location filename="../common/lc_commands.cpp" line="1338"/>
         <source>Piece.MinifigWizard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1352"/>
+        <location filename="../common/lc_commands.cpp" line="1345"/>
         <source>Piece.Array</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1359"/>
+        <location filename="../common/lc_commands.cpp" line="1352"/>
         <source>Piece.ViewSelectedModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1366"/>
+        <location filename="../common/lc_commands.cpp" line="1359"/>
         <source>Piece.MoveSelectionToModel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1373"/>
+        <location filename="../common/lc_commands.cpp" line="1366"/>
         <source>Piece.InlineSelectedModels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1380"/>
+        <location filename="../common/lc_commands.cpp" line="1373"/>
         <source>Piece.EditSelectedSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1387"/>
+        <location filename="../common/lc_commands.cpp" line="1380"/>
         <source>Piece.EditEndSubmodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1394"/>
+        <location filename="../common/lc_commands.cpp" line="1387"/>
         <source>Piece.Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1401"/>
+        <location filename="../common/lc_commands.cpp" line="1394"/>
         <source>Piece.Ungroup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1408"/>
+        <location filename="../common/lc_commands.cpp" line="1401"/>
         <source>Piece.GroupAdd</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1415"/>
+        <location filename="../common/lc_commands.cpp" line="1408"/>
         <source>Piece.GroupRemove</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1422"/>
+        <location filename="../common/lc_commands.cpp" line="1415"/>
         <source>Piece.GroupEdit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1429"/>
+        <location filename="../common/lc_commands.cpp" line="1422"/>
         <source>Piece.HideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1436"/>
+        <location filename="../common/lc_commands.cpp" line="1429"/>
         <source>Piece.HideUnselected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1443"/>
+        <location filename="../common/lc_commands.cpp" line="1436"/>
         <source>Piece.UnhideSelected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1450"/>
+        <location filename="../common/lc_commands.cpp" line="1443"/>
         <source>Piece.UnhideAll</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1457"/>
+        <location filename="../common/lc_commands.cpp" line="1450"/>
         <source>Piece.ShowEarlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1464"/>
+        <location filename="../common/lc_commands.cpp" line="1457"/>
         <source>Piece.ShowLater</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1471"/>
+        <location filename="../common/lc_commands.cpp" line="1464"/>
         <source>Model.New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1478"/>
+        <location filename="../common/lc_commands.cpp" line="1471"/>
         <source>Model.Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1485"/>
+        <location filename="../common/lc_commands.cpp" line="1478"/>
         <source>Model.List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1492"/>
+        <location filename="../common/lc_commands.cpp" line="1485"/>
         <source>Model.Model01</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1499"/>
+        <location filename="../common/lc_commands.cpp" line="1492"/>
         <source>Model.Model02</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1506"/>
+        <location filename="../common/lc_commands.cpp" line="1499"/>
         <source>Model.Model03</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1513"/>
+        <location filename="../common/lc_commands.cpp" line="1506"/>
         <source>Model.Model04</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1520"/>
+        <location filename="../common/lc_commands.cpp" line="1513"/>
         <source>Model.Model05</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1527"/>
+        <location filename="../common/lc_commands.cpp" line="1520"/>
         <source>Model.Model06</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1534"/>
+        <location filename="../common/lc_commands.cpp" line="1527"/>
         <source>Model.Model07</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1541"/>
+        <location filename="../common/lc_commands.cpp" line="1534"/>
         <source>Model.Model08</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1548"/>
+        <location filename="../common/lc_commands.cpp" line="1541"/>
         <source>Model.Model09</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1555"/>
+        <location filename="../common/lc_commands.cpp" line="1548"/>
         <source>Model.Model10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1562"/>
+        <location filename="../common/lc_commands.cpp" line="1555"/>
         <source>Model.Model11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1569"/>
+        <location filename="../common/lc_commands.cpp" line="1562"/>
         <source>Model.Model12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1576"/>
+        <location filename="../common/lc_commands.cpp" line="1569"/>
         <source>Model.Model13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1583"/>
+        <location filename="../common/lc_commands.cpp" line="1576"/>
         <source>Model.Model14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1590"/>
+        <location filename="../common/lc_commands.cpp" line="1583"/>
         <source>Model.Model15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1597"/>
+        <location filename="../common/lc_commands.cpp" line="1590"/>
         <source>Model.Model16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1604"/>
+        <location filename="../common/lc_commands.cpp" line="1597"/>
         <source>Model.Model17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1611"/>
+        <location filename="../common/lc_commands.cpp" line="1604"/>
         <source>Model.Model18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1618"/>
+        <location filename="../common/lc_commands.cpp" line="1611"/>
         <source>Model.Model19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1625"/>
+        <location filename="../common/lc_commands.cpp" line="1618"/>
         <source>Model.Model20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1632"/>
+        <location filename="../common/lc_commands.cpp" line="1625"/>
         <source>Model.Model21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1639"/>
+        <location filename="../common/lc_commands.cpp" line="1632"/>
         <source>Model.Model22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1646"/>
+        <location filename="../common/lc_commands.cpp" line="1639"/>
         <source>Model.Model23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1653"/>
+        <location filename="../common/lc_commands.cpp" line="1646"/>
         <source>Model.Model24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1660"/>
+        <location filename="../common/lc_commands.cpp" line="1653"/>
         <source>Model.Model25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1667"/>
+        <location filename="../common/lc_commands.cpp" line="1660"/>
         <source>Model.Model26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1674"/>
+        <location filename="../common/lc_commands.cpp" line="1667"/>
         <source>Model.Model27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1681"/>
+        <location filename="../common/lc_commands.cpp" line="1674"/>
         <source>Model.Model28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1688"/>
+        <location filename="../common/lc_commands.cpp" line="1681"/>
         <source>Model.Model29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1695"/>
+        <location filename="../common/lc_commands.cpp" line="1688"/>
         <source>Model.Model30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1702"/>
+        <location filename="../common/lc_commands.cpp" line="1695"/>
         <source>Model.Model31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1709"/>
+        <location filename="../common/lc_commands.cpp" line="1702"/>
         <source>Model.Model32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1716"/>
+        <location filename="../common/lc_commands.cpp" line="1709"/>
         <source>Model.Model33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1723"/>
+        <location filename="../common/lc_commands.cpp" line="1716"/>
         <source>Model.Model34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1730"/>
+        <location filename="../common/lc_commands.cpp" line="1723"/>
         <source>Model.Model35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1737"/>
+        <location filename="../common/lc_commands.cpp" line="1730"/>
         <source>Model.Model36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1744"/>
+        <location filename="../common/lc_commands.cpp" line="1737"/>
         <source>Model.Model37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1751"/>
+        <location filename="../common/lc_commands.cpp" line="1744"/>
         <source>Model.Model38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1758"/>
+        <location filename="../common/lc_commands.cpp" line="1751"/>
         <source>Model.Model39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1765"/>
+        <location filename="../common/lc_commands.cpp" line="1758"/>
         <source>Model.Model40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1772"/>
+        <location filename="../common/lc_commands.cpp" line="1765"/>
         <source>Help.HomePage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1779"/>
+        <location filename="../common/lc_commands.cpp" line="1772"/>
         <source>Help.BugReport</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1786"/>
+        <location filename="../common/lc_commands.cpp" line="1779"/>
         <source>Help.Updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1793"/>
+        <location filename="../common/lc_commands.cpp" line="1786"/>
         <source>Help.About</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1951,607 +1946,602 @@
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="982"/>
-        <source>Reset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>First</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="996"/>
+        <location filename="../common/lc_commands.cpp" line="989"/>
         <source>Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1003"/>
+        <location filename="../common/lc_commands.cpp" line="996"/>
         <source>Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1010"/>
+        <location filename="../common/lc_commands.cpp" line="1003"/>
         <source>Last</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1017"/>
+        <location filename="../common/lc_commands.cpp" line="1010"/>
         <source>Insert Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1017"/>
         <source>Insert After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1031"/>
-        <location filename="../common/lc_commands.cpp" line="1815"/>
+        <location filename="../common/lc_commands.cpp" line="1024"/>
+        <location filename="../common/lc_commands.cpp" line="1808"/>
         <source>Remove Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1038"/>
+        <location filename="../common/lc_commands.cpp" line="1031"/>
         <source>Add Keys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1045"/>
+        <location filename="../common/lc_commands.cpp" line="1038"/>
         <source>Split &amp;Horizontal</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1052"/>
+        <location filename="../common/lc_commands.cpp" line="1045"/>
         <source>Split &amp;Vertical</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1059"/>
+        <location filename="../common/lc_commands.cpp" line="1052"/>
         <source>Re&amp;move View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1066"/>
+        <location filename="../common/lc_commands.cpp" line="1059"/>
         <source>Rese&amp;t Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1073"/>
+        <location filename="../common/lc_commands.cpp" line="1066"/>
         <source>Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1080"/>
+        <location filename="../common/lc_commands.cpp" line="1073"/>
         <source>Tools</source>
         <translation type="unfinished">Інтструменти</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1087"/>
+        <location filename="../common/lc_commands.cpp" line="1080"/>
         <source>Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1094"/>
+        <location filename="../common/lc_commands.cpp" line="1087"/>
         <source>Parts</source>
         <translation type="unfinished">Блоків</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1101"/>
+        <location filename="../common/lc_commands.cpp" line="1094"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1108"/>
+        <location filename="../common/lc_commands.cpp" line="1101"/>
         <source>Properties</source>
         <translation type="unfinished">Властивості</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1115"/>
+        <location filename="../common/lc_commands.cpp" line="1108"/>
         <source>Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1122"/>
+        <location filename="../common/lc_commands.cpp" line="1115"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1129"/>
+        <location filename="../common/lc_commands.cpp" line="1122"/>
         <source>&amp;Full Screen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1136"/>
+        <location filename="../common/lc_commands.cpp" line="1129"/>
         <source>Close &amp;Tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1143"/>
+        <location filename="../common/lc_commands.cpp" line="1136"/>
         <source>&amp;Wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1150"/>
+        <location filename="../common/lc_commands.cpp" line="1143"/>
         <source>&amp;Flat Shading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1157"/>
+        <location filename="../common/lc_commands.cpp" line="1150"/>
         <source>&amp;Default Lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1164"/>
+        <location filename="../common/lc_commands.cpp" line="1157"/>
         <source>&amp;Perspective</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1171"/>
+        <location filename="../common/lc_commands.cpp" line="1164"/>
         <source>&amp;Orthographic</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1178"/>
+        <location filename="../common/lc_commands.cpp" line="1171"/>
         <source>View Sphere</source>
         <translation type="unfinished">Сфера візуалізації</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1185"/>
+        <location filename="../common/lc_commands.cpp" line="1178"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1192"/>
+        <location filename="../common/lc_commands.cpp" line="1185"/>
         <source>Base Grid</source>
         <translation type="unfinished">Базова сітка</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1199"/>
+        <location filename="../common/lc_commands.cpp" line="1192"/>
         <source>Fade Previous Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1206"/>
+        <location filename="../common/lc_commands.cpp" line="1199"/>
         <source>&amp;Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1213"/>
+        <location filename="../common/lc_commands.cpp" line="1206"/>
         <source>&amp;Delete</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1220"/>
+        <location filename="../common/lc_commands.cpp" line="1213"/>
         <source>&amp;Duplicate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1227"/>
+        <location filename="../common/lc_commands.cpp" line="1220"/>
         <source>&amp;Paint Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1234"/>
+        <location filename="../common/lc_commands.cpp" line="1227"/>
         <source>Reset &amp;Pivot Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1241"/>
+        <location filename="../common/lc_commands.cpp" line="1234"/>
         <source>Remove &amp;Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1248"/>
+        <location filename="../common/lc_commands.cpp" line="1241"/>
         <source>Insert Control Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1255"/>
+        <location filename="../common/lc_commands.cpp" line="1248"/>
         <source>Remove Control Point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1262"/>
+        <location filename="../common/lc_commands.cpp" line="1255"/>
         <source>Move +X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1269"/>
+        <location filename="../common/lc_commands.cpp" line="1262"/>
         <source>Move -X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1276"/>
+        <location filename="../common/lc_commands.cpp" line="1269"/>
         <source>Move +Y</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1283"/>
+        <location filename="../common/lc_commands.cpp" line="1276"/>
         <source>Move -Y</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1290"/>
+        <location filename="../common/lc_commands.cpp" line="1283"/>
         <source>Move +Z</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1297"/>
+        <location filename="../common/lc_commands.cpp" line="1290"/>
         <source>Move -Z</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1304"/>
+        <location filename="../common/lc_commands.cpp" line="1297"/>
         <source>Rotate +X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1311"/>
+        <location filename="../common/lc_commands.cpp" line="1304"/>
         <source>Rotate -X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1318"/>
+        <location filename="../common/lc_commands.cpp" line="1311"/>
         <source>Rotate +Y</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1325"/>
+        <location filename="../common/lc_commands.cpp" line="1318"/>
         <source>Rotate -Y</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1332"/>
+        <location filename="../common/lc_commands.cpp" line="1325"/>
         <source>Rotate +Z</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1339"/>
+        <location filename="../common/lc_commands.cpp" line="1332"/>
         <source>Rotate -Z</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1346"/>
+        <location filename="../common/lc_commands.cpp" line="1339"/>
         <source>Minifig &amp;Wizard...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1353"/>
+        <location filename="../common/lc_commands.cpp" line="1346"/>
         <source>A&amp;rray...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1360"/>
+        <location filename="../common/lc_commands.cpp" line="1353"/>
         <source>Open Selected Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1367"/>
+        <location filename="../common/lc_commands.cpp" line="1360"/>
         <source>Move to New Model...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1374"/>
+        <location filename="../common/lc_commands.cpp" line="1367"/>
         <source>Inline Selected Models</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1381"/>
+        <location filename="../common/lc_commands.cpp" line="1374"/>
         <source>Edit Selected Submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1388"/>
+        <location filename="../common/lc_commands.cpp" line="1381"/>
         <source>End Submodel Editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1395"/>
+        <location filename="../common/lc_commands.cpp" line="1388"/>
         <source>&amp;Group...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1402"/>
+        <location filename="../common/lc_commands.cpp" line="1395"/>
         <source>&amp;Ungroup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1409"/>
+        <location filename="../common/lc_commands.cpp" line="1402"/>
         <source>&amp;Add to Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1416"/>
+        <location filename="../common/lc_commands.cpp" line="1409"/>
         <source>Re&amp;move from Group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1423"/>
+        <location filename="../common/lc_commands.cpp" line="1416"/>
         <source>&amp;Edit Groups...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1430"/>
+        <location filename="../common/lc_commands.cpp" line="1423"/>
         <source>&amp;Hide Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1437"/>
+        <location filename="../common/lc_commands.cpp" line="1430"/>
         <source>Hide &amp;Unselected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1444"/>
+        <location filename="../common/lc_commands.cpp" line="1437"/>
         <source>&amp;Unhide Selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1451"/>
+        <location filename="../common/lc_commands.cpp" line="1444"/>
         <source>U&amp;nhide All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1458"/>
+        <location filename="../common/lc_commands.cpp" line="1451"/>
         <source>Show Earlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1465"/>
+        <location filename="../common/lc_commands.cpp" line="1458"/>
         <source>Show Later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1472"/>
+        <location filename="../common/lc_commands.cpp" line="1465"/>
         <source>New Submodel...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1479"/>
+        <location filename="../common/lc_commands.cpp" line="1472"/>
         <source>Prope&amp;rties...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1486"/>
+        <location filename="../common/lc_commands.cpp" line="1479"/>
         <source>Submodels...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1493"/>
+        <location filename="../common/lc_commands.cpp" line="1486"/>
         <source>Model 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1500"/>
+        <location filename="../common/lc_commands.cpp" line="1493"/>
         <source>Model 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1507"/>
+        <location filename="../common/lc_commands.cpp" line="1500"/>
         <source>Model 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1514"/>
+        <location filename="../common/lc_commands.cpp" line="1507"/>
         <source>Model 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1521"/>
+        <location filename="../common/lc_commands.cpp" line="1514"/>
         <source>Model 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1528"/>
+        <location filename="../common/lc_commands.cpp" line="1521"/>
         <source>Model 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1535"/>
+        <location filename="../common/lc_commands.cpp" line="1528"/>
         <source>Model 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1542"/>
+        <location filename="../common/lc_commands.cpp" line="1535"/>
         <source>Model 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1549"/>
+        <location filename="../common/lc_commands.cpp" line="1542"/>
         <source>Model 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1556"/>
+        <location filename="../common/lc_commands.cpp" line="1549"/>
         <source>Model 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1563"/>
+        <location filename="../common/lc_commands.cpp" line="1556"/>
         <source>Model 11</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1570"/>
+        <location filename="../common/lc_commands.cpp" line="1563"/>
         <source>Model 12</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1577"/>
+        <location filename="../common/lc_commands.cpp" line="1570"/>
         <source>Model 13</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1584"/>
+        <location filename="../common/lc_commands.cpp" line="1577"/>
         <source>Model 14</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1591"/>
+        <location filename="../common/lc_commands.cpp" line="1584"/>
         <source>Model 15</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1598"/>
+        <location filename="../common/lc_commands.cpp" line="1591"/>
         <source>Model 16</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1605"/>
+        <location filename="../common/lc_commands.cpp" line="1598"/>
         <source>Model 17</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1612"/>
+        <location filename="../common/lc_commands.cpp" line="1605"/>
         <source>Model 18</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1619"/>
+        <location filename="../common/lc_commands.cpp" line="1612"/>
         <source>Model 19</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1626"/>
+        <location filename="../common/lc_commands.cpp" line="1619"/>
         <source>Model 20</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1633"/>
+        <location filename="../common/lc_commands.cpp" line="1626"/>
         <source>Model 21</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1640"/>
+        <location filename="../common/lc_commands.cpp" line="1633"/>
         <source>Model 22</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1647"/>
+        <location filename="../common/lc_commands.cpp" line="1640"/>
         <source>Model 23</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1654"/>
+        <location filename="../common/lc_commands.cpp" line="1647"/>
         <source>Model 24</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1661"/>
+        <location filename="../common/lc_commands.cpp" line="1654"/>
         <source>Model 25</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1668"/>
+        <location filename="../common/lc_commands.cpp" line="1661"/>
         <source>Model 26</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1675"/>
+        <location filename="../common/lc_commands.cpp" line="1668"/>
         <source>Model 27</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1682"/>
+        <location filename="../common/lc_commands.cpp" line="1675"/>
         <source>Model 28</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1689"/>
+        <location filename="../common/lc_commands.cpp" line="1682"/>
         <source>Model 29</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1696"/>
+        <location filename="../common/lc_commands.cpp" line="1689"/>
         <source>Model 30</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1703"/>
+        <location filename="../common/lc_commands.cpp" line="1696"/>
         <source>Model 31</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1710"/>
+        <location filename="../common/lc_commands.cpp" line="1703"/>
         <source>Model 32</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1717"/>
+        <location filename="../common/lc_commands.cpp" line="1710"/>
         <source>Model 33</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1724"/>
+        <location filename="../common/lc_commands.cpp" line="1717"/>
         <source>Model 34</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1731"/>
+        <location filename="../common/lc_commands.cpp" line="1724"/>
         <source>Model 35</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1738"/>
+        <location filename="../common/lc_commands.cpp" line="1731"/>
         <source>Model 36</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1745"/>
+        <location filename="../common/lc_commands.cpp" line="1738"/>
         <source>Model 37</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1752"/>
+        <location filename="../common/lc_commands.cpp" line="1745"/>
         <source>Model 38</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1759"/>
+        <location filename="../common/lc_commands.cpp" line="1752"/>
         <source>Model 39</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1766"/>
+        <location filename="../common/lc_commands.cpp" line="1759"/>
         <source>Model 40</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1773"/>
+        <location filename="../common/lc_commands.cpp" line="1766"/>
         <source>LeoCAD &amp;Home Page</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1780"/>
+        <location filename="../common/lc_commands.cpp" line="1773"/>
         <source>Report a Bug</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1787"/>
+        <location filename="../common/lc_commands.cpp" line="1780"/>
         <source>Check for &amp;Updates...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1794"/>
+        <location filename="../common/lc_commands.cpp" line="1787"/>
         <source>&amp;About...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1801"/>
+        <location filename="../common/lc_commands.cpp" line="1794"/>
         <source>Insert Step Before</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1808"/>
+        <location filename="../common/lc_commands.cpp" line="1801"/>
         <source>Insert Step After</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1822"/>
+        <location filename="../common/lc_commands.cpp" line="1815"/>
         <source>Move Selection Here</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1829"/>
+        <location filename="../common/lc_commands.cpp" line="1822"/>
         <source>Set Current Step</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2559,77 +2549,77 @@
 <context>
     <name>Mouse</name>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1839"/>
+        <location filename="../common/lc_commands.cpp" line="1832"/>
         <source>NewPiece</source>
         <translation>НовийБлок</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1840"/>
+        <location filename="../common/lc_commands.cpp" line="1833"/>
         <source>NewPointLight</source>
         <translation>НовеТочковеСвітло</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1841"/>
+        <location filename="../common/lc_commands.cpp" line="1834"/>
         <source>NewSpotLight</source>
         <translation>НовеПрожекторнеСвітло</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1842"/>
+        <location filename="../common/lc_commands.cpp" line="1835"/>
         <source>NewCamera</source>
         <translation>НоваКамера</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1843"/>
+        <location filename="../common/lc_commands.cpp" line="1836"/>
         <source>Select</source>
         <translation>Виділити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1844"/>
+        <location filename="../common/lc_commands.cpp" line="1837"/>
         <source>Move</source>
         <translation>Перемістити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1845"/>
+        <location filename="../common/lc_commands.cpp" line="1838"/>
         <source>Rotate</source>
         <translation>Покрутити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1846"/>
+        <location filename="../common/lc_commands.cpp" line="1839"/>
         <source>Delete</source>
         <translation>Видалити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1847"/>
+        <location filename="../common/lc_commands.cpp" line="1840"/>
         <source>Paint</source>
         <translation>Фарбувати</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1848"/>
+        <location filename="../common/lc_commands.cpp" line="1841"/>
         <source>ColorPicker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1849"/>
+        <location filename="../common/lc_commands.cpp" line="1842"/>
         <source>Zoom</source>
         <translation>Масштабувати</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1850"/>
+        <location filename="../common/lc_commands.cpp" line="1843"/>
         <source>Pan</source>
         <translation>Подвинути</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1851"/>
+        <location filename="../common/lc_commands.cpp" line="1844"/>
         <source>Orbit</source>
         <translation>Прокрутити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1852"/>
+        <location filename="../common/lc_commands.cpp" line="1845"/>
         <source>Roll</source>
         <translation>Нахилити</translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1853"/>
+        <location filename="../common/lc_commands.cpp" line="1846"/>
         <source>ZoomRegion</source>
         <translation>МасштабуватиРегіон</translation>
     </message>
@@ -2637,172 +2627,170 @@
 <context>
     <name>Project</name>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.ldr</source>
         <translation>нова_модель.ldr</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="108"/>
+        <location filename="../common/project.cpp" line="109"/>
         <source>New Model.mpd</source>
         <translation>нова_модель.mpd</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="177"/>
+        <location filename="../common/project.cpp" line="178"/>
         <source>Submodel #</source>
         <translation>підмодель_#</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="201"/>
+        <location filename="../common/project.cpp" line="202"/>
         <source>Submodel Name:</source>
         <translation>Назва підмоделі:</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>Empty Name</source>
         <translation>Порожня назва</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="208"/>
+        <location filename="../common/project.cpp" line="209"/>
         <source>The submodel name cannot be empty.</source>
         <translation>Назва підмоделі не може бути порожньою.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>Duplicate Submodel</source>
         <translation>Дублювати підмодель</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="228"/>
+        <location filename="../common/project.cpp" line="229"/>
         <source>A submodel named &apos;%1&apos; already exists, please enter a unique name.</source>
         <translation>Підмодель з назвою &apos;%1&apos; вже існує. Оберіть унікальну назву.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="245"/>
+        <location filename="../common/project.cpp" line="246"/>
         <source>New Submodel</source>
         <translation>Нова підмодель</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
-        <location filename="../common/project.cpp" line="449"/>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="378"/>
+        <location filename="../common/project.cpp" line="457"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error</source>
         <translation>Помилка</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="371"/>
+        <location filename="../common/project.cpp" line="378"/>
         <source>Error reading file &apos;%1&apos;:
 %2</source>
         <translation>Помилка читання файла &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="449"/>
+        <location filename="../common/project.cpp" line="457"/>
         <source>Error loading file &apos;%1&apos;:
 File format is not recognized.</source>
         <translation>Помилка завантаження файла &apos;%1&apos;:
 Формат файла не розпізнано.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="486"/>
-        <location filename="../common/project.cpp" line="653"/>
-        <location filename="../common/project.cpp" line="1571"/>
-        <location filename="../common/project.cpp" line="1602"/>
-        <location filename="../common/project.cpp" line="1627"/>
-        <location filename="../common/project.cpp" line="1661"/>
-        <location filename="../common/project.cpp" line="1693"/>
+        <location filename="../common/project.cpp" line="494"/>
+        <location filename="../common/project.cpp" line="661"/>
+        <location filename="../common/project.cpp" line="1536"/>
+        <location filename="../common/project.cpp" line="1567"/>
+        <location filename="../common/project.cpp" line="1592"/>
+        <location filename="../common/project.cpp" line="1626"/>
+        <location filename="../common/project.cpp" line="1658"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Помилка запису у файл &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="544"/>
+        <location filename="../common/project.cpp" line="552"/>
         <source>Merged </source>
         <translation>Об&apos;єднано </translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
-        <location filename="../common/project.cpp" line="2060"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
+        <location filename="../common/project.cpp" line="2025"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="695"/>
-        <location filename="../common/project.cpp" line="1139"/>
-        <location filename="../common/project.cpp" line="1200"/>
-        <location filename="../common/project.cpp" line="1475"/>
-        <location filename="../common/project.cpp" line="1741"/>
-        <location filename="../common/project.cpp" line="2060"/>
+        <location filename="../common/project.cpp" line="703"/>
+        <location filename="../common/project.cpp" line="1147"/>
+        <location filename="../common/project.cpp" line="1165"/>
+        <location filename="../common/project.cpp" line="1440"/>
+        <location filename="../common/project.cpp" line="1706"/>
+        <location filename="../common/project.cpp" line="2025"/>
         <source>Nothing to export.</source>
         <translation>Немає чого експортувати.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>Export 3D Studio</source>
         <translation>Експортувати 3D Studio</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="699"/>
+        <location filename="../common/project.cpp" line="707"/>
         <source>3DS Files (*.3ds);;All Files (*.*)</source>
         <translation>Файли 3DS (*.3ds);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="708"/>
-        <location filename="../common/project.cpp" line="1153"/>
-        <location filename="../common/project.cpp" line="1213"/>
-        <location filename="../common/project.cpp" line="1489"/>
-        <location filename="../common/project.cpp" line="1754"/>
-        <location filename="../common/project.cpp" line="2074"/>
-        <location filename="../common/project.cpp" line="2091"/>
+        <location filename="../common/project.cpp" line="716"/>
+        <location filename="../common/project.cpp" line="1178"/>
+        <location filename="../common/project.cpp" line="1454"/>
+        <location filename="../common/project.cpp" line="1719"/>
+        <location filename="../common/project.cpp" line="2039"/>
+        <location filename="../common/project.cpp" line="2056"/>
         <source>Could not open file &apos;%1&apos; for writing.</source>
         <translation>Не вдалося відкрити файл &apos;%1&apos; для запису.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>Export BrickLink</source>
         <translation>Експортувати BrickLink</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1143"/>
+        <location filename="../common/project.cpp" line="1151"/>
         <source>XML Files (*.xml);;All Files (*.*)</source>
         <translation>Файли XML (*.xml);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>Export COLLADA</source>
         <translation>Експортувати COLLADA</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1204"/>
+        <location filename="../common/project.cpp" line="1169"/>
         <source>COLLADA Files (*.dae);;All Files (*.*)</source>
         <translation>Файли COLLADA (*.dae);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>Export CSV</source>
         <translation>Експортувати CSV</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1479"/>
+        <location filename="../common/project.cpp" line="1444"/>
         <source>CSV Files (*.csv);;All Files (*.*)</source>
         <translation>Файли CSV (*.csv);;Усі файли (*.*)</translation>
     </message>
@@ -2811,28 +2799,28 @@ File format is not recognized.</source>
         <translation type="vanished">Помилка створення зображення.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>Export POV-Ray</source>
         <translation>Експортувати POV-Ray</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1745"/>
+        <location filename="../common/project.cpp" line="1710"/>
         <source>POV-Ray Files (*.pov);;All Files (*.*)</source>
         <translation>Файли POV-Ray (*.pov);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="1793"/>
-        <location filename="../common/project.cpp" line="1839"/>
+        <location filename="../common/project.cpp" line="1758"/>
+        <location filename="../common/project.cpp" line="1804"/>
         <source>Could not find LGEO files in folder &apos;%1&apos;.</source>
         <translation>Не вдалося знайти файли LGEO у теці &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Export Wavefront</source>
         <translation>Експортувати Wavefront</translation>
     </message>
     <message>
-        <location filename="../common/project.cpp" line="2064"/>
+        <location filename="../common/project.cpp" line="2029"/>
         <source>Wavefront Files (*.obj);;All Files (*.*)</source>
         <translation>Файли Wavefront (*.obj);;Усі файли (*.*)</translation>
     </message>
@@ -2863,19 +2851,19 @@ File format is not recognized.</source>
         <translation type="vanished">Спеціальні кольори</translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="507"/>
+        <location filename="../common/lc_colors.cpp" line="318"/>
         <source>Solid</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="508"/>
+        <location filename="../common/lc_colors.cpp" line="319"/>
         <source>Translucent</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_colors.cpp" line="509"/>
+        <location filename="../common/lc_colors.cpp" line="320"/>
         <source>Special</source>
         <comment>Colors</comment>
         <translation type="unfinished"></translation>
@@ -2884,14 +2872,21 @@ File format is not recognized.</source>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
         <source>Error</source>
-        <translation type="unfinished">Помилка</translation>
+        <translation type="obsolete">Помилка</translation>
     </message>
+</context>
+<context>
+    <name>QObject</name>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="128"/>
-        <source>Failed to load &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>LeoCAD</source>
+        <translation type="unfinished">LeoCAD</translation>
+    </message>
+    <message>
+        <location filename="../common/lc_bricklink.cpp" line="72"/>
+        <source>Could not open file &apos;%1&apos; for writing.</source>
+        <translation type="unfinished">Не вдалося відкрити файл &apos;%1&apos; для запису.</translation>
     </message>
 </context>
 <context>
@@ -3521,349 +3516,345 @@ File format is not recognized.</source>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="983"/>
-        <source>Reset views to their default positions</source>
+        <source>Go to the first step of the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="990"/>
-        <source>Go to the first step of the model</source>
+        <source>Go to the previous step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="997"/>
-        <source>Go to the previous step</source>
+        <source>Go to the next step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="1004"/>
-        <source>Go to the next step</source>
+        <source>Go to the last step of the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="1011"/>
-        <source>Go to the last step of the model</source>
+        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <source>Insert a new step before the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="1018"/>
         <location filename="../common/lc_commands.cpp" line="1802"/>
-        <source>Insert a new step before the current step</source>
+        <source>Insert a new step after the current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../common/lc_commands.cpp" line="1025"/>
         <location filename="../common/lc_commands.cpp" line="1809"/>
-        <source>Insert a new step after the current step</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_commands.cpp" line="1032"/>
-        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Remove current step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1039"/>
+        <location filename="../common/lc_commands.cpp" line="1032"/>
         <source>Toggle adding new animation keys</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1046"/>
+        <location filename="../common/lc_commands.cpp" line="1039"/>
         <source>Split the current view horizontally</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1053"/>
+        <location filename="../common/lc_commands.cpp" line="1046"/>
         <source>Split the current view vertically</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1060"/>
+        <location filename="../common/lc_commands.cpp" line="1053"/>
         <source>Remove the current view</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1067"/>
+        <location filename="../common/lc_commands.cpp" line="1060"/>
         <source>Reset all views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1074"/>
+        <location filename="../common/lc_commands.cpp" line="1067"/>
         <source>Toggle the Standard Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1081"/>
+        <location filename="../common/lc_commands.cpp" line="1074"/>
         <source>Toggle the Tools Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1088"/>
+        <location filename="../common/lc_commands.cpp" line="1081"/>
         <source>Toggle the Time Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1095"/>
+        <location filename="../common/lc_commands.cpp" line="1088"/>
         <source>Toggle the Parts Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1102"/>
+        <location filename="../common/lc_commands.cpp" line="1095"/>
         <source>Toggle the Colors Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1109"/>
+        <location filename="../common/lc_commands.cpp" line="1102"/>
         <source>Toggle the Properties Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1116"/>
+        <location filename="../common/lc_commands.cpp" line="1109"/>
         <source>Toggle the Timeline Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1123"/>
+        <location filename="../common/lc_commands.cpp" line="1116"/>
         <source>Toggle the Preview Toolbar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1130"/>
+        <location filename="../common/lc_commands.cpp" line="1123"/>
         <source>Toggle fullscreen mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1137"/>
+        <location filename="../common/lc_commands.cpp" line="1130"/>
         <source>Close current tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1144"/>
+        <location filename="../common/lc_commands.cpp" line="1137"/>
         <source>Display the scene as wireframe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1151"/>
+        <location filename="../common/lc_commands.cpp" line="1144"/>
         <source>Display the scene without any shading or lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1158"/>
+        <location filename="../common/lc_commands.cpp" line="1151"/>
         <source>Display the scene with the default lights</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1165"/>
+        <location filename="../common/lc_commands.cpp" line="1158"/>
         <source>Set the current camera to use a perspective projection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1172"/>
+        <location filename="../common/lc_commands.cpp" line="1165"/>
         <source>Set the current camera to use an orthographic projection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1179"/>
+        <location filename="../common/lc_commands.cpp" line="1172"/>
         <source>Toggle the view sphere</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1186"/>
+        <location filename="../common/lc_commands.cpp" line="1179"/>
         <source>Toggle axis icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1193"/>
+        <location filename="../common/lc_commands.cpp" line="1186"/>
         <source>Toggle grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1200"/>
+        <location filename="../common/lc_commands.cpp" line="1193"/>
         <source>Toggle fading previous model steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1207"/>
+        <location filename="../common/lc_commands.cpp" line="1200"/>
         <source>Add a new piece to the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1214"/>
+        <location filename="../common/lc_commands.cpp" line="1207"/>
         <source>Delete selected objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1221"/>
+        <location filename="../common/lc_commands.cpp" line="1214"/>
         <source>Create a copy of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1228"/>
+        <location filename="../common/lc_commands.cpp" line="1221"/>
         <source>Change the color of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1235"/>
+        <location filename="../common/lc_commands.cpp" line="1228"/>
         <source>Reset the pivot point of the selected pieces to their origin</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1242"/>
+        <location filename="../common/lc_commands.cpp" line="1235"/>
         <source>Remove all key frames from the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1249"/>
+        <location filename="../common/lc_commands.cpp" line="1242"/>
         <source>Insert a new control point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1256"/>
+        <location filename="../common/lc_commands.cpp" line="1249"/>
         <source>Remove the selected control point</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1256"/>
         <location filename="../common/lc_commands.cpp" line="1263"/>
-        <location filename="../common/lc_commands.cpp" line="1270"/>
         <source>Move selected objects along the X axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1270"/>
         <location filename="../common/lc_commands.cpp" line="1277"/>
-        <location filename="../common/lc_commands.cpp" line="1284"/>
         <source>Move selected objects along the Y axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1284"/>
         <location filename="../common/lc_commands.cpp" line="1291"/>
-        <location filename="../common/lc_commands.cpp" line="1298"/>
         <source>Move selected objects along the Z axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1298"/>
         <location filename="../common/lc_commands.cpp" line="1305"/>
-        <location filename="../common/lc_commands.cpp" line="1312"/>
         <source>Rotate selected objects along the X axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1312"/>
         <location filename="../common/lc_commands.cpp" line="1319"/>
-        <location filename="../common/lc_commands.cpp" line="1326"/>
         <source>Rotate selected objects along the Y axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1326"/>
         <location filename="../common/lc_commands.cpp" line="1333"/>
-        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Rotate selected objects along the Z axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1347"/>
+        <location filename="../common/lc_commands.cpp" line="1340"/>
         <source>Add a new minifig to the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1354"/>
+        <location filename="../common/lc_commands.cpp" line="1347"/>
         <source>Make copies of the selected pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1361"/>
+        <location filename="../common/lc_commands.cpp" line="1354"/>
         <source>Open the model referenced by the selected piece in a new tab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1368"/>
+        <location filename="../common/lc_commands.cpp" line="1361"/>
         <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1375"/>
+        <location filename="../common/lc_commands.cpp" line="1368"/>
         <source>Insert the contents of the selected model references into the current model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1382"/>
+        <location filename="../common/lc_commands.cpp" line="1375"/>
         <source>Edit the currently selected submodel in-place</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1389"/>
+        <location filename="../common/lc_commands.cpp" line="1382"/>
         <source>End in-place submodel editing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1396"/>
+        <location filename="../common/lc_commands.cpp" line="1389"/>
         <source>Group selected pieces together</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1403"/>
+        <location filename="../common/lc_commands.cpp" line="1396"/>
         <source>Ungroup selected group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1410"/>
+        <location filename="../common/lc_commands.cpp" line="1403"/>
         <source>Add focused piece to selected group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1417"/>
+        <location filename="../common/lc_commands.cpp" line="1410"/>
         <source>Remove focused piece from group</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1424"/>
+        <location filename="../common/lc_commands.cpp" line="1417"/>
         <source>Edit groups</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1431"/>
+        <location filename="../common/lc_commands.cpp" line="1424"/>
         <source>Hide selected objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1438"/>
+        <location filename="../common/lc_commands.cpp" line="1431"/>
         <source>Hide objects that are not selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1445"/>
+        <location filename="../common/lc_commands.cpp" line="1438"/>
         <source>Show hidden objects that are selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1452"/>
+        <location filename="../common/lc_commands.cpp" line="1445"/>
         <source>Show all hidden objects</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1459"/>
+        <location filename="../common/lc_commands.cpp" line="1452"/>
         <source>Show selected pieces one step earlier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1466"/>
+        <location filename="../common/lc_commands.cpp" line="1459"/>
         <source>Show selected pieces one step later</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1473"/>
+        <location filename="../common/lc_commands.cpp" line="1466"/>
         <source>Create a new submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1480"/>
+        <location filename="../common/lc_commands.cpp" line="1473"/>
         <source>Display the properties of the current submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1487"/>
+        <location filename="../common/lc_commands.cpp" line="1480"/>
         <source>Show a list of all submodels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../common/lc_commands.cpp" line="1487"/>
         <location filename="../common/lc_commands.cpp" line="1494"/>
         <location filename="../common/lc_commands.cpp" line="1501"/>
         <location filename="../common/lc_commands.cpp" line="1508"/>
@@ -3903,37 +3894,36 @@ File format is not recognized.</source>
         <location filename="../common/lc_commands.cpp" line="1746"/>
         <location filename="../common/lc_commands.cpp" line="1753"/>
         <location filename="../common/lc_commands.cpp" line="1760"/>
-        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Switch to this submodel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1774"/>
+        <location filename="../common/lc_commands.cpp" line="1767"/>
         <source>Open LeoCAD&apos;s home page on the internet using your default web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1781"/>
+        <location filename="../common/lc_commands.cpp" line="1774"/>
         <source>Open LeoCAD&apos;s bug report form on your default web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1788"/>
+        <location filename="../common/lc_commands.cpp" line="1781"/>
         <source>Check if a newer LeoCAD version or parts library has been released</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1795"/>
+        <location filename="../common/lc_commands.cpp" line="1788"/>
         <source>Display program version number and system information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1823"/>
+        <location filename="../common/lc_commands.cpp" line="1816"/>
         <source>Move the selected parts into this step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_commands.cpp" line="1830"/>
+        <location filename="../common/lc_commands.cpp" line="1823"/>
         <source>View the model at this point in the timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3974,398 +3964,398 @@ File format is not recognized.</source>
 <context>
     <name>lcApplication</name>
     <message>
-        <location filename="../common/lc_application.cpp" line="401"/>
-        <location filename="../common/lc_application.cpp" line="426"/>
-        <location filename="../common/lc_application.cpp" line="449"/>
-        <location filename="../common/lc_application.cpp" line="472"/>
-        <location filename="../common/lc_application.cpp" line="482"/>
-        <location filename="../common/lc_application.cpp" line="505"/>
-        <location filename="../common/lc_application.cpp" line="530"/>
+        <location filename="../common/lc_application.cpp" line="421"/>
+        <location filename="../common/lc_application.cpp" line="446"/>
+        <location filename="../common/lc_application.cpp" line="469"/>
+        <location filename="../common/lc_application.cpp" line="492"/>
+        <location filename="../common/lc_application.cpp" line="502"/>
+        <location filename="../common/lc_application.cpp" line="525"/>
+        <location filename="../common/lc_application.cpp" line="550"/>
         <source>Not enough parameters for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="423"/>
-        <location filename="../common/lc_application.cpp" line="446"/>
-        <location filename="../common/lc_application.cpp" line="469"/>
-        <location filename="../common/lc_application.cpp" line="502"/>
-        <location filename="../common/lc_application.cpp" line="527"/>
-        <location filename="../common/lc_application.cpp" line="580"/>
-        <location filename="../common/lc_application.cpp" line="734"/>
-        <location filename="../common/lc_application.cpp" line="745"/>
+        <location filename="../common/lc_application.cpp" line="443"/>
+        <location filename="../common/lc_application.cpp" line="466"/>
+        <location filename="../common/lc_application.cpp" line="489"/>
+        <location filename="../common/lc_application.cpp" line="522"/>
+        <location filename="../common/lc_application.cpp" line="547"/>
+        <location filename="../common/lc_application.cpp" line="600"/>
+        <location filename="../common/lc_application.cpp" line="754"/>
+        <location filename="../common/lc_application.cpp" line="765"/>
         <source>Invalid parameter value specified for the &apos;%1&apos; option: &apos;%2&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="541"/>
+        <location filename="../common/lc_application.cpp" line="561"/>
         <source>The file &apos;%1&apos; is not readable.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="589"/>
+        <location filename="../common/lc_application.cpp" line="609"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: limits are +/- 360.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="601"/>
+        <location filename="../common/lc_application.cpp" line="621"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="620"/>
+        <location filename="../common/lc_application.cpp" line="640"/>
         <source>Invalid parameter value(s) specified for the &apos;%1&apos; option: requirements are: 1 &lt;= &lt;near&gt; &lt; &lt;far&gt;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="630"/>
-        <location filename="../common/lc_application.cpp" line="641"/>
-        <location filename="../common/lc_application.cpp" line="652"/>
-        <location filename="../common/lc_application.cpp" line="663"/>
+        <location filename="../common/lc_application.cpp" line="650"/>
+        <location filename="../common/lc_application.cpp" line="661"/>
+        <location filename="../common/lc_application.cpp" line="672"/>
+        <location filename="../common/lc_application.cpp" line="683"/>
         <source>High contrast stud style is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="678"/>
-        <location filename="../common/lc_application.cpp" line="689"/>
+        <location filename="../common/lc_application.cpp" line="698"/>
+        <location filename="../common/lc_application.cpp" line="709"/>
         <source>Automate edge color is required for the &apos;%1&apos; option but is not enabled.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="779"/>
+        <location filename="../common/lc_application.cpp" line="799"/>
         <source>LeoCAD Continuous Build %1
 </source>
         <translation type="unfinished">LeoCAD Continuous Build %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="781"/>
+        <location filename="../common/lc_application.cpp" line="801"/>
         <source>LeoCAD Version %1
 </source>
         <translation type="unfinished">LeoCAD Версія %1
 </translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="783"/>
+        <location filename="../common/lc_application.cpp" line="803"/>
         <source>Compiled %1
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="788"/>
+        <location filename="../common/lc_application.cpp" line="808"/>
         <source>Usage: leocad [options] [file]
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="789"/>
+        <location filename="../common/lc_application.cpp" line="809"/>
         <source>  [options] can be:
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="790"/>
+        <location filename="../common/lc_application.cpp" line="810"/>
         <source>  -l, --libpath &lt;path&gt;: Set the Parts Library location to path.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="791"/>
+        <location filename="../common/lc_application.cpp" line="811"/>
         <source>  -i, --image &lt;outfile.ext&gt;: Save a picture in the format specified by ext and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="792"/>
+        <location filename="../common/lc_application.cpp" line="812"/>
         <source>  -w, --width &lt;width&gt;: Set the picture width.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="793"/>
+        <location filename="../common/lc_application.cpp" line="813"/>
         <source>  -h, --height &lt;height&gt;: Set the picture height.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="794"/>
+        <location filename="../common/lc_application.cpp" line="814"/>
         <source>  -f, --from &lt;step&gt;: Set the first step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="795"/>
+        <location filename="../common/lc_application.cpp" line="815"/>
         <source>  -t, --to &lt;step&gt;: Set the last step to save pictures.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="796"/>
+        <location filename="../common/lc_application.cpp" line="816"/>
         <source>  -s, --submodel &lt;submodel&gt;: Set the active submodel.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="797"/>
+        <location filename="../common/lc_application.cpp" line="817"/>
         <source>  -c, --camera &lt;camera&gt;: Set the active camera.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="798"/>
+        <location filename="../common/lc_application.cpp" line="818"/>
         <source>  -ss, --stud-style &lt;id&gt;: Set the stud style 0=No style, 1=LDraw single wire, 2=LDraw double wire, 3=LDraw raised floating, 4=LDraw raised rounded, 5=LDraw subtle rounded, 6=LEGO no logo, 7=LEGO single wire.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="799"/>
+        <location filename="../common/lc_application.cpp" line="819"/>
         <source>  --viewpoint &lt;front|back|left|right|top|bottom|home&gt;: Set the viewpoint.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="800"/>
+        <location filename="../common/lc_application.cpp" line="820"/>
         <source>  --camera-angles &lt;latitude&gt; &lt;longitude&gt;: Set the camera angles in degrees around the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="801"/>
+        <location filename="../common/lc_application.cpp" line="821"/>
         <source>  --camera-position &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="802"/>
+        <location filename="../common/lc_application.cpp" line="822"/>
         <source>  --camera-position-ldraw &lt;x&gt; &lt;y&gt; &lt;z&gt; &lt;tx&gt; &lt;ty&gt; &lt;tz&gt; &lt;ux&gt; &lt;uy&gt; &lt;uz&gt;: Set the camera position, target and up vector using LDraw coordinates.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="803"/>
+        <location filename="../common/lc_application.cpp" line="823"/>
         <source>  --orthographic: Render images using an orthographic projection.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="804"/>
+        <location filename="../common/lc_application.cpp" line="824"/>
         <source>  --fov &lt;degrees&gt;: Set the vertical field of view used to render images (&lt; 180).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="805"/>
+        <location filename="../common/lc_application.cpp" line="825"/>
         <source>  --zplanes &lt;near&gt; &lt;far&gt;: Set the near and far clipping planes used to render images (1 &lt;= &lt;near&gt; &lt; &lt;far&gt;).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="806"/>
+        <location filename="../common/lc_application.cpp" line="826"/>
         <source>  --fade-steps: Render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="807"/>
+        <location filename="../common/lc_application.cpp" line="827"/>
         <source>  --no-fade-steps: Do not render parts from prior steps faded.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="808"/>
+        <location filename="../common/lc_application.cpp" line="828"/>
         <source>  --fade-steps-color &lt;rgba&gt;: Renderinng color for prior step parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="809"/>
+        <location filename="../common/lc_application.cpp" line="829"/>
         <source>  --highlight: Highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="810"/>
+        <location filename="../common/lc_application.cpp" line="830"/>
         <source>  --no-highlight: Do not highlight parts in the steps they appear.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="811"/>
+        <location filename="../common/lc_application.cpp" line="831"/>
         <source>  --highlight-color: Renderinng color for highlighted parts (#AARRGGBB).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="812"/>
+        <location filename="../common/lc_application.cpp" line="832"/>
         <source>  --shading &lt;wireframe|flat|default|full&gt;: Select shading mode for rendering.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="813"/>
-        <source>  --line-width &lt;width&gt;: Set the with of the edge lines.
+        <location filename="../common/lc_application.cpp" line="833"/>
+        <source>  --line-width &lt;width&gt;: Set the width of the edge lines.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="814"/>
+        <location filename="../common/lc_application.cpp" line="834"/>
         <source>  --aa-samples &lt;count&gt;: AntiAliasing sample size (1, 2, 4, or 8).
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="815"/>
+        <location filename="../common/lc_application.cpp" line="835"/>
         <source>  -scc, --stud-cylinder-color &lt;#AARRGGBB&gt;: High contrast stud cylinder color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="816"/>
+        <location filename="../common/lc_application.cpp" line="836"/>
         <source>  -ec, --edge-color &lt;#AARRGGBB&gt;: High contrast edge color.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="817"/>
+        <location filename="../common/lc_application.cpp" line="837"/>
         <source>  -bec, --black-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for black parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="818"/>
+        <location filename="../common/lc_application.cpp" line="838"/>
         <source>  -dec, --dark-edge-color &lt;#AARRGGBB&gt;: High contrast edge color for dark color parts.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="819"/>
+        <location filename="../common/lc_application.cpp" line="839"/>
         <source>  -aec, --automate-edge-color: Enable automatically adjusted edge colors.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="820"/>
+        <location filename="../common/lc_application.cpp" line="840"/>
         <source>  -cc, --color-contrast &lt;float&gt;: Color contrast value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="821"/>
+        <location filename="../common/lc_application.cpp" line="841"/>
         <source>  -ldv, --light-dark-value &lt;float&gt;: Light/Dark color value between 0.0 and 1.0.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="822"/>
+        <location filename="../common/lc_application.cpp" line="842"/>
         <source>  -obj, --export-wavefront &lt;outfile.obj&gt;: Export the model to Wavefront OBJ format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="823"/>
+        <location filename="../common/lc_application.cpp" line="843"/>
         <source>  -3ds, --export-3ds &lt;outfile.3ds&gt;: Export the model to 3D Studio 3DS format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="824"/>
+        <location filename="../common/lc_application.cpp" line="844"/>
         <source>  -dae, --export-collada &lt;outfile.dae&gt;: Export the model to COLLADA DAE format.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="825"/>
+        <location filename="../common/lc_application.cpp" line="845"/>
         <source>  -html, --export-html &lt;folder&gt;: Create an HTML page for the model.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="826"/>
+        <location filename="../common/lc_application.cpp" line="846"/>
         <source>  -v, --version: Output version information and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="827"/>
+        <location filename="../common/lc_application.cpp" line="847"/>
         <source>  -?, --help: Display this help message and exit.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="833"/>
+        <location filename="../common/lc_application.cpp" line="853"/>
         <source>Unknown option: &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="840"/>
+        <location filename="../common/lc_application.cpp" line="860"/>
         <source>High contrast stud and edge color settings are ignored when -aec or --automate-edge-color is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="846"/>
+        <location filename="../common/lc_application.cpp" line="866"/>
         <source>--viewpoint is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="849"/>
+        <location filename="../common/lc_application.cpp" line="869"/>
         <source>--orthographic is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="852"/>
+        <location filename="../common/lc_application.cpp" line="872"/>
         <source>--camera-angles is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="855"/>
+        <location filename="../common/lc_application.cpp" line="875"/>
         <source>--camera-position is ignored when --camera is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="860"/>
+        <location filename="../common/lc_application.cpp" line="880"/>
         <source>--camera-angles is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="863"/>
+        <location filename="../common/lc_application.cpp" line="883"/>
         <source>--camera-position is ignored when --viewpoint is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="868"/>
+        <location filename="../common/lc_application.cpp" line="888"/>
         <source>--camera-position is ignored when --camera-angles is set.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="875"/>
+        <location filename="../common/lc_application.cpp" line="895"/>
         <source>No file name specified.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="908"/>
+        <location filename="../common/lc_application.cpp" line="928"/>
         <source>Error creating OpenGL context.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="929"/>
+        <location filename="../common/lc_application.cpp" line="949"/>
         <source>LeoCAD could not find a compatible Parts Library so only a small number of parts will be available.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4374,7 +4364,7 @@ Please visit https://www.leocad.org for information on how to download and insta
 Відвідайте https://www.leocad.org для дізнатися як завантажити і встановити бібліотеки блоків.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="931"/>
+        <location filename="../common/lc_application.cpp" line="951"/>
         <source>LeoCAD could not load Parts Library.
 
 Please visit https://www.leocad.org for information on how to download and install a library.</source>
@@ -4383,28 +4373,28 @@ Please visit https://www.leocad.org for information on how to download and insta
 Відвідайте https://www.leocad.org для дізнатися як завантажити і встановити бібліотеки блоків.</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="934"/>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="954"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1002"/>
+        <location filename="../common/lc_application.cpp" line="1022"/>
         <source>Error: model &apos;%1&apos; does not exist.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1093"/>
-        <location filename="../common/lc_application.cpp" line="1121"/>
-        <location filename="../common/lc_application.cpp" line="1146"/>
-        <location filename="../common/lc_application.cpp" line="1171"/>
+        <location filename="../common/lc_application.cpp" line="1113"/>
+        <location filename="../common/lc_application.cpp" line="1141"/>
+        <location filename="../common/lc_application.cpp" line="1166"/>
+        <location filename="../common/lc_application.cpp" line="1191"/>
         <source>Saved &apos;%1&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_application.cpp" line="1287"/>
+        <location filename="../common/lc_application.cpp" line="1298"/>
         <source>Some changes will only take effect the next time you start LeoCAD.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4453,6 +4443,26 @@ Please visit https://www.leocad.org for information on how to download and insta
         <source>Reset</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Light/Dark Value:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="48"/>
+        <source>Saturation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="54"/>
+        <source>Set to classify where color values are light or dark - e.g. Dark Bluish Gray (72) is light at 0.39.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="55"/>
+        <source>Set to specify amount of edge color tint or shade from the saturation adjusted part color</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="68"/>
         <source>High Contrast</source>
@@ -4488,11 +4498,21 @@ Please visit https://www.leocad.org for information on how to download and insta
         <source>Select Part Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="179"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Black parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="183"/>
         <source>Select Black Edge Color</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_edgecolordialog.cpp" line="191"/>
+        <source>Automate edge color appears to be enabled.&lt;br&gt;Dark parts edge color will not be accessible.&lt;br&gt;Do you want to continue?</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location filename="../common/lc_edgecolordialog.cpp" line="195"/>
         <source>Select Dark Edge Color</source>
@@ -4551,109 +4571,134 @@ Please visit https://www.leocad.org for information on how to download and insta
 <context>
     <name>lcInstructionsDialog</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="527"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="532"/>
         <source>Instructions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="542"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="547"/>
         <source>Page Settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="552"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="554"/>
+        <source>Vertical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="557"/>
+        <source>Horizontal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="571"/>
+        <source>Page %1</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPageListWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="174"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="179"/>
         <source>Pages</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../common/lc_instructionsdialog.cpp" line="189"/>
+        <source>Page Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>lcInstructionsPropertiesWidget</name>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="288"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="293"/>
         <source>Properties</source>
         <translation type="unfinished">Властивості</translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Only</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="294"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="299"/>
         <source>Current Step Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="296"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
         <source>Scope:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="301"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="306"/>
         <source>Preset:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="351"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="356"/>
         <source>Select Step Number Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="355"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="360"/>
         <source>Select Step Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="359"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="364"/>
         <source>Select Parts List Background Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="363"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="368"/>
         <source>Select Parts List Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="367"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="372"/>
         <source>Select Parts List Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="417"/>
-        <location filename="../common/lc_instructionsdialog.cpp" line="438"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="422"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="443"/>
         <source>Select Step Number Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="421"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="426"/>
         <source>Select Parts List Font</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="477"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="482"/>
         <source>Step Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="493"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="498"/>
         <source>Step Number Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_instructionsdialog.cpp" line="508"/>
+        <location filename="../common/lc_instructionsdialog.cpp" line="513"/>
         <source>Parts List Properties</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4661,225 +4706,220 @@ Please visit https://www.leocad.org for information on how to download and insta
 <context>
     <name>lcMainWindow</name>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="172"/>
+        <location filename="../common/lc_mainwindow.cpp" line="145"/>
         <source>New Model</source>
         <translation>Нова модель</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="173"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
+        <location filename="../common/lc_mainwindow.cpp" line="146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
         <source>Open Model</source>
         <translation>Відкрити модель</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="174"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2507"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2434"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save Model</source>
         <translation>Зберегти модель</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="403"/>
-        <location filename="../common/lc_mainwindow.cpp" line="606"/>
-        <location filename="../common/lc_mainwindow.cpp" line="613"/>
+        <location filename="../common/lc_mainwindow.cpp" line="376"/>
+        <location filename="../common/lc_mainwindow.cpp" line="577"/>
+        <location filename="../common/lc_mainwindow.cpp" line="584"/>
         <source>Transform</source>
         <translation>Трансформувати</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="410"/>
+        <location filename="../common/lc_mainwindow.cpp" line="383"/>
         <source>C&amp;ameras</source>
         <translation>&amp;Камери</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="419"/>
+        <location filename="../common/lc_mainwindow.cpp" line="389"/>
         <source>&amp;Viewpoints</source>
         <translation>&amp;Точки зору</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="398"/>
         <source>Projection</source>
         <translation>Проекція</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="432"/>
+        <location filename="../common/lc_mainwindow.cpp" line="402"/>
         <source>Sh&amp;ading</source>
         <translation>За&amp;тінення</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="437"/>
-        <location filename="../common/lc_mainwindow.cpp" line="674"/>
+        <location filename="../common/lc_mainwindow.cpp" line="407"/>
+        <location filename="../common/lc_mainwindow.cpp" line="645"/>
         <source>Tools</source>
         <translation>Інтструменти</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="456"/>
+        <location filename="../common/lc_mainwindow.cpp" line="426"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="464"/>
+        <location filename="../common/lc_mainwindow.cpp" line="434"/>
         <source>&amp;Import</source>
         <translation>&amp;Імпорт</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="467"/>
+        <location filename="../common/lc_mainwindow.cpp" line="437"/>
         <source>&amp;Export</source>
         <translation>&amp;Експорт</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="488"/>
+        <location filename="../common/lc_mainwindow.cpp" line="458"/>
         <source>&amp;Edit</source>
         <translation>&amp;Редагувати</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="512"/>
+        <location filename="../common/lc_mainwindow.cpp" line="482"/>
         <source>&amp;View</source>
         <translation>&amp;Вигляд</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="521"/>
+        <location filename="../common/lc_mainwindow.cpp" line="491"/>
         <source>Ste&amp;p</source>
         <translation>Кр&amp;ок</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="506"/>
         <source>T&amp;oolbars</source>
         <translation>&amp;Панелі інструментів</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="549"/>
+        <location filename="../common/lc_mainwindow.cpp" line="519"/>
         <source>&amp;Piece</source>
         <translation>&amp;Блок</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="575"/>
+        <location filename="../common/lc_mainwindow.cpp" line="546"/>
         <source>Sub&amp;model</source>
         <translation>Під&amp;модель</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="583"/>
+        <location filename="../common/lc_mainwindow.cpp" line="554"/>
         <source>&amp;Help</source>
         <translation>&amp;Довідка</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="597"/>
-        <location filename="../common/lc_mainwindow.cpp" line="601"/>
+        <location filename="../common/lc_mainwindow.cpp" line="568"/>
+        <location filename="../common/lc_mainwindow.cpp" line="572"/>
         <source>Selection Mode</source>
         <translation>Режим виділення</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="602"/>
+        <location filename="../common/lc_mainwindow.cpp" line="573"/>
         <source>Change selection mode</source>
         <translation>Змінити режим виділення</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="614"/>
+        <location filename="../common/lc_mainwindow.cpp" line="585"/>
         <source>Transform Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="618"/>
+        <location filename="../common/lc_mainwindow.cpp" line="589"/>
         <source>Snap XY</source>
         <translation>Прилипання XY</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="622"/>
+        <location filename="../common/lc_mainwindow.cpp" line="593"/>
         <source>Snap Z</source>
         <translation>Прилипання Z</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="626"/>
+        <location filename="../common/lc_mainwindow.cpp" line="597"/>
         <source>Snap Menu</source>
         <translation>Меню прилипання</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="632"/>
+        <location filename="../common/lc_mainwindow.cpp" line="603"/>
         <source>Movement Snap</source>
         <translation>Прилипання переміщення</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="633"/>
+        <location filename="../common/lc_mainwindow.cpp" line="604"/>
         <source>Snap translations to fixed intervals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="637"/>
+        <location filename="../common/lc_mainwindow.cpp" line="608"/>
         <source>Snap Angle Menu</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="643"/>
+        <location filename="../common/lc_mainwindow.cpp" line="614"/>
         <source>Rotation Snap</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="644"/>
+        <location filename="../common/lc_mainwindow.cpp" line="615"/>
         <source>Snap rotations to fixed intervals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="648"/>
+        <location filename="../common/lc_mainwindow.cpp" line="619"/>
         <source>Standard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="666"/>
+        <location filename="../common/lc_mainwindow.cpp" line="637"/>
         <source>Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="696"/>
+        <location filename="../common/lc_mainwindow.cpp" line="667"/>
         <source>Parts</source>
         <translation type="unfinished">Блоків</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="702"/>
+        <location filename="../common/lc_mainwindow.cpp" line="673"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="731"/>
+        <location filename="../common/lc_mainwindow.cpp" line="702"/>
         <source>Properties</source>
         <translation type="unfinished">Властивості</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="766"/>
+        <location filename="../common/lc_mainwindow.cpp" line="737"/>
         <source>Timeline</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <source>Part preview for &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_mainwindow.cpp" line="814"/>
-        <location filename="../common/lc_mainwindow.cpp" line="815"/>
+        <location filename="../common/lc_mainwindow.cpp" line="784"/>
+        <location filename="../common/lc_mainwindow.cpp" line="785"/>
         <source>Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1031"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1001"/>
         <source>Close Other Tabs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1113"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1083"/>
         <source>The file &apos;%1&apos; has been modified by another application, do you want to reload it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="1119"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1089"/>
         <source>File Changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2058"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1985"/>
         <source>%1 (ID: %2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../common/lc_mainwindow.cpp" line="2064"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1991"/>
         <source>%n Object(s) selected</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -4888,198 +4928,197 @@ Please visit https://www.leocad.org for information on how to download and insta
         </translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2068"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1995"/>
         <source> - %1 (ID: %2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2072"/>
+        <location filename="../common/lc_mainwindow.cpp" line="1999"/>
         <source> in group &apos;%1&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2110"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2037"/>
         <source>Step %1</source>
         <translation type="unfinished">Крок %1</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2168"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2095"/>
         <source>&amp;Undo %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2173"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2100"/>
         <source>&amp;Undo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2179"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2106"/>
         <source>&amp;Redo %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2184"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2111"/>
         <source>&amp;Redo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2384"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2311"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Supported Files (*.lcd *.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2428"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2355"/>
         <source>Merge Model</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2371"/>
         <source>Merged 1 submodel.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2446"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2373"/>
         <source>Merged %1 submodels.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>Import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2459"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2386"/>
         <source>LEGO Diginal Designer Files (*.lxf);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.mpd);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2505"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2432"/>
         <source>Supported Files (*.ldr *.dat *.mpd);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="807"/>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Error</source>
         <translation type="unfinished">Помилка</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Rel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2146"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2073"/>
         <source>Abs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2147"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2074"/>
         <source> M: %1 %2 R: %3 %4 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2517"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2444"/>
         <source>Saving files in LCD format is no longer supported, please use the LDR or MPD formats instead.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.cpp" line="2536"/>
+        <location filename="../common/lc_mainwindow.cpp" line="2463"/>
         <source>Save changes to &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>0</source>
         <translation type="unfinished">8x {0?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/20S</source>
         <translation type="unfinished">8x {1/20S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/4S</source>
         <translation type="unfinished">8x {1/4S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1F</source>
         <translation type="unfinished">8x {1F?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1/2S</source>
         <translation type="unfinished">8x {1/2S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1S</source>
         <translation type="unfinished">8x {1S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>2S</source>
         <translation type="unfinished">8x {2S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>3S</source>
         <translation type="unfinished">8x {3S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>4S</source>
         <translation type="unfinished">8x {4S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="151"/>
+        <location filename="../common/lc_mainwindow.h" line="130"/>
         <source>8S</source>
         <translation type="unfinished">8x {8S?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="152"/>
-        <location filename="../common/lc_mainwindow.h" line="158"/>
-        <location filename="../common/lc_mainwindow.h" line="163"/>
+        <location filename="../common/lc_mainwindow.h" line="131"/>
+        <location filename="../common/lc_mainwindow.h" line="137"/>
+        <location filename="../common/lc_mainwindow.h" line="142"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>1B</source>
         <translation type="unfinished">8x {1B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>2B</source>
         <translation type="unfinished">8x {2B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>4B</source>
         <translation type="unfinished">8x {4B?}</translation>
     </message>
     <message>
-        <location filename="../common/lc_mainwindow.h" line="157"/>
+        <location filename="../common/lc_mainwindow.h" line="136"/>
         <source>8B</source>
         <translation type="unfinished">8x {8B?}</translation>
     </message>
@@ -5192,130 +5231,130 @@ Please visit https://www.leocad.org for information on how to download and insta
 <context>
     <name>lcModel</name>
     <message>
-        <location filename="../common/lc_model.cpp" line="957"/>
-        <location filename="../common/lc_model.cpp" line="1831"/>
+        <location filename="../common/lc_model.cpp" line="954"/>
+        <location filename="../common/lc_model.cpp" line="1834"/>
         <source>Group #</source>
         <translation>Група #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1100"/>
+        <location filename="../common/lc_model.cpp" line="1097"/>
         <source>Cutting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1146"/>
+        <location filename="../common/lc_model.cpp" line="1143"/>
         <source>Pasting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1219"/>
+        <location filename="../common/lc_model.cpp" line="1216"/>
         <source>Duplicating Pieces</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="2531"/>
-        <location filename="../common/lc_model.cpp" line="4307"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>LeoCAD</source>
         <translation>LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1273"/>
-        <location filename="../common/lc_model.cpp" line="1352"/>
+        <location filename="../common/lc_model.cpp" line="1270"/>
+        <location filename="../common/lc_model.cpp" line="1349"/>
         <source>Error creating images.</source>
         <translation>Помилка створення зображення.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error</source>
         <translation>Помилка</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1539"/>
+        <location filename="../common/lc_model.cpp" line="1536"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation>Помилка запису у файл &apos;%1&apos;:
 %2</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1765"/>
+        <location filename="../common/lc_model.cpp" line="1768"/>
         <source>Inserting Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1784"/>
+        <location filename="../common/lc_model.cpp" line="1787"/>
         <source>Removing Step</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1827"/>
-        <location filename="../common/lc_model.cpp" line="4325"/>
+        <location filename="../common/lc_model.cpp" line="1830"/>
+        <location filename="../common/lc_model.cpp" line="4344"/>
         <source>No pieces selected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1850"/>
-        <location filename="../common/lc_model.cpp" line="1916"/>
+        <location filename="../common/lc_model.cpp" line="1853"/>
+        <location filename="../common/lc_model.cpp" line="1919"/>
         <source>Grouping</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1886"/>
-        <location filename="../common/lc_model.cpp" line="1931"/>
+        <location filename="../common/lc_model.cpp" line="1889"/>
+        <location filename="../common/lc_model.cpp" line="1934"/>
         <source>Ungrouping</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="1977"/>
+        <location filename="../common/lc_model.cpp" line="1980"/>
         <source>Editing Groups</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2176"/>
+        <location filename="../common/lc_model.cpp" line="2179"/>
         <source>Adding Piece</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2218"/>
+        <location filename="../common/lc_model.cpp" line="2221"/>
         <source>Resetting Cameras</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2229"/>
-        <location filename="../common/lc_model.cpp" line="4131"/>
+        <location filename="../common/lc_model.cpp" line="2232"/>
+        <location filename="../common/lc_model.cpp" line="4149"/>
         <source>Deleting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2258"/>
+        <location filename="../common/lc_model.cpp" line="2261"/>
         <source>Removing Key Frames</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2275"/>
-        <location filename="../common/lc_model.cpp" line="2292"/>
-        <location filename="../common/lc_model.cpp" line="2334"/>
-        <location filename="../common/lc_model.cpp" line="2379"/>
-        <location filename="../common/lc_model.cpp" line="2414"/>
+        <location filename="../common/lc_model.cpp" line="2278"/>
+        <location filename="../common/lc_model.cpp" line="2295"/>
+        <location filename="../common/lc_model.cpp" line="2337"/>
+        <location filename="../common/lc_model.cpp" line="2382"/>
+        <location filename="../common/lc_model.cpp" line="2417"/>
         <source>Modifying</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2482"/>
+        <location filename="../common/lc_model.cpp" line="2485"/>
         <source>New Model</source>
         <translation type="unfinished">Нова модель</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2531"/>
+        <location filename="../common/lc_model.cpp" line="2534"/>
         <source>No models selected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="2535"/>
+        <location filename="../common/lc_model.cpp" line="2538"/>
         <source>Inlining</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5336,7 +5375,7 @@ Please visit https://www.leocad.org for information on how to download and insta
     </message>
     <message>
         <location filename="../common/lc_model.cpp" line="2844"/>
-        <location filename="../common/lc_model.cpp" line="4145"/>
+        <location filename="../common/lc_model.cpp" line="4163"/>
         <source>Painting</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5373,113 +5412,113 @@ Please visit https://www.leocad.org for information on how to download and insta
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3723"/>
-        <location filename="../common/lc_model.cpp" line="3746"/>
+        <location filename="../common/lc_model.cpp" line="3741"/>
+        <location filename="../common/lc_model.cpp" line="3764"/>
         <source>Hide</source>
         <translation type="unfinished">Приховати</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3769"/>
-        <location filename="../common/lc_model.cpp" line="3792"/>
+        <location filename="../common/lc_model.cpp" line="3787"/>
+        <location filename="../common/lc_model.cpp" line="3810"/>
         <source>Unhide</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3834"/>
+        <location filename="../common/lc_model.cpp" line="3852"/>
         <source>Replacing Part</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3939"/>
+        <location filename="../common/lc_model.cpp" line="3957"/>
         <source>New SpotLight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3944"/>
+        <location filename="../common/lc_model.cpp" line="3962"/>
         <source>New Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3951"/>
+        <location filename="../common/lc_model.cpp" line="3969"/>
         <source>Move</source>
         <translation type="unfinished">Перемістити</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3955"/>
+        <location filename="../common/lc_model.cpp" line="3973"/>
         <source>Rotate</source>
         <translation type="unfinished">Покрутити</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3965"/>
-        <location filename="../common/lc_model.cpp" line="4206"/>
-        <location filename="../common/lc_model.cpp" line="4266"/>
-        <location filename="../common/lc_model.cpp" line="4278"/>
+        <location filename="../common/lc_model.cpp" line="3983"/>
+        <location filename="../common/lc_model.cpp" line="4224"/>
+        <location filename="../common/lc_model.cpp" line="4284"/>
+        <location filename="../common/lc_model.cpp" line="4296"/>
         <source>Zoom</source>
         <translation type="unfinished">Масштабувати</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3970"/>
+        <location filename="../common/lc_model.cpp" line="3988"/>
         <source>Pan</source>
         <translation type="unfinished">Подвинути</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3975"/>
+        <location filename="../common/lc_model.cpp" line="3993"/>
         <source>Orbit</source>
         <translation type="unfinished">Прокрутити</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="3980"/>
+        <location filename="../common/lc_model.cpp" line="3998"/>
         <source>Roll</source>
         <translation type="unfinished">Нахилити</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4002"/>
+        <location filename="../common/lc_model.cpp" line="4020"/>
         <source>Insert</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4012"/>
+        <location filename="../common/lc_model.cpp" line="4030"/>
         <source>New Light</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4229"/>
+        <location filename="../common/lc_model.cpp" line="4247"/>
         <source>Look At</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4239"/>
+        <location filename="../common/lc_model.cpp" line="4257"/>
         <source>Moving Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4300"/>
+        <location filename="../common/lc_model.cpp" line="4319"/>
         <source>Changing Properties</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4307"/>
+        <location filename="../common/lc_model.cpp" line="4326"/>
         <source>Nothing to select.</source>
         <translation>Немає чого обирати.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4336"/>
+        <location filename="../common/lc_model.cpp" line="4355"/>
         <source>Array only has 1 element or less, no pieces added.</source>
         <translatorcomment>Уточнити</translatorcomment>
         <translation>Масив містить лише 1 елемент або й менше, не додано блоків.</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4390"/>
+        <location filename="../common/lc_model.cpp" line="4409"/>
         <source>Array</source>
         <translation>Масив</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4402"/>
+        <location filename="../common/lc_model.cpp" line="4421"/>
         <source>Minifig #</source>
         <translation>Мініфігура #</translation>
     </message>
     <message>
-        <location filename="../common/lc_model.cpp" line="4424"/>
+        <location filename="../common/lc_model.cpp" line="4443"/>
         <source>Minifig</source>
         <translation>Мініфігура</translation>
     </message>
@@ -5645,17 +5684,17 @@ Please visit https://www.leocad.org for information on how to download and insta
         <translation type="vanished">Зафіксувати колір попереднього перегляду</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="524"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="551"/>
         <source>Add to Palette</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="535"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="562"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="539"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="566"/>
         <source>Remove from Palette</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5663,77 +5702,82 @@ Please visit https://www.leocad.org for information on how to download and insta
 <context>
     <name>lcPartSelectionWidget</name>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="719"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="746"/>
         <source>Search Parts</source>
         <translation>Пошук блоків</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="726"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="753"/>
         <source>Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="884"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="902"/>
+        <source>Edit Palettes...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../common/lc_partselectionwidget.cpp" line="911"/>
         <source>No Icons</source>
         <translation type="unfinished">Без іконок</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="889"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="916"/>
         <source>Small Icons</source>
         <translation type="unfinished">Малі іконки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="894"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="921"/>
         <source>Medium Icons</source>
         <translation type="unfinished">Середні іконки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="899"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="926"/>
         <source>Large Icons</source>
         <translation type="unfinished">Великі іконки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="904"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="931"/>
         <source>Extra Large Icons</source>
         <translation type="unfinished">Дуже великі іконки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="914"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="941"/>
         <source>Show Part Names</source>
         <translation type="unfinished">Показувати назви блоків</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="919"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="946"/>
         <source>Show Decorated Parts</source>
         <translation type="unfinished">Показувати декоровані блоки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="923"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="950"/>
         <source>Show Part Aliases</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="929"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="956"/>
         <source>List Mode</source>
         <translation type="unfinished">Режим списку</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="933"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="960"/>
         <source>Lock Preview Color</source>
         <translation type="unfinished">Зафіксувати колір попереднього перегляду</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="975"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1002"/>
         <source>Favorites</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1091"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1118"/>
         <source>All Parts</source>
         <translation>Усі блоки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1097"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1124"/>
         <source>In Use</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5742,7 +5786,7 @@ Please visit https://www.leocad.org for information on how to download and insta
         <translation type="vanished">Використані блоки</translation>
     </message>
     <message>
-        <location filename="../common/lc_partselectionwidget.cpp" line="1103"/>
+        <location filename="../common/lc_partselectionwidget.cpp" line="1130"/>
         <source>Submodels</source>
         <translation>Підмоделі</translation>
     </message>
@@ -5750,12 +5794,12 @@ Please visit https://www.leocad.org for information on how to download and insta
 <context>
     <name>lcPiecesLibrary</name>
     <message>
-        <location filename="../common/lc_library.cpp" line="775"/>
+        <location filename="../common/lc_library.cpp" line="782"/>
         <source>Initializing</source>
         <translation>Ініціалізація</translation>
     </message>
     <message>
-        <location filename="../common/lc_library.cpp" line="776"/>
+        <location filename="../common/lc_library.cpp" line="783"/>
         <source>Loading Parts Library</source>
         <translation>Завантаження бібліотеки блоків</translation>
     </message>
@@ -5764,6 +5808,7 @@ Please visit https://www.leocad.org for information on how to download and insta
     <name>lcPreviewDockWidget</name>
     <message>
         <location filename="../common/lc_previewwidget.cpp" line="19"/>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
         <source>Lock Preview</source>
         <translation type="unfinished"></translation>
     </message>
@@ -5788,23 +5833,18 @@ Please visit https://www.leocad.org for information on how to download and insta
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../common/lc_previewwidget.cpp" line="77"/>
-        <source>Lock</source>
+        <location filename="../common/lc_previewwidget.cpp" line="78"/>
+        <source>Unlock the preview display to enable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="78"/>
-        <source>%1 the preview display to %2 updates</source>
+        <location filename="../common/lc_previewwidget.cpp" line="79"/>
+        <source>Lock the preview display to disable updates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../common/lc_previewwidget.cpp" line="80"/>
-        <source>%1 Preview</source>
+        <location filename="../common/lc_previewwidget.cpp" line="81"/>
+        <source>Unlock Preview</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -6545,22 +6585,21 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation>Відображення</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="359"/>
         <source>Edge lines</source>
-        <translation>Лінії контурів</translation>
+        <translation type="vanished">Лінії контурів</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="439"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
         <source>2x</source>
         <translation>2x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="444"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
         <source>4x</source>
         <translation>4x</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="449"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="454"/>
         <source>8x</source>
         <translation>8x</translation>
     </message>
@@ -6569,7 +6608,7 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">Іконка вісей</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="436"/>
         <source>Anti-aliasing</source>
         <translation>Згладжування</translation>
     </message>
@@ -6578,76 +6617,76 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">пікселів (ширина)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="409"/>
         <source>Shading Mode:</source>
         <translation>Режим відображення:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="546"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="347"/>
         <source>Wireframe</source>
         <translation>Арматура</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="551"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="352"/>
         <source>Flat Shading</source>
         <translation>Плоске освітлення</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="357"/>
         <source>Default Lights</source>
         <translation>Типове освітлення</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="678"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="745"/>
         <source>Base Grid</source>
         <translation>Базова сітка</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="728"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="795"/>
         <source>Draw studs</source>
         <translation>Відображати контури шипів</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="751"/>
         <source>studs</source>
         <translation>шипів</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="704"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="771"/>
         <source>Draw lines every</source>
         <translation>Відображати лінії кожні</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1111"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1052"/>
         <source>View Sphere</source>
         <translation>Сфера візуалізації</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="615"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="783"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="850"/>
         <source>Disabled</source>
         <translation>Вимкнено</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="620"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="656"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="855"/>
         <source>Small</source>
         <translation>Малий</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="625"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="793"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="661"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="860"/>
         <source>Medium</source>
         <translation>Середній</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="630"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="798"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="666"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="865"/>
         <source>Large</source>
         <translation>Великий</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1145"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1118"/>
         <source>Highlight Color:</source>
         <translation>Колір підсвічування:</translation>
     </message>
@@ -6656,18 +6695,19 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">Розмір:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1117"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1058"/>
         <source>Color:</source>
         <translation>Колір:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1131"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1088"/>
         <source>Text Color:</source>
         <translation>Колір тексту:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="600"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="775"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="636"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="711"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="842"/>
         <source>Location:</source>
         <translation>Положення:</translation>
     </message>
@@ -6762,449 +6802,512 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="429"/>
         <source>Stud Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="394"/>
-        <source>Fade previous steps</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="476"/>
         <source>Mesh LOD</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="431"/>
         <source>Highlight new parts</source>
-        <translation type="unfinished">Підсвічувати нові блоки</translation>
+        <translation type="obsolete">Підсвічувати нові блоки</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="465"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="366"/>
         <source>Plain</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="371"/>
         <source>Thin Lines Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="376"/>
         <source>Outline Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="381"/>
         <source>Sharp Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="386"/>
         <source>Rounded Top Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="490"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="391"/>
         <source>Flattened Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="495"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="396"/>
         <source>High Contrast</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="500"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="401"/>
         <source>High Contrast with Logo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="524"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
         <source>Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="531"/>
-        <source>Automate edge color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="538"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="339"/>
         <source>Contrast Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="581"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="617"/>
         <source>Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="587"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="623"/>
         <source>Model Views</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="593"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="744"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="629"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="811"/>
         <source>Axis Icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="607"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="806"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="643"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="873"/>
         <source>View Sphere:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="639"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="752"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="675"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="819"/>
         <source>Top Left</source>
         <translation>Вгорі ліворуч</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="644"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="757"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="680"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="724"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="824"/>
         <source>Top Right</source>
         <translation>Вгорі праворуч</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="649"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="762"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="685"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="729"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="829"/>
         <source>Bottom Left</source>
         <translation>Внизу ліворуч</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="654"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="767"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="690"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="734"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="834"/>
         <source>Bottom Right</source>
         <translation>Внизу праворуч</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="721"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="788"/>
         <source>Draw origin lines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="805"/>
         <source>Part Preview</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="843"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="910"/>
         <source>Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="849"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1227"/>
         <source>Background</source>
         <translation type="unfinished">Фон</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="857"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1235"/>
         <source>Top Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="871"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1265"/>
         <source>Bottom Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="900"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
         <source>So&amp;lid Color</source>
         <translation type="unfinished">Су&amp;цільний колір</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="907"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1301"/>
         <source>&amp;Gradient</source>
         <translation type="unfinished">&amp;Градієнт</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="941"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="916"/>
         <source>Interface</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="947"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="936"/>
         <source>Inactive View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="961"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="978"/>
         <source>Overlay Color:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="968"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1026"/>
         <source>Active View Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="989"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="950"/>
         <source>Camera Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1016"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="985"/>
         <source>Axis Icon Labels:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1030"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="922"/>
         <source>Marquee Border:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1044"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="469"/>
+        <source>Highlight New Parts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="506"/>
+        <source>Fade Previous Steps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="523"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="536"/>
+        <source>Conditional Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="556"/>
+        <source>Line Width:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="579"/>
+        <source>Edge Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="586"/>
+        <source>Automate Edge Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="964"/>
         <source>Marquee Fill:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1061"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1161"/>
         <source>Grid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1067"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1167"/>
         <source>Lines:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1197"/>
         <source>Studs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1189"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1230"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1335"/>
+        <source>Objects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1341"/>
+        <source>Light:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1371"/>
+        <source>Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1385"/>
+        <source>Control Point Focused:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1420"/>
+        <source>Control Point:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1427"/>
+        <source>Selected:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1434"/>
+        <source>Camera:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1458"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1499"/>
         <source>Categories</source>
         <translation>Категорії</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1195"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1464"/>
         <source>Parts Library Categories</source>
         <translation>Категорії бібліотеки блоків</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1264"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1533"/>
         <source>Name</source>
         <translation>Назва</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1538"/>
         <source>Number</source>
         <translation>Номер</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1280"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1408"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1541"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1549"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1677"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1810"/>
         <source>Import...</source>
         <translation>Імпортувати...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1287"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1415"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1548"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1556"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1684"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1817"/>
         <source>Export...</source>
         <translation>Експортувати...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1294"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1422"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1555"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1563"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1691"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1824"/>
         <source>Reset...</source>
         <translation>Скинути...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1319"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1588"/>
         <source>Category</source>
         <translation>Категорія</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1325"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1594"/>
         <source>New...</source>
         <translation>Нова...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1332"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1601"/>
         <source>Edit...</source>
         <translation>Редагувати...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1339"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1608"/>
         <source>Delete...</source>
         <translation>Видалити...</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1363"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1632"/>
         <source>Keyboard</source>
         <translation>Клавіатура</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1373"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1642"/>
         <source>Keyboard Shortcuts</source>
         <translation>Комбінації клавіш клавіатури</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1386"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1655"/>
         <source>Command</source>
         <translation>Команда</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1391"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1450"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1584"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1660"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1719"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1853"/>
         <source>Shortcut</source>
         <translation>Комбінація клавіш</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1399"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1668"/>
         <source>Search shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1456"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1725"/>
         <source>Key se&amp;quence:</source>
         <translation>&amp;Послідовність клавіш:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1469"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1651"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1738"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1920"/>
         <source>Assign</source>
         <translation>Встановити</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1476"/>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1658"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1745"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1927"/>
         <source>Remove</source>
         <translation>Видалити</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1498"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1767"/>
         <source>Mouse</source>
         <translation>Миша</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1506"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1775"/>
         <source>Mouse Shortcuts</source>
         <translation>Комбінації клавіш миші</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1521"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1790"/>
         <source>Action</source>
         <translation>Дія</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1526"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1795"/>
         <source>Shortcut 1</source>
         <translation>Комбінація клавіш 1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1531"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1800"/>
         <source>Shortcut 2</source>
         <translation>Комбінація клавіш 2</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1592"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1861"/>
         <source>Button:</source>
         <translation>Клавіша:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1600"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1869"/>
         <source>None</source>
         <translation>Немає</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1605"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1874"/>
         <source>Left</source>
         <translation>Вліво</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1610"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1879"/>
         <source>Middle</source>
         <translation>Середня</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1615"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1884"/>
         <source>Right</source>
         <translation>Вправо</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1623"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1892"/>
         <source>Modifiers:</source>
         <translation>Модифікатори:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1630"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1899"/>
         <source>Control</source>
         <translation>Ctrl</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1637"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1906"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1644"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1913"/>
         <source>Shift</source>
         <translation>Shift</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.ui" line="1672"/>
+        <location filename="../qt/lc_qpreferencesdialog.ui" line="1941"/>
         <source>Mouse sensitivity:</source>
         <translation>Чутливість миші:</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="242"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="263"/>
         <source>Grid spacing must be greater than 0.</source>
         <translation>Розмір клітинок сітки має бути більше 0.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="331"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="354"/>
         <source>Select Parts Library Folder</source>
         <translation>Оберіть теку з бібліотекою блоків</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Select Parts Library Archive</source>
         <translation>Оберіть архів з бібліотекою блоків</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="339"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="362"/>
         <source>Supported Archives (*.zip *.bin);;All Files (*.*)</source>
         <translation>Підтримувані архіви (*.zip *.bin);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Select Color Configuration File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="347"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="370"/>
         <source>Settings Files (*.ldr);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Select Minifig Settings File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="355"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="378"/>
         <source>Settings Files (*.ini);;All Files (*.*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="364"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
         <source>Executable Files (*.exe);;All Files (*.*)</source>
         <translation>Виконувані файли (*.exe);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="366"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="389"/>
         <source>All Files (*.*)</source>
         <translation>Усі файли (*.*)</translation>
     </message>
@@ -7213,235 +7316,265 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">Показати розташування програми POV-Ray</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="377"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="400"/>
         <source>Open LGEO Folder</source>
         <translation>Показати розташування теки LGEO</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Reset Colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="387"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="410"/>
         <source>Would you like to also reset the interface colors to match the color theme?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="401"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="424"/>
         <source>Select Background Color</source>
         <translation type="unfinished">Визначте колір фону</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="406"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="429"/>
         <source>Select Gradient Top Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="411"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="434"/>
         <source>Select Gradient Bottom Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="416"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="439"/>
         <source>Select Axes Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="421"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="444"/>
         <source>Select Text Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="426"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="449"/>
         <source>Select Marquee Border Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="431"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="454"/>
         <source>Select Marquee Fill Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="437"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="460"/>
         <source>Select Overlay Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="442"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="465"/>
         <source>Select Active View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="447"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
         <source>Select Inactive View Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="452"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
         <source>Select Fade Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="458"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="481"/>
         <source>Select Highlight Color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="464"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="487"/>
         <source>Select Grid Stud Color</source>
         <translation>Визначте колір контурів шипів сітки</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="470"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="493"/>
         <source>Select Grid Line Color</source>
         <translation>Визначте колір ліній сітки</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="475"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="498"/>
         <source>Select View Sphere Color</source>
         <translation>Визначте колір сфери візуалізації</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="480"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="503"/>
         <source>Select View Sphere Text Color</source>
         <translation>Визначте колір тексту сфери візуалізації</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="485"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="508"/>
         <source>Select View Sphere Highlight Color</source>
         <translation>Визначте колір підсвічування сфери візуалізації</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="596"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="513"/>
+        <source>Select Object Selected Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="518"/>
+        <source>Select Object Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="523"/>
+        <source>Select Camera Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="528"/>
+        <source>Select Light Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="533"/>
+        <source>Select Control Point Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="539"/>
+        <source>Select Control Point Focused Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="661"/>
         <source>Unassigned</source>
         <translation>Не встановлено</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="710"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="775"/>
         <source>Are you sure you want to delete the category &apos;%1&apos;?</source>
         <translation>Ви впевнені що хочете видалити категорію &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
         <source>Import Categories</source>
         <translation>Імпортувати категорії</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="723"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="788"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Text Files (*.txt);;All Files (*.*)</source>
         <translation>Текстові файли (*.txt);;Усі файли (*.*)</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="731"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="796"/>
         <source>Error loading categories file.</source>
         <translation>Помилка завантаження файла категорій.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="742"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="807"/>
         <source>Export Categories</source>
         <translation>Експортувати категорії</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="749"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="814"/>
         <source>Error saving categories file.</source>
         <translation>Помилка збереження файла категорій.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="756"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="821"/>
         <source>Are you sure you want to load the default categories?</source>
         <translation>Ви впевнені що хочете встановити типові категорії?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="957"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1022"/>
         <source>The shortcut &apos;%1&apos; is already assigned to &apos;%2&apos;. Do you want to replace it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1012"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
         <source>Import shortcuts</source>
         <translation>Імпортувати комбінації клавіш</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1020"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1085"/>
         <source>Error loading keyboard shortcuts file.</source>
         <translation>Помилка завантаження файла комбінацій клавіш.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1032"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1097"/>
         <source>Export shortcuts</source>
         <translation>Експортувати комбінації клавіш</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1039"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1104"/>
         <source>Error saving keyboard shortcuts file.</source>
         <translation>Помилка збереження файла комбінацій клавіш.</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1046"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1111"/>
         <source>Are you sure you want to load the default keyboard shortcuts?</source>
         <translation>Ви впевнені що хочете встановити типові комбінації клавіш клавіатури?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1073"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1138"/>
         <source>Left Button</source>
         <translation>Клавіша вліво</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1077"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1142"/>
         <source>Middle Button</source>
         <translation>Середня клавіша миші</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1081"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1146"/>
         <source>Right Button</source>
         <translation>Кнопка вправо</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="959"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1024"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>Override Shortcut</source>
         <translation>Перезаписати комбінації клавіш</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="369"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="392"/>
         <source>Select POV-Ray Executable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1148"/>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1157"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1213"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1222"/>
         <source>This shortcut is already assigned to &apos;%1&apos;, do you want to replace it?</source>
         <translation>Ця комбінаця клавіш вже використовується для &apos;%1&apos;. Ви хочете замінити її?</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1204"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1269"/>
         <source>Import Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1212"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1277"/>
         <source>Error loading mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1225"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1290"/>
         <source>Export Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1231"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1296"/>
         <source>Error saving mouse shortcuts file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1236"/>
+        <location filename="../qt/lc_qpreferencesdialog.cpp" line="1301"/>
         <source>Are you sure you want to load the default mouse shortcuts?</source>
         <translation>Ви впевнені що хочете встановити типові комбінації клавіш миші?</translation>
     </message>
@@ -7473,6 +7606,11 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <source>Comments:</source>
         <translation>Коментарі:</translation>
     </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="76"/>
+        <source>Measurements:</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Scene</source>
         <translation type="vanished">Сцена</translation>
@@ -7506,7 +7644,7 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">Встановити типовими властивостями для нових проектів</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.ui" line="77"/>
+        <location filename="../qt/lc_qpropertiesdialog.ui" line="91"/>
         <source>Parts Used</source>
         <translation>Використані блоки</translation>
     </message>
@@ -7516,13 +7654,20 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation>Властивості %1</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="62"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="51"/>
+        <source>%1 x %2 x %3 cm
+%4 x %5 x %6 inches
+%7 x %8 x %9 LDU</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="70"/>
         <source>Part</source>
         <translation>Блок</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="73"/>
-        <location filename="../qt/lc_qpropertiesdialog.cpp" line="110"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="81"/>
+        <location filename="../qt/lc_qpropertiesdialog.cpp" line="118"/>
         <source>Total</source>
         <translation>Усього</translation>
     </message>
@@ -7560,40 +7705,40 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation>Значення</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="886"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1018"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="895"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1027"/>
         <source>Position</source>
         <translation>Позиція</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="887"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="892"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1019"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1024"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="888"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="893"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1020"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1025"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1029"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1039"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="889"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="894"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1021"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1026"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1031"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="903"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1030"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1040"/>
         <source>Z</source>
         <translation>Z</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="891"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
         <source>Rotation</source>
         <translation>Обертання</translation>
     </message>
@@ -7602,73 +7747,73 @@ GL_EXT_texture_filter_anisotropic extension: %5
         <translation type="vanished">Видимість</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="896"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="905"/>
         <source>Visible Steps</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="897"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="906"/>
         <source>Show</source>
         <translation>Відображати</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="898"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="907"/>
         <source>Hide</source>
         <translation>Приховати</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="900"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="909"/>
         <source>Appearance</source>
         <translation>Зовнішній вигляд</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="901"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="910"/>
         <source>Color</source>
         <translation>Колір</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="902"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="911"/>
         <source>Part</source>
         <translation>Блок</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1023"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1032"/>
         <source>Target</source>
         <translation>Ціль</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1028"/>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1033"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1042"/>
         <source>Up</source>
         <translation>Верх</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1034"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1043"/>
         <source>Orthographic</source>
         <translation>Ортографічна</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1035"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1044"/>
         <source>FOV</source>
         <translation>Фокусна відстань</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1036"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1045"/>
         <source>Near</source>
         <translation>Мінімум</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1037"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1046"/>
         <source>Far</source>
         <translation>Максимум</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1038"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1047"/>
         <source>Name</source>
         <translation>Назва</translation>
     </message>
     <message>
-        <location filename="../qt/lc_qpropertiestree.cpp" line="1118"/>
+        <location filename="../qt/lc_qpropertiestree.cpp" line="1127"/>
         <source>Multiple Objects Selected</source>
         <translation>Обрано кілька об&apos;єктів</translation>
     </message>
@@ -7960,22 +8105,22 @@ GL_EXT_texture_filter_anisotropic extension: %5
 <context>
     <name>lcView</name>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>LeoCAD</source>
         <translation type="unfinished">LeoCAD</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="755"/>
+        <location filename="../common/lc_view.cpp" line="665"/>
         <source>Error creating images.</source>
         <translation type="unfinished">Помилка створення зображення.</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error</source>
         <translation type="unfinished">Помилка</translation>
     </message>
     <message>
-        <location filename="../common/lc_view.cpp" line="800"/>
+        <location filename="../common/lc_view.cpp" line="710"/>
         <source>Error writing to file &apos;%1&apos;:
 %2</source>
         <translation type="unfinished">Помилка запису у файл &apos;%1&apos;:
diff --git a/resources/minifig.ini b/resources/minifig.ini
index 9dbfc1a..4abfcba 100644
--- a/resources/minifig.ini
+++ b/resources/minifig.ini
@@ -1,5 +1,5 @@
 ; MLCad.ini
-; Version 2020-03
+; Version 2023-01
 
 ; SUPPORT:
 
@@ -16,9 +16,7 @@
 
 
 [HATS]
-; Update 2020-03
 "Baseball Cap with Button on Top" "93219.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Cap Aviator" "30171.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cap Aviator with Black Goggles" "30171C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cap with Long Flat Peak" "4485.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -27,12 +25,14 @@
 "Cap with Short Arched Peak and Black Headphones" "11303C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cloth Wrap / Bandana with Rounded Top" "18927.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Helmet" "3833.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Construction Helmet with Hair Ponytail" "16178.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Helmet with Dark Brown Hair Ponytail" "16178P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Construction Helmet with Nougat Hair Ponytail" "16178P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Helmet with Hair Short" "16175.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Construction Helmet with Hair Ponytail" "16178.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Helmet with Medium Nougat Hair Short Pattern" "16175P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Helmet with Reddish Brown Hair Short Pattern" "16175P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cook's Hat" "3898.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Crown with 4 Spikes" "18165.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Elves Hair Long Wavy with Braid, Bangs and Ears" "19201.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Elves Hair Long Wavy with Braid, Bangs and LtNougat Ears Pattern""19201P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Elves Hair Long Wavy with Ears" "19204.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -62,37 +62,28 @@
 "Friends Hair w. Top Knot Bun and Hair Band" "15673.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Friends Hair w. Top Knot Bun and Medium Blue Hair Band" "15673P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Friends Party Hat" "24131.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Garrison Cap" "4156.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Ghost Shroud" "2588.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Backslick" "64798.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hair Bob Cut Parted in Middle" "29633.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hair Bubble Style (Afro)" "87995.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Bushy Swept Back" "28551.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Coiled" "21778.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Combed Front to Rear" "92081.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Female Beehive Style with Sideways Fringe" "15503.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Female Long Straight with Left Side Parting" "92083.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Female Short Swept Sideways" "20877.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Female Ponytail with Long French Braid" "88286.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hair Female Very Curly - Parted in Middle" "29634.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hair Female with Elaborate Knot Bun" "13251.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Female with Pigtails" "3625.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Flat Top" "30608.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Islander" "6025.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Male" "3901.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hair Mid-Length Smooth Wide Bob Cut" "95328.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Mid-Length Smooth Wide Bob Cut with Gold Diadem Pattern""95328P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hair Long and Half Braided" "30475.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Long and Straight Parted in the Middle" "41612.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Long Straight" "40239.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Long Tousled with Centre Parting" "20595.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Long with Curls" "11255.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -101,6 +92,12 @@
 "Hair Long with Headband and Feathers (Complete)" "30114C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Long with One Front Lock" "85974.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Long Wavy" "40251.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Long Wavy with Bright Light Yellow Knit Ski Cap Pattern""80577P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Long Wavy with Bright Pink Knit Ski Cap Pattern" "80577P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Long Wavy with Knit Ski Cap" "80577.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Mid-Length Straight with Blue Crown Pattern" "18835P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Mid-Length Straight with Crown" "18835.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Mid-Length Straight with Gold Crown Pattern" "18835P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Orc with Dark Tan Ears Pattern" "10066P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Orc with Ears" "10066.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Orc with Medium Nougat Ears Pattern" "10066P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -120,6 +117,7 @@
 "Hair Short Tousled with Side Parting" "62810.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Short Wavy with Centre Parting" "26139.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Short Wavy with Side Part" "11256.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Short with Curled Ends" "59362.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Shoulder Length" "4530.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Spiked" "98385.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Spiky Long" "53982.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -133,15 +131,20 @@
 "Hair Tousled" "10048.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Tousled and Layered" "92746.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Wavy" "43751.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Wavy Parted with Black Large Thick Glasses and Green Eyes Looking Up Pattern""28145P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Wavy Parted with Black Large Thick Glasses and Green Eyes Pattern""28145P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Wavy Parted with Black Large Thick Glasses and Green Eyes Winking Pattern""28145P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Wavy Parted with Black Large Thick Glasses and Light Nougat Eyes Pattern""28145P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair Wavy Parted with Large Thick Glasses" "28145.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Wavy Windblown to One Side" "32602.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-02
+"Hair with Large High Bun" "27186.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Baseball Cap" "35660.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair with Ponytail and Bright Pink Baseball Cap Pattern" "35660P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Dark Blue Baseball Cap Pattern" "35660P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Dark Red Baseball Cap Pattern" "35660P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hair with Ponytail and Dark Turquoise Baseball Cap Pattern""35660P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Red Baseball Cap Pattern" "35660P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and White Baseball Cap Pattern" "35660P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hair with Ponytail and Swept Sideways Fringe" "87990.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Swept Sideways Fringe with Purple Highlights Pattern""87990P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair with Ponytail and Swept Sideways Fringe with Yellow Hairband Pattern""87990P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -150,8 +153,22 @@
 "Hair with Two Locks on Left Side" "15443.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Beanie" "90541.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Beret" "90386.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Hat Bicorne" "2528.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne" "2528a.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Admiral Pattern" "2528AP32.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Corrugated Metallic Silver Minifigure Skull and Crossed Spanners on Dark Bluish Grey Background Pattern""2528AP3A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Dark Bluish Grey Tattered Lines and Spots and Metallic Silver Emblem Pattern""2528AP38.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Bicorne with Evil Skull and Crossbones Pattern" "2528P30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Gold Trim, Gold Button and Blue Flower Pattern""2528AP3C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Large Square Skull with Crossbones Behind and Red Line Pattern""2528AP39.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Metallic Gold Captain Pattern" "2528AP35.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Metallic Gold Skull and Crossbones and Dots Pattern""2528AP33.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Minifigure Skull and Crossed Spanners Pattern""2528AP34.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Squared Skull and Crossbones Pattern" "2528AP3D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with Small Rounded Skull and Crossbones Pattern""2528AP31.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with White Evil Skull and Crossbones Pattern" "2528AP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with White Skull and Crossed Cutlasses Pattern""2528AP3B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with White Slanted Skull with Eyepatch and Crossed Spanners Pattern""2528AP37.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Bicorne with White Slanted Skull with X Eyes and Crossbones Pattern""2528AP36.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Bowler" "95674.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Bowler with Red Flower with Yellow Centre Pattern" "95674P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Conical Asian" "93059.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -159,14 +176,17 @@
 "Hat Cowboy" "3629.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Cowboy with Cavalry Logo Pattern" "3629PW1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Cowboy with Silver Star Pattern" "3629PW2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Hat Crown" "71015.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
-; Update 2020-03
+; Update 2023-01
+"Hat Cowboy Type 2" "15424.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+"Hat Crown" "71015.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Cylinder Tapered with Hatband" "27149.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Cylinder Tapered with Hatband with Half Side Dark Turquoise and Medium Lilac Flower Pattern""27149P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hat Elf with Pointy Ears" "13787.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Elf with Pointy Ears with Bright Green Top Pattern" "13787P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Elf with Pointy Ears with Dark Pink Top Pattern" "13787P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Elf with Pointy Ears with Red Top Pattern" "13787P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Fedora" "61506.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Fez" "85975.dat" 0 1 0 0 0 1 0 0 0 1 0 -14 0
 "Hat Flat Chef" "98381.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -175,33 +195,28 @@
 "Hat Kepi" "30135.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Knit Cap" "41334.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Ninja Wrap" "24496.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hat Pillbox with Flower" "41944.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Pillbox with Flower with Black Centre Pattern" "41944P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Pillbox with Flower with Metallic Silver Petals and Black Centre Pattern""41944P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hat Pith Helmet" "30172.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Police" "15530.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Police with Gold Badge Pattern" "15530P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Rag" "2543.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hat Sombrero" "90388.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Hat Tricorne" "2544.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Tricorne with White Plume (Complete)" "2544C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat Wide Brim Flat" "30167.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hat with Wide Brim Down" "13788.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hat Wizard without Brim" "17349.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Aztec Bird" "99243.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Aztec Bird with Eyes and Cheeks Pattern" "99243P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Headdress Bald Head High" "28125.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Bandage Wrapped" "24073.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Headdress Batman" "55704.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress Batman with Angular Ears" "10113.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Bird" "25971.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress Bird with Black Eye and Bright Light Yellow Beak Pattern""25971P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress Bird with Penguin White Face and Orange Beak Pattern""25971P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Catwoman" "98729.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Catwoman Short with Wider Apart Eyeholes" "55705.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Circular Slice 60 Degrees" "45755.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -223,25 +238,23 @@
 "Headdress Pig with Black Eyes Pattern" "17351P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Pumpkin Carved" "20695.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Pumpkin Carved with Green Stalk" "20695P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Headdress Rocket Costume" "29580.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress Rocket Costume with Red Top, Visor and Base and Rivets Pattern""29580P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Shark" "51349.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Headdress Shark with Tail and Fin" "24076.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Shark with Tail and Fin with Red Eye and White Orca Marks and Teeth Pattern""24076P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Shark with Tail and Fin with Black Eye and White Teeth Pattern""24076P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress SW Royal Guard" "30561.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress SW Zabrak Horns" "92761.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Turban" "40235.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Headdress Werewolf" "42443.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Headdress with Panther Ears" "25264.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Army" "87998.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Army with White Stencil Cross Pattern" "87998p01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Alien Skull with Fangs" "85945.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Cap" "60748.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Cap with Wings" "60747.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Helmet Castle Closed with Eye Slit" "89520.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Helmet Castle Rohan w. Cheek Protection and Comb" "10054.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Castle Rohan w. Cheek Prot. and Comb w. Eomer Pat." "10054P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Castle Rohan w. Cheek Prot. and Comb w. Theoden Pat." "10054P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -254,8 +267,8 @@
 "Helmet Castle with Dragon Crown Top with Cattlehorn White" "6122c02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Castle with Fixed Face Grille" "4503.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Castle with Neck Protector" "3844.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Helmet Classic with Cracked Thin Chin Guard" "16599.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Helmet Classic with Thin Chin Guard and Visor Dimples" "3842a.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Classic with Thin Chin Guard Cracked" "16599.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Classic with Thin Chin Guard Unbroken" "50665.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Classic with Thick Chin Guard" "3842C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Classic with Thick Chin Guard and Visor Dimples" "3842b.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Darth Vader" "30368.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -263,6 +276,15 @@
 "Helmet Imperial AT-ST Pilot" "57900.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Iron Man" "10907.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Iron Man w. Visor w. Gold Face, White Eyes Pattern" "10907C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian" "87610.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Black Visor Opening Pattern" "87610PS8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Blue Visor and White Upper Cheeks Pattern""87610PS1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Blue Visor, Dark Blue Upper Cheeks and Side and Two Black Horizontal Stripes Pattern""87610PS3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Dark Grey Visor, Blue Upper Cheek and Light Lime Trident Pattern""87610PS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Dark Red Visor, Black Mark on Right Cheek and Black Hand Print Pattern""87610PS4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Dark Red Visor, Dark Green Cheeks, Yellow Strokes and Metallic Silver Weathering Pattern""87610PS0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Red Triangle on Forehead and Light Bluish Grey Cheek Pattern""87610PS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Mandalorian with Reddish Brown Visor with Slanted Eyeslits Dark Bluish Grey Cheeks and Reddish Brown Pattern""87610PS7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Mining" "30325.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Modern" "2446.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Modern with Black, Blue and Silver Unitron Pattern" "2446P51.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -271,18 +293,25 @@
 "Helmet Morion" "30048.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Persian" "88284.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Roman Soldier" "98366.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Round Bubble" "30214.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Samurai" "30175.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Samurai with Horn (Shortcut)" "30175c01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Scout Trooper" "30369.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Skateboard" "46303.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"Helmet Sport with Front Handle" "12899.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+"Helmet Square Head" "19730.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Stormtrooper" "30408.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Stormtrooper with Stormtrooper Pattern" "30408p01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Stormtrooper with TIE-Fighter Pilot Pattern" "30408p02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Helmet SW Clone Trooper Commander Phase I Front Face with Yellow Markings and Silver Visor Pattern""61189PS1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Clone Trooper Phase I" "61189.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Clone Trooper Phase I with Dark Bluish Grey Rangefinder""61189C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
+"Helmet SW Clone Trooper Phase I with Grey Markings and Black Visor Pattern""61189PS0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet SW Clone Trooper Phase 2" "11217.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet SW Darth Vader Upper Part" "19916.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Mandalorian with Rocket Pack" "30380.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Mandalorian with Rocket Pack and Blue Jango Fett Colours Pattern""30380P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Mandalorian with Rocket Pack and Dark Brown Boba Fett Colours Pattern""30380P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -293,7 +322,9 @@
 "Helmet SW Rebel Pilot with Red Rebel Logo Pattern" "30370ps2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Rebel Pilot with Yellow Grid on Bley Pattern" "30370ps1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet SW Rebel Pilot with Yellow Grid on Grey Pattern" "30370ps5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet SW Snowtrooper" "44360.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Underwater" "87754.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Underwater Atlantis Portal Emperor" "89918.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Viking with Horns" "53450C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Viking with Nose Protector" "53450.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Welding" "13792.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -305,6 +336,7 @@
 "Helmet with Hexagonal Top, Hoses" "30120.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet with Hexagonal Top, Hoses, Gold Alien Pattern" "30120P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet with Hexagonal Top, Hoses, Silver Alien Pattern" "30120P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet with Underwater Antenna and Clips" "6088.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet with Wings and Eagle Head" "24088.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hood" "30381.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hood Fur-lined" "30287.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -327,8 +359,6 @@
 "SW Imperial Officer Cap with Silver and Black Code Disc and Dark Brown Stains Pattern""16497P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Top Hat" "3878.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Wizards Hat" "6131.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Wizards Hat with Silver Buckle and Stars Pattern" "6131P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -351,19 +381,14 @@
 "Friends Hair Decoration Bow with Pin" "96479.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
 "Friends Hair Decoration Butterfly with Pin" "96481.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
 "Friends Hair Decoration, Bow with Heart, Long Ribbon with Pin" "11618.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
-
-; Update 2020-03
 "Friends Hair Decoration, Bow with Heart with Pin" "94725.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
-
 "Friends Hair Decoration, Heart with Pin" "96485.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
 "Friends Hair Decoration, Star with Pin" "96489.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Friends Sunglasses with Pin" "18854.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Headphones / Ear Protection" "14045.DAT" 0 1 0 0 0 1 0 0 0 1 0 -11 0
+"Hair Decoration Plume Ribbon" "44740.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Helmet Ornament Horn" "71591.DAT" 0 1 0 0 0 1 0 0 0 1 0 -6 -18
-
-; Update 2020-03
 "Helmet Ornament Horn Elaborate" "11437.DAT" 0 1 0 0 0 1 0 0 0 1 0 -6 -18
-
 "Helmet Visor" "2447.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Visor Ice Planet" "6119.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Visor Iron Man" "10908.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 -8
@@ -372,7 +397,9 @@
 "Helmet Visor Iron Man w. Silver Face, DkRed Line Pattern" "10908P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 -8
 "Helmet Visor Iron Man w. Silver Face, White Eyes Pattern" "10908P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 -8
 "Helmet Visor Large with Trapezoid Area on Top" "89159.DAT" 0 1 0 0 0 1 0 0 0 1 0 -3 3
+"Helmet Visor Pointed" "2594.DAT" 0 1 0 0 0 1 0 0 0 1 0 6.5 0
 "Helmet Visor Space" "23318.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Helmet Visor SW Clone Trooper" "61190F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Visor Underwater" "6090.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Helmet Visor with Grille and Feather" "3843.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 0
 "Helmet Visor with Pointy Sides and Eye Slit" "48489.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
@@ -385,13 +412,19 @@
 
 
 [HEAD]
+"Stud Blocked Hollow" "3626B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stud Blocked Hollow with Standard Grin Pattern" "3626Bp01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stud Hollow" "3626C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stud Hollow with Standard Grin Pattern" "3626CP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Stud Solid" "3626A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Stud Solid with Standard Grin Pattern" "3626AP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Standard Grin Pattern" "3626BP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stud Vented" "28621.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Adventurers Mummy Pattern" "3626BPA2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Alien Female with Red Eyes and Dark Bluish Grey Lips and Wrinkles, Open Smile with Missing Tooth Pattern""3626CPCE8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Alien with Large Dark Blue Eyes, Turtle Mouth and Gills Pattern""3626BPAR.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Alien with Lower Fangs, Single Orange Eye Open/Half Closed Pattern (Front)""3626BPC94.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Alien with Lower Fangs, Single Orange Eye Open/Half Closed Pattern (rear)""3626BPC94.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Alien with Robot Red Eyes and Mouth and Silver Metal Plates Eyebrows and Mask Pattern""3626CP8G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Angry Eyebrows and Tense Mouth Pattern" "3626BP0F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Angry Moustache and Teeth Pattern" "3626BPW2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Angry Moustache, White Teeth and Gold Tooth Pattern" "3626BPW0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -400,27 +433,22 @@
 "Balaclava with Black Eyes and Curled Eyelash, 'Z' in Black Circle, Light Nougat Mouth Hole with Sneer Pattern""3626CPD6F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Balaclava with Black Eye Mask with White Eye Openings and Light Nougat Face and Scowl Pattern""3626CPBX.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Balaclava with Black Seams and White Eyes with Light Nougat Lower Face Pattern""3626CPD8C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Balaclava and Light Nougat Face, Cheek Lines, Frown/Clenched Teeth Pattern (Front)""3626CPBN.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Balaclava and Light Nougat Face, Cheek Lines, Frown/Clenched Teeth Pattern (rear)""3626CPBN.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
-
 "Balaclava with White Frowning Eyes and Light Nougat Mouth Hole, Reddish Brown Cheek Lines, Open Smile with Teeth Pattern""3626CPD6I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Beard Stubble, Black Raised Right Eyebrow and Smirk Angled to Right Pattern""3626CP72.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Beard Stubble, Eyebrows, Smile, Scar Pattern" "3626CPQ0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Beard, Hair and Sideburns in Vertical Line Pattern" "3626BPAD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Beard, Happy/Angry Pattern (front)" "3626CPBB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Beard, Happy/Angry Pattern (rear)" "3626CPBB.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Beard, Sneering/Scared Pattern (front)" "3626CPBH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Beard, Sneering/Scared Pattern (rear)" "3626CPBH.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Big Eyes, Curved Eyebrows, Orange Mouth Pattern" "3626BPAO.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Big Smile/Sad with Tear Pattern (front)" "3626BP4H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Big Smile/Sad with Tear Pattern (rear)" "3626BP4H.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Big Smile and Teeth/Sad with Tear Pattern (front)" "3626CP78.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Big Smile and Teeth/Sad with Tear Pattern (rear)" "3626CP78.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Black Angry Eyebrows, Scowl and Headset Pattern" "3626CP75.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Bushy Eyebrows, Smile/Angry Pattern (front)" "3626CPNF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Bushy Eyebrows, Smile/Angry Pattern (rear)" "3626CPNF.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Black Eye Mask w. White Eye Holes a. Dk Brown Cheek Lines Pattern" "3626CPD8K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -431,16 +459,18 @@
 "Black Eyebrows, Freckles, Smile/Worried Pattern (rear)" "3626CP8S.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Black Eyebrows, Medium Nougat Cheek Lines, Dark Tan Chin Ornament and Sad Look Pattern""3626CPD6J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Eyebrows, Reddish Brown Dimples, Lopsided Open Mouth Grin Pattern""3626CPD69.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Eyebrows, Sunken Eyes, Beauty Mark, Right Eye Scar, Neutral/Angry Pattern (front)""3626CPS4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Eyebrows, Sunken Eyes, Beauty Mark, Right Eye Scar, Neutral/Angry Pattern (rear)""3626CPS4.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Black Eyebrows, White Pupils, Chin Dimple, Cheek Lines and Smirk Pattern""3626CP79.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Eyebrows, White Pupils, Chin Dimple, Open Mouth Smile with Teeth Pattern""3626CP73.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Eyebrows, White Pupils, Dark Nougat Cheek Lines and Dimple and Grimacing Pattern""3626CPS3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Eyebrows, White Pupils, Dark Nougat Dimple, Cheek Lines and Frown Pattern""3626CPS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Eyebrows, White Pupils, Scared/Lopside Smile Pattern (front)""3626CP8W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Eyebrows, White Pupils, Scared/Lopside Smile Pattern (rear)""3626CP8W.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Black Eyebrows and Cheek Lines Pattern (front)" "3626CPB9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Eyebrows and Cheek Lines Pattern (rear)" "3626CPB9.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Black Eyebrows and Dark Brown Cheek Lines, Firm Expression Pattern""3626CPD8F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Black Eyebrows and Silver Sunglasses Pattern" "3626BP8K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Black Full Beard, Thick Black Eyebrows and White Pupils Pattern""3626BPQ5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Hair, Eyebrows and Smirk Pattern" "3626BP0D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Headband with White Batman Eyes, Broad Smile Showing Teeth Pattern""3626CPD85.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -448,9 +478,14 @@
 "Black Mask, White Eye Holes and Contour Lines Pattern" "3626CPD6B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Moustache, Beard and Messy Hair Pattern" "3626BP44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black/Silver Sunglasses, Black Eyebrows, Chin Dimple and Grim Mouth Pattern""3626CP8Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black/Silver Sunglasses, Chin Dimple and Grim Mouth Pattern""3626CP84.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Standard Eyes, Smiling with Tongue/Standard Grin Pattern (front)""3626CP8E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Standard Eyes, Smiling with Tongue/Standard Grin Pattern (rear)""3626CP8E.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Black Straight Eyebrows, Large Medium Blue Eyes, Big Smile with Teeth/Scowl with Teeth 2-Sided Pattern""3626CPNG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"Black Thin Straight Eybrows and Light Bluish Grey Lips and Eyeshadow Pattern""3626CPCCG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "Blue Headband and Dark Orange Hair Pattern" "3626BP66.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blue Sunglasses Pattern" "3626bp7b.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blue Sunglasses and Stubble Pattern" "3626BP7E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -471,20 +506,21 @@
 "Brown Hair, Eyelashes, and Lipstick Pattern" "3626BPA6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Brown Moustache, Stubble, Eyebrows, Frowning Pattern" "3626BP3R.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Bluish Grey around Eyes and Open Mouth Lopsided Pattern""3626CPCE7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Dark Orange Beard, Gold Teeth and Eyepatch Pattern" "3626CP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Dark Orange Moustache, Beard and Messy Hair Pattern" "3626BP42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Bluish Grey Eyebrows, Moustache and Sideburns, White Pupils and Open Mouth Pattern""3626BP8G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Brown Eyebrows, Crooked Smile and Laugh Lines Pattern""3626CP05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
-; Update 2020-03
-"DkRed Moustache and Beard, Sneer, White Pupil and Eye Patch Pattern""3626BP36.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-"DkRed Lips, Open/Closed Mouth, Freckles Pattern (front)" "3626CPBJ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DkRed Lips, Open/Closed Mouth, Freckles Pattern (rear)" "3626CPBJ.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-"DkRed Lips, Smirk/Eyemask Pattern (front)" "3626BPB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DkRed Lips, Smirk/Eyemask Pattern (rear)" "3626BPB8.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
-; Update 2020-03
-"DkTan Eyebrows, Moustache, Dark Tan and Grey Sideburns and Stubble Pattern""3626CP86.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+; Update 2023-01
+"Dark Brown Eyebrows, Goatee, Sideburns and White Pupils Pattern""3626CP40.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
+"Dark Orange Beard, Gold Teeth and Eyepatch Pattern" "3626CP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Orange Eyebrows, Trimmed Beard and Headset Pattern" "3626BPSH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Orange Moustache, Beard and Messy Hair Pattern" "3626BP42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Moustache and Beard, Sneer, White Pupil and Eye Patch Pattern""3626BP36.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Lips, Open/Closed Mouth, Freckles Pattern (front)" "3626CPBJ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Lips, Open/Closed Mouth, Freckles Pattern (rear)" "3626CPBJ.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Dark Red Lips, Smirk/Eyemask Pattern (front)" "3626BPB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Lips, Smirk/Eyemask Pattern (rear)" "3626BPB8.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Dark Tan Eyebrows, Moustache, Dark Tan and Grey Sideburns and Stubble Pattern""3626CP86.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Eye Patch, Black Stubble and Messy Hair Pattern" "3626BP49.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Eye Patch, DkOrange Moustache, Beard a. Messy Hair Pattern""3626BP46.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Eye Patch, DkOrange Stubble and Messy Hair Pattern" "3626BP48.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -504,9 +540,13 @@
 "Female with Black Eye Mask, Dark Red Lips, Red Tongue and Diamond on Cheek, Open Smile with Top Teeth Pattern""3626CPD6D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Black Eyes, Thin Eyebrows and Red Narrow Lips" "3626BPC42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Black Eyebrows and Eyelashes, Beauty Mark Under Left Eye, Dark Red Lips Pattern" "3626CPD66.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female with Black Eyebrows and Eyelashes, Freckles, Pink Lips, Open Mouth Smile / Angry Pattern (front)""3626CP81.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female with Black Eyebrows and Eyelashes, Freckles, Pink Lips, Open Mouth Smile / Angry Pattern (back)""3626CP81.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Black Eyebrows and Eyes with Eyelash, Broad Grin Pattern" "3626CPD8E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Black Eyebrows, Beauty Mark, Single Eyelash, Dark Tan Lips and Crooked Smile/Scowl Pattern (front)""3626CPNA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Black Eyebrows, Beauty Mark, Single Eyelash, Dark Tan Lips and Crooked Smile/Scowl Pattern (rear)""3626CPNA.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Female with Black Eyebrows, Dark Red Lips, Smile/Worry Pattern (front)""3626CPH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female with Black Eyebrows, Dark Red Lips, Smile/Worry Pattern (rear)""3626CPH0.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Black Eyebrows, Peach Lips, Open Smile with Teeth/Sleeping Pattern (front)""3626CP8R.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Black Eyebrows, Peach Lips, Open Smile with Teeth/Sleeping Pattern (rear)""3626CP8R.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Black Eyebrows, Peach Lips, Smirk/Smile with Mud Splotches Pattern (front)""3626CP77.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -518,6 +558,7 @@
 "Female with Brown Eyebrows, Peach Lips, Pensive Smile/Scared Pattern (front)""3626CP8Q.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Brown Eyebrows, Peach Lips, Pensive Smile/Scared Pattern (rear)""3626CP8Q.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Brown Eyebrows, Pupils, Eyelashes Pattern" "3626BP09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female with Earth Orange Lips and Light Blue Glasses with Black Top Frame Pattern""3626CP7F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Glasses with Dark Green Frames, Red Lips, Smiling/Smiling with Teeth Pattern (front)""3626CPX2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Glasses with Dark Green Frames, Red Lips, Smiling/Smiling with Teeth Pattern (rear)""3626CPX2.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Glasses with Gold Frames, Peach Lips, Smiling/Smiling with Teeth Pattern (front)" "3626CPX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -538,11 +579,8 @@
 "Female with Red Lips Annoyed/Smiling Pattern (front)(Hollow Stud)""3626CP89.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Red Lips Annoyed/Smiling Pattern (rear)(Hollow Stud)""3626CP89.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Female with Red Lips Small Eyebrows Pattern" "3626BP08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Female with Red Lips Smile/Scared Pattern (front)" "3626BP8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Red Lips Smile/Scared Pattern (rear)" "3626BP8I.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
 "Female with Silver Glasses and Pink Lips Smiling Pattern" "3626CP8L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Smiling/Scared Pattern (front)" "3626BPQ3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Smiling/Scared Pattern (rear)" "3626BPQ3.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
@@ -556,7 +594,7 @@
 "Glasses, Grey Eyes, Eyebrows, Cheeks Pattern" "3626CPBK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Glasses, Grey Eyebrows, Beard and Moustache Pattern" "3626BP0E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Glasses, Pencil Behind Ear and Pointed Moustache Pattern" "3626BPW8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Glasses, Thin Brown Eyebrows, Smile Pattern" "3626BP87.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Glasses, Thin Brown Eyebrows, Smile Pattern (Hollow Stud)" "3626CP87.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Paint and Slanted Eyes Pattern" "3626BP6U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Robot Pattern" "3626BP64.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Green Brain and Yellow Mouth Pattern" "3626BP6Y.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -565,9 +603,12 @@
 "Green Lips and Red Eyebrows Pattern" "3626BPB5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gregory Goyle/Harry Potter Pattern (front)" "3626BPH4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gregory Goyle/Harry Potter Pattern (rear)" "3626BPH4.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Grey Eyebrows and Stubble, Medium Nougat Cheek Lines and Chin Dimple and Black Glasses Pattern""3626CP7E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Grey Eyebrows, Moustache and Stubble, Sad Face Pattern" "3626CP7A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Grey Frame Glasses, Brown Eyebrows and Open Smile Pattern" "3626BP0I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Grey Hair, Beard, Moustache, Angry Pattern" "3626BP0A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Grin, Dark Grey Beard and Eyebrows Pattern" "3626BP39.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Grin, Brown Beard, White Pupils Pattern" "3626BP88.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Grin, Brown Beard, White Pupils Pattern (Hollow Stud)" "3626CP88.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Grumpy/Angry Pattern (front)" "3626CPBD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Grumpy/Angry Pattern (rear)" "3626CPBD.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Half-Moon Glasses and Grey Eyebrows Pattern" "3626BPHA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -590,16 +631,20 @@
 "Large Black Open Mouth with Uvula and Red Tongue Pattern" "3626CPD6E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Large Blue Mask Pattern" "3626BP6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Large Glasses with Dark Grey Eyebrows, Moustache and Stubbles and Dark Brown Cheek Lines Pattern""3626CPD67.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Large Tongue/Scared Pattern (front)" "3626CP03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Large Tongue/Scared Pattern (rear)" "3626CP03.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Lefty Mouth and Stubble Pattern" "3626BP81.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Light Bluish Grey Thick Eyebrows and Angular Beard and Open White Mouth Pattern""3626CP74.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Light Turquoise and Orange Painted Face Pattern" "3626BPW7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"Lightning Scar, Glasses, Black Eyebrows and Smile/Angry Pattern (front)""3626CPH2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Lightning Scar, Glasses, Black Eyebrows and Smile/Angry Pattern (rear)""3626CPH2.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+
 "LOTR Brown Eyebrows Worried/Smile Pattern (front)" "3626CPM2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Brown Eyebrows Worried/Smile Pattern (rear)" "3626CPM2.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "LOTR DkBrown Beard, Stubble and Stern/Clenched Teeth Pattern (front)" "3626CPM7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"LOTR DkBrown Beard, Stubble and Stern/Clenched Teeth (rear)" "3626CPM7.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"LOTR DkBrown Beard, Stubble and Stern/Clenched Teeth Pattern (rear)" "3626CPM7.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "LOTR Frowning/Grimacing Pattern (front)" "3626CPM6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Frowning/Grimacing Pattern (rear)" "3626CPM6.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "LOTR Frowning/Scared Pattern (front)" "3626CPM4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -610,10 +655,7 @@
 "LOTR Smirking/Shouting Pattern (front)" "3626CPM8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Smirking/Shouting Pattern (rear)" "3626CPM8.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "LOTR Thick Gray Eyebrows and Smile Pattern" "3626CPM1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "LOTR Thick Grey Eyebrows and Smile Pattern" "3626CPM9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "LOTR Tired/Poisoned Pattern (front)" "3626CPM3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Tired/Poisoned Pattern (rear)" "3626CPM3.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "LOTR Uruk-Hai Lurtz Scowl and White Hand Pattern (front)" "3626BPMB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -623,10 +665,7 @@
 "Mask Br.Green with Eyeholes and Smile Pattern" "3626BPB2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mask Purple with Eyeholes and Smile Pattern" "3626BPB6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Medium Azure Zigzag Line Pattern" "3626CPCFB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Messy Black Hair, 1 Tooth in Mouth Pattern" "3626BP4F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Messy Hair and Eye Patch Pattern" "3626BP31.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Messy Hair and Moustache Pattern" "3626BP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Messy Hair Female Pattern" "3626BP40.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -639,10 +678,7 @@
 "Mouth Closed Stern/Mouth Open Scared Pattern (front)" "3626CP80.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mouth Closed Stern/Mouth Open Scared Pattern (rear)" "3626CP80.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Moustache Curly and Spiky Beard under Mouth Pattern" "3626BP45.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Moustache, Frown and Pointed Hairline Pattern" "3626BP4C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Moustache, Stubble and Bald Hair Part Pattern" "3626BPW9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mummy Face with 2 Eyes/1 Eye Pattern (front)" "3626BPQ0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mummy Face with 2 Eyes/1 Eye Pattern (rear)" "3626BPQ0.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
@@ -652,40 +688,36 @@
 "Open Smile with Teeth/Eyebrows, Scared Pattern (rear)" "3626CP8J.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Open Smiling Mouth, Teeth and Tounge Pattern" "3626BPC44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Orange Beard and White Smile Pattern" "3626BP80.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Orange Glasses and Smirk Pattern" "3626BP8J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Orange Painted Face Pattern" "3626BPW4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Painted Triangles Pattern" "3626BPW5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Peach Lips, Smile, Black Eyebrows Pattern" "3626BP8C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Peach Lips, Smile, Black Eyebrows Pattern (Hollow Stud)" "3626CP8C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pursed Lips and White Forehead Pattern" "3626BPB1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Raised Left Eyebrow, Freckles and Crooked Smile Pattern" "3626CP71.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red Eyes with White Pupils and Missing Teeth Pattern" "3626BPC15.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Lips and Black Upswept Eyelashes Pattern" "3626bp6f.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Red Lips, Open Mouth and Thick Eyelashes Pattern" "3626BP20.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Red Moustache, Beard and Messy Hair Pattern" "3626BP43.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Red Moustache, Eyebrows and Hair Pattern" "3626BP4D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Red Moustache and Goatee Pattern" "3626BP41.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Red a. Dark-Turquoise Painted Lines, Eyebrows, Nose Pattern""3626BPW6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red and Dark-Turquoise Painted Lines, Eyebrows, Nose Pattern""3626BPW6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reddish Brown Eyebrows and Freckles, Lopsided Grin/Frown Pattern Pattern (front)""3626CPNE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reddish Brown Eyebrows and Freckles, Lopsided Grin/Frown Pattern Pattern (rear)""3626CPNE.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Reddish Brown Eyebrows, Cheek Lines, Open Smile/Frown Pattern (front)""3626CPH1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Reddish Brown Eyebrows, Cheek Lines, Open Smile/Frown Pattern (rear)""3626CPH1.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Reddish Brown Eyebrows, Green Eyes, Lopsided Open Mouth Grin/Gritted Teeth Pattern (front)""3626CPNC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reddish Brown Eyebrows, Green Eyes, Lopsided Open Mouth Grin/Gritted Teeth Pattern (rear)""3626CPNC.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Reddish Brown Eyebrows, Medium Nougat Scar, White Band-Aid, Lopsided Grin with Teeth/Determined Pattern (front)""3626CPNB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reddish Brown Eyebrows, Medium Nougat Scar, White Band-Aid, Lopsided Grin with Teeth/Determined Pattern (rear)""3626CPNB.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
+"Reddish Brown Eyebrows, White Pupils and Dark Orange Dimple Pattern""3626CPS1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reddish Brown Headband w. Squinted Batman Eyes, Sad Mouth Pattern""3626CPD64.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot with Red Eyes and 4 Black Outlined Squares Mouth on Silver Background with Black Rivets Pattern""3626CP8P.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot with Red Eyes, Metal Eyebrows with Rivets, Broken White Teeth and Stubble Bolts Pattern""3626CPD2E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot with Red Visor and 4 Black Outlined Squares Mouth on Silver Background Pattern""3626CP8O.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot with Red Visor and 9 Black Squares Mouth Pattern" "3626CP8N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Ron Weasley Pattern" "3626bph3.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Scowl, White Pupils and Angry Eyebrows Pattern" "3626BP8E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Severus Snape Pattern" "3626BPHB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sideburns and Droopy Moustache Black Pattern" "3626BP3N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sideburns and Droopy Moustache Brown Pattern" "3626BP3Q.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -699,23 +731,29 @@
 "Skull Type 1 (Smiling) Pattern" "3626BPAQ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Small Blue Mask Pattern" "3626BP6W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Smile and Gold Tooth Pattern" "3626BP86.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Smile, Black Eyebrows and White Pupils Pattern" "3626BP84.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Smile, Brown Eyebrows and White Pupils Pattern" "3626BP85.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Smile, Black Eyebrows and White Pupils Pattern (Blocked Hollow Stud)" "3626BP84.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Smirk, Black Hair and Goatee Pattern" "3626BP82.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Smirk, Black Moustache Pattern" "3626BPA3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Smirk, Black Moustache and Cleft Chin Pattern" "3626BPAP.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Smirk, Black Hair and Goatee Pattern" "3626BP82.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Smile, Brown Eyebrows and White Pupils Pattern (Blocked Hollow Stud)" "3626BP85.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Smile, Brown Eyebrows and White Pupils Pattern (Hollow Stud)""3626CP7H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Smile, Black Eyebrows and White Pupils Pattern (Hollow Stud)""3626CP7G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Grin and Eyebrows Pattern" "3626BP05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Grin and Pointed Moustache Pattern" "3626BP03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Grin and Sunglasses Pattern" "3626BP04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Grin, Eyebrows and Microphone Pattern" "3626BP06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Grin Pattern (Hollow Stud)" "3626CP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Standard Woman Pattern" "3626BP02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stern Black Eyebrows, White Pupils and Black Chin Dimple Pattern""3626CP08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Stern Black Eyebrows, White Pupils and Dark Orange Chin Dimple Pattern""3626CP07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Stubble, Moustache and Smirk Pattern" "3626BPA5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Alien with Large Black Eyes Pattern" "3626BPSB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Black Eyebrows and Dark Bluish Grey Scars Pattern" "3626BPS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Black Eyebrows and Dark Grey Scars Pattern" "3626BPS7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Black Eyebrows, White Pupils, Dark Brown Forhead Lines, Cheek Lines and Chin Dimple and Open Mouth pattern""3626CPS7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Black Goggles and Chin Strap Pattern" "3626BPSL.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Brown Eyebrows Pattern" "3626BPS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Brown Eyebrows and Beard Pattern" "3626BPS9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"SW Black Eyebrows and Dark Bluish Grey Scars Pattern" "3626BPS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Brown Eyebrows, Smile and Black Chin Strap Pattern" "3626CPSG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Brown Eyebrows, Solid Black Eyes and Black Chin Strap Pattern""3626CPSF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Dark Bluish Grey Chin Strap, Stern Eyebrows Pattern (front)""3626CPSI.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -728,12 +766,14 @@
 "SW Grey Eyebrows and Implant Pattern (rear)" "3626BPSC.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "SW Jawa, Yellow Eyes with Orange Rim Pattern" "3626CPS0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Red Lips, Black Eyes, Thin Eyebrows Pattern" "3626BPS0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Reddish Brown Eyebrows, White Pupils and Dimple Pattern""3626BPSO.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Scout Trooper Black Visor Pattern" "3626BPSE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Small Black Eyebrows Pattern" "3626BPS3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Smirk and Brown Eyebrows Pattern" "3626BPS5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Stern Black Eyebrows, Pupils and Orange Visor Pattern" "3626CPSH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Tusken Raider Pattern" "3626BPST.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tan Eyebrows and Frown Pattern" "3626BPH2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tan Thin Eyebrows and Moustache and Grin with Teeth Pattern""3626BPC83.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Teeth, Pupils, Brown Eyebrows Pattern" "3626BP0B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Thick Angry Moustache, Stubble and Long Hair Pattern" "3626BPW1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Thick Black Eyebrows, Lavender Black Eye, Adhesive Bandage and Frown Pattern""3626CPCF4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -747,30 +787,32 @@
 "Villain Black Facial Hair Pattern" "3626BPA4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Villainous Glasses and Black Facial Hair Pattern" "3626bpa9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vincent Crabbe/Ron Weasley Pattern" "3626bph5.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "White Beard, Sideburns, Moustache, Eyebrows and White Pupils Pattern""3626BP8M.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "White Bushy Eyebrows, Goatee, Wrinkles, Smile/Open Mouth Scared Pattern (front)""3626CP8T.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Bushy Eyebrows, Goatee, Wrinkles, Smile/Open Mouth Scared Pattern (rear)""3626CP8T.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
-; Update 2020-03
 "White Face Paint, Black Lines Through Eyebrows and Eyes, Bright Pink Hearts on Cheeks Pattern""3626CPD6K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "White Hair, Eyebrows, and Moustache Pattern" "3626BPN1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Headband and Nougat Cheek Lines, Smirk Pattern" "3626CPD61.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "White Pupils, Black Eyebrows Closed/Scared Mouth 2-sided Pattern""3626BP8H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Pupils, Dark Bluish Grey Eyebrows and Dark Red Scars Pattern""3626CPS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"White Pupils, Cheek Lines, Black Eyebrows, Wide Open Mouth and Chin Dimple Pattern""3626BP8F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
+"White Pupils, Grey Eyebrows, Beard and Open Mouth Pattern" "3626BP8L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Skull Mask, Yellow Eyes and White String Tied in Back Pattern""3626CPCEB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White and Blue Stripes on Cheeks, Black Eyebrows and Big Grin Pattern""3626BPC33.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White and Light Bluish Grey Bushy Eyebrows, Open Mouth Smile Pattern""3626BP0H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White and Light Bluish Grey Eyebrows, Moustach and Goatee, Dark Orange Wrinkles, Concerned Expression Pattern""3626CPND.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Wide Smile, Red Lips and Crow's Feet Pattern" "3626BPB3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Wiry Moustache, Goatee and Eyebrows Pattern" "3626bp3e.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Wolf with Yellow Eyes, Black Scars, Fangs, Closed / Open Mouth Pattern (front)""3626CPAP.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Wolf with Yellow Eyes, Black Scars, Fangs, Closed / Open Mouth Pattern (rear)""3626CPAP.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Yellow Eyes and Mouth and Aluminum Foil Blotches Pattern" "3626CP8F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "--------------------Non-standard heads------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Alien E. T." "27956.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Alien E. T. with Blue Eyes and Grin Pattern" "27956PX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Alien Squidman" "85947.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Alien Squidman with Black Eyes and Lines Pattern" "85947P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Anubis Guard" "93248.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
@@ -788,13 +830,19 @@
 "Goblin" "42109.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Gungan with Flat Eyes (Needs Work)" "92743.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Gungan with Split Eyes (Needs Work)" "30371.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Kel'Dor with Breathing Apparatus" "61200.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Kel'Dor with Dark Bluish Grey Breathing Apparatus Pattern" "61200PS0.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Martian Head with Clip" "30529.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
 "Martian Head with Clip with Eyes Plain Pattern" "30529P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
 "Martian Head with Clip with Eyelashes Pattern" "30529P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
+"Mechanical Head Cyborg" "87567.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
+"Mechanical Head Cyborg with Tan Face Pattern" "87567P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Head Cyborg with White Face Pattern" "87567P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Head SW Battle Droid" "30378.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
 "Mechanical Head SW Battle Droid w. Dark Red Insignia Pattern""30378PS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
 "Mechanical Head SW Battle Droid w. Orange Insignia Pattern""30378PS1.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
 "Mechanical Head SW Battle Droid w. Yellow Insignia Pattern""30378PS3.DAT" 0 1 0 0 0 1 0 0 0 1 0 32 0
+"Mon Calamari" "64808.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Nautolan" "57901.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Nautolan, Black Eyes and Mouth, Brown Tentacle Bands" "57901P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Protocol Droid" "30480.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
@@ -803,6 +851,13 @@
 "Robot with Blue Eyes and Red/yellow Teeth Display" "98384P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Rodian without Pattern" "47545.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Rodian with Eyes and Nose Pattern" "47545P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Round 1 x 1 x 1.333 Pencil Top" "29030.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Round 1 x 1 x 1.333 Pencil Top with Orange Eyes Pattern" "29030P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Round 1.8 x 1.8 Biscuit with Filling" "14397.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Round 1.8 x 1.8 Biscuit with Blue Filling, Black and Metallic Silver Gears on Front and White Clockface on Back Pattern""14397P01C01.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 24 0
+"Round 1.8 x 1.8 Biscuit with Bright Pink Filling and Reddish Brown Eyes, White Brows and Mouth with Red Lips, Cheeks and Freckles Pattern""14397P03C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Round 1.8 x 1.8 Biscuit with Reddish Brown Filling and Reddish Brown Eyes and White Brows and Mouth with Dark Brown Moustache and Freckles Pattern""14397P02C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Round 1.8 x 1.8 Biscuit with Reddish Brown Filling and Reddish Brown Eyes and White Brows and Mouth with Freckles Pattern""14397P04C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Bart Simpson" "15523.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Bart Simpson with Eyes Looking Left Pattern" "15523P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Bart Simpson with Eyes Pattern" "15523P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
@@ -813,41 +868,35 @@
 "Simpsons Lisa Simpson with Eyes Pattern" "15524P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Lisa Simpson with Worried Eyes Pattern" "15524P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Maggie Simpson" "15525.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
-; Update 2020-03
 "Simpsons Maggie Simpson with Wide Open Eyes Pattern" "15525P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Maggie Simpson with Worried Eyes Pattern" "15525P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
 "Simpsons Marge Simpson" "15522.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Marge Simpson with Eyes Looking Right Pattern" "15522P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Marge Simpson with Wide Open Eyes Pattern" "15522P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Ned Flanders" "15529.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Simpsons Ned Flanders w. Glasses, Hair, Moustache Pattern" "15529P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Skeleton with Five Spikes" "93064.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Skeleton with Helmet" "93065.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Skull" "43693.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SpongeBob" "54872.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
 "SpongeBob with Happy Pattern" "54872p01.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
 "SpongeBob with Shocked Pattern" "54872P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
 "SpongeBob with Super Hero Pattern" "54872P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
 "Spongebob Octopus" "64767.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Spongebob Starfish" "54873.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
-; Update 2020-03
 "Sonic the Hedgehog" "26051.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Sonic the Hedgehog with Green Eyes, Tan Face and Half Smile Pattern""26051P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
-"Stud Hollow" "3626B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Trandoshan" "87570.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
-; Update 2020-03
 "Trandoshan with White Teeth and Orange Eyes with Black Pupil Pattern""87570P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
+"Trandoshan with White Teeth and Orange Eyes with Black and White Pupil Pattern""87570P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Toydarian" "92759.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Toydarian with Watto Vest and Belt Pattern" "92759P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Wookiee with Bandolier" "30483.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Wookiee with Silver Bandolier/Black Nose Pattern" "30483P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
 "Yoda with Curved Ears Type 1" "41880.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
-
-; Update 2020-03
 "Yoda with Curved Ears Type 2" "13195.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Yoda with Curved Ears Type 2 with Black Eyes and Grey Hair Pattern""13195P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 24 0
+
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
@@ -865,10 +914,7 @@
 "Airplane Logo, White Shirt and Suit Pattern" "973P8V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Airplane Logo and 'AIR' Badge Pattern" "973P85.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Anchor Motif Pattern" "973P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Apron and Lace Shirt Pattern" "973P4M.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Aquanaut Sub Logo, Zipper, and Weight Belt Pattern" "973PAG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Aquashark Blue Shark with Red 'X' Pattern" "973PAK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arctic Parka 'A1' Pattern" "973P7A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -883,12 +929,14 @@
 "Bandage, Gold Necklace and Gold Belt Pattern" "973PQ1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Batman Logo in Yellow Oval with Yellow Utility Belt and Gold Buckle Pattern""973PBO.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Batman Robin Pattern" "973Pb2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black and Blue Marks, Red X-Men Buckle Belt Pattern" "973PC6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Collar and Pockets Pattern" "973pst.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Diagonal Zip and Pocket Pattern" "973p0b.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Dungaree Pattern" "973P1A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Falcon Pattern" "973P43.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Futuron Pattern" "973P6B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Half Pattern" "973PBM.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Spider, Yellow Circles and Red Shirt Pattern" "973P4K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Stripe Pattern" "973PX2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blacktron I Pattern" "973P52.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blacktron II Pattern" "973P51.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -929,10 +977,7 @@
 "Castle Female Armour Pattern" "973P4G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Castle Red/Gray Pattern" "973P47.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Catsuit, Ring Zipper Pull and Belt Pattern" "973PB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Chain Mail, Belt and Straps Pattern" "973PF2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Chef Pattern" "973p2a.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Chef Jacket with 8 Buttons a. Long Red Neckerchief Pattern""973P8T.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Classic Space Pattern" "973P90.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -940,24 +985,24 @@
 "Clockwork Robot Pattern" "973PC67.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Coastguard Logo, Zippers and Radio Pattern" "973PU0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Coral Shooting Heart and Rainbow Pattern" "973PCJF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Corset and Gold Trim Pattern" "973P4Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Gold Asian Characters Front and Dragon Back Pattern" "973PNA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Construction Safety Vest with Reflective Stripes Pattern" "973P8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Construction Vest with Reflective Stripe and Buckles, Front Pouch and Red Pen Pattern""973P9G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Corset with Reddish Brown Laces Pattern" "973p4w.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Crew Neck Sweater with Bright Pink Collar Pattern" "973PD17.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Crew Neck Sweater w. Collar and 'HAIL TO THE CHEF'Pattern" "973P89.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Crocodile Skin with Dark Red Scar and Blue Round Jewel (Chi) Belt Pattern""973PAZ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Crown on DarkBlue/MediumBlue Quarters Pattern" "973p4j.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Blue Muscles and Gold Necklace Pattern" "973pq2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Overalls, Tank Top, Gold Chains and Pendant Pattern""973PXB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Bluish Grey Corset, Laces and Rope Belt Pattern" "973PC5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Bluish Grey Straps, Belt, Pouches and 'ACU' Pattern" "973PXE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Bluish Grey Suit Lines and Tie Pattern" "973P9Y.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Dark Brown Collar, Patch, Rope Belt and Pouch with Back Pattern""973P4Y.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Dark Brown Collar, Patch, Rope Belt and Pouch without Back Pattern""973p4v.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Brown Muscles and Belly Pattern" "973PX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Green Belt and Light Nougat, Olive Green and Orange Rectangles Pattern""973PX8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Green Corset with Leather Belt Pattern" "973p4x.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Grey, Black, and Yellow Batman Pattern" "973PB1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Orange Vest and Purple Bow Tie Pattern" "973pb7.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -973,12 +1018,17 @@
 "Explorien Logo Pattern" "973p55.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Extreme Team Jacket Logo Pattern" "973P8A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female Blouse with Buttons, Dark Pink Panel and Name Badge Pattern""973P9A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Female Jumpsuit w. Zipper, Markings, Classic Space Pattern""973P6G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Jumpsuit with Zipper, Markings, Classic Space Pattern""973P6G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Jumpsuit with Zipper with 'SALLY' Name Tag Pattern" "973P5A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Outline with White Tank Top with 'APERTURE' over Bright Light Blue Tank Top Pattern""973PX5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Pirate Corset with Gold and Blue Pattern" "973P3M.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female Pirate Pattern" "973P38.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female Top with Dark Pink Stripes and Flower Necklace Pattern""973P1Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Female Top with 2 White Buttons and Black Straps Pattern" "973P9J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Top with Two White Buttons and Black Straps Pattern" "973P9J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female Shiny Pink Robe with Spots Pattern" "973PHC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female Shirt with Two Buttons and Shell Pendant Pattern" "973P8K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Shirt with Two Pockets, Tan Scarf and Black Belt with Gold Buckle Pattern""973PCD6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Female Wetsuit, Coral and Dark Azure Trim and Turtle Logo Pattern""973PCKC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female White Shirt, Open Jacket Pattern" "973PAE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Gold Star and Zipper and Red Tied Sash and Muscles Outline Pattern""973PC1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Female with Harlequin Black/White Pattern" "973PBA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -993,12 +1043,14 @@
 "Firefighter Vest with Reflective Stripes with Heavy Duty Utility Belt Pattern""973P9T.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Firefighter Vest with Reflective Stripes, Pockets and Dark Blue Belt Pattern""973P9Q.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Firefighter Vest with Reflective Stripes, Utility Belt and Red Flashlight Pattern""973P9P.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Flight Suit Jacket, Name Tag, Badge and Zipped Pockets Pattern""973P1O.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Forestman and Purse Pattern" "973P46.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Forestman Black Collar Pattern" "973P50.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Forestman Blue Collar Pattern" "973P49.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Forestman Maroon Collar Pattern" "973P48.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Four Button Suit and Train Logo Pattern" "973P84.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Front and Rear Stickers w. 'TINE' Logo on Blue Background" "973D05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Fur Stole, Shoulder Strap and Belt with Gold Buckles Pattern""973PHD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Fob and 100 Dollar Bills Pattern" "973PWA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Ice Planet Pattern" "973P61.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Lion and Belt on Red/White Quarter Pattern" "973P4L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1010,20 +1062,19 @@
 "Green Dungaree Pattern" "973P1J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Green Futuron Pattern" "973P6I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Green Lantern Logo on White Background and Muscles Outline Pattern""973PC0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Green Necklace with Small Bells and Belt with Buckle Pattern""973P0D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Green Overall and Blue Checkered Shirt Pattern" "973P9V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Green Stripes and Leather Strap Pattern" "973P3T.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gryffindor Uniform Pattern" "973PH1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Halter Top with Green Apples and Lime Spots Pattern" "973P1X.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Halter Top, Dolphins, Swirls and Stars Pattern" "973P9Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hooded Sweatshirt/Blue Pocket/Drawstring Pattern" "973p7j.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hooded Sweatshirt Open with Drawstrings over Dark Red Top Pattern""973P9B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hoodie with Bright Green Drawstrings and Waist, Equalizer Bars Pattern""973PU4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
+"Hoodie with White Drawstrings, Silver Adjusters and Kangaroo Pockets Pattern""973PUF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hoodie with White Laces, Blue Scrollwork and Kangaroo Pocket Pattern""973P1V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hoodie with Zipper over Lime and Green Striped Shirt Pattern""973P99.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hogwarts Uniform Pattern" "973PH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Hooded Sweatshirt/Blue Pocket/Drawstring Pattern" "973p7j.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Horse Head Pattern" "973P2M.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hospital EMT Star of Life, Open Collar, Buttons and Pocket Pen Pattern""973P8N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "HP Harry Potter Uniform Gryffindor Stripe, Shield Pattern" "973PHA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1055,25 +1106,24 @@
 "Jacket, Orange Vest, Green Neck-chief Pattern" "973PB3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, Pink Shirt, Ring on Necklace Pattern" "973p7h.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, Pocket, Badge, Blue Tie Pattern" "973P7Q.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Jacket, Silver Zipper and Sand Blue Shirt Pattern" "973PHH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, Tie and Police Badge Yellow Star Pattern" "973p76.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, White Shirt and Dark Pink Tie Pattern" "973PD31.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, White Shirt, and Necklace Pattern" "973PA8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket, Zippered Pockets and Classic Space Logo Pattern" "973P6J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Jacket Hoodie over Light Blue Sweater Pattern" "973PU7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket Open over Red and Light Green Top with Necklace Pattern""973P1W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket and Medium Nougat Collar over Light Bluish Grey Shirt Pattern""973P9L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Jacket over Lt Blue Button Down Shirt Pattern" "973P7Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Jacket over Bright Light Blue Shirt, Gold Necklace with Heart and Belt Pattern""973PUE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Jacket over Light Blue Button Down Shirt Pattern" "973P7Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket over Medium Blue Skin and Light Blue Waist Pattern" "973PD1D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jacket over Shirt and Prison Stripes Pattern" "973p7t.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Jacket with Metallic Gold Trim and Red Sash Pattern" "973P3L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Jacket with Pockets over Dark Red V-Neck Sweater Pattern" "973P1Y.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Jacket with Striped Trim, Silver Buttons and Pockets over White Undershirt Pattern""973PUA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jail Stripes and '23768' Pattern" "973P7K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Jumping Dolphin in Blue Oval Pattern" "973P2I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jumpsuit, 'P.V.' ID Badge and 'PETER' with Ghostbusters Logo on Back Pattern""973PX4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Knit Sweater Pattern" "973P9C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Launch Command Logo and Equipment Pattern" "973p1q.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Leather Jacket Pattern" "973P28.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1085,6 +1135,7 @@
 "Light Blue Parabola Shaped Belly Pattern" "973PCFD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Light Grey Waist Pattern" "973PD1E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Lion Gold on Blue Shield Pattern" "973P4F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Lion Head Medallion and Fur Trim Pattern" "973PF4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Logo Vestas Dark Blue Letter V Pattern" "973P0C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Armour, Brown Belt & Gold Buckle Pattern" "973PM5.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Button Shirt with Braces Pattern" "973PM2.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1105,6 +1156,7 @@
 "MBA Level 1 Logo Pattern" "973PT0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "MBA Level 2 Logo Pattern" "973PT1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Medallion, Belt and Silver Buttons Pattern" "973p3d.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Medium Azure Vest, Orange Shirt and Lime Bow Pattern" "973PC4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Medium Blue Trim and Flowers Pattern" "973P96.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Metallic Silver Roman Segmented Body Armour Pattern" "973PC6A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Modern Firefighter Type 1 Pattern" "973p77.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1122,14 +1174,12 @@
 "Old Obi-Wan Pattern" "973PS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Open Jacket, Blue Top and Navel Pattern" "973PD1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Open Jacket over Striped Vest Pattern" "973P34.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Open Jacket with 4 Metallic Gold Buttons over White Shirt and Tie Pattern""973PU3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Open Suit Jacket with White Shirt, Dark Red Tie and Reddish Brown Belt Pattern""973P9I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Open Suit Revealing Superman Logo Pattern" "973PBK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Orange Dungarees, Sweater, Blue Pen in Pocket Pattern" "973P8M.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Orange Giraffe Spots on Front and Back Pattern" "973PDA4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Page Suit, Gold Buttons and Dark Green Trim Pattern" "973PUD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Palm Tree Pattern" "973P2H.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Palm Tree and Dolphin Pattern" "973P2J.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Palm Tree and Horse Pattern" "973P2K.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1138,11 +1188,9 @@
 "Pinstripe Vest, Red Tie and Pocket Watch Pattern" "973P9H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pinstriped Jacket and Gold Tie Pattern" "973P8L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pirate Captain Pattern" "973P36.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Pirate Captain and White Ascot Pattern" "973P3K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Pirate Green Vest, Shirt, and Belt Pattern" "973P3C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pirate Jacket, Torn White Shirt, Big Belt Buckle Pattern" "973P3P.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pirate Open Jacket over Brown Vest Pattern" "973P39.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pirate Purple Vest and Anchor Tattoo Pattern" "973P30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pirate Ragged Shirt and Dagger Pattern" "973P3A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1153,14 +1201,22 @@
 "Pirate Vest, Anchor Tattoo, Rope on Back Pattern" "973P3V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Pirate Vest with 3 Gold Buttons over Red and White Striped Shirt Pattern""973P3G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Plain Shirt with Pockets Pattern" "973P7G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Plate Mail and Chains Pattern" "973PF3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pockets, Bright Green Shirt and 8-Bit Alien Pattern" "973PXC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pockets, Radio, Badge and Belt Pattern" "973P0G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Police Female Shirt with Gold Badge, Pocket and Black Tie Pattern""973P7L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Police Jacket, Silver Badge, 4 Buttons and Belt Pattern" "973PCBF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Police Suit with Tie, Gold Star Badge and Light Blue Shirt Pattern""973PU8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Police Uniform Vintage with Gold Star Badge, Buttons, Buckle and Black Belt Pattern""973PU9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Polo Shirt, Name Badge and LEGO Logo on Back Pattern" "973P1L.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Polo Shirt with Pocket with Pen and LEGO Logo on Back Pattern""973P98.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Prisoner and '50380' Pattern" "973P7S.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Purple Greatcoat Pattern" "973phb.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Purple Greatcoat without Border Pattern" "973PHF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Racing Jacket and Two Stars Pattern" "973P1H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Racing Jacket and Two Stars Red Pattern" "973P1N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Rear Sticker White '1' on Transparent Background" "973D06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red Collar, Belt with Pouch, Metallic Gold Buckles, Laces and Dark Green Stitches Pattern""973PF5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Cross and Stethoscope Pattern" "973P25.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Cross Pattern" "973P24.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Dungaree Pattern" "973P1C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1180,16 +1236,15 @@
 "Red V-Neck and Buttons Pattern" "973P17.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Vest and Train Logo Pattern" "973P82.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red and Gray Shirt, Pot Belly, Jacket Pattern" "973PAF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Reddish Brown Apron with Cup and Name Tag Pattern" "973PUG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Reddish Brown and Dark Tan Tie and Lapels, Lavender Shirt Pattern""973PHE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red/Peach Quarters Shield Pattern" "973P4T.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red/White Waist, Zipper and White Star Pattern" "973pbl.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Rear Sticker White "1" on Transparent Background" "973D06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "RES-Q Orange Pockets and Logo Pattern" "973P8B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Riding Jacket Pattern" "973P12.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Riddler Black Question Mark on Chest and Lavender Belt Pattern""973PBN.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Robe with Black Gathers and White Neck Pattern" "973PD99.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Robot Pattern" "973P63.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Rock Raiders Jet Pattern" "973PAJ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Royal Knights Lion Head and Neck-Chain Pattern" "973P4E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1200,15 +1255,13 @@
 "Safari Shirt, Gun, Red Bandana and White Chest Pattern" "973PAX.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Safari Shirt, Gun, Red Bandana and Yellow Chest Pattern" "973PA3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Safari Shirt, Tan Bandana and Compass Pattern" "973PQ7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Safari Shirt with Red Scarf, Belt and Water Bottle Pattern""973PC27.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Safety Vest with Reflective Stripes over Shirt, Red Pen Pattern""973P8R.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Safety Vest with Reflective Stripes, Pocket and Train Logo Pattern""973P8O.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Safety Vest with Reflective Stripes, Reddish Brown Shirt and Belt with Pouches and Pliers Pattern""973P9O.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Samurai Dragon Robe Pattern" "973PN0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Samurai Robe, Sash and Dagger Pattern" "973PN1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Scale Armour, Crown on Buckle and Chest Strap Pattern" "973PF1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Scale Mail and Red Diamond Amulet Pattern" "973P4C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Scarlet Spider Pattern" "973PBS.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Security Guard Pattern" "973PB4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1218,6 +1271,7 @@
 "Shirt with 3 Flowers over Yellow and Silver Stripe Pattern""973P8Y.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Shirt with Black Belly Bump and Collar Outline Pattern" "973PD11.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Shirt with Cargo Logo Pattern" "973P2N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shirt with Dark Turquoise and Dark Pink Vertical Stripes Pattern""973PUB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Shirt with Red Collar and Spaceship Orbiting Classic Space Helmet Pattern""973P97.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Shirt, Badge, Blue Tie, 'POLICE' Back Pattern" "973P7M.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Shirt, Pink/Salmon Tie and ID Badge" "973P87.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1228,15 +1282,13 @@
 "Six Button Suit, Red Tie, and Airplane Pattern" "973P8U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Six Button Suit and Airplane Pattern" "973p04.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Six Button Suit and Anchor Pattern" "973p05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Skull Badge, Chains, Armour and Belt Pattern" "973PF0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Skull and DkPink Roses Pattern" "973PC00.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skull and Red Roses Pattern" "973PC44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Slingshot on Back Pattern" "973PD12.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Slytherin Uniform Pattern" "973PH2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Soccer Shirt '10' and 'ZIDANE' Pattern" "973PG0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Soccer Shirt with Octan Logo and Blue Stripes Pattern" "973PC4B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Soccer Team Goalkeeper and White '1' Pattern" "973PG1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Soccer Team Red/Blue Stripes and Red # 2 Pattern" "973PG2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Soccer Team Red/Blue Stripes and Red # 3 Pattern" "973PG3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1270,17 +1322,17 @@
 "Strapless Suntop Pattern" "973P2C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Striped Shirt and Silver Buttons Pattern" "973P3F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Studded Armour Pattern" "973P45.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Studded Leather Tunic and Belt Pattern" "973P4I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Studios Director Pattern" "973PD0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Submarine and Gauges Pattern" "973P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Suit Jacket, Lapels, Red Lining and White Shirt with Collar Pattern""973PXA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Suit Jacket, Pink Shirt and Magenta Scarf Pattern" "973P9W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Suit and Tie Pattern" "973P18.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Suit and Red Tie with Train Logo Pattern" "973P83.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Suit with Pocket, Red Tie, Train Pattern" "973P8H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Superman Logo and Dark Blue Muscles Pattern" "973pb9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Suspenders and Red Bowtie Pattern" "973PA1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Armor Clone Trooper Pattern (Clone Wars)" "973PSU.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Belt Pockets and Necklace Blissl Flute Pattern" "973PRG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Black Vest and White Shirt Pattern" "973PS5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Blast Armour (Green Plates) Grey Pattern" "973PSB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1296,23 +1348,23 @@
 "SW Darth Vader Death Star Pattern" "973PSZ.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Grey Shirt, Belt with Red Buckle Pattern" "973PR7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Gungan Dark Gray/Dark Tan Shirts Pattern" "973PR6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "SW Gungan Gold Trim Pattern" "973PSL.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "SW Hoth Trooper Pattern" "973PSH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Imperial Grand Moff Pattern" "973PR9.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Imperial Officer Pattern" "973PSQ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Imperial Shuttle Pilot Pattern" "973PSN.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Imperial Trooper Armor Pattern" "973PSI.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Jawa Pattern" "973PSS.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Jawa with Dark Brown Pouches and Black and Tan Straps" "973PRI.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Jedi Robes and Sash Pattern" "973PS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Kylo Ren with Jacket with Silver Checkered Lines and Belt Pattern""973PRL.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Layered Shirt, Brown Belt Pattern" "973PR3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Layered Shirt, Brown Belt, Braid Pattern" "973PR4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Layered Shirt, Waist Sash Pattern" "973PS8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Leia Hoth Jacket Pattern" "973PRD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Loose Dress Light Bluish Grey Folds Pattern" "973PSY.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Loose Dress Light Grey Folds Pattern" "973PRY.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Loose Shirt, Black Belt and Silver Buckle Pattern" "973PSO.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Moisture Farmer Pattern" "973PSV.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Nute Gunray Pattern" "973PRH.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Pocket-Vest and Techno-Buckle Pattern" "973PSC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1326,35 +1378,35 @@
 "SW Shadow Trooper Pattern" "973PRK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Scout Trooper Pattern" "973PSE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Scout Trooper Bluish Grey Pattern" "973PRE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"SW Shirt Open Collar No Vest Pattern" "973PS4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Shirt with Open Collar No Vest Pattern" "973PS4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Shirt with Open Collar and Light Bluish Grey Wrinkles Pattern""973PRN.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Stormtrooper Pattern" "973PSK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Tank Top Pattern" "973PRF.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "SW TIE Fighter Pilot Pattern" "973PSP.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "SW Tunic and Belt Pattern" "973PSF.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Vest, White Shirt and Light Nougat Neck Pattern" "973PR5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Wrap-Around Tunic Pattern" "973PS3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"SW Wrap-Around Tunic and Utility Belt with Pouch Pattern" "973PRM.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sweater V-Neck over Light Blue Shirt Pattern" "973P94.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sweater with Dark Azure Shirt with Collar and Orange Ascot Tie Pattern""973PX3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sweater, Bow and Heart Shaped Necklace Pattern" "973P9U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"T-Shaped Green Neck Pattern" "973PX7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"T-Shaped Light Nougat Neck Pattern" "973PX6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tan Chest and Black and White Tail to the Left Pattern" "973PDB7.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tan Chest and Black and White Tail to the Right Pattern" "973PDB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tank Top, Braces and Yellow Skin Pattern" "973PQ4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tank Top, Stains, Wrench, and Tattoo Pattern" "973PAB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tank Top and 2 Dark Red Dots Pattern" "973PXD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Telephone Pattern" "973P8F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Three White and Silver Squares Pattern" "973P8X.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Town Vest with Pockets and Striped Tie Pattern" "973P8J.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Train Jacket and Red Neckerchief Pattern and Bold Train Logo""973P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Train Logo and Red Diagonal Stripes Pattern" "973P19.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tri-Coloured Shield and Gold Trim Pattern" "973p4s.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tri-Coloured Shield Large Pattern" "973P4R.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "TV Logo Pattern Large Pattern" "973p1m.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "TV Logo Pattern Small Pattern" "973P1K.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Two Pocket Shirt with Red Bandana and Light Nougat Neckline Pattern""973PU2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "T-Shirt, Blue Dungarees and Tools Pattern" "973P8Z.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "T-Shirt with 4 White Horizontal Stripes Front and Back with Cat Pattern""973P9N.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "UFO Alien Orange and Silver Pattern" "973P54.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1371,6 +1423,7 @@
 "Vertical Striped Blue/Red Pattern" "973P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vertical Striped Red/Blue Pattern" "973P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vest with Patch Pockets Pattern" "973P73.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Vest with White Shirt and Blue Striped Tie and Buttons Pattern""973PUC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vest, Patch Pockets and Police Badge Yellow Star Pattern" "973P74.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vest, Slingshot in Belt Pattern" "973PAD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Voldemort Robe Pattern" "973PH3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1381,17 +1434,22 @@
 "White/Blue Triangles, Red/White Amulet Pattern" "973PWB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White/Red Armour and White Belt" "973PWF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White/Yellow/Orange Racesuit Pattern" "973P95.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Belt with Light Bluish Grey Triangle Buckle Pattern" "973PXF.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Braces and Cartridge Belt Pattern" "973PW6.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Buttons and Police Badge Plain Sticker" "973D03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Diagonal Zip and Pocket Pattern" "973p0a.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Envelope and Zipper Pattern" "973P7X.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Fear Lantern Logo and Muscles Outline Pattern" "973PBZ.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Jesters Collar, Belt and Lion Head on Buckle Pattern""973P4P.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Jester Collar, Female Outline and Black Quarters Pattern""973PC3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Orca Belly Pattern" "973PD6E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Rope and Patched Collar Pattern" "973pdg.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0 
 "White Scarf and Brown Belt Pattern" "973PAY.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Shirt and Jacket Pattern" "973P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"White Shirt w. Dark Blue Tie, Gold Airline Pin, Belt a. ID Badge Pattern""973P8W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Shirt with Dark Blue Tie, Gold Airline Pin, Belt a. ID Badge Pattern""973P8W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Shirt, Black Tie and Ticket Machine Pattern" "973PHI.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Shirt, Red Collar, Black Zip, Badge and Coast Guard (1996) Logo Pattern""973P0H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Shirt, Red Tie, Black Suit Outline and Three Blue Buttons and Coast Guard (1996) Logo Pattern""973P0I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Suit, Brown Vest and Tie Pattern" "973PA4.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Tiger Pattern" "973PBR.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Vertical Stripes and Red Bow Tie Pattern" "973P7I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1402,8 +1460,11 @@
 "Yellow Futuron Pattern" "973P6E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Yellow Neck and Patch Pockets Pattern" "973P9X.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Zipper and Police Badge Plain Pattern" "973P1G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Zipper Jacket, White Shirt, Name Tag and Radio in Pocket Pattern""973PU5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Zipper Jacket and 3 Pockets Pattern" "973P1U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Zipper Jacket and Police Logo Pattern" "973P75.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Zippers, Badge with Minifig Head, Radio and Belt Pattern" "973P0F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "--------------------Non-standard torsi------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Baby Body" "25126.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Baby Body with Yellow Hands Pattern" "25126P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1420,6 +1481,9 @@
 "Mechanical Torso with Tan Three Dot Insignia Pattern" "30375PS6.DAT" 0 1 0 0 0 1 0 0 0 1 0 40 0
 "Mechanical Torso with Yellow Dot Insignia Pattern" "30375PS5.DAT" 0 1 0 0 0 1 0 0 0 1 0 40 0
 "Mechanical Torso with 4 Side Attachment Cylinders" "54275.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 0
+"Mechanical Torso Cyborg" "87566.DAT" 0 1 0 0 0 1 0 0 0 1 0 40 0
+"Mechanical Torso Cyborg with Tan Pattern" "87566P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 40 0
+"Mechanical Torso Cyborg with White Pattern" "87566P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 40 0
 "Short with Ridged Extended Back with Orange Collar and Black Tie Pattern""98127PD7F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Short with Ridged Extended Front" "98127.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skeleton Torso" "6260.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1431,13 +1495,14 @@
 
 [BODY2]
 "Plain" "3815B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Belt and Copper Buckle Pattern" "3815BPX2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Black Belt and Metallic Silver Buckle Pattern" "3815BPX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Belt with Silver Belt Buckle Pattern" "3815BP8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Blue Wizard Buckle Pattern" "3815BP40.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Clockwork Robot Pattern" "3815BPC67.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Coattails and Dark Tan Vest Tails Pattern" "3815BPH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Bluish Grey Belt with Silver Buckle and Rivets Pattern" "3815BPAW.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Bluish Grey Robe Lines Pattern" "3815BPB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Orange Belt and Metallic Gold Buckle with Cow Skull Pattern""3815BPK1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Belt and DarkBlue Loincloth Pattern" "3815BPQ0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Belt and Orange Cable Pattern" "3815BP6U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1451,37 +1516,70 @@
 "Laboratory Smock Pattern" "3815BPDE.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Leather Belt and Red Diamonds Pattern" "3815BP4F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Coat, Shirttails and Belt Pattern" "3815BPM2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"LOTR Dark Red Belt and Scale Armour Pattern" "3815PM1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"LOTR Dark Red Belt and Scale Armour Pattern" "3815BPM1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Leather Armour Pattern" "3815BPM0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Medium Azure and Magenta Stripes Pattern" "3815BPU1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Purple Greatcoat with Dark Grey Border Pattern" "3815BPHB.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red/White Triangles Pattern" "3815BPW1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red Coattails Pattern" "3815BPX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Roman Tunic and Belt Pattern" "3815BPC6A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Tied Sash Pattern" "3815BPC1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot Pattern" "3815BP63.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Scale Mail Pattern" "3815BP41.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shirttails Pattern" "3815BP42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Silver Belt Pattern" "3815BP6W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Silver Belt and Salmon Cable Pattern" "3815BP6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Studded Belt Pattern" "3815BPC44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Gunbelt Pattern" "3815BPS5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"SW Kylo Ren Silver Checkered Lines Pattern" "3815BPS1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "SW Stormtrooper Pattern" "3815BPSK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"SW White Robe Pattern" "3815BPS2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "War Machine Armoured Suit Pattern" "3815BPBD.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Wetsuit, Coral and Dark Azure Trim Pattern" "3815BPCKC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Apron Pattern" "3815BP89.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White and Gold Markings Pattern" "3815BP6G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "--------------------Non-standard hips-------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Hole" "41879B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short without Hole" "41879A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Black Open Toe Shoes Pattern" "41879AP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Dark Blue Shoes Pattern" "41879AP02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Legs Short with Dark Blue Toes Pattern" "41879AP04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Horizontal Stripe" "16709.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Light Nougat Feet Pattern" "41879BP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Magenta Open Toe Shoes Pattern" "41879BP02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Legs Short with Orange Toes Pattern" "41879BP03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Legs Short with Stripe, Slingshot on Back Pattern" "16709P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short with Yellow Horizontal Stripe Pattern" "16709P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Hips and Legs Short w. Stripe, Slingshot on Back Pattern" "16709P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Legs Short with Yellow Legs and White Open Toe Shoes Pattern""16709P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Skirt" "36036.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Skirt with Black Folds Pattern" "36036PH1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips and Skirt with White Robe with Reddish Brown and Dark Tan Hem Pattern""36036PH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips with Tentacles" "87749.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Genie" "98376.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Genie with Red Belt Pattern" "98376P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost" "19859.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Black Pattern" "19859P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Bright Light Orange Pattern" "19859P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Dark Blue Pattern" "19859P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Dark Bluish Grey Pattern" "19859P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Dark Green Pattern" "19859P0B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Lavender Pattern" "19859P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Medium Lilac Pattern" "19859P0A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Orange Pattern" "19859P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Red Pattern" "19859P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Sand Green Pattern" "19859P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Ghost with Yellow Pattern" "19859P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hips Mermaid Tail Standing" "51345.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Legs Old" "15.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Martian Legs" "30530.DAT" 0 1 0 0 0 1 0 0 0 1 0 48 0
 "Mechanical Legs" "30376.DAT" 0 1 0 0 0 1 0 0 0 1 0 46 0
-"Skirt" "36036.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Slope Brick 65 2x2x2" "3678a.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Slope Brick 65 2x2x2 with DkGn Dress Pattern" "3678bp4x.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Slope Brick 65 2x2x2 with Queen's Dress Pattern" "3678ap4h.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
@@ -1491,11 +1589,13 @@
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
-
 [BODY3]
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour SW Clone Trooper Tasset" "61190c.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Costume Flowerpot" "35709.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
+"Skirt Straight Curved 0.55 Length" "65753.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
+"Skirt Wavy" "24782.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Skirt 0.7L with 11 Diamond Points" "16820C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skirt 1.1L with Straight Bottom" "600880C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skirt 1.1L w. Straight Bottom w. Dark Green Apron Pattern" "600880P01C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1503,6 +1603,8 @@
 "Skirt 1.4L w. Straight Bottom w. White Apron Pattern" "U9209P01C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skirt 1.5L Fringed" "14295C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Skirt 1.5L Fringed with Stepped Edge" "18200C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tail Duck" "24779.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tail Duck with Blue Hip Pattern" "24779PK0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Utility Belt" "27145.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
@@ -1510,15 +1612,17 @@
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Airtanks" "3838.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
-
-; Update 2020-03
 "Armour Breastplate with Shoulder Pads Large, Pentagonal Cut-out and 4 Studs on Back""22402.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Armour Plate" "2587.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour Plate with LOTR King Theoden Pattern" "2587PM0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour Samurai" "30174.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour Shoulder" "30121.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour Shoulder Pads with 1 Stud on Front, 2 Studs on Back" "11097.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Armour Shoulder Pads with 4 Spikes" "15490.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"Armour Shoulder Pads with 6 Spikes" "12618.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "Armour Shoulder Pads with Neck Protection, 1 Stud on Front, 2 Studs on Back""15086.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour Shoulder Pads with Ridges" "11438.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Armour SW Clone Trooper Pauldron" "61190b.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1529,7 +1633,13 @@
 "Backpack Skydiver" "12897.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Backpack with Horizontal Pin Holes" "15406.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Backpack with Sleeping Bag" "30323.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Backpack with Three Pouches and Bedroll" "26073.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Backpack with Three Pouches and Blue Bedroll Pattern" "26073P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Backpack with Three Pouches and Dark Green Bedroll Pattern""26073P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Backpack with Three Pouches and Lime Bedroll Pattern" "26073P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Backpack with Three Pouches and Red Bedroll Pattern" "26073P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bandana" "30133.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Bandana Ninja" "15619.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bat Wing" "98722.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Beard Long Forked" "60750.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Beard Long with Five Braids" "60749.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1540,35 +1650,31 @@
 "Bracket 1 x 1 - 1 x 1 Thick with Stud Hole" "28974.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bracket 1 x 1 - 1 x 2" "18986.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Breastplate with Fins and Embossed Atlantis Triangle" "89917.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
+; Update 2023-01
+"Body Armour Vest" "15423.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "Cape" "4524.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Cape Cloth (Formed)" "50231C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth Floating (Formed)" "50231C02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Cape Cloth High Rounded Collar (Formed)" "20551C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth High Rounded Collar with Black Outside Pattern (Formed)""20551P01C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Cape Cloth Scalloped 5 Points (Formed)" "56630C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth Short (Formed)" "99464C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth Tattered and Pixelated (Formed)" "U9490C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth with Holes and Tattered Edges (Formed)" "86038C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth with Inside Dark Red Pattern (Formed)" "50231P01C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cape Cloth with Pointed Ends and Collar (Formed)" "42450C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Collar Fur" "26066.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Collar SW Darth Vader Helmet Bottom" "19917.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Container D-Basket" "4523.DAT" 0 1 0 0 0 1 0 0 0 1 0 1 0
 "Eagle Wing" "93250.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Eagle Wing with Tan Feathers and Red/Gold Pattern" "93250PQ0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Epaulette" "2526.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Face Scarf with Notch in Back" "24504.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hair Beard" "6132.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Hood Folded Down" "15428.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hood Folded Down with Purple Inside Pattern" "15428P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Jet Pack with 2 Octagonal Nozzles" "6023.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Jet-Pack with Stud On Front" "4736.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Lifevest" "2610.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1582,10 +1688,7 @@
 "Sword Scabbard (on right shoulder)" "95348.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Scabbard (on left shoulder)" "95348.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Vest" "3840.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Vest with 3 Yellow/Black Chevrons Upwards Pattern" "3840P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Vest with Crown on Dark Pink Sticker" "3840D01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vest with Crown on Violet Sticker" "3840D05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Vest with Green Chevrons on Yellow Sticker" "3840D03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1596,73 +1699,79 @@
 "Vest with Yellow Trefoils on DkBlue Sticker" "3840D08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
-
 [LARM]
 "Right" "3818.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm Curved with Hand" "U9332.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Arm with Black Lower Arm Pattern" "16000P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Arm with Elbow Pad and Ghostbusters Logo Pattern" "3818PX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Arm with Medium Azure and Magenta Stripes Pattern" "3818PDA2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Medium Blue Lower Arm Pattern" "16000P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Arm with Medium Nougat Lower Arm Pattern" "16000P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Light Nougat Lower Arm Pattern" "16000P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Yellow Lower Arm Pattern" "16000P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 "--------------------Non-standard arms------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Arm Bat Wing" "10303.DAT" 0 1 0 0 0 0 -1 0 1 0 0 0 0
 "Arm Robot with Hollow Stud" "62691.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm Robotic with Blaster Socket" "34335.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm SW Super Battle Droid" "41890.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
+"Arm SW Super Battle Droid with Blaster" "64796.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Clip and Rod Hole with Thin Forearm" "53989.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
 "Bionicle Arm Barraki" "57588.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bird Wing" "11263.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Flipper" "24074.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Mechanical Arm with Clips Parallel" "30377.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees" "87568.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with Tan Pattern on Left Side""87568P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with Tan Pattern on Right Side""87568P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with White Pattern on Left Side""87568P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with White Pattern on Right Side""87568P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm Bent with Reinforced Elbow with Clips at 90 degrees""15341.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm Straight with Clips at 90 degrees" "59230.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm with Clip and Rod Hole" "76116.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
+"Mechanical Arm with Clip and Rod Hole with Thick Forearm" "98313.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
 "Skeleton Arm" "6265.DAT" 0 1 0 0 0 1 0 0 0 1 -6 0 0.5
 "Wiry Bent with Clip" "10058.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
-
 [RARM]
 "Left" "3819.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm Curved with Hand" "U9332.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Black Lower Arm Pattern" "16001P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Arm with Elbow Pad and Pocket Pattern" "3819PX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Medium Blue Lower Arm Pattern" "16001P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Arm with Medium Nougat Lower Arm Pattern" "16001P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Light Nougat Lower Arm Pattern" "16001P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Yellow Lower Arm Pattern" "16001P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 "--------------------Non-standard arms------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Arm Bat Wing" "10303.DAT" 0 -1 0 0 0 0 -1 0 -1 0 0 0 0
 "Arm Robot with Hollow Stud" "62691.DAT" 0 -1 0 0 0 -1 0 0 0 1 0 0 0
 "Arm SW Super Battle Droid" "41890.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
-
+"Arm SW Super Battle Droid with Blaster" "64796.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Arm with Clip and Rod Hole with Thin Forearm" "53989.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
 "Bionicle Arm Barraki" "57588.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bird Wing" "11263.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Flipper" "24074.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm with Clips Parallel" "30377.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees" "87568.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with Tan Pattern on Left Side""87568P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with Tan Pattern on Right Side""87568P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with White Pattern on Left Side""87568P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Mechanical Arm Bent with Clips at 90 Degrees with White Pattern on Right Side""87568P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm Bent with Reinforced Elbow with Clips at 90 degrees""15341.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm Straight with Clips at 90 degrees" "59230.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Arm with Clip and Rod Hole" "76116.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
+"Mechanical Arm with Clip and Rod Hole with Thick Forearm" "98313.DAT" 0 0 0 1 0 1 0 -1 0 0 0 0 0
 "Skeleton Arm" "6265.DAT" 0 1 0 0 0 1 0 0 0 1 6 0 0.5
 "Wiry Bent with Clip" "10058.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
-
 [LHAND]
 "Hand" "3820.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hand Harpoon" "65611.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hand Hook" "2531.DAT" 0 1 0 0 0 1 0 0 0 1 0 0.4 0
 "Baseball Glove" "13543.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Boxing Glove" "95321.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1674,6 +1783,7 @@
 
 [RHAND]
 "Hand" "3820.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Hand Harpoon" "65611.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hand Hook" "2531.DAT" 0 -1 0 0 0 1 0 0 0 1 0 0.4 0
 "Baseball Glove" "13543.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Boxing Glove" "95320.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -1682,32 +1792,26 @@
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
 
-
 [LHANDA]
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Acoustic Guitar" "25975.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Acoustic Guitar with Black Fingerboard and Neck and Metallic Silver Strings Pattern""25975P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Acoustic Guitar with Black Tuning Pegs and Metallic Silver Strings Pattern""25975P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Animal Duckling" "49661.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Duckling with Black Eyes and White Pupil with Orange Beak Pattern""49661P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Duckling with Black Eyes and White Pupil with Red Beak Pattern""49661P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Animal Clam Closed" "30218-F1.DAT" 0 0 1 0 0 0 1 1 0 0 12 -2 -29
 "Animal Lobster" "27152.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Lobster with Eyes Pattern" "27152P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Snake" "30115.dat" 0 0.469472 0 -0.882948 0.882948 0 0.469472 0 -1 0 0 -4 -4
 "Animal Starfish" "33122.dat" 0 -1 0 0 0 0 1 0 1 0 0 -26 -6
+"Arm Bandage Wrapped" "30924.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Axe" "95330.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe Blocky" "18788.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Axe Head Faceted with Bar 0.5L" "22407.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Axe with Pick End and Long Handle" "39802.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe with Pick End and Long Handle with Red Head Pattern" "39802P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Axe with Red Head and Silver Blade Pattern" "95330P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe with Twin-Blade" "95052.DAT" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Battleaxe" "3848.dat" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
@@ -1715,6 +1819,7 @@
 "Bar 0.5L with Curved Blade 2L" "87747.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Bar 0.5L with Faceted Spike 1L" "88695.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Bar 0.8L with Tip Bat Emblem" "37720D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Bar 1 L with Three Prongs" "68211.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Bar 1.5L with Clip without Hole in Shaft" "48729a.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Bar 1.5L with Clip with Truncated Sides and Hole in Shaft" "48729B.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Bar 2L with Ball Joint-8" "22484.DAT" 0 0 -1 0 0 0 1 -1 0 0 0 -10 0
@@ -1740,10 +1845,13 @@
 "Bone 2L" "93160.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bone 5L" "92691.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Boombox 1 x 3 x 1" "93221.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
-
-; Update 2020-03
+"Boombox 1 x 3 x 1 with Black Rimmed Speakers, Cassette Player and Switches Pattern""93221P03.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Magenta Rimmed Speakers, Cassette Player, Switches and Lime Decoration Pattern""93221P05.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers and Digital Music Player Pattern""93221P04.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers, Cassette Player and Buttons Pattern""93221P01.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers, Rotary Knobs and Sound Wave Display Pattern""93221P06.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Silver Rimmed Speakers, Cassette Player and Buttons Pattern""93221P02.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 -6
 "Boomerang" "25892.DAT" 0 0 -1 0 0.5 0 0.866025 -0.866025 0 0.5 4 -20 -4
-
 "Bottle Cylindrical" "95228.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Bottle Cylindrical with Bottle Ship Pattern" "95228p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Bow with Arrow" "4499.dat" 0 0 0 -1 0 1 0 1 0 0 0 1 0
@@ -1775,29 +1883,41 @@
 "Comb" "30112b.dat" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Compass" "74948.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Compass with Fleur de Lis Pattern" "74948P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Compass with White and Yellow Pattern" "74948P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Computer Laptop (Closed)" "62698-F3.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -2 0
 "Conical Flask" "u9180.dat" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Conical Flask TransClear with Coloured Base" "u9180c01.dat" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Crossbow" "2570.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
-
-; Update 2020-03
+"Crown with 5 Points" "39262.DAT" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Crutch" "24077.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 0 -66
-
 "Cup" "3899.dat" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'C:\' Pattern" "3899P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'I Heart SOUTH PAWS' Pattern" "3899P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'Shhh!' Pattern" "3899P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black Outlined Marshmallow Face and Yellow and Orange Flames Pattern""3899P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Medium Lilac and Medium Lavender 'I Heart HLC' Pattern""3899P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Reddish Brown 'TVA' Logo on Metallic Gold Rectangle Pattern""3899P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with White 'DUNK ME!' Pattern" "3899P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with White Octan Logo Pattern" "3899P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup Stein with Handle" "68495.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
+"Cup Stein with Handle and Trans Bright Green Drink Pattern""68495P02.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
+"Cup Stein with Handle and Trans-Orange Drink Pattern" "68495P01.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
 "Cup Takeaway" "15496.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cup with Bar Handle" "38014.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 -16
 "Dagger" "88288.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dagger with Pearl Light Gray Blade" "88288P01.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dinner Plate" "6256.dat" 0 0.0954045 -0.866025 -0.490814 0.981627 0 0.190809 -0.165245 -0.5 0.850114 7 -5 -26
-
-; Update 2020-03
+"Dinner Plate with Four Black Outlined Orange Bones Pattern""6256P01.DAT" 0 0.0954045 -0.866025 -0.490814 0.981627 0 0.190809 -0.165245 -0.5 0.850114 7 -5 -26
+"Dinner Plate with Green and Lime Lettuce Leaf and Yellow Splotches Pattern""6256P02.DAT" 0 0.0954045 -0.866025 -0.490814 0.981627 0 0.190809 -0.165245 -0.5 0.850114 7 -5 -26
+"Dinner Plate with Metallic Light Blue Swirl Pattern" "6256PH1.DAT" 0 0.0954045 -0.866025 -0.490814 0.981627 0 0.190809 -0.165245 -0.5 0.850114 7 -5 -26
 "Drone Body with 4 Arms" "66967.DAT" 0 1 0 0 0 1 0 0 0 1 0 -9 0
-
 "Dynamite Sticks Bundle" "64728.dat" 0 0.5 0 0.866025 0 1 0 -0.866025 0 0.5 0 -28 -9
 "Electric Guitar Classic" "11640.DAT" 0 0 0 1 0 1 0 -1 0 0 0 40 0
-"Electric Guitar" "93564.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
-"Electric Guitar, Silver Strings, White Body" "93564P01.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
-"Electric Guitar, Black Strings, DkPink Lightning" "93564P02.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
+"Electric Guitar Classic with Magenta, Bright Pink and Metallic Silver Stars Pattern""11640P01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 40 0
+"Electric Guitar V Shape" "93564.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
+"Electric Guitar V Shape, Silver Strings, White Body" "93564P01.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
+"Electric Guitar V Shape, Black Strings, DkPink Lightning" "93564P02.dat" 0 0 0 1 0 1 0 -1 0 0 0 4 0
+"Feeding Bottle" "6206.DAT" 0 1 0 0 0 1 0 0 0 1 0 20 -20
 "Figure Club" "60659.dat" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Figure Flask with Handle" "4429.DAT" 0 1 0 0 0 0.965926 -0.258819 0 0.258819 0.965926 0 -20 -30
 "Food Apple" "33051.dat" 0 0.857167 0.515038 0 -0.515038 0.857167 0 0 0 1 14 33 0
@@ -1833,13 +1953,21 @@
 "Friends Access. Frying Pan" "97790.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -56 -12
 "Friends Access. Hair Brush with Heart on Reverse" "96480.DAT" 0 0 0 -1 0 1 0 1 0 0 0 9 0
 "Friends Access. Hair Dryer" "96484.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
+"Friends Access. Hand Mirror with Heart on Reverse" "96488.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 9 0
 "Friends Access. Hand-held Food Mixer" "97793.DAT" 0 1 0 0 0 0 1 0 -1 0 0 -3 0
 "Friends Access. Key Ornamented with Stud" "19118.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1.5 0
-"Friends Access. Lipstick with Light Bluish Grey Handle" "93094a.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
-"Friends Access. Lipstick with White Handle" "25866C02.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
-"Friends Access. Hand Mirror with Heart on Reverse" "96488.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 9 0
+
+; Update 2023-01
+"Friends Access. Lipstick Dual Mould with Black Handle Pattern""25866P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Friends Access. Lipstick Dual Mould with Light Bluish Grey Handle Pattern""25866P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Friends Access. Lipstick Dual Mould with White Handle Pattern""25866P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+
+"Friends Access. Lipstick (Complete)" "93094a.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Friends Access. Medical Feeding Bottle" "98393F.DAT" 0 0 0 1 0 1 0 -1 0 0 0 13 -4
+"Friends Access. Medical Pen" "98393J.DAT" 0 1 0 0 0 1 0 0 0 1 0 9 0
 "Friends Access. Mixing Bowl" "97791.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
-"Friends Access. School Bag" "11245.DAT" 0 0 0 -1 1 0 0 0 -1 0 4.6 -1.6 -38
+"Friends Access. School Bag" "11245.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 0 -38
+"Friends Access. School Bag with Medium Blue Buckle and Star Pattern""11245P01.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 0 -38
 "Friends Access. Spatula with 3 Holes" "97787.DAT" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Frypan" "4528.dat" 0 0 1 0 0 0 1 1 0 0 -4 -24 0
 "Goblet" "2343.dat" 0 1 0 0 0 1 0 0 0 1 0 -26 0
@@ -1848,10 +1976,7 @@
 "Gun Flintlock Pistol" "2562.dat" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Gun Laser Kryptonian" "13952.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Gun Laser Pistol with Trapezoidal Heat Diffusers" "87993.dat" 0 1 0 0 0 1 0 0 0 1 0 -4 0
-
-; Update 2020-03
 "Gun Laser Pistol with Rounded Heat Diffusers" "13608.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Gun Long Blaster" "57899.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Gun Musket" "2561.dat" 0 0 0.707 0.707 0 0.707 -0.707 -1 0 0 -25.1 -33.7 0
 "Gun Pistol Two Barrel" "95199.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
@@ -1860,10 +1985,7 @@
 "Gun Semiautomatic Pistol" "55707a.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Gun Shooting Blaster with Dark Bluish Grey Trigger" "15391c01.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 0
 "Gun Shooting Blaster with Trigger and TrOrange Projectile" "15391C02.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 0
-
-; Update 2020-03
 "Gun Short Blaster" "62885.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Gun Small Blaster with Telescopic Sight" "92738.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gun SW Short Blaster" "58247.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
 "Gun SW Small Blaster DC-17" "61190a.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
@@ -1877,6 +1999,7 @@
 "Harpoon" "57467.dat" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Harpoon with Smooth Bar" "18041.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Hockey Stick with 1.1 L Bar" "93559.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 0
+"Hockey Stick with 3.6 L Bar" "64000.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 0
 "Hose Nozzle with Side String Hole" "58367.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Hose Nozzle with Side String Hole Simplified" "60849.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Ice Axe" "30193.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
@@ -1891,12 +2014,17 @@
 "Life Ring" "30340.dat" 0 0 1 0 0 0 1 1 0 0 -4 16 -21
 "Lifeguard Float" "90395.DAT" 0 0.34202 0.939693 0 0 0 -1 -0.939693 0.34202 0 3 20 -9.2
 "Lightning" "59233.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Medium Lilac Pattern" "59233P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Trans Bright Green Pattern" "59233P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Trans Purple Pattern" "59233P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Lightsaber Chrome Silver - 1 Side On" "577Bc01.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Chrome Silver - 2 Sides On" "577Bc02.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Hilt Short Curved" "61199.DAT" 0 1 0 0 0 1 0 0 0 1 0 -13.6 0
+"Lightsaber Hilt Short Curved Light Bluish Grey - 1 Side On""61199C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -13.6 0
 "Lightsabre Hilt with Bend" "42114.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
 "Lightsaber Hilt with Bottom Ring" "577B.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Hilt with Round Guard" "18673.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -16 0
+"Lightsaber Hilt with Steep Sloping Fingers" "23306.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Metallic Dark Grey - 1 Side On Blade with Cross Bar""577BC03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber with Bend Chrome Silver - 1 Side On" "42114C01.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
 "Lightsaber with Bend Chrome Silver - 2 Sides On" "42114C02.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
@@ -1912,7 +2040,11 @@
 "Megaphone" "39144.DAT" 0 1 0 0 0 1 0 0 0 1 0 -16 0
 "Metal Detector" "4479A.DAT" 0 0 0 -1 0 1 0 1 0 0 0 -24 0
 "Microphone" "90370.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
-"Microphone with Metallic Silver Top" "90370p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Black Top Half Sphere Pattern" "90370P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Gold Top Half Sphere Pattern" "90370P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Gold Top Pattern" "90370P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Silver Top Half Sphere Pattern" "90370P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Silver Top Pattern" "90370p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Mug" "33054.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 -20
 "Oil Lamp" "98383.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 -20
 "Pharaoh's Staff with Forked End" "93252.dat" 0 1 0 0 0 1 0 0 0 1 0 -42 0
@@ -1964,10 +2096,7 @@
 "Shield Octagonal without Stud" "61856.dat" 0 0 0 1 -1 0 0 0 -1 0 0 -2 0
 "Shield Octagonal with Troll Skull on Dark Red Pattern" "61856P40.dat" 0 0 0 1 -1 0 0 0 -1 0 0 -2 0
 "Shield Oval" "92747.dat" 0 0 0 1 -1 0 0 0 -1 0 -4 -1 0
-
-; Update 2020-03
 "Shield Oval with Large White Circle, Dark Purple Characters and Lines Pattern""92747P06.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 -1 0
-
 "Shield Oval with Lime and White Circles, Dark Purple Arrows and Lines Pattern""92747P02.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 -1 0
 "Shield Oval with Small Lime and Large White Circles, Dark Purple Chain and Lines Pattern""92747P04.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 -1 0
 "Shield Oval with White, Lime and Medium Azure Circles, Dark Purple Lines Pattern""92747P03.DAT" 0 0 0 1 -1 0 0 0 -1 0 -4 -1 0
@@ -2020,10 +2149,7 @@
 "Shield Triangular with Crown on Dark/Med Blue Quarters" "3846P4J.dat" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
 "Shield Triangular with Crown on Dark-Pink Sticker" "3846d01.dat" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
 "Shield Triangular with Crown on Violet Sticker" "3846d05.dat" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
-
-; Update 2020-03
 "Shield Triangular with Dark Pink Jewel and Gold Border Sticker""3846D0A.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
-
 "Shield Triangular with Dragon on Medium Nougat/Tan Pattern" "3846P4K.dat" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
 "Shield Triangular with Forestman Pattern" "3846p48.dat" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
 "Shield Triangular with Goblin King Eye Pattern" "3846PM0.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -12 0
@@ -2047,10 +2173,7 @@
 "Shield Triangular Long" "18836.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
 "Shield Triangular Long with Bear Head on Dark Red and Red Background Pattern""18836P40.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
 "Shield Triangular Long with Black Pyramid and Sun Pattern" "18836PQ0.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
-
-; Update 2020-03
 "Shield Triangular Long with Dark Red Edge with Rivets and Black Bat on Metallic Silver Background Pattern""18836P42.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
-
 "Shield Triangular Long with Gold Rampant Lions and Crossed Keys Pattern""18836P41.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
 "Shovel" "3837.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Shovel Blocky" "18791.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2065,10 +2188,7 @@
 "Small Bow with Arrow" "95051.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -10 0
 "Space Scanner Tool" "30035.dat" 0 1 0 0 0 1 0 0 0 1 0 -19 -10
 "Spear with Round End" "4497.dat" 0 1 0 0 0 1 0 0 0 1 0 -40 0
-
-; Update 2020-03
 "Spear with Flat End" "93789.DAT" 0 1 0 0 0 1 0 0 0 1 0 -40 0
-
 "Spear with Four Side Blades" "43899.dat" 0 1 0 0 0 1 0 0 0 1 0 -144 0
 "Speargun" "30088.dat" 0 1 0 0 0 1 0 0 0 1 0 -13 0
 "Sports Barbells" "29592.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2084,18 +2204,18 @@
 "Suitcase (closed)" "4449-f1.dat" 0 0 0 -1 1 0 0 0 -1 0 0 0 0
 "Suitcase with Iron Man Armoured Suit Mark V Stickers" "4449-F1D01.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 0 0
 "Suitcase with Hinge with Lid (Complete)" "37702C01.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1 0
-
-; Update 2020-03
+"Suitcase with Long Handle (Closed)" "37178-F1.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 0 0
 "Sundae Glass" "68504.DAT" 0 1 0 0 0 1 0 0 0 1 0 12 0
-
 "Sword Blocky" "18787.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Cutlass" "2530.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Sword Dao with Curved Blade and Hilt" "25111.DAT" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Sword Double Blade with Bar Holder" "11103.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Greatsword" "59.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Katana (Dragon Guard)" "93055.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Katana Type 1 (Octogonal Guard)" "30173a.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
 "Sword Katana Type 2 (Square Guard)" "30173b.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
 "Sword Katana Type 3 (Square Guard with Smooth Endcap)" "21459.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Sword Katana 3.5 L with Short Smooth Grip and Square Crossguard""37341C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Sword Khopesh" "93247.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Sword Longsword" "98370.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Sword Rapier" "93550.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
@@ -2108,7 +2228,12 @@
 "Sword Small with Angular Guard" "95053.DAT" 0 1 0 0 0 1 0 0 0 1 0 -3 0
 "Sword Small with Curved Blade" "10053.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Sword Uruk-Hai" "10050.dat" 0 -1 0 0 0 1 0 0 0 -1 0 4 0
-"Sword Sword with Angular Hilt" "48495.dat" 0 0 0 -1 0 1 0 1 0 0 0 -10 0
+"Sword with Angular Hilt" "48495.dat" 0 0 0 -1 0 1 0 1 0 0 0 -10 0
+"Sword with Hexagonal Decorations" "24108.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Flat Silver Pattern" "24108PE1.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Light Bluish Grey Pattern""24108PE2.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Pearl Gold Pattern" "24108PE3.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Jagged Edges" "11439.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Syringe" "87989.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Teapot" "23986.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -10 -20
 "Teddy Bear with Arms Down" "98382.DAT" 0 0 -0.069756 -0.997564 0.809017 0.586353 -0.041002 0.587785 -0.807046 0.056434 -1.6 -4 -28
@@ -2122,18 +2247,22 @@
 "Tool Binoculars Space" "30304.dat" 0 1 0 0 0 0 -1 0 1 0 -5 -1 0
 "Tool Box Wrench" "55300.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Box Wrench with 3-Rib Handle" "604552.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Tool Circular Tooth Blade with Cover with Opposing Studs and Bar""50018G.DAT" 0 1 0 0 0 1 0 0 0 1 0 -28 0
 "Tool Crowbar" "92585.DAT" 0 1 0 0 0 1 0 0 0 1 0 -30 0
 "Tool Fishing Rod" "2614.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Tool Fishing Rod 8L Clip at End" "93222.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Tool Fishing Rod 12L Straight End" "96858.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Gavel" "11250.DAT" 0 0 0 1 0 1 0 -1 0 0 0 6 0
-
 "Tool Grappling Hook" "30192.dat" 0 1 0 0 0 -1 0 0 0 -1 0 9 0
 "Tool Grappling Hook with Bar" "15534.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -11 0
 "Tool Hammer" "55295.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Hammer with 3-Rib Handle" "604547.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Tool Handaxe" "3835.dat" 0 1 0 0 0 1 0 0 0 1 0 -16 0
+"Tool Hexagonal with Hollow Stud with Perpendicular Bar and Ribbed Handle""50018C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tool Hexagonal with Opposing Studs and 3 Ribbed Handles at 120 Degrees""50018A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Hose Nozzle with Handle" "4210a.dat" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
+"Tool Hose Nozzle with Handle at Bottom and Top" "22921.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tool Impact Wrench with Opposing Studs with Angled Ribbed Handle and Rear Bar Handle""50018B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Magnifying Glass" "30152a.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Magnifying Glass with TransClear Lens" "30152AP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Magnifying Glass with TransRed Lens" "30152AP02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2164,6 +2293,7 @@
 "Toy Winder Key" "98375.dat" 0 0 0 -1 1 0 0 0 -1 0 0 -2 -20
 "Tray Oval" "11252.dat" 0 0 -1 0 1 0 0 0 0 1 -6 -3 -16
 "Trophy Cup 2.4L" "10172.DAT" 0 0 0 1 0 1 0 -1 0 0 0 34 -20
+"Trophy Cup 2.4L with Metallic Silver Terrier Dog Pattern" "10172P01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 34 -20
 "Trophy Cup 3.6L" "89801.DAT" 0 1 0 0 0 1 0 0 0 1 -30 54 0
 "Umbrella Folded" "27150.DAT" 0 1 0 0 0 1 0 0 0 1 0 18 0
 "Underwater Scooter" "30092.dat" 0 -1 0 0 0 1 0 0 0 -1 20 -22 -8.5
@@ -2175,32 +2305,23 @@
 "Weapon Club with Spikes" "88001.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Weapon Crescent Blade Serrated with Bar 0.5L" "98141.dat" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Weapon Curved Blade 8.5L with Bar 1.5L" "98137.dat" 0 1 0 0 0 1 0 0 0 1 0 12 0
-
-; Update 2020-03
 "Weapon Grenade with Large Tapered Top and Four Indents" "40598C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Weapon Grenade with Small Tapered Top and Two Ridges" "40598D.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
-
 "Weapon Hand Dagger" "88812.dat" 0 1 0 0 0 1 0 0 0 1 0 2 0
-
-; Update 2020-03
 "Weapon Nunchaku with Black Handles (Straight)" "67100P01-F1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Weapon Sai" "98139.DAT" 0 1 0 0 0 1 0 0 0 1 0 7 0
 "Weapon Spear Short with Pin Hole" "98338.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
-
 "Weapon Trident" "92290.dat" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Weapon Web Effect Web 4 x 3 with Bar" "36083C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
+"Weapon Web Effect 5L Narrow with Bars at Both Ends" "36083A.DAT" 0 1 0 0 0 1 0 0 0 1 0 5 0
 "Welding Gas Torch with Hose and Gas Cylinder Top" "13793.DAT" 0 1 0 0 0 1 0 0 0 1 30 35 0
 "Whip" "2488.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Whip in Latched Position (Shortcut)" "2488c01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Whip Bent Flexible" "88704.DAT" 0 0 0 -1 0 1 0 1 0 0 0 10 0
-
-; Update 2020-03
 "Whip Bent Flexible (Formed for Electrical Roof Wiring - Right Aligned)""88704-F1.DAT" 0 0 0 -1 0 1 0 1 0 0 0 10 0
-
+"Whip Bent Flexible (Formed for Electrical Roof Wiring - Left Aligned)""88704-F2.DAT" 0 0 0 1 0 1 0 -1 0 0 0 10 0
 "Whip Coiled" "61975.dat" 0 0 0 -1 0 1 0 1 0 0 0 -8 0
-
-; Update 2020-03
 "Whisk" "29636.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Wine Glass" "33061.dat" 0 1 0 0 0 1 0 0 0 1 0 -32 0
 "Zip Line Handle" "30229.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 
@@ -2211,25 +2332,20 @@
 "Acoustic Guitar" "25975.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Acoustic Guitar with Black Fingerboard and Neck and Metallic Silver Strings Pattern""25975P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Acoustic Guitar with Black Tuning Pegs and Metallic Silver Strings Pattern""25975P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Animal Duckling" "49661.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Duckling with Black Eyes and White Pupil with Orange Beak Pattern""49661P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Duckling with Black Eyes and White Pupil with Red Beak Pattern""49661P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Animal Clam Closed" "30218-F1.DAT" 0 0 -1 0 0 0 -1 1 0 0 -12 -2 -29
 "Animal Lobster" "27152.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Lobster with Eyes Pattern" "27152P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Animal Snake" "30115.dat" 0 -0.469472 0 0.882948 0.882948 0 0.469472 0 1 0 0 -4 4
 "Animal Starfish" "33122.dat" 0 -1 0 0 0 0 1 0 1 0 0 -26 -6
+"Arm Bandage Wrapped" "30924.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Axe" "95330.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe Blocky" "18788.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Axe Head Faceted with Bar 0.5L" "22407.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Axe with Pick End and Long Handle" "39802.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe with Pick End and Long Handle with Red Head Pattern" "39802P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Axe with Red Head and Silver Blade Pattern" "95330P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Axe with Twin-Blade" "95052.DAT" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Battleaxe" "3848.dat" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
@@ -2237,6 +2353,7 @@
 "Bar 0.5L with Curved Blade 2L" "87747.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Bar 0.5L with Faceted Spike 1L" "88695.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Bar 0.8L with Tip Bat Emblem" "37720D.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Bar 1 L with Three Prongs" "68211.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Bar 1.5L with Clip without Hole in Shaft" "48729a.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Bar 1.5L with Clip with Truncated Sides and Hole in Shaft" "48729B.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Bar 2L with Ball Joint-8" "22484.DAT" 0 0 -1 0 0 0 1 -1 0 0 0 -10 0
@@ -2262,10 +2379,13 @@
 "Bone 2L" "93160.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bone 5L" "92691.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Boombox 1 x 3 x 1" "93221.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
-
-; Update 2020-03
+"Boombox 1 x 3 x 1 with Black Rimmed Speakers, Cassette Player and Switches Pattern""93221P03.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Magenta Rimmed Speakers, Cassette Player, Switches and Lime Decoration Pattern""93221P05.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers and Digital Music Player Pattern""93221P04.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers, Cassette Player and Buttons Pattern""93221P01.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Gold Rimmed Speakers, Rotary Knobs and Sound Wave Display Pattern""93221P06.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
+"Boombox 1 x 3 x 1 with Metallic Silver Rimmed Speakers, Cassette Player and Buttons Pattern""93221P02.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 -6
 "Boomerang" "25892.DAT" 0 0 -1 0 0.5 0 0.866025 -0.866025 0 0.5 4 -20 -4
-
 "Bottle Cylindrical" "95228.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Bottle Cylindrical with Bottle Ship Pattern" "95228p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Bow with Arrow" "4499.dat" 0 0 0 -1 0 1 0 1 0 0 0 1 0
@@ -2299,27 +2419,39 @@
 "Comb" "30112b.dat" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Compass" "74948.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Compass with Fleur de Lis Pattern" "74948P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Compass with White and Yellow Pattern" "74948P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Computer Laptop (Closed)" "62698-F3.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -2 0
 "Crossbow" "2570.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
-
-; Update 2020-03
+"Crown with 5 Points" "39262.DAT" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Crutch" "24077.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 0 -66
-
 "Cup" "3899.dat" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'C:\' Pattern" "3899P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'I Heart SOUTH PAWS' Pattern" "3899P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black 'Shhh!' Pattern" "3899P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Black Outlined Marshmallow Face and Yellow and Orange Flames Pattern""3899P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Medium Lilac and Medium Lavender 'I Heart HLC' Pattern""3899P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with Reddish Brown 'TVA' Logo on Metallic Gold Rectangle Pattern""3899P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with White 'DUNK ME!' Pattern" "3899P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup with White Octan Logo Pattern" "3899P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 -15 -20
+"Cup Stein with Handle" "68495.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
+"Cup Stein with Handle and Trans Bright Green Drink Pattern""68495P02.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
+"Cup Stein with Handle and Trans-Orange Drink Pattern" "68495P01.DAT" 0 0 0 -1 0 1 0 1 0 0 0 21 -16
 "Cup Takeaway" "15496.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Cup with Bar Handle" "38014.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 -16
 "Dagger" "88288.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dagger with Pearl Light Gray Blade" "88288P01.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dinner Plate" "6256.dat" 0 -0.0954045 0.866025 0.490814 -0.981627 0 -0.190809 -0.165245 -0.5 0.850114 -7 -5 -26
-
-; Update 2020-03
+"Dinner Plate with Four Black Outlined Orange Bones Pattern""6256P01.DAT" 0 -0.0954045 0.866025 0.490814 -0.981627 0 -0.190809 -0.165245 -0.5 0.850114 -7 -5 -26
+"Dinner Plate with Green and Lime Lettuce Leaf and Yellow Splotches Pattern""6256P02.DAT" 0 -0.0954045 0.866025 0.490814 -0.981627 0 -0.190809 -0.165245 -0.5 0.850114 -7 -5 -26
+"Dinner Plate with Metallic Light Blue Swirl Pattern" "6256PH1.DAT" 0 -0.0954045 0.866025 0.490814 -0.981627 0 -0.190809 -0.165245 -0.5 0.850114 -7 -5 -26
 "Drone Body with 4 Arms" "66967.DAT" 0 1 0 0 0 1 0 0 0 1 0 -9 0
-
 "Dynamite Sticks Bundle" "64728.dat" 0 0.5 0 0.866025 0 1 0 -0.866025 0 0.5 0 -28 -9
-"Electric Guitar Classic" "11640.DAT" 0 0 0 1 0 1 0 -1 0 0 0 40 0
-"Electric Guitar" "93564.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
-"Electric Guitar, Silver Strings, White Body" "93564P01.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
-"Electric Guitar, Black Strings, DkPink Lightning" "93564P02.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
+"Electric Guitar Classic" "11640.DAT" 0 0 0 -1 0 1 0 1 0 0 0 40 0
+"Electric Guitar Classic with Magenta, Bright Pink and Metallic Silver Stars Pattern""11640P01.DAT" 0 0 0 -1 0 1 0 1 0 0 0 40 0
+"Electric Guitar V Shape" "93564.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
+"Electric Guitar V Shape, Silver Strings, White Body" "93564P01.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
+"Electric Guitar V Shape, Black Strings, DkPink Lightning" "93564P02.dat" 0 0 0 -1 0 1 0 1 0 0 0 4 0
+"Feeding Bottle" "6206.DAT" 0 1 0 0 0 1 0 0 0 1 0 20 -20
 "Figure Club" "60659.dat" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Figure Flask with Handle" "4429.DAT" 0 1 0 0 0 0.965926 -0.258819 0 0.258819 0.965926 0 -20 -30
 "Food Apple" "33051.dat" 0 0.857167 0.515038 0 -0.515038 0.857167 0 0 0 1 14 33 0
@@ -2355,13 +2487,20 @@
 "Friends Access. Frying Pan" "97790.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -56 -12
 "Friends Access. Hair Brush with Heart on Reverse" "96480.DAT" 0 0 0 1 0 1 0 -1 0 0 0 9 0
 "Friends Access. Hair Dryer" "96484.DAT" 0 1 0 0 0 1 0 0 0 1 0 8 0
+"Friends Access. Hand Mirror with Heart on Reverse" "96488.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 9 0
 "Friends Access. Hand-held Food Mixer" "97793.DAT" 0 1 0 0 0 0 1 0 -1 0 0 -3 0
 "Friends Access. Key Ornamented with Stud" "19118.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -1.5 0
-"Friends Access. Lipstick with Light Bluish Grey Handle" "93094a.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
-"Friends Access. Lipstick with White Handle" "25866C02.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
-"Friends Access. Hand Mirror with Heart on Reverse" "96488.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 9 0
+
+; Update 2023-01
+"Friends Access. Lipstick Dual Mould with Black Handle Pattern""25866P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Friends Access. Lipstick Dual Mould with Light Bluish Grey Handle Pattern""25866P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Friends Access. Lipstick Dual Mould with White Handle Pattern""25866P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+
+"Friends Access. Medical Feeding Bottle" "98393F.DAT" 0 0 0 1 0 1 0 -1 0 0 0 13 -4
+"Friends Access. Medical Pen" "98393J.DAT" 0 1 0 0 0 1 0 0 0 1 0 9 0
 "Friends Access. Mixing Bowl" "97791.DAT" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Friends Access. School Bag" "11245.DAT" 0 0 0 -1 1 0 0 0 -1 0 4.6 -1.6 -38
+"Friends Access. School Bag with Medium Blue Buckle and Star Pattern""11245P01.DAT" 0 0 0 -1 1 0 0 0 -1 0 4 0 -38
 "Friends Access. Spatula with 3 Holes" "97787.DAT" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Frypan" "4528.dat" 0 0 1 0 0 0 1 1 0 0 -4 -24 0
 "Goblet" "2343.dat" 0 1 0 0 0 1 0 0 0 1 0 -26 0
@@ -2370,10 +2509,7 @@
 "Gun Flintlock Pistol" "2562.dat" 0 1 0 0 0 1 0 0 0 1 0 -1 0
 "Gun Laser Kryptonian" "13952.DAT" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Gun Laser Pistol with Trapezoidal Heat Diffusers" "87993.dat" 0 1 0 0 0 1 0 0 0 1 0 -4 0
-
-; Update 2020-03
 "Gun Laser Pistol with Rounded Heat Diffusers" "13608.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Gun Long Blaster" "57899.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Gun Musket" "2561.dat" 0 0 0.707 0.707 0 0.707 -0.707 -1 0 0 -25.1 -33.7 0
 "Gun Pistol Two Barrel" "95199.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
@@ -2382,10 +2518,7 @@
 "Gun Semiautomatic Pistol" "55707a.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Gun Shooting Blaster with Dark Bluish Grey Trigger" "15391c01.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 0
 "Gun Shooting Blaster with Trigger and TrOrange Projectile" "15391C02.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 0
-
-; Update 2020-03
 "Gun Short Blaster" "62885.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Gun Small Blaster with Telescopic Sight" "92738.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gun SW Short Blaster" "58247.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
 "Gun SW Small Blaster DC-17" "61190a.dat" 0 1 0 0 0 1 0 0 0 1 0 -3 0
@@ -2399,6 +2532,7 @@
 "Harpoon" "57467.dat" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Harpoon with Smooth Bar" "18041.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Hockey Stick with 1.1 L Bar" "93559.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 0
+"Hockey Stick with 3.6 L Bar" "64000.DAT" 0 1 0 0 0 1 0 0 0 1 0 10 0
 "Hose Nozzle with Side String Hole" "58367.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Hose Nozzle with Side String Hole Simplified" "60849.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Ice Axe" "30193.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
@@ -2413,12 +2547,17 @@
 "Life Ring" "30340.dat" 0 0 -1 0 0 0 1 -1 0 0 4 16 -21
 "Lifeguard Float" "90395.DAT" 0 0.34202 -0.939693 0 0 0 -1 0.939693 0.34202 0 -3 20 -9.2
 "Lightning" "59233.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Medium Lilac Pattern" "59233P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Trans Bright Green Pattern" "59233P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Lightning with Marbled Trans Purple Pattern" "59233P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Lightsaber Chrome Silver - 1 Side On" "577Bc01.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Chrome Silver - 2 Sides On" "577Bc02.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Hilt Short Curved" "61199.DAT" 0 1 0 0 0 1 0 0 0 1 0 -13.6 0
+"Lightsaber Hilt Short Curved Light Bluish Grey - 1 Side On""61199C01.DAT" 0 1 0 0 0 1 0 0 0 1 0 -13.6 0
 "Lightsabre Hilt with Bend" "42114.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
 "Lightsaber Hilt with Bottom Ring" "577B.dat" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Hilt with Round Guard" "18673.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -16 0
+"Lightsaber Hilt with Steep Sloping Fingers" "23306.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber Metallic Dark Grey - 1 Side On Blade with Cross Bar""577BC03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -20 0
 "Lightsaber with Bend Chrome Silver - 1 Side On" "42114C01.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
 "Lightsaber with Bend Chrome Silver - 2 Sides On" "42114C02.DAT" 0 1 0 0 0 0.930418 -0.366501 0 0.366501 0.930418 0 -19.5 -2.2
@@ -2434,7 +2573,11 @@
 "Megaphone" "39144.DAT" 0 1 0 0 0 1 0 0 0 1 0 -16 0
 "Metal Detector" "4479A.DAT" 0 0 0 -1 0 1 0 1 0 0 0 -24 0
 "Microphone" "90370.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
-"Microphone with Metallic Silver Top" "90370p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Black Top Half Sphere Pattern" "90370P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Gold Top Half Sphere Pattern" "90370P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Gold Top Pattern" "90370P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Silver Top Half Sphere Pattern" "90370P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 -8 0
+"Microphone with Metallic Silver Top Pattern" "90370p01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Mug" "33054.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 -20
 "Oil Lamp" "98383.DAT" 0 1 0 0 0 1 0 0 0 1 0 4 -20
 "Pharaoh's Staff with Forked End" "93252.dat" 0 1 0 0 0 1 0 0 0 1 0 -42 0
@@ -2486,10 +2629,7 @@
 "Shield Octagonal without Stud" "61856.dat" 0 0 0 -1 1 0 0 0 -1 0 0 -2 0
 "Shield Octagonal with Troll Skull on Dark Red Pattern" "61856P40.dat" 0 0 0 -1 1 0 0 0 -1 0 0 -2 0
 "Shield Oval" "92747.dat" 0 0 0 -1 1 0 0 0 -1 0 4 -1 0
-
-; Update 2020-03
 "Shield Oval with Large White Circle, Dark Purple Characters and Lines Pattern""92747P06.DAT" 0 0 0 -1 1 0 0 0 -1 0 4 -1 0
-
 "Shield Oval with Lime and White Circles, Dark Purple Arrows and Lines Pattern""92747P02.DAT" 0 0 0 -1 1 0 0 0 -1 0 4 -1 0
 "Shield Oval with Small Lime and Large White Circles, Dark Purple Chain and Lines Pattern""92747P04.DAT" 0 0 0 -1 1 0 0 0 -1 0 4 -1 0
 "Shield Oval with White, Lime and Medium Azure Circles, Dark Purple Lines Pattern""92747P03.DAT" 0 0 0 -1 1 0 0 0 -1 0 4 -1 0
@@ -2542,10 +2682,7 @@
 "Shield Triangular with Crown on Dark/Med Blue Quarters" "3846P4J.dat" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
 "Shield Triangular with Crown on Dark-Pink Sticker" "3846d01.dat" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
 "Shield Triangular with Crown on Violet Sticker" "3846d05.dat" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
-
-; Update 2020-03
 "Shield Triangular with Dark Pink Jewel and Gold Border Sticker""3846D0A.DAT" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
-
 "Shield Triangular with Dragon on Medium Nougat/Tan Pattern" "3846P4K.dat" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
 "Shield Triangular with Forestman Pattern" "3846p48.dat" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
 "Shield Triangular with Goblin King Eye Pattern" "3846PM0.DAT" 0 0 0 -1 0 1 0 1 0 0 0 -12 0
@@ -2569,10 +2706,7 @@
 "Shield Triangular Long" "18836.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
 "Shield Triangular Long with Bear Head on Dark Red and Red Background Pattern""18836P40.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
 "Shield Triangular Long with Black Pyramid and Sun Pattern" "18836PQ0.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
-
-; Update 2020-03
 "Shield Triangular Long with Dark Red Edge with Rivets and Black Bat on Metallic Silver Background Pattern""18836P42.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
-
 "Shield Triangular Long with Gold Rampant Lions and Crossed Keys Pattern""18836P41.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
 "Shovel" "3837.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 "Shovel Blocky" "18791.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2587,10 +2721,7 @@
 "Small Bow with Arrow" "95051.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -10 0
 "Space Scanner Tool" "30035.dat" 0 1 0 0 0 1 0 0 0 1 0 -19 -10
 "Spear with Round End" "4497.dat" 0 1 0 0 0 1 0 0 0 1 0 -40 0
-
-; Update 2020-03
 "Spear with Flat End" "93789.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Spear with Four Side Blades" "43899.dat" 0 1 0 0 0 1 0 0 0 1 0 -144 0
 "Spear Tip Faceted with Bar 0.4L" "27257.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Speargun" "30088.dat" 0 1 0 0 0 1 0 0 0 1 0 -13 0
@@ -2606,18 +2737,18 @@
 "Suitcase (Closed)" "4449-f1.dat" 0 0 0 -1 1 0 0 0 -1 0 0 0 0
 "Suitcase with Iron Man Armoured Suit Mark V Stickers" "4449-F1D01.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 0 0
 "Suitcase with Hinge with Lid (Complete)" "37702C01.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 -1 0
-
-; Update 2020-03
+"Suitcase with Long Handle (Closed)" "37178-F1.DAT" 0 0 0 -1 1 0 0 0 -1 0 0 0 0
 "Sundae Glass" "68504.DAT" 0 1 0 0 0 1 0 0 0 1 0 12 0
-
 "Sword Blocky" "18787.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Cutlass" "2530.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Sword Dao with Curved Blade and Hilt" "25111.DAT" 0 1 0 0 0 1 0 0 0 1 0 -10 0
 "Sword Double Blade with Bar Holder" "11103.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Greatsword" "59.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Katana (Dragon Guard)" "93055.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Sword Katana Type 1 (Octogonal Guard)" "30173a.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
 "Sword Katana Type 2 (Square Guard)" "30173b.dat" 0 1 0 0 0 1 0 0 0 1 0 6 0
 "Sword Katana Type 3 (Square Guard with Smooth Endcap)" "21459.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Sword Katana 3.5 L with Short Smooth Grip and Square Crossguard""37341C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Sword Khopesh" "93247.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Sword Longsword" "98370.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Sword Rapier" "93550.dat" 0 1 0 0 0 1 0 0 0 1 0 -2 0
@@ -2630,7 +2761,12 @@
 "Sword Small with Angular Guard" "95053.DAT" 0 1 0 0 0 1 0 0 0 1 0 -3 0
 "Sword Small with Curved Blade" "10053.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Sword Uruk-Hai" "10050.dat" 0 -1 0 0 0 1 0 0 0 -1 0 4 0
-"Sword Sword with Angular Hilt" "48495.dat" 0 0 0 -1 0 1 0 1 0 0 0 -10 0
+"Sword with Angular Hilt" "48495.dat" 0 0 0 -1 0 1 0 1 0 0 0 -10 0
+"Sword with Hexagonal Decorations" "24108.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Flat Silver Pattern" "24108PE1.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Light Bluish Grey Pattern""24108PE2.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Hexagonal Decorations with Pearl Gold Pattern" "24108PE3.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
+"Sword with Jagged Edges" "11439.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Syringe" "87989.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Teapot" "23986.DAT" 0 0 0 1 0 1 0 -1 0 0 0 -10 -20
 "Teddy Bear with Arms Down" "98382.DAT" 0 0 -0.069756 -0.997564 0.809017 0.586353 -0.041002 0.587785 -0.807046 0.056434 -1.6 -4 -28
@@ -2644,18 +2780,22 @@
 "Tool Binoculars Space" "30304.dat" 0 1 0 0 0 0 -1 0 1 0 -5 -1 0
 "Tool Box Wrench" "55300.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Box Wrench with 3-Rib Handle" "604552.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
+"Tool Circular Tooth Blade with Cover with Opposing Studs and Bar""50018G.DAT" 0 1 0 0 0 1 0 0 0 1 0 -28 0
 "Tool Crowbar" "92585.DAT" 0 1 0 0 0 1 0 0 0 1 0 -30 0
 "Tool Fishing Rod" "2614.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
+"Tool Fishing Rod 8L Clip at End" "93222.DAT" 0 1 0 0 0 1 0 0 0 1 0 6 0
+"Tool Fishing Rod 12L Straight End" "96858.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Gavel" "11250.DAT" 0 0 0 1 0 1 0 -1 0 0 0 6 0
-
 "Tool Grappling Hook" "30192.dat" 0 1 0 0 0 -1 0 0 0 -1 0 9 0
 "Tool Grappling Hook with Bar" "15534.DAT" 0 0 0 1 -1 0 0 0 -1 0 0 -11 0
 "Tool Hammer" "55295.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Hammer with 3-Rib Handle" "604547.DAT" 0 1 0 0 0 1 0 0 0 1 0 -2 0
 "Tool Handaxe" "3835.dat" 0 1 0 0 0 1 0 0 0 1 0 -16 0
+"Tool Hexagonal with Hollow Stud with Perpendicular Bar and Ribbed Handle""50018C.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tool Hexagonal with Opposing Studs and 3 Ribbed Handles at 120 Degrees""50018A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Hose Nozzle with Handle" "4210a.dat" 0 -1 0 0 0 1 0 0 0 -1 0 -12 0
+"Tool Hose Nozzle with Handle at Bottom and Top" "22921.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Tool Impact Wrench with Opposing Studs with Angled Ribbed Handle and Rear Bar Handle""50018B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Light Sabre Hilt with Bend" "42114.DAT" 0 1 0 0 0 0.927184 -0.374607 0 0.374607 0.927184 0 -19.5 -2.5
 "Tool Magnifying Glass" "30152a.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Tool Magnifying Glass with TransClear Lens" "30152AP01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2687,6 +2827,7 @@
 "Toy Winder Key" "98375.dat" 0 0 0 -1 1 0 0 0 -1 0 0 -2 -20
 "Tray Oval" "11252.dat" 0 0 1 0 -1 0 0 0 0 1 6 -3 -16
 "Trophy Cup 2.4L" "10172.DAT" 0 0 0 1 0 1 0 -1 0 0 0 34 -20
+"Trophy Cup 2.4L with Metallic Silver Terrier Dog Pattern" "10172P01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 34 -20
 "Trophy Cup 3 L" "89801.DAT" 0 1 0 0 0 1 0 0 0 1 30 54 0
 "Umbrella Folded" "27150.DAT" 0 1 0 0 0 1 0 0 0 1 0 18 0
 "Underwater Scooter" "30092.dat" 0 -1 0 0 0 1 0 0 0 -1 -20 -22 -8.5
@@ -2698,32 +2839,23 @@
 "Weapon Club with Spikes" "88001.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Weapon Crescent Blade Serrated with Bar 0.5L" "98141.dat" 0 1 0 0 0 1 0 0 0 1 0 2 0
 "Weapon Curved Blade 8.5L with Bar 1.5L" "98137.dat" 0 1 0 0 0 1 0 0 0 1 0 12 0
-
-; Update 2020-03
 "Weapon Grenade with Large Tapered Top and Four Indents" "40598C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
 "Weapon Grenade with Small Tapered Top and Two Ridges" "40598D.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
-
 "Weapon Hand Dagger" "88812.dat" 0 1 0 0 0 1 0 0 0 1 0 2 0
-
-; Update 2020-03
 "Weapon Nunchaku with Black Handles (Straight)" "67100P01-F1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Weapon Sai" "98139.DAT" 0 1 0 0 0 1 0 0 0 1 0 7 0
 "Weapon Spear Short with Pin Hole" "98338.DAT" 0 1 0 0 0 1 0 0 0 1 0 16 0
-
 "Weapon Trident" "92290.dat" 0 1 0 0 0 1 0 0 0 1 0 24 0
+"Weapon Web Effect Web 4 x 3 with Bar" "36083C.DAT" 0 1 0 0 0 1 0 0 0 1 0 3 0
+"Weapon Web Effect 5L Narrow with Bars at Both Ends" "36083A.DAT" 0 1 0 0 0 1 0 0 0 1 0 5 0
 "Welding Gas Torch with Hose and Gas Cylinder Top" "13793.DAT" 0 1 0 0 0 1 0 0 0 1 30 35 0
 "Whip" "2488.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Whip in Latched Position (Shortcut)" "2488c01.dat" 0 1 0 0 0 1 0 0 0 1 0 -8 0
 "Whip Bent Flexible" "88704.DAT" 0 0 0 -1 0 1 0 1 0 0 0 10 0
-
-; Update 2020-03
 "Whip Bent Flexible (Formed for Electrical Roof Wiring - Right Aligned)""88704-F1.DAT" 0 0 0 -1 0 1 0 1 0 0 0 10 0
-
+"Whip Bent Flexible (Formed for Electrical Roof Wiring - Left Aligned)""88704-F2.DAT" 0 0 0 1 0 1 0 -1 0 0 0 10 0
 "Whip Coiled" "61975.dat" 0 0 0 -1 0 1 0 1 0 0 0 -8 0
-
-; Update 2020-03
 "Whisk" "29636.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Wine Glass" "33061.dat" 0 1 0 0 0 1 0 0 0 1 0 -32 0
 "Zip Line Handle" "30229.dat" 0 1 0 0 0 1 0 0 0 1 0 -12 0
 
@@ -2733,11 +2865,8 @@
 "3 Black Diamonds Pattern" "3816BPBA.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Astro Pattern" "3816BP6F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Lower Leg Pattern" "20461P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Black Orca Pattern" "3816BPD6E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Triangles on Foot Pattern" "3816BPCBD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Blue Lower Leg Pattern" "20461P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blue/White Triangles, Fringe Pattern" "3816BPW2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bright Light Orange Lower Leg Pattern" "20461P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2745,13 +2874,16 @@
 "Chainlink and 3 Safety Pins Pattern" "3816BPC44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Chicken Feet Pattern" "3816BPC97.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Clockwork Robot Pattern" "3816BPC67.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue Loincloth Pattern" "3816BPQ0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue Lower Leg Pattern" "20461P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue and Gold Loincloth Pattern" "3816BPQ1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBrown Lower Leg Pattern" "20461P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkGreen Lower Leg Pattern" "20461P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkRed Loincloth, White Claws and Fur Tail Pattern" "3816BPAW.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkRed Lower Leg Pattern" "20461P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Coattails Pattern" "3816BPH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Loincloth Pattern" "3816BPQ0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Lower Leg Pattern" "20461P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue and Gold Loincloth Pattern" "3816BPQ1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Brown Lower Leg Pattern" "20461P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Green Lower Leg Pattern" "20461P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Loincloth, White Claws and Fur Tail Pattern" "3816BPAW.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Lower Leg Pattern" "20461P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"DarkRed Lower Leg and Triangular Notch on Side Pattern" "20461PX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Bluish Grey Robe Lines Pattern" "3816BPB8.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Dark Turquoise/White Triangles, White Fringe Pattern" "3816BPW3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Golden Circuit Pattern" "3816BP6W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Circuitry and Orange Cable Pattern" "3816BP6U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2766,32 +2898,38 @@
 "Iron Patriot Armoured Suit Kneepad Pattern" "3816PBG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Laboratory Smock Pattern" "3816BPDE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Leather Straps and Red Diamonds Pattern" "3816BP4F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Light Nougat Lower Leg and Black Shoes Pattern" "20461PX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Coat and Shirttails Pattern" "3816BPM2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Leather Armour Pattern" "3816BPM0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"LOTR Scale Armour Pattern" "3816PM1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"LOTR Scale Armour Pattern" "3816BPM1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Medium Azure and Magenta Stripes Pattern" "3816BPU1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Orange Cable Pattern" "3816P6u.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pocket and Holster Pattern" "3816BPX2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pouch Pattern" "3816BP40.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Purple Greatcoat Pattern" "3816phb.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Rags Pattern" "3816BP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Red/White Triangles Pattern" "3816BPW1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red Coattail Pattern" "3816BPX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Lower Leg Pattern" "20461P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Roman Tunic and Belt Pattern" "3816BPC6A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reflective Stripe Pattern" "3816BP8H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reflective Stripes and Black Pocket Outline Pattern" "3816BP70.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reflective Stripes and Tan Pocket Outline Pattern" "3816BP71.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Reflective Stripe and Triangles on Feet Pattern" "3816P8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Reflective Stripe and Silver Triangles on Foot Pattern" "3816BP8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot Pattern" "3816BP63.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Ruffles, Black Lower Leg and White Feet Pattern" "20461PD92.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Salmon Cable Pattern" "3816P6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Scale Mail Pattern" "3816BP41.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Silver Circuitry and Salmon Cable Pattern" "3816BP6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shirttails, Gold Band and Fleur de Lis Pattern" "3816BP42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shorts with Black Line and Brick Logo Pattern" "3816BPC4B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Gunbelt Pattern" "3816BPS5.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Stormtrooper Pattern" "3816BPSK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW White Leggings Pattern" "3816BPS0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "War Machine Armoured Suit Kneepad Pattern" "3816PBD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Wetsuit, Coral and Dark Azure Trim Pattern" "20461PCKC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Apron Pattern" "3816BP89.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Lower Leg Pattern" "20461P00.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Lower Leg and Green Sandals Pattern" "20461PD87.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White and Gold Markings Pattern" "3816BP6G.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Yellow Lower Leg Pattern" "20461P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2804,6 +2942,10 @@
 "Leg Skeleton Long" "23769.DAT" 0 1 0 0 0 1 0 0 0 1 -10 0 0
 "Leg Wooden" "2532.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Mechanical Leg" "53984.DAT" 0 1 0 0 0 1 0 0 0 1 -10 44 -10
+"Mechanical Leg Angled" "87569.DAT" 0 1 0 0 0 1 0 0 0 1 -10 -4 0
+"Mechanical Leg Angled with Dark Bluish Grey Foot Pattern" "87569P01.DAT" 0 1 0 0 0 1 0 0 0 1 -10 -4 0
+"Robotic Leg" "10177.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short -> Hips:" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Legs Old -> Hips:" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2818,28 +2960,28 @@
 "Plain Leg" "3817B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "2 Red Diamonds Pattern" "3817BPBA.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "2 Safety Pins Pattern" "3817BPC44.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Amulet Pattern" "3817BP40.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Astro Pattern" "3817BP6F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Lower Leg Pattern" "20460P05.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Black Orca Pattern" "3817BPD6E.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Black Triangles on Foot Pattern" "3817BPCBD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Blue Lower Leg Pattern" "20460P02.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Blue/White Triangles, Fringe Pattern" "3817PW2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Bright Light Orange Lower Leg Pattern" "20460P03.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Buttoned Cargo Pocket Pattern" "3817BPA3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Chicken Feet Pattern" "3817BPC97.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Clockwork Robot Pattern" "3817BPC67.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue Loincloth Pattern" "3817BPQ0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue Lower Leg Pattern" "20460P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBlue and Gold Loincloth Pattern" "3817BPQ1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkBrown Lower Leg Pattern" "20460P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkGreen Lower Leg Pattern" "20460P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkRed Loincloth and White Claws Pattern" "3817BPAW.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"DarkRed Lower Leg Pattern" "20460P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Coattails Pattern" "3817BPH0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Loincloth Pattern" "3817BPQ0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue Lower Leg Pattern" "20460P09.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Blue and Gold Loincloth Pattern" "3817BPQ1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Brown Lower Leg Pattern" "20460P06.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Green Lower Leg Pattern" "20460P08.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Loincloth and White Claws Pattern" "3817BPAW.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Dark Red Lower Leg Pattern" "20460P07.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"DarkRed Lower Leg and Triangular Notch on Side Pattern" "20460PX1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "DarkTurquoise/White Triangles, White Fringe Pattern" "3817bpw3.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"'EMMET' Badge, Reflective Stripe Pattern" "3817P8H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"'EMMET' Badge, Reflective Stripe Pattern" "3817BP8H.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "'EMMET' Badge, Reflective Stripe, Silver Triangles Pattern""3817BP8I.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Golden Circuit Pattern" "3817BP6W.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Gold Circuitry and Orange Cable Pattern" "3817BP6U.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2854,32 +2996,34 @@
 "Iron Patriot Armoured Suit Kneepad Pattern" "3817PBG.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Laboratory Smock Pattern" "3817BPDE.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Leather Straps and Red Diamonds Pattern" "3817BP4F.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Light Nougat Lower Leg and Black Shoes Pattern" "20460PX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Coat and Shirttails Pattern" "3817BPM2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "LOTR Leather Armour Pattern" "3817BPM0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"LOTR Scale Armour Pattern" "3817PM1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"LOTR Scale Armour Pattern" "3817BPM1.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Orange Cable Pattern" "3817P6u.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Pocket Pattern" "3817BPX2.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Purple Greatcoat Pattern" "3817phb.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Rags and Patch Pattern" "3817BP30.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Red/White Triangles Pattern" "3817bpw1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Red Coattail Pattern" "3817BPX0.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Lower Leg Pattern" "20460P01.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Red Roman Tunic and Belt Pattern" "3817BPC6A.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
-; Update 2020-03
 "Red Tied Sash Pattern" "3817BPC1.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
-
 "Reflective Stripes and Black Pocket Outline Pattern" "3817BP70.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Reflective Stripes and Tan Pocket Outline Pattern" "3817BP71.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Robot Pattern" "3817BP63.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Ruffles, Black Lower Leg and White Feet Pattern" "20460PD92.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Salmon Cable Pattern" "3817P6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Scale Mail Pattern" "3817BP41.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shirttails, Gold Band and Fleur de Lis Pattern" "3817BP42.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Shorts with Black Line and Lion Crest Pattern" "3817BPC4B.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Silver Circuitry and Salmon Cable Pattern" "3817BP6V.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW Stormtrooper Pattern" "3817BPSK.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "SW White Leggings Pattern" "3817BPS0.dat" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "War Machine Armoured Suit Kneepad Pattern" "3817PBD.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"Wetsuit, Coral and Dark Azure Trim Pattern" "20460PCKC.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Apron Pattern" "3817BP89.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
+"White Lower Leg Pattern" "20460P00.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "White Lower Leg and Green Sandals Pattern" "20460PD87.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Yellow Lower Leg Pattern" "20460P04.DAT" 0 1 0 0 0 1 0 0 0 1 0 0 0
 
@@ -2891,6 +3035,9 @@
 "Leg Skeleton Long" "23769.DAT" 0 1 0 0 0 1 0 0 0 1 10 0 0
 "Leg Wooden" "2532.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 0 0
 "Mechanical Leg" "53984.DAT" 0 1 0 0 0 1 0 0 0 1 10 44 -10
+"Mechanical Leg Angled" "87569.DAT" 0 1 0 0 0 1 0 0 0 1 10 -4 0
+"Mechanical Leg Angled with Dark Bluish Grey Foot Pattern" "87569P01.DAT" 0 1 0 0 0 1 0 0 0 1 10 -4 0
+
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hips and Legs Short -> Hips:" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Legs Old -> Hips:" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
@@ -2904,10 +3051,9 @@
 [LLEGA]
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Flipper" "2599.DAT" 0 0.996 0 0.087 0 1 0 -0.087 0 0.996 -10 28 -1
 
-; Update 2020-03
-"Flipper Thin" "59275.DAT" 0 -0.087156 0 0.996195 0 1 0 -0.996195 0 -0.087156 -10 28 -1
+"Flipper Thick" "10190.DAT" 0 0.996 0 0.087 0 1 0 -0.087 0 0.996 -10 28 -1
+"Flipper Thin" "59275a.DAT" 0 0.996 0 0.087 0 1 0 -0.087 0 0.996 -10 28 -1
 "Roller Skate" "11253.DAT" 0 1 0 0 0 1 0 0 0 1 -10 28 -1
 "Skate" "93555.DAT" 0 1 0 0 0 1 0 0 0 1 -10 28 -1
 "Skateboard with Black Wheels (Shortcut)" "42511c01.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 1
@@ -2918,17 +3064,11 @@
 
 "--------------------Non-standard accessories------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hoverboard" "21271.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 0
-
-; Update 2020-03
 "Hoverboard with Magenta, White and Lime Lines and 'HOVER BOARD' Pattern""21271P01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 0
-
 "Plate 2x4 with Curved Beveled Sides" "88000.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Snowboard 2 x 6" "18746.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
 "Surf Board 2 x 6.5" "90397.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
-
-; Update 2020-03
 "Surf Board 2 x 6.5 with Hearts and Flowers Sticker" "90397D01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
-
 "Surf Board 2 x 6.5 with Medium Lilac Batman Logo Pattern""90397P04.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
 "Surf Board 2 x 6.5 with Pink Flames Pattern" "90397P02.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
 "Surf Board 2 x 6.5 with White Shark, Black Open Mouth and Gills Pattern""90397P05.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
@@ -2938,10 +3078,9 @@
 [RLEGA] 
 "None" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "--------------------------------------------------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
-"Flipper" "2599.DAT" 0 0.996 0 -0.087 0 1 0 0.087 0 0.996 10 28 -1
 
-; Update 2020-03
-"Flipper Thin" "59275.DAT" 0 0.087156 0 0.996195 0 1 0 -0.996195 0 0.087156 10 28 -1
+"Flipper Thick" "10190.DAT" 0 0.996 0 -0.087 0 1 0 0.087 0 0.996 10 28 -1
+"Flipper Thin" "59275a.DAT" 0 0.996 0 -0.087 0 1 0 0.087 0 0.996 10 28 -1
 "Roller Skate" "11253.DAT" 0 1 0 0 0 1 0 0 0 1 10 28 -1
 "Skate" "93555.DAT" 0 1 0 0 0 1 0 0 0 1 10 28 -1
 "Skateboard with Black Wheels (Shortcut)" "42511c01.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 1
@@ -2952,21 +3091,13 @@
 
 "--------------------Non-standard accessories------------------------------------" "" 0 1 0 0 0 1 0 0 0 1 0 0 0
 "Hoverboard" "21271.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 0
-
-; Update 2020-03
 "Hoverboard with Magenta, White and Lime Lines and 'HOVER BOARD' Pattern""21271P01.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 0
-
 "Plate 2x4 with Curved Beveled Sides" "88000.DAT" 0 1 0 0 0 1 0 0 0 1 0 28 0
 "Snowboard 2 x 6" "18746.DAT" 0 0 0 1 0 1 0 -1 0 0 0 28 -1
 "Surf Board 2 x 6.5" "90397.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
-
-; Update 2020-03
 "Surf Board 2 x 6.5 with Hearts and Flowers Sticker" "90397D01.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
-
 "Surf Board 2 x 6.5 with Medium Lilac Batman Logo Pattern" "90397P04.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
 "Surf Board 2 x 6.5 with Pink Flames Pattern" "90397P02.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
 "Surf Board 2 x 6.5 with White Shark, Black Open Mouth and Gills Pattern""90397P05.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
 "Minifig Surf Board 2 x 6.5 with White Shark, Black Open Mouth and Gills Pattern""90397P05.DAT" 0 0 0 -1 0 1 0 1 0 0 0 28 -1
 "Surf Board 2 x 10" "6075.DAT" 0 -1 0 0 0 1 0 0 0 -1 0 28 -1
-
-; End of file
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 5e50337..d7e46cb 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,7 +1,7 @@
 name: leocad
 base: core18
 adopt-info: leocad
-version: '21.06'
+version: '23.03'
 
 grade: stable
 confinement: strict
@@ -31,7 +31,7 @@ parts:
       - libqt5concurrent5
       - libqt5printsupport5
       - libqt5xml5
-    source: https://github.com/leozide/leocad/archive/v21.03.tar.gz
+    source: https://github.com/leozide/leocad/archive/v23.03.tar.gz
     parse-info: [usr/share/metainfo/leocad.appdata.xml]
   library:
     source: .
diff --git a/tools/setup/leocad.appdata.xml b/tools/setup/leocad.appdata.xml
index cdee929..4684c5f 100644
--- a/tools/setup/leocad.appdata.xml
+++ b/tools/setup/leocad.appdata.xml
@@ -22,6 +22,7 @@
 		<id>leocad.desktop</id>
 	</provides>
 	<releases>
+		<release version="23.03" date="2023-03-19" />
 		<release version="21.06" date="2021-06-05" />
 		<release version="21.03" date="2021-03-14" />
 		<release version="21.01" date="2021-01-12" />
diff --git a/tools/setup/leocad.nsi b/tools/setup/leocad.nsi
index 493707b..ae94428 100644
--- a/tools/setup/leocad.nsi
+++ b/tools/setup/leocad.nsi
@@ -80,6 +80,7 @@ Section "Application Files" SecLeoCAD
 
   ;Create uninstaller
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayName" "LeoCAD"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayVersion" $%VERSION%
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "Publisher" "LeoCAD.org"
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayIcon" '"$INSTDIR\LeoCAD.exe"'
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "UninstallString" '"$INSTDIR\uninstall.exe"'

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/fb/d9b76b719eb1d1975fca8bede8ed9ff3650e87.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/2c/7d6e1ca58595617c8c98894d67b382188822af.debug

No differences were encountered between the control files of package leocad

Control files of package leocad-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 2c7d6e1ca58595617c8c98894d67b382188822af fbd9b76b719eb1d1975fca8bede8ed9ff3650e87

More details

Full run details